Quality Assurance (QA) is the practice of ensuring quality in software development. It involves a set of practices, processes, and tools designed to verify and document that the software solution being developed meets quality standards and functions according to the creator’s intentions. Software, application, and website testing is not a new process, but with the advancement of technology, this area has also evolved. The accelerated digital transformation has made the domain of QA even more critical due to the increased demands of organizations, the volume of newly developed or implemented software, and the pace at which it is delivered.
The beginnings of software testing date back to 1979 when Glenford J. Myers, an American software engineer working at IBM, first separated debugging from testing. Since then, Quality Assurance activities have come a long way. Over the years, the software production cycle has taken shape, new programming languages have emerged, and there have been further stages of technological development, such as cloud computing, big data, and now AI. The development of QA has also been influenced by the strong trend of process automation and the emergence of agile project management methodologies. Each new advancement has introduced unique quality assurance needs. Currently, there are dozens of types and forms of tests used for various purposes and at different stages of production. However, we won’t delve into listing them all in this text, as it is an incredibly vast topic deserving its own article. The most important aspect of ensuring quality is taking a comprehensive approach to the entire process and having a clear understanding of what you want to achieve and the desired outcome.
Testers as Guardians of Client Requirements
In the most traditional software development approach, the software development life cycle consists of six stages: planning, analysis, design, development, testing and integration, and maintenance. While there is a testing phase in this cycle, it doesn’t mean that testing only occurs at that stage. Such an approach is always recommended to our clients, especially in projects where we comprehensively handle QA. According to established project management methodologies and best practices, it’s reasonable for the quality assurance team to get involved as early as the analysis phase. During this phase, business analysts discuss the client’s expectations for the solution and translate business requirements into technical language for the development team.
By understanding the business assumptions, the QA team can provide feedback suggestions and identify documentation errors (which are relatively cheap to rectify) from the beginning. This allows for selecting the right types and testing techniques and focusing on the most risky or crucial areas for the client. It’s not always apparent because certain assumptions may seem reasonable “on paper,” but verifying whether they work as expected can sometimes be challenging or even impossible. Engaging experienced QA specialists in the project from the early stages can often help eliminate this issue and design a solution that is both “programmable” and “testable.” In reality, testers are the guardians of client requirements, tasked with not only finding defects and verifying that the application functions correctly but also ensuring that client requirements are met in the delivered product.
After the analysis and planning stages, the development phase follows, in which the development team translates client requirements into code while the QA team creates test scenarios. Depending on the project, these can be manual tests, automated tests, API tests, backend tests, or other types required for the specific case. With access to the test environment during this phase, we can verify the initial functionality delivered by developers to catch operational errors or meet client expectations. The actual testing and integration phase comes next, where different pieces of code are combined into one solution, and we can conduct a comprehensive verification of the final, completed product. This process is called System Acceptance Testing. During this phase, we use the test scenarios prepared earlier, containing test cases that we can execute, supported by tools such as Micro Focus ALM, Azure, or ServiceNow (these tools allow us to document and execute tests).
Once the solution has been tested defects have been identified and rectified, we are ready for the final stage before system or application deployment, User Acceptance Testing. These are tests conducted by end-users, our clients, to verify if the product aligns with the order. The last stage involves deployment and transitioning to the maintenance phase. Of course, the scenario presented above is theoretical, as every project is unique. Moreover, the cycle was described under the assumption that waterfall project management methodologies are used. Nowadays, especially at Billennium, agile methodologies like Scrum or SAFe are frequently employed. In such cases, the cycle occurs faster and more regularly, with the software being delivered in smaller parts, allowing us to detect and correct defects on an ongoing basis.
A Never-Ending Software Development Cycle
The software development life cycle essentially never ends unless a system no longer meets expectations or a new and superior solution is introduced. In other cases, we say that the solution is in the maintenance phase, where defects discovered later are corrected, new features are added, and updates are made. QA work in the maintenance phase looks different. At this stage, testers work in collaboration with end-users to address newly arising issues because it is challenging to foresee all the scenarios and variants that might lead to unexpected results or malfunctions.
Additionally, defects may arise from factors beyond the development team’s control, such as new integrations or incorrect data. If the client has unique requirements, such as expanding the application with additional features or integrating it with other systems, the entire software development cycle starts from the beginning. The team must not only test the new elements but also ensure they do not adversely affect what already exists. Automated tests are recommended during the maintenance phase due to the expansion and stability of the application. Their use allows for continuous verification of correctness. Automation testers use test scenarios previously prepared by manual testers. This often results in significant time savings. For a small application, we might develop approximately 100 test cases that one manual tester can complete in about two weeks.
It’s important to note that this timeframe includes not only activities related to ensuring compliance with requirements or defect detection but also documentation preparation. Although manual testing could achieve this, it often takes more time. Therefore, automated testing is gaining popularity, as it enables us to complete and document these 100 test cases in just three hours. The difference is significant. Of course, the preparation of automated tests is more costly because it involves strictly programming work, but the investment pays off quickly. Each new application release will require testing, allowing you to use existing automated tests to verify the impact of new features on the system’s operation or performance and check the existing ones.
Validation – a QA Area in the Life Science Sector
One exciting area of QA is validation, a process characteristic of the life science, pharmaceutical, and medical device industries. It is applied in regulated sectors wherever there is a direct or indirect impact on the health and lives of patients. In the case of information systems, it refers to the validation of computerized systems (CSV – Computerized System Validation). These systems are used in manufacturing processes, research and development, and clinical trials, among others. The goal of validation is to prove and document that the solution works as intended and complies with the regulations set by regulatory bodies such as the FDA in the United States or the EMA in the European Union.
Validation is present at every stage of software development, from the analysis phase to maintenance, and it is an ongoing process. When changes, modifications, or updates occur, the system should undergo recertification. This is critical because in the early project phase, when requirements are defined and the solution is designed, we consider certain system or application characteristics and behaviours that may not be considered by business analysts but are significant from a legal perspective and are specific to the pharmaceutical sector – for example, data integrity, access management, or audit trails. Validation is not a technical process; its purpose is to provide evidence that the solution works as intended, complies with regulatory requirements, and eliminates actions that could jeopardize patient health or life.
In the case of validation, it’s worth mentioning a recent shift in approach, namely moving from CSV to CSA or Computer Software Assurance. CSV is a suitable tool for creating a system that complies with regulations but has some drawbacks. The most significant is the documentation overhead, which consumes a considerable amount of the team’s time. Areas that don’t require testing because they have no direct or indirect impact on the final product may also be tested. The CSA model is the opposite – it first determines if a particular element is critical, checks quality assurance requirements, and only then proceeds with testing and documentation. This is a more efficient approach, focusing on critical thinking about processes and a risk-based approach to optimize validation and testing actions.
QA at Billennium
Our over 20 years of experience in the IT industry have shown us that companies worldwide have diverse needs when it comes to Quality Assurance, and we aim to meet these needs with our offering. We provide end-to-end quality assurance processes throughout the software development cycle, and we also supply our specialists through staff augmentation. We conduct audits of QA processes within companies and projects. Everything depends on the client’s needs and their expectations for a solution, as well as their resources and capabilities.
At Billennium, we have over 230 QA specialists, and we have been developing this area for over 15 years. Among our experts are manual testers, automation testers, integration testers, performance testers, cloud testing specialists, ETL testers, Big Data testers, computerized system validation specialists, and test leaders who organize QA within our clients’ organizations. Our differentiator is the follow-the-sun model, which allows us to work on projects 24/7/365. Thanks to our branches and specialists located in different parts of the world – in Poland, Germany, Canada, India, and Malaysia – we can work on solutions for clients almost non-stop across different time zones.