Is your current testing process allowing you to catch every bug before each new release?
Do you feel that testing is slowing you down?
These best QA practices are going to change the way you incorporate testing into your development process. Let’s take a closer look at agile methodology to help you improve speed, scale, and coverage.
Estimated worldwide losses from software fails in 2017
Of DevOps practitioners deploy on demand, therefore requiring constant testing.
Bug bounty paid by Apple for finding a firmware security bug.
Adopting a methodology that incorporates testing into a series of short development cycles is another best QA practice worth considering.
Agile methodologies make sense in the context of developing mobile apps, given that these products typically have short development cycles and mobile users have extremely high expectations regarding quality and frequent updates.
With agile methodologies, QA testing is part of the design and development processes, rather than being a separate phase. Test results are directly incorporated into the design and development processes, and quality becomes a guiding principle.
This is a collaborative approach that requires designers, developers, testers and sometimes even users to communicate or work together. In order to facilitate collaboration, you can use a single repository for the app code.
Your teams will go through a short design or development cycle, followed by a targeted testing phase for the new feature that was just added - with additional regression testing as needed. The outcome of the testing phase will determine what happens during the next design or development cycle.
Leveraging automation will keep things moving once you adopt this approach. Test automation speeds up the targeted testing phases and helps you to move onto the next development cycle in a matter of hours or days. You will need to schedule manual tests after some key design or development cycles to incorporate feedback regarding the user experience and other key aspects of the app.
You will need to create a framework for reviewing and using the data generated during the short testing phases. Incorporate feedback into the design and development process as early as possible – even at the point where you're mocking up wireframes for the app.
Should developers write tests? On one hand, the agile approach is about ownership. Involving developers in the test case writing process will make QA one of their responsibilities.
On the other hand, developers who create tests might become biased and write code that will pass the test without meeting other quality standards, or unconsciously create a test with limited coverage.
Even though each test case should have a narrow focus, there should be cohesion in your test case suite. Your test case suite should have a scope that is adapted to the scale of your project.
Customise and execute test cases in an environment that is different to the one used for development. Each test should be based on clear expectations and result in a measurable outcome.
Break down each test case into a series of concise steps. Taking these steps will tell you whether or not a feature works. You can think of writing a test case as a series of actions associated with a question. When an action is taken, the automated test or human testers should answer a simple question to measure the success of the action.
The instructions written for each test case should give testers a clear understanding of what they are expected to do. You can save time and get better results by providing test cases and instructions that aren’t liable to misinterpretation.
Continuous integration (CI) and continuous delivery (CD) are strategies that complement the agile methodology. You can incorporate a continuous testing strategy to CI and CD.
Without CI and CD, developers split up their work and assemble different segments of the code late in the development cycle. This often results in a lack of cohesion, redundancy, and issues with how the different segments of the code interact.
With continuous integration, the code is kept in a central repository. Developers work on making small changes to the code and upload small sections of code to the central repository regularly. You can incorporate QA into this methodology by having a series of tests performed every time the code is updated. The new segments need to be tested, but you should also conduct regression testing to see how changes affect the main features of the product.
Continuous delivery allows you to release new iterations of your product on a regular basis. This is a quick and efficient approach to addressing bugs and issues that affect the user experience.
The key is to incorporate user feedback into your CI and CD processes so that issues can be quickly addressed and a new and improved version of your product can be released.
Again, you will have to incorporate testing in your process, for instance by having crowdsourced testers perform some usability tests before a new major version of your product is made available to users.
The right QA testing methodology will provide the information needed by your design and development teams to produce a quality app. Remember that quality doesn't depend on testing but on the outcome of your QA tests and how you use this data.
Your approach to QA testing needs to be adapted to the product you are developing.
High quality and speed should be key objectives when developing your QA testing process. Keep in mind that this is a process you will have to regularly review for efficiency and improve as you move through the different cycles of your project.
You can achieve high quality by creating a framework and best practices for writing and implementing tests.
The code used for automated tests should be tested, and the written tests sent to human testers should be carefully reviewed. Make it easy for everyone involved with your project to report bugs and share feedback.
You also need to focus on efficiency. Using an off-the-shelf bug tracker like Jira is the best way to keep track of quality issues and to make sure they are addressed in a satisfactory and timely manner.
Maintaining a list of clear quality objectives is crucial for achieving speed and high quality. Align your quality objectives with users’ expectations and use these objectives when writing test cases.
Working with a clear set of quality objectives will help developers, testers, and designers to get a better understanding of what is expected of them and foster an environment where everyone owns quality.
Crowdsourcing is another element of the QA puzzle. This approach helps you to save a considerable amount of time and will unlock new possibilities if you have been limited in the depth and scope of your testing.
Crowdsourcing allows you to conduct tests on a much larger scale. You can have thousands of testers on a wide range of devices, operating systems, countries and networks cover different scenarios, find more bugs, and complete tests within a matter of hours.
Start by rethinking the way team members work, for instance by adopting the agile methodology or making CI and CD the core elements of your workflow.You should also combine different testing methods, including in-house testing, automated tests, and crowdsourced tests.
❝ These three testing methods will help you to save time and cover a much wider scope.❞
The tests themselves should be improved, such as by narrowing the focus of each test and having a set of clear objectives. You can improve your QA testing process and achieve speed and high quality by adopting a few key strategies.
Lastly, your QA strategy should be unique to the product you are developing and should be aligned with the scope of the project, your definition of quality and users’ expectations.