If we often associate Agile mainly with project management, the principles of the Agile Manifesto can also be applied to other software development activities. In this article, Nadya Knysh explains how to use these principles in mobile software development and more specifically in the testing of mobile apps.
Author: Nadya Knysh, A1QA, http://www.a1qa.com/
The beginning of this century was marked by the birth of a document that has strongly influenced software development: the Agile Manifesto. Signed by 17 software developers in February of 2001, this document presents a list of ideas that were discussed by many developers, but that few dared to use. In the last 14 years, flexible methodologies have outpaced classical models of the project life cycle. The Agile principles have influenced a great number of new software development approaches.
Flexible technologies have also impacted the whole sphere of quality assurance. Testers have turned into universal soldiers able to complete their tasks while time and information constraints limit them. The particularity of mobile projects allows using a maximum amount of flexibility to achieve the true quality of software product.
Mobile apps quality assurance
While there are many flexible methodologies, the Agile principles are fitting mobile testing best. The world of electronic gadgets itself requires special flexibility, not to mention the process of working on mobile projects.
Each user of a modern mobile device faces issues while operating a particular application. Numerous defects in mobile applications are making them competitively disadvantageous as a many apps performing the same function exist. The constant updating and following of the mobile fashion require maximum flexibility in the development and testing of mobile software.
We should underline two key ideas of the Agile Manifesto that are the most applicable to mobile app:
1. The real working product is much more important than its detailed description in documentation
2. Flexibility and readiness to change is more important than following the original plan.
Why Agile is the best approach for mobile testing?
In this section, we present the mains reasons why Agile methodologies provide the best approach for mobile testing.
1. Continuous evolution of product to satisfy customer and user needs
The application should be simply the best amongst many competitors. The successful developer of mobile apps wants to see his product at the top of all charts and ratings. Without doubts, a fast reaction to the market’s demand is one of the most important factors of success in the mobile world.
For QA engineers such trends often lead to frequent changes in requirements, performing testing “on the wing” and a lack of well-structured documentation. Agile concepts could be real lifesaver in this case.
The following Agile principles are applicable:
* Achieving customer satisfaction with rapid delivery of useful software
* Welcoming changing requirements, even late in development
* Working software is delivered frequently in weeks rather than months
These practical tools allow implementing these principles:
* Common access to build storage
* Clarification of functionality on daily scrums
* Notifications about availability of the newest builds
One of the basic features of mobile applications development is the ability to provide the latest version of the product for testing at practically any given time. In most cases, the application’s build and its deployment requires not more than 20 minutes. Constant and uninterrupted supply of application versions to QA specialists enables the customer to receive the validated product on demand.
The ability to make rapid changes and the opportunity for tester to check the new functionality in a few minutes at a critical moment can dramatically improve the competitiveness of mobile product on the market. Thus, the customer can implement any cadence of supply, up to 1 hour, and QA will be ready for that.
In a recent project, the customer wanted to receive new version of the app each Tuesday, but the only chance to clarify the change request was during the weekly call on the previous Friday.
2. Readiness to react on new operating systems and new devices
The world of mobile technology is developing rapidly and this speed cannot be compared with any other area of IT technologies. Information about the latest trends, the correct choice of test environment and the willingness to follow innovations from leading companies should be provided by QA leads. The flexibility has to be demonstrated equally by QA team leaders as well by quality assurance engineers.
The following Agile principle can be used here:
* Regular adaptation to changing circumstances
These three methods and tools making it possible implement this principle:
* Tracking of mobile novelties
* Working with custom firmware
* Planning of the tests for further OS/device release
The testing of custom the Android Lollypop firmware on target device before its official release is a practical example of the application of this principle.
3. Close collaboration between developers and testers
It is important to stress how Agile Manifesto recognize the importance of personal communications between project team members. The unity of place, time and the test environment is achieved by the ease of demonstrating defects, the opportunity to work simultaneously with one software product on the same device.
Two of Agile principles can be applied:
* Face-to-face conversation is the best form of communication (co-location)
* Self-organizing teams
The following practices are making it possible:
* Daily meetings;
* Sharing the park of devices.
In my projects, we have the software testers working side-by-side with the developer. This makes it easier to reproduce the issue on the device that is connected to developer’s laptop.
Agile Manifesto Adaptability
Considering the popularity of mobile applications, the potential target audience can be measured in millions of users. Thus, the flexibility and the concept of Agile Manifesto need to be implemented in every aspect of mobile development. This helps to be ready for the rising popularity of applications, supports confidence in correct operation on the latest versions of OS and allows monitoring of mobile devices innovations.
Following the Agile principles, along with the flexibility and speed of decision-making, provides the opportunity to build a close to perfect process for mobile applications quality assurance. Therefore, we can safely say that the Agile Manifesto should have a major influence for many years in the development and testing of mobile software.
About the author
Nadia Knysh is a Head of Agile QA Department for A1QA with 7 years of leadership experience. She is responsible for Agile methodology development within the company. Her solid technical and management background helps her to correctly allocate team’s workflow. Nadia is Certified ScrumMaster and holds a Master degree in software engineering and ISTQB certificate.