Software testing is about providing information and mitigating risks

However with the explosion of the app economy, there comes a divergence in the way companies test.

Navigating_the_abyss_1.jpg

Testing for Web

In web, the best risk mitigation techniques have been continuous delivery and phased rollout. Okay what does that mean? This means whenever releasing something new to the end users, you can enable it to a select few users if you wanted to.

By slowly ramping up the load, you can monitor and capture metrics about how the new version acts. If necessary, you can either roll back to the old (and stable) version or fix the bug(s) and re-deploy immediately. Web deployments are usually quick and can be optimised to a couple of minutes. However, that doesn’t mean no testing would be needed. It’s always a good idea to lower the risk of causing devastating effects to the end users or the company’s reputation.

 

Testing for Apps

In the app area, continuous deployment unfortunately doesn’t work anymore.

The time it takes to get your app approved and released to the store has come down, but that doesn’t mean it’s fast. It still takes longer than 24 hours to get your app approved into the app store.

It’s important to note that not everybody immediately upgrades to the newest version. Well why does that matter?

Once bugs are released to the public, they could potentially stay there for a while and affect the user experience for months. Testing and providing information about the app quality has become critical again.

Navigating_the_abyss_2.jpg

Information points provided by testers

When looking into the app development process, three main information points surface:

  1. Knowing about issues in the new functionality under development
  2. Knowing about any regressions in existing functionality before app release
  3. Knowing about important issues that app end users are facing after the new version has been released to the public

Each of these points have different requirements for reaction times and coverage needs (both device and functionality coverage). For example when developing new features, engineers would like to know about the bugs when the code is still fresh in their memory.

On the contrary, gathering feedback from the end users could be aggregated over a week or even a longer period. Coverage on the other hand, is most important just before the release – you really want to make sure that all your app functionality gets tested on as many different devices as possible.

In order to ensure scalability and be prepared for the volatility of testing, it’s possible to outsource your testing needs either partially or all the way while still keeping your developers responsible for the app quality and monitoring its performance. You can lower the risk of misbehaving apps by integrating outsourced testing into your development processes.

 

Outsourcing your testing

The easiest way to start is by outsourcing your pre-release regression testing to professional exploratory testers.

They can cover wide amount of devices with different operating systems and screen sizes. By giving them clear focus points it’s easy to let them focus on most critical app areas. It’s important to know about those critical issues before your app’s end users start complaining about them. Even if you decide not to immediately fix some of the bugs you get, you can still prepare your customer support or release help articles about potential workarounds.

By letting outsourced testers analyse and prioritise the feedback and issues your end users are facing, this gives you possibility to focus your development resources to the issues that really matter. It’s valuable feedback and having it in a systemised way on weekly basis is priceless.

Navigating_the_abyss_3.jpg

Solving the information flow

In order to be truly agile, you would need to have quick feedback on functionalities under development. You may already have automated smoke tests and have unit tests in place however adding some human eyes can give you a lot of additional confidence.

However, this is the trickiest to outsource.

Solving the information flow that needs to be shared is the key on successfully outsourcing your everyday testing. You need a dedicated test lead who joins your stand-ups and can direct the daily testing needs based on the emerging needs.

She (and her team) could help you to verify bug fixes or review the new functionality. She could also help find the root cause of the issue just reported by your end user or dig into potential weak spots in your app architecture. No day in testing is similar to the previous one. By sharing the information with the outsourced test lead, she can decide the necessary testing strategy and engage testers most skilled for the task given.

Outsourcing your testing to professional testers gives you scalability and exactly the type of information what you would need for mitigating the risks for your next app release.

Get our monthly email newsletter covering testing trends, insights, and events.

Get our monthly email newsletter covering testing trends, insights, and events.Sign up for blog updates.