One of the leading challenges in mobile app development is getting apps to the market on time, and within the estimated budget. Enterprises or SMBs either hire full-time staff or outsource work to app development companies.
The typical team consists only of designers, developers and testers. Usually, the whole mobile app development process is divided into 4 broad steps: Design, Develop, Test and Deploy.
While designers and developers tend to work on a project right from the start, testers are introduced at a much later stage. This is mostly done to “economize” the whole process. However a better practice is to introduce testers earlier into the game, so that they can identify issues and nip them in the bud sooner.
In fact, leading IT companies have started adding a fifth stage into the mix – QA engineering. They have testers and QA engineers working side by side on a project to ensure not only a bug-free experience but also a smooth and seamless one for end users.
However, with the introduction of this fifth discipline, confusion has only increased within the industry. Smaller companies with restricted budgets are wondering if they are losing out on something if they don’t hire a QA engineer; others are promoting their senior testers and entrusting them with the role of QA engineering.
If you’re looking to develop a mobile app and are confused whether you should have a QA engineer or a tester in your team, you’ve come to the right place. In this article, we will understand the basic differences between testing and QA engineering, and help you decide what is best for your next development project.
The Mobile Application Testing Process
Mobile app testing is a more complex process than desktop and web application testing. First, there is a wide selection of devices and you need to analyze the popularity of each to decide which ones you’ll test your app on. The app must be checked on different devices with varying browsers and screen sizes.
Then there’s the question of testing if it’s easy to use and provides a smooth experience to the user. This is known as usability testing.
The third test is for version compatibility; you need to find out if your app is compatible with all OS versions. This is followed by interface testing, which involves testing everything from buttons to menu options and application navigation.
There are many more tests such as performance testing, installation testing, security testing, etc. that are part of a tester’s job.
Now let us take an example of application navigation, a part of interface testing. Imagine when you are running a test to determine if the in-app navigation is simple and user-friendly or not, you find major flaws in the design. The navigation could have been more simply designed.
What now? Would you start from scratch to ensure your app provides a good navigational experience or let it rest and move ahead, relegating the improvement to be addressed in the subsequent version? While the first option involves immediate problems like increased TTM (time-to-market) and budget, the latter can have even more serious consequences. Either way, you are losing out.
This is where QA engineers come into the picture. Quality assurance for your app means this kind of situation doesn’t occur in the first place. Let us understand the role of the QA engineer in detail.
QA or Quality Assurance Engineers are professional testers who not only find faults with the application, but also try and adhere to many other standards inherent to the app, device, platform and industry, keeping in mind the app’s functionality, purpose, service and quality. Thus, QA engineers’ jobs begin even before a designer lifts their pencil or the developer writes a single line of code.
Companies like Google and Apple have traditionally relied on QA engineers to shorten their product lifecycle and TTM (time to market). Some companies have specialized QA “feature engineers” who focus on only one specific feature of the application.
• QA Engineering – Good Practices
You should involve QA engineers right from the drawing board, as soon as you decide to build a mobile app. This is especially true for enterprise apps. QA engineers need to work hand in hand with analysts, designers, developers and testers to build a reliable, user-friendly product. They need to be involved more in decision making and strategic planning than testing.
The best practice is to have QA engineers who inherently feel they are better at “thinking” than “coding” and would be able to contribute more as a constructive thinker, planner and guide rather than a problem solver.
However, not all companies follow this practice in real life.
• QA Engineering – Bad Practices
Rather than having analytical testers with wide experience in testing and product development, companies invent titles within the organization to make their senior testers feel like they are advancing in their career. These testers may not be interested or good at analyzing the app in context of the business or strategically planning its versions; they might detest being taken away from their core job.
QA Engineer Vs Tester
There is an unending debate in tech companies on whether they should hire a QA engineer or a tester. There’s another between QA engineers and testers about who is doing a better job. In truth, there is no competition. Both are doing an equally important job and are indispensable to the mobile app development process.
While a QA engineer tries to prevent as many flaws in the planning, structural and design stages, and helps resolve issues at the outset, there are bound to be some surprise “I-don’t-know-how-this-happened” bugs that only a tester can identify, troubleshoot and weed out.
Here’s a discussion on QA Engineers vs Testers as seen on Stack Overflow:
One of the best practices in mobile app testing is to use the W-Model, which focuses on starting testing early in the process through verification and validation. It helps identify issues at the beginning of the project instead of fixing bugs at a later stage. This drastically cuts down the product life cycle.
A general opinion is that testers with analytical minds can go on to become good QA engineers, but not all QA engineers can become good testers. If you are running a tight ship and don’t have the budget to have both on your team, you must go the old-fashioned way and hire a tester. However, make sure you get them on board early in the development process. Also ask them if they can allot some time every day for analysis rather than focusing only on testing; this will help them see the big picture. A good tester who has inculcated the habit of constant review and analysis can help your design and development teams speed up in the right direction and quickly pivot when necessary.