The Quality Assurance should be built into the process of Software Development – and accompany each stage from Software Requirement Specifications (SRS) Elaboration / Analysis – till the point of Release of the Application, and continue on next iterations.
Classical Recommended Process Overview
We recommend to integrate Jira and a Test Management tool (like Zephyr, Xray, TestRail) at the stage of Software Requirements Elaboration. And assume Acceptance Criteria the same thing as the Test Case. Especially in Agile development approach it’s important to avoid information duplication – and assume them as the same concept.
In Agile, Scrum mode the work on Quality Assurance starts from the point where the UI/UX Designs are quite approved. And the QA Team, Dev Team, UI/UX Design team start elaborating the Acceptance Criteria, thinking about the corner cases and identifying potential vulnerabilities – and documenting that into the Test Management tool.
During the development process the developers should as well rely on Acceptance Criteria / Test Cases, extend them, while clarifying and figuring our some additional information. Making even the technical “Common Sense” documented and transparent to the whole team. As well at the end of Dev Testing – it should be obvious for the whole team what was development, what was tested and how – thus the initial Test Execution should be executed by Development Team.
As soon as the batch of features is developed – the QA Team should once more test the feature, relying on Test Set, clarifying and extending it if something stayed not transparent enough.
QA Team should enforce the Definition of Done to be kept up-to-date, be supported and followed. As well to perform the Smoke Testing of Beta Testing builds, Regression Testing of the Release Candidates. Usually in relation to Mobile Development that’s done mostly manually, aggregating the Unit Test Execution statistics from the developers.
The motivation for Test Automation in Mobile Application Development can be of the following 3 types:
a) Common Sense of Software Development Team
b) Regulatory Compliance
c) Marketing & Positioning related enterprise standards
The first point is a must – which actually speeds up the mobile software development process. It most often includes the development Unit Tests Suit – to test the Networking Module, and the encapsulated Business Logic Modules. This set of Unit Tests speeds up the development process, as user doesn’t need to launch the whole app to test particular functionality manually via UI interaction.
As for second point – the optimal test coverage should be analysed to comply to particular Industry Standards. For example as for Class A Medical Device – the Test Sets, Test Executions are usually sufficient, and properly configured versioning and Jira infrastructure.
The third option might enable even the Mobile UI Testing automation – which is ambiguous in most of the cases, and the business doesn’t benefit from that. But usually it just extends the point A – motivating the development team to invest more time into Unit Tests automation – and to cover as much interfaces as possible, even those that seem ambiguous at this point.