7 QA-Best Practises for Better Quality
Vinayak Titti
Test Automation Engineer @Apple Inc | Corporate Trainer | ISTQB | SDET | Selenium Tester | Cypress & Playwright Automation | MABL | TestComplete | API Testing | JMeter | DevOps | AWS | AZURE |Test
Quality is one of the core responsibilities of any software tester or automation engineer in the IT field. In traditional methodology, when comes to the Water-fall model, QA’s use to get ample time for test documentation, test execution, test closure, and product delivery. But, when comes to Agile methodology, testing is a challenging part due to multiple cycles of deployments and delivery in a short period.
As everyone knows “There is no such thing as a perfect software” or “There’s no such thing as 100% bug-free product or app”. Even for big brands and companies achieving “100% bug-free products” is a daunting task.
In this article, I have covered a few of the best practices for better quality software & to minimize defect-leakage. Most of the below practices tried and achieved good success rate in real-time projects.
- Shift-left Testing.
- Brainstorming Sessions.
- Requirement Traceability Matrix & Test Coverage.
- API Level Testing.
- Peer Testing.
- Code-Freezing.
- BDD Automation & Continuous Testing.
1. Shift-Left Testing:
“Testing team to collaborate with all the stakeholders early. ”In all levels of the software development lifecycle, it’s better QA should involve from the beginning of the development process. When it comes to the traditional approach, testing starts after development done, but in Agile, requirements change at a rapid pace, it’s always good practice QA’s to involve from an early stage of a life cycle — Requirements gathering, Design phase, and Development. ‘Defect prevention is better than Defect detection”.
2. Brainstorming sessions:
Brainstorming sessions between teams provide a free and open environment that encourages everyone to participate and share ideas & problem-solving solutions. It’s a best practice to cover the gaps between Product Owners, Designers, Developers & QA’s regarding the new features/implementations. “Communication is the key to software development & delivery”.
3. Requirement Traceability Matrix & Test Coverage:
Once the test cases preparation completed it’s always good practice to map those test cases with the proposed requirements for full test coverage. If working in a team, spend some time with peer QA for RTM & test coverage review for missing test cases. RTM & Test coverage mapping will ensure that all system requirements have been met during the verification process.
4. API-Level Testing:
When developing new software, it’s always good practice to start with API-level testing rather than direct UI-functional testing. During the API testing, we can cover functionality, reliability, performance, and security testing of the endpoints & validate the response.
5. Peer Testing:
Peer testing is another level of the quality checkpoint where one QA reviews another QA tested story/feature before deploying the application to the production environment. Using this approach there’s less chance of defect leakage and gives more confidence for product delivery. “In dev’s perspective one should not review their own code, this formula applies to QA’s too”.
6. Code-Freezing:
For major releases, it’s always good practice to freeze the code before deadlines. Making source code changes at the last minute will do more harm than good to the application delivery. Most of the defect leakages happen in the last minute changes where QA gets less time to validate the new code changes. To achieve better quality & smoother product delivery, code freeze is a good approach and pending code-changes can be released in the next version update. “Most of the app-development companies practice this proven-method”.
7. BDD Automation & Continuous Testing:
100% manual testing is not a good practice & achievable task in Agile. To reduce the multiple cycles of repeated testing for the same test cases, automation plays a crucial role to overcome it. When comes to Agile, where sprint ends in 2–3 weeks, writing test cases and automation scripts in a short time frame is a challenging task. Behaviour Driven Development automation is a useful framework to write scripts in a short time and less maintenance.
The goal of BDD is a business readable and domain-specific language that allows you to describe a system’s behavior without explaining how that behavior is implemented.
When comes to “Continuous Testing” CI/CD tools such as Jenkins, Circle CI, and Teamcity, etc., plays a key role to schedule daily jobs and health check of the apps regularly. Most of the time, QA’s spend a lot of time preparing scripts but if we don’t integrate the scripts for Continuous testing — then ROI is a considering factor here.
Summary:
Finally, in this article has covered a few of the industry best practices that are based on my experience & proven-approaches in real-time projects. Please feel free to comment on any other practices for better quality software.
“Best Practice — Effective Quality — leads to Better Software”
Thanks!
Happy Testing!