Intro to Business-Critical Software QA

Quality of software is a critical topic in the IT world today. Agile methodologies in software development brought new opportunities and customized development processes, which make releasing software easier and faster. But for this reason, I experienced that a lot of new, small IT companies provide “fast cooked” software, with none, or very poor quality assurance.

Whatever can happen, will happen.

Murphy’s law

At Continuent, we develop business-critical and mission-critical MySQL database clustering and replication software that is used to protect billions of dollars of revenue each year. For this reason, and the fact that our software runs in many different environments and covers many use cases, we have a bit of an extensive testing process.

This blog series will bring you closer to the world of QA at Continuent. We will talk about the most important and, of course, interesting parts of our QA.

Starting from the Bottom

Tungsten Clustering and Tungsten Replicator are written in the Java programming language. At the very beginning of the QA process, the source code is built, and individual components and small pieces of code are immediately tested using the JUnit framework. This way we test our software on code level - every function and every possible line.

But that’s not all we can do to test on code level. Every time any developer makes any change in code, or even new features, the rest of the developers do a short code review. This is very effective for double-checking with another pair of eyes with minimal effort. The main goal is to find inconsistencies or possible bugs in the code of the other developer, but the other advantage is that developers are always up-to-date on code written by others, and thus they understand “how it works.”

The World of a Continuent QA Engineer

At Continuent, there is a huge space of possibilities of how to test, and what to test; there are endless combinations of environments and different setups. For me personally, QA means everyday creativity. Some QA engineers in other companies could feel pleasure from finding bugs in software; but for me, an important part of what brings me joy is that every day is a challenge.

Of course QA’s goal is to avoid situations like this one :-)
Of course QA’s goal is to avoid situations like this one :-)

Work in QA is not isolated to component development. The QA engineer must have “a little bit” of knowledge in all possible IT professions in the company. It’s not about monkey-style testing. One must know networking, system administration, automation tools, follow new technologies and have a sense for architecture design.

Every day brings different problems to solve. Even after three years as a member of the Continuent crew, I work day after day on something new.

To learn more about the world of Continuent’s QA, here is the complete list of blogs in the QA series:

And if you’re interested to learn more about Tungsten Clustering or how it works, please visit our website or feel free to reach out.

About the Author

Patrik Michalák
DevOps and QA Engineer

Patrik has been with Continuent for two years, having previously worked as a full-stack web and mobile application developer, while also finishing university. Patrik currently splits his time between school and Continuent. He’s a technology enthusiast, and has been awarded at country-level for a photography processing project, and has been involved as an IoT architect in a scooter sharing project in his country for the past year. Patrik is skilled in Perl, Python, JavaScript (ES6), C, Java, SQL, PHP, including technical skills in Linux administration and automation tools.

Add new comment