In my previous post, I discussed the industry trends impacting an organization's mobile strategy and the need for Quality Assurance (QA). In this post, I will cover what would be the ideal steps required to be taken to ensure a holistic mobility assurance strategy.
As in the case with web applications, mobile application testing also started out in a manual manner. But gradually, as their complexity increased, so has the associated QA strategy. Following are the key points to be kept in mind to ensure success:
Large Automation Footprint
Test automation should be an integral part of a mobility QA certification strategy and is no longer a novelty but a must have. It should be initiated in the life-cycle early and encompass as much functional testing as possible. With advanced technological capabilities, even non-functional QA tasks could be automated to an optimum extent.
The time saved through automation also allows test engineers to carry out additional value added tasks such as exploratory and ad-hoc testing, in-depth analysis on social media feedback from reviews, app store comments, etc. This helps to better understand the customer's ailments and to accurately map those to the associated defects.
So how does one start their automation journey? While some enterprises start with identifying the appropriate automation tool, the right way is to first build the automated testing vision and then selecting tools that best fit into the strategy. Ideally, the tool should have the following features:
- Platform agnostic
- Compatible with multiple programming languages
- Support script less automation; reusable scripts compatible with a large number of tools
- High stability coupled with delivering consistent results
- Plug and play for ease of integration with test management solutions & Continuous Integration tools
- Cloud compatible for seamless access
- Yield an early ROI Clearly defined Support and Product road map
- A variety of (flexible) validation techniques
Continuous Integration & Continuous Deployment (CI/CD)
As a testing programmer matures, best practices should be implemented to maximize return on investment and to increase productivity. In the case of mobile programmes, "do it right first time" is vital for success. This can best be achieved via Continuous Integration & Continuous Delivery (CI/CD) in a DevOps environment. Most enterprises in partnership with leading, technically sound, independent QA organizations orchestrate mobile projects via DevOps from day one. This enables the project to leverage powerful toolchain options the service provider has to offer. In summary, the development environment should integrate with CI/CD, automation tools, test environment, device clusters and test management systems to mature at a rapid rate and reap maximum benefits.
This is one of the most significant aspects of Mobility Testing. Enterprises that are worried about poor app store ratings (also read as poor sales/revenue from mobile channel) should restructure their non-functional testing strategy to address this concern. From our experience, we observed the following results from an in depth analysis of app store review comments:
- 60 percent of issues reported can be traced back to non-functional anomalies
- Majority of customers tend to rate an application poorly if they encounter a glitch due to a non-functional issue
- Customers expect meaningful communication (notifications, pop-ups etc.) when an application feature fails to fulfill its task. This is also a very common reason for poor app store ratings.
A holistic non-functional testing strategy for mobile should ensure that the following aspects are taken into account:
- Application Profiling
- Network Conditions
- Load/Stress Conditions
- User Experience
- Accessibility Experience * [an upcoming, must have experience for the application]
Successful execution of the strategy would require a good mix of experienced engineers, well defined test cases and an appropriate tool set. A thorough understanding of the telecom landscape also helps testers develop the most appropriate test cases which form the building block of any engagement.
Developer Skills for Test Engineers
A majority of testing activities today are being automated; either in part or total. This requires a mobile application tester to evolve into a mobile quality engineer who has:
- Strong programming language knowledge
- A thorough understanding of software architecture
- Capability to develop stubs and reusable components
Organizations with a strong talent pool of mobile quality engineers have the ability to develop custom mobile specific frameworks and are able to tap into the complete potential that off the shelf/open source tools have to offer.