We’ve all been there — the app or website experience project that gets stuck in mobile app testing and QA hell for what feels like an eternity. It doesn’t have to be like that, though. There are many mobile development tools on the market that can help smooth out the process of testing mobile apps and help you move bandwidth and budget out of testing and back into design and development, where the magic happens. The only issue is, with so many mobile development tools, where do you start?
For the answer to that question, we asked five mobile app testing and QA experts what mobile development tools are indispensable to their processes. While one tester’s preferences may have differed from another’s, these mobile development tools can give you a strong starting point from which to shape and adjust your business’ own testing and QA process.
(In a rush? Scroll down for a quick-hit list of all 11 mobile development tools mentioned here.)
A Smart Mix of Automation Software, Real Devices and a Sharp Mind
Shachar Schiff is the founder and principal consultant at BAD TESTING® (@BadTesting), a company that helps businesses manage risks associated with technology changes. Given his company’s emphasis on testing, quality assurance and documentation, he has plenty of experience with a variety of tools, and emphasizes the importance of not relying too heavily on any one methodology when testing mobile apps:
The best solutions for testing mobile apps include both manual and automated testing. In order of priority, these are the best mobile development tools for testing and QA:
- Your brain. Automation cannot replace critical thinking and sapient testing. Your product’s success depends on humans using it, so it’s important to test for usability, simplicity and ease of use. No amount of automation can ever test for this.
- Real devices. Because emulators and simulators aren’t exactly the same.
- An automated link checking program. Because everything is a link, from images, assets, directories, to web pages. Like Xenu’s Link Sleuth.
- A request/response recorder and checker, like Charles Web Debugging Proxy for debugging.
- Virtual devices to complement as needed, for example, BrowserStack.
It Takes a Village: Combining Mobile Development Tools for a Complete Mobile App Testing and QA Solution.
Brandon Grimes is the Lead Software Engineer at WillowTree, Inc. (@willowtreeapps), a mobile app development firm that has created apps for clients like Time Warner, Pepsico and Johnson & Johnson. For Grimes, all-inclusive mobile development tools may offer much in the way of convenience, but the configuration is a bigger priority when it comes to testing mobile apps. His solution is to mix and match a number of tools based on the specs he needs:
For any kind of testing, one may think that a suite of mobile development tools that require the smallest amount of configuration and include plenty of ‘plug and play’ features would be the way to go. An immediate ROI is a great selling point. The negative side to using a suite like this, however, is that you are led down a path that only gives you one option long term. Testing and mobile development tools that will take you longer to learn and have multiple configurations tend to have much more benefit long term. Testers are immersed in the technology, and the tool requires them to take deep dives in understanding the ‘whys’ and ‘hows’ of the mobile app they are testing.
Selenium and Appium: Testing Mobile Apps with Automation
While there are many mobile app testing automation tools that claim image recognition and intelligent scripting capabilities, they do little for the long-term viability and knowledge base of your testers. Working with Selenium web browser automation software and Appium mobile app automation software has been an adventure of highs and lows, but in my opinion, they are the only automation tools that should be used. Both of these mobile development tools allow for in depth dialogue to occur between your developers and testers, which in most organizations does not happen enough.
JIRA and TestRail: Project Tracking and Case Management for Testing Mobile Apps
JIRA has been a welcome addition to our mobile development toolset, migrating from YouTrack. The capabilities are almost endless, and as I said before, the configurability is very deep. This took some time to learn, but the benefits are proving that the time spent was worth it. It is also recommended that a test case management tool is incorporated into your toolset. There are inexpensive, lightweight implementations out there, e.g., TestRail. It gives the ability to create a unique test suite, test runs and saves all results for reporting — at a low cost per tester. It also allows for some customizations and works with bug trackers for to import test cases for easy issues writing.
Scott Scoble, Lead Engineer at Raster, a Las Vegas mobile app development firm that has developed apps like Klinq and Ambest. Like Grimes, Scoble mixes and matches the mobile development tools that work best for his team. He uses Selenium as part of a composite, a la carte solution for testing mobile apps, but pairs it with the Spock framework and Cucumber. He even showed us a few example workflows in detail:
I like using the Spock testing and specification framework when testing mobile apps; it is expressive, supports mocks easily and has good data-driven testing features. Stepping up to browser testing, Selenium and Cucumber are the best combinations around; scenarios are easy to set up, very expressive and easy for a tester to read and replicate manually or write, duplicating an issue they found.
The usefulness of Selenium and Cucumber really shine when using them in an Agile or Scrum team. Stories are the basic unit of work for these teams and Gherkin, the human-readable syntax of Cucumber, allows stories to become acceptance tests. On the surface, this is a trivial thing, but if used properly it becomes a powerful tool for carrying a requirement from business meetings through the entire development process.
Selenium comes into play when executing steps; Selenium automates user interaction with a web browser using the syn.js library and a well-formed API. Selenium is used to execute going to the registration form, filling in fields, and submitting the form. Since all Cucumber steps are free-form, they can do anything; therefore, the Given and Then steps could call into an API on the web server to ensure that the email address is not in use (Given I am a new user) and that the user’s email address and password are saved successfully (Then I should be registered).
Let’s say that registration breaks for some reason. Your team can easily follow each step manually and debug the web application to discover where the issue is.
Here is the execution workflow:
- Run Cucumber
- Parse Gherkin file
- Matchup steps with each line of Gherkin file
- Execute steps, in order, using the text of the line as input
- Output-based on command line flags, JUnit XML, TAP, etc.
- Exit with 0 or 1 which allows other tools to determine success/fail
For a project manager, here is your workflow:
- Create stories that can easily be turned into scenarios
- Stay involved and get feedback on stories to make Cucumber a successful tool for your team
Genymotion — Great Emulation for Testing Mobile Apps on Android Devices.
Jordan Martin is a Quality Assurance Analyst at Envoc (@envoc), a Louisiana-based firm that provides custom software development, mobile design and development, web design development, branding and Internet presence management to clients across a variety of industries. For testing mobile apps on Android, Martin is a big fan of Genymotion:
Software testing, at its core, can largely be described as an exercise in risk assessment. Testers must always consider the inherent hazards of misleading workflows, hazardous insecurities, and unintended end-user behavior. Even further, efficiency and timeline adherence can be paramount depending on the needs of the client, so the risk of project delay or failure must also be considered when approaching a piece of software. Mobile applications, in particular, can present unique challenges in that testing must control for other factors such as device model and hardware. Of course, not every tester will have access to every imaginable phone and tablet. To solve this problem for Android, we turn to Genymotion.
Genymotion is a highly customizable emulator for Android devices. With the ability to select from pre-configured mock hardware or create a custom device, Genymotion allows for testing over a large range of end-user possibilities without leaving the comfort of a primary workstation. The primary selling point in terms of utility is the strict adherence to Android standards and behavior — after testing an emulated app, it is easy to proceed with the confidence that no unexpected behavior will arise in a live environment. With respect to testing mobile apps for Android, Genymotion is a godsend in terms of simplicity and efficacy.
DoneDone — A Suite for Testing Mobile Apps and QA Collaboration.
The integration of a proper QA system is critical both for quality control and efficiency when testing mobile apps. DoneDone is an excellent QA environment, offering numerous time-saving and quality assurance features all in the one easy to use GUI.
DoneDone features include the ability to create issues with a built-in workflow, ensuring that each issue is assigned both to a developer and a tester once the developer pushes back the issue. It also offers the ability to manage Release Builds, which automatically triggers issues that are then ready for testing. Lastly, it has excellent reporting features, making it easy to view the current status of any given project in an easy-to-use report. The system is extremely easy to use and requires little to no learning curve, unlike many others on the market. I highly recommend this.
To Recap: A Quick-hit List of Top Mobile Development Tools for Testing Mobile Apps
- Xenu’s Link Sleuth – Automated link checking
- Charles Web Debugging Proxy – Request/response recorder and checker
- BrowserStack – Cross-browser emulation and testing
- Selenium – Web browser automation software
- Appium – Mobile app automation software
- JIRA – Project tracking solution
- TestRail – Test case management tool
- Spock – Testing and specification framework
- Cucumber – Testing automation using behavior-driven development (BDD)
- Genymotion – Highly customizable emulator for Android devices
- DoneDone – Easy-to-use QA environment
Where Smart Prototyping Makes All The Difference
No matter what amazing mobile development tools you have to make the process of testing mobile apps go as smoothly as possible, things can still go awry if you sink too much time into prototyping. Often, showing a client a fully functional prototype of your mobile app design entails building out a beta, which means that your developers are spending more bandwidth on a particular project than necessary, and any client feedback needs to be incorporated into the developer’s beta, as opposed to the designer’s wireframes. In this scenario, each piece of client feedback means more time spent in dev and less in QA — at least if you want to hit your deadlines.
That’s where prototyping software can become one of your most precious mobile development tools. With Proto.io, you don’t need any coding skills to create a prototype that looks and behaves just like the finished project. With our easy-to-use drag and drop interface, a designer can create a prototype, complete with interactions and animations, exactly the way he or she envisions it. That means the designer spends more time designing, the developer spends more time developing and the QA specialist spends more time testing.