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.
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.
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:
- Introduction to Business-Critical Software QA: https://www.continuent.com/resources/blog/intro-business-critical-software-qa
- Simulating Realistic Conditions: https://www.continuent.com/resources/blog/qa-for-business-critical-mysql-clustering-simulating-realistic-conditions
- Bug Hunting: https://www.continuent.com/resources/blog/tungsten-bug-hunting-qa-business-critical-mysql-clustering-software
- Testing Time and Test Suites Management: https://www.continuent.com/resources/blog/testing-time-and-test-suites-management-qa-business-critical-mysql-clustering