Believe it or not, there are still companies out there who have not realised the importance of quality assurance (QA). Some start-up companies, due to inherent constraints, could be tempted to take the quickest development approach to get their software product out into the market as fast as possible. However, as a software product starts to gain more attention from end-users the likelihood of finding bugs that managed to escape into production becomes higher. What could possibly go wrong?
Well, it’s all good and well if the bug can be fixed by simply uppercasing a letter. Right? But what if the bug escapee is one of the naughtiest types that could crash the customer’s application, cause data loss, and compromise security? If that happens then a bad end-user review could probably be the least of your worries. It is not all doom and gloom though, as this is where Software Quality Assurance (SQA) professionals step in and implement processes to help prevent this from happening.
In this first article of our 3-part series we cover the introduction to and stages of the Agile QA process and how it adds value to the development and deployment process
Introduction to the Agile QA process
As most start-ups and even Fortune 500 companies are adopting Agile development for faster time-to-market and quicker customer feedback, they need a QA process that is designed for this approach. Agile QA processes are implemented to ensure the product is built correctly based on business requirements and technical specifications. They help to minimize the possibility of feature rework that could derail an agile team’s focus on building new features and further accelerating software development. The QA process flushes out key software risks that provide both stakeholders and development teams with a certain level of confidence in the product. Without it, a released software product could be quite unreliable which may result in some serious damage to a company’s reputation.
Before we consider implementing an Agile QA process, we need to understand the stages involved and how it fits in the software development lifecycle.
What are the stages of an Agile QA process?
The Agile QA process begins as soon as the user story is written, and acceptance criteria has been set. It is important to note that the QA process should involve other team members (e.g., product owner, product manager, business analysts, and dev lead) throughout the whole process to enable early feedback and prevent unwanted surprises at the end of each iteration.
- Requirements Analysis
The QA engineers goes through the acceptance criteria and related documents to review for:
- Completeness
- Clarity
- Redundancy
- Consistency
- Testability
The goal is to test early and eliminate entities that could potentially result in a bug during the actual development of the feature. Bugs found at this stage are the cheapest ones to fix as they could be resolved by simply updating the acceptance criteria or the requirements document.
- Test Planning
Test planning activities involve:
- Creating the test plan (scope of testing and types of testing involved – both functional and non-functional testing)
- Test Scenarios and Test Cases creation
- Peer Reviews
Presenting the test plan and test cases to the team members for review promotes team collaboration, early testing (as it enables developers to anticipate scenarios that might have been missed out), and again, to gather early feedback.
- Test Execution and Bug Reporting
Test cases are run in the test environment to evaluate the software behaviour against the acceptance criteria and ensure that the new code or bug fix does not break existing functionality. Here are the most common types of tests executed in this stage:
- Unit Testing
- Systems Integration Testing
- User Acceptance Testing
- Regression Testing
- Performance Testing (Load and Stress Testing)
- Security Testing
Bugs found during the test execution are recorded in a defect management tool and triaged. Depending on the nature of the bug, it could either be fixed or deferred to next iterations for review if it’s not considered part of the minimum viable product (MVP). Fixed bugs are then retested and tracked until closure.
We hope you’ve found this a useful introduction to the importance of running an effective Agile QA process.
In part 2 of our series, we’ll take you through a more detailed look at the 5 steps to use to create your Agile QA process from scratch.
By Alvin Maranan
Alvin has 10 years experience in manual and automated testing. Having ISTQB Advanced Level Test Analyst and Technical Test Analyst certifications under his belt, he seeks to continuously improve both manual and automated testing practices and establish robust QA processes to ensure high quality outcomes.