Posted on

Prior to being released to the app stores, thorough testing of each mobile application must be conducted. While the process of testing mobile apps isn’t always straightforward, we have outlined the fundamental steps of the process that will help to ensure that a high-quality product is produced and a solid testing strategy is set in place.
Preparation for the Testing Process

We’ve noticed that QA specialists are often brought into the project later than desired. If the software testing process starts only after the first build of the application is ready, there is the potential for errors to have occurred during the technical requirements and specifications stage. Fixing mistakes afterward is always more complicated, which is why it’s important to implement the following initial steps as part of your testing strategy to save time and money.

  1. Device models and OS versions

Once you’ve identified your project idea, business logic, and target users, you should decide which mobile devices and OS versions to make your mobile app compatible with. These same devices should be the ones you test on.

To figure out the best mobile devices for your app, consider the following questions: what devices are most popular in the location you plan to launch your app in? If you have a website, which mobile devices are used most often to access it? What devices are most popular among your target audience? What versions of Android and iOS are necessary for the business logic of the project? Lastly, what versions of Android and iOS are the most widely used around the world at the moment?

Resources such as Apple and Google distribution dashboard, Device Atlas, and Statcounter can be used to help answer these questions.

After you have made your decisions, the mobile devices and OS you have chosen will have an impact on the functional requirements, application design, and the devices and OS used for software testing. It is wise to select at least three to five reference devices for each platform with varying screen aspect ratios, DPIs, and OS versions.

  1. Specification and design prototype testing

After the technical specifications are finalized, it is critical to involve a QA specialist. If the design is also ready, it is all the more essential to have one at this stage. Testing the specification and design prototype will enable you to detect bugs prior to them becoming embedded in the mobile app.

The QA specialist will be able to spot any incompleteness in descriptions, ambiguous language, contradictions, and imprecisions. Testing the prototype design will help to eliminate any disparity in the technical specification and can help to uncover any issues with the user experience.

This approach will prevent any potential issues down the road and save the team valuable time while keeping you on budget.

Test Planning

The project has been given the ultimate approved specifications and design; the project management methodology, which typically decides the suitable software testing technique, has also been decided. Consequently, the next stages of development can now take place. Nonetheless, prior to starting with testing, a few more critical steps must be taken.

The test plan is an integral part of any quality assurance process, providing testing specialists with the necessary information to ensure a successful product launch. It includes the following main components:

  1. Project Overview: This section should contain introductory information about the project, including its target audience, the parts of the project that are subject to testing, and a description of all parts of the project.
  2. Links to the Main Project Documents: This includes links to project space, technical specifications, design source files, a list of test logins and passwords, test checklists, test scenarios and test cases.
  3. Necessary Equipment: This should include a list of device models and OS versions that the application should support, as well as considerations for using emulators.
  4. Interaction with Other Applications or Devices: If the mobile application involves integration with other apps or devices, the QA should be familiar with the details of how integration testing will be performed.
  5. Testing Team: This section should include a team of testers and the role of each member, as well as an intro meeting with the team to discuss roles, plans, tasks and expectations of all project participants.
  6. Project Space and Bug Tracking Tools: This should include the list of systems and tools used on the project, such as ADB, Crashlytics, Postman, Instabug.
  7. Testing Start and Finish: This should contain the criteria and deadlines for testing if the release date is fixed, as well as any dates for private demonstrations during the development process.

Test design

At this point, it is essential to analyze the project’s needs, measure the risks, and evaluate options to reduce them with minimal cost. Generally, when doing this analysis, we try to answer some questions: What types of mobile application testing should be used based on the project’s technical specifications? What issues could occur during the testing procedure? How can we circumvent them or minimize their impact on the project? What product threats can be identified? What steps can we take to decrease them, and what might be the possible repercussions? What elements outside of the team’s control could affect the project? Are there any planned dates for releasing new OS versions? What can be done to ensure they do not interfere with the intended launch date of the app? Are there any risks that can arise during the process of publishing applications on the App Store and Google Play? How will a potential user load increase on the app be managed? What measures can be taken to test the load? How quickly should the application load and how quickly can users navigate the app menu and its functions? What test documentation is necessary for the project?

Types and forms of testing

The selection of testing types should be based on project requirements, budget, release date, and the team’s capabilities. Typically, a combination of testing forms and types is the most successful. Automated tests can provide more accurate results and can be used again, but developing them can require a lot of time. Manual testing of an application can be done without much preparation (like hallway testing). Test farms enable running tests at the same time and remotely on numerous devices. Choosing the proper combination of manual and automated testing forms and types is essential for optimizing the testing budget and ensuring a high-quality mobile app.

Testing documentation

The initial document to be produced is the test plan. This plan outlines the forms, types and scope of testing that will be undertaken. As a result of this, checklists will be produced that outline the acceptance criteria which will be used to assess the performance of the application. Additionally, test cases will be created to ensure that all the functionality is tested. These test cases will be divided into sets and run in different scenarios. These include separate application modules, smoke tests to assess the readiness of a new build, and acceptance tests to reach the required quality level for publication. Furthermore, the test cases will be compiled into suites to facilitate end-to-end testing.

Bug report

QA specialists are required to not only identify but also document potential inconsistencies between the expected and actual results found in the app. This is why our bug report template is utilized in every project to provide precise descriptions of the bugs that will allow the development team to effectively reproduce and correct them. The content of bug reports may vary depending on the type of testing and the stage of the project, as well as the project space and management methodology. However, all bug reports must include certain pieces of information, such as the bug number (in cases where one is not issued automatically), title, severity, priority, steps to reproduce, environment, expected and actual results, and attachments.

Testing

Testing continues until all the desired features are implemented and the desired level of quality is met. For this, keep in mind: The tests developed during the previous phase must cover all new features added in the current phase; The interaction of the new features with other existing modules must also be tested; Confirmation testing is used to make sure bugs previously found and fixed by developers do not reappear; Regression testing is carried out to make sure that the new features and bug fixes do not impact previously stable features; Test cases must be updated and supplemented. Neglecting this step will eventually make tests ineffective (known as the “pesticide effect”).
After performing a major test, we produce a test report as an extension of the bug report. This report offers the Project Manager and Product Owner a comprehensive understanding of the product’s quality. It may contain a connection to the tests that have been done, the devices and OS used, an appraisal of the functional quality, the severity of the remaining bugs, if the acceptance criteria have been met, and advice for improvement.

Pre-release testing

The acceptance test involves a thorough and comprehensive assessment, which can help to stabilize the application’s performance and detect minor issues. At this stage, it is essential to compare the intended and accepted functions before sending it for publication. It may be necessary to eliminate some superfluous elements or add new ones.
A final report on the pre-release testing should be kept up to date and accurately documented. Ensure that all necessary entries are made, then construct a test summary report. This should include relevant information obtained from testing, such as the quality of the tests, the overall quality of the app, incident results, the types of testing and time spent on each, and a conclusion that the app is ready for publication in the current state of quality and meets all the accepted functionality and performance criteria. The approval to publish the mobile app in stores should only be given after the test summary report is complete.

QA responsibilities after release

The QA team’s work does not stop after the app is released. When a second version of the project is being worked on, the process may have to start all over. But even when additional work is not necessary, and the project is running smoothly, it is advisable to allocate time for testing. This will consist of regularly checking the app, which can include any of the following activities:
Checking if the new OS versions are compatible with the app in case changes may have been made.
Examining any SDKs or libraries used to see if updates have triggered any errors. Investigating user comments to see if there are any reported bugs that need to be fixed by the development or design team.
Conducting a minimum checklist test to check the significant functions of the project.

Testing a mobile application is a complex process and takes effort from the entire team. You can modify the steps of the testing process for each project. However, do not forget to adhere to the 10 steps mentioned above. This will guarantee a successful outcome with a high-quality mobile application.