The goal of QA testing is to minimise the number of bugs that are present before pushing your updates to a live audience. In an ideal world, apps would work perfectly and never have issues, but anyone who’s used a computer knows there's no such thing as a ‘perfect’ app. Every app will have bugs, and QA aims to ensure as few bugs as possible make it into the final product. The standardised process our QA team follows have been built with this goal in mind.
Our testing is conducted in two phases: functional and non-functional requirement testing. Simply put, non-functional requirements relate to the design and layout of an application while functional requirements outline every action that the app should be able to perform. Once an app meets all functional and non-functional requirements, it is deemed as having met the project scope. This doesn’t mean that there are ‘no bugs’, just that the app meets the minimum requirements outlined by the client. There are a range of different issues that could be classified as bugs that would fall outside of the requirements list.
One of our main considerations is that every user interaction with the app has the potential to cause a bug. So it’s important to design your app in a way that minimises the potential for errors. For example, imagine a user entering their date of birth on a form. The choice of input method is critical for minimising possible errors. If the input method was just a simple text box, the user could enter the date in an unexpected format (e.g. 2024/06/12 or 12th June 2024) potentially causing an error. They could even enter invalid text or leave the field blank. A better way to avoid these issues would be a calendar date picker tool which allows only valid selections for input. This example highlights the importance of considering QA not just during the app development phase, but also the design phase.
During our non-functional testing phase, the front-end user interface is compared against the design mock-ups for any differences, for example incorrect input fields, fonts or colour schemes are fixed, ready for round two of testing.
For the functional requirement testing phase, we develop a list of functional requirements based on the project scope. With user interaction, the QA team ensures each functional requirement/action can be completed in the app, bug free. This phase of testing is very comprehensive and requires the QA team to provide screenshots and screen recordings of all identified bugs to the developer so that they can be resolved. The cycle of conducting a testing round followed by a bug fixing round is repeated until no more new issues are identified.
We hope that this insight into how bugs are found and fixed within an application can help to give you a sense of the work done behind the scenes to ensure a smooth user experience for all end users. The next time you encounter a bug while using an app, see if you can replicate it and report it to the developers. They will be very happy to see user feedback that can help improve their app even more!