As has been noted over the past several years, the Internet of Things (IoT) is becoming the Internet of Everything (IoE). And when “everything is in a computer,” software is in everything. A report released by the Consortium for Information & Software Quality (CISQ) in 2020 calculates the total cost of poor software quality (CPSQ) in the United States alone to be $2.08 trillion. Who would want $2 Trillion sucked out of the economy?
Enter Quality Assurance and Testing. Yes, I do not use them interchangeably – quality assurance is about the activities designed to make sure the project is conforming to the expectations of the stakeholders whilst testing is a set of activities to ensure a system is free of errors and defects. Here are some tips around ensuring good QA practices and strategies:
Shift Left, Left, and More Left
Everyone is aware of the classic time vs cost curve. The later you find issues in a project the more expensive it is to fix it. The good news is that simply adding software QA and testing experts to your requirements analysis process will significantly address this problem. From a static document review with checklists to identify discrepancies to brainstorming sessions where developers and QAs are involved and working as a group – the shift left is commonly used when we want to move away from the traditional mold of bringing testing in only after development. This means we shift further left in the SDLC and bring testing in early.
Take Advantage of Automated Testing
When you have to test something over and over again – why repeat it manually? Bring in the element of automation, reduce the cost to market and see benefits such as:
- Faster feedback
- Faster identification of errors
- Improved confidence in application quality at every stage of development
- Decreased effort required for repeat testing
- Improved test accuracy due to eliminating possible human errors
- Improved test coverage due to the ability to include tests that are too costly to be executed manually
Determine what success looks like
Let your QA strategy be very clear on the objective of the test phase, when it can be started and when it be ended – define the set of criteria so that the team knows what everyone is working towards. Maintaining clear entry and exit criteria for every test phase ensures everyone’s working towards a targeted, common goal. Every activity within the test phase is then performed and measured against those goals, and this paves the way to increased test velocity.
Stay close to the super users
At the end of the day, every application has a targeted user base. All quality assurance is keeping their end vision in mind. Contrary to the popular belief that only business acceptance testing is the test phase when we need to bring the users in, engaging with them early on while capturing requirements, keeping them informed during technical phases of testing will only make user testing seamless and quicker.
Whether it’s the tests to be run, or the bugs to be fixed – factor in prioritization. Prioritizing tests to be run is not about reducing test coverage it’s about ensuring that the most important tests do get run. Defect prioritization ensures that the QA team stays close to the business users, stays close to the functionality/product being delivered and that the most important defects get fixed on time.
Written by Roshni Nambiar, Test Manager at KPMG UK