Millions of people use mobile and desktop apps every day--usually without thinking about the behind-the-scenes work that went into creating them. And though users certainly notice when a bug makes it through and negatively impacts their experience, not many people stop to think about how nice it is when an app isn't buggy.
Habits of successful software testers
The unsung heroes who work to make sure you don't ever think about them: app testers. They're the people who put an app through various challenges before it's released, in order to identify potential vulnerabilities or features that don't work properly.
Interested in becoming an app tester? Here are a few tips for doing it successfully.
- Keep user experience at front-of-mind.
The best testers think like users, envisioning all possible scenarios that could occur. What will potential users want from the app? How will they use it? Will anything confuse them? Is there anything they could do that would "break" the app? Answering these questions first is important for a successful app test.
Ragu Masilamany, Vice President of Network Virtualization at Amdocs, notes that this isn't always easy. "Imagining the user’s experience is especially challenging when developing new types of products that do not have established usage patterns or a defined user population," he says. However, he continues, "Those who aspire to be software testers need to be able to imagine how the product will be used and the perceived user experience."
- Design your tests to fail.
In school, nobody wants to take a test they're meant to fail. App testing is a whole different story. The harder the test is to pass, the more effective it will be at rooting out weaknesses.
Leo Laskin, senior solutions architect at Sauce Labs, says, "Don’t get upset or lose excitement when something you’ve been coding for a while does not work. In fact, design tests to fail. This will help ensure you’ve attempted to eliminate all bugs and problems when your product is released."
Titus Fortner, fellow senior solutions architect at Sauce Labs, says to design the test in such a way that it imparts useful information whatever the outcome: "Make sure that any test written gives valuable information both when it passes and when it fails."
- Keep tests small but more frequent.
There's no need to create long, complicated tests. Smaller tests can be just as effective, and they make it easier to actually test while the app is still being developed (and adjust accordingly) rather than waiting for it to be done. Laskin says, "Keep tests small. After you’ve written code, it means time to test. Don’t think you have to run a large elaborate test every time. Keeping tests small allows a quick turn around and gives you more time to focus on creating code."
- Automate testing when possible.
If frequent app testing is required at a company, automation can save a lot of time and work. Many teams are already adopting this process. "Recent software development practices are adopting a high degree of automation, using robots to test software products," explains Masilamany. "As a result, software testers not only need to identify 'sunny day' and 'rainy day' scenarios to test; they also need to develop the software that automates these test scenarios so that the product can be tested by machines many, many times during the development and quality assurance phases for the best results."
Laskin agrees with the benefits of automation: "Today, automated testing can provide speed and efficiency and test a variety of scenarios quickly. The ease of automated testing also means that beginner developers can learn to execute and master tests without expert knowledge."
A few of Laskin's tips for successful automatic tests: "When writing automated tests, keep them small so that they run quickly--you want to be able to provide results to your teams as fast as possible. Align with your developers and confirm they're on board with writing code that is optimized for automated testing."
However, Fortner notes that not every test can (or should) be automated. "Be judicious in what and how you decide to automate," he says. "Automated tests should be short, focused and repeatable."
- Involve the team.
Sometimes the developers are also the app testers, but even when they're separate roles, the two should be working together for optimal results.
"Teamwork makes the dream work," says Laskin. This is especially important when automated testing is incorporated: "When coding or working with a coder, make sure everyone is on the same page and writing code for automated testing. This eliminates any confusion and ensures that the testing process is expedited."
After a test is conducted, important information and results must be shared with the dev team. "Collect metrics and show them to your team," says Fortner. "Don’t allow them to be ignored."
- Test both the look and function of the app.
Some developers and testers may prioritize look over function, and others might focus on function but ignore aesthetics. Striking a balance is key.
"First impressions matter. But you shouldn’t just focus your tests on the visual and design aspects of your app," says Laskin. "Features need to be thoroughly tested as well--especially the workflows that are most important to the overall user experience. If you don’t deliver what users expect (and what the business requires), the eye-pleasing app you were working on will still be uninstalled...and good luck with winning consumers back when that happens."
- Test across multiple systems and devices.
Testing an app on only one device/system rules out the vast amount of experiential variety that different ones can present. Even if your app is only available on one type of device (e.g. it's only in the Apple Store), you still have to account for a different experience across specific devices--whether it's the iPad or all the different generations of iPhones.
"The fact is, apps will appear and function differently on every device and platform so you want to ensure your code works as desired across all devices," says Laskin. "Developers need to ensure their apps function well (and look pleasing) not only across mobile and desktop devices, but different operating systems, and the overwhelming array of devices from the latest iPhone X to iPhone 4 and the Samsung Galaxy to Google Pixel. "
- Take advantage of open-source tools.
Software testers have their own communities, and you can find plenty of open-source tools to make your life easier. "There are a number of open source tools and technologies available for software testers," says Masilamany. "They need to be familiar with those tools and assemble them to create test suites built specifically for the product being tested."
Fortner advises to look at open-source resources when creating general automated tests as well. "Leveraging open source communities and tooling allows you to get the most out of your test-automation efforts."
Laskin finishes by reminding us of the stakes involved. "The behind-the-scenes process of testing is what ensures that products work for users," he says. "While it sounds simple enough, as today’s users become more discerning (and impatient), ensuring a seamless, fault-free and delightful experience is imperative to app success."
Source: All the above opinions are personal perspective on the basis of information provided by Forbes and contributor Laurence Bradford.