Quality assurance and testing – Will it work, and will it work well?


Software developers will conduct internal quality assurance and testing in-house throughout the app development cycle and there are various phases of the testing. The focus of the in-house testing sometimes differs from the client (e.g. a research or academic team), for example it may focus more on coding quality [modularity, maintainability, efficiency, scalabilityperformance and security.  

Both software and clients will test requirement fulfilment on an incomplete ‘alpha’ version of the app to see whether the app delivers the functionality as specified in the requirement analysis.

Alpha versions 

An alpha version of an app is an early, limited-availability version of a software product. The alpha version might be incomplete and missing some features but the essential functionality should be operational. Alpha testing is usually done by a small group of testersA beta version of an app is an experimental, pre-release version of an app that's available for testing before its official launch. 

Surface’ app experience can also be tested by end users on an alpha version of the app, for example by assessing ease of use in User Interface (UI) testing, and overall ‘look’ and ‘feel’ of an app in User Experience (UX) testing 

App features and design can be formally compared using A/B testing, an experimental set-up where two different implementation versions are pitched against each other. For example by measuring the time needed by an end user to find or access a specific app feature; or rating how ‘trustworthyan app feels.  

Beta testing

Once all major changes have been completed, the app moves to its beta version, which is almost ready for deployment, but still requires a final test round which is conducted by intended end users, who are given early app access before its official deployment.  

Whilst testing make sure of the following: 

  • Document all your testing notes
  • Try different combinations of responses, routes through the programme etc. Even if it works along one route, it does not mean that it works in the others.
  • It can be helpful to refer back to the Functional Specifications, to check a feature is working as expected.