What Can You Do to Prevent Negative App Store Reviews?

Fotolia_111123479_Subscription_Monthly_M.jpg

Bad App Store reviews come from bad user experience. Anything that damages the user experience can lead to a negative App Store review down the line. 

The most common culprits of these types of problems are software-related: crashes and bugs. There are many things that you can do to improve your App Store reviews, but in the end, it’s about going back to basics: making a high-quality app that works every single time.

A QA Strategy Is Essential

Often, the problem with a crashing, buggy app comes down to your QA strategy. 

If you’ve never been involved in the software development process, the term “QA” may be new to you. QA stands for “quality assurance,” and it is an integral component of successful software development. QA is important for making software that works, but it is absolutely crucial to get right when you’re building a native mobile app. 

Why is QA so important in software development, and in particular, for mobile apps? 

The main reason is because software is, well, “soft.” It changes over time. New features are added, bugs are squashed, and the product evolves over time. 

Without a solid QA process, it is easy for developers to make a code change in one section of an app and break something in an unrelated section of the app. QA helps you catch these “regression” bugs, as they’re called, and make sure you take a step forward without taking two steps back.

Users Download a Static Snapshot of Your Product

On top of that, there is one reason why QA is particularly important to get right when you’re making a native mobile app (as opposed to a web app or anything related to the web). It’s the fact that an app is something you have to download. When a user downloads an app, they’re getting a “static” snapshot of your product. 

In technical terms, this is called a “compiled binary.”

You can think of a compiled binary as something you get once and run forever, kind of like the shrink-wrapped software you used to get at the store. Sure, you can release updates to your app (new, updated, compiled binaries to download), but if users choose not to download them, they’ll be stuck using an older version of your app.

You may be wondering...why is necessarily bad that users are still using an older version of an app? From a QA perspective, if this older version of the app contains any critical bugs, users that don’t upgrade will be stuck with these bugs forever...or at least until they “download” a patched version. 

Apple and Google have taken measures to combat this problem by releasing features such as automatic downloads, but it’s no guarantee. Some apps also add “forced upgrades” so users have to upgrade to the latest version, but there are significant downsides involved.

Since it’s relatively hard (and not guaranteed) that you’ll be able to deliver bug fixes to users, it is crucial for an app development process include QA to minimize the chance of getting bugs in the first place.

QA During the Development Process

QA is a much a job as it is a way of thinking and doing things. On a traditional software development team, QA is usually handled by a single person or team of people. These are “QA engineers,” team members that test the app as it is developed and before it launches to the public. 

However, QA engineers are only one part of the equation of overall quality. It is everyone’s job—from the software developer to the QA engineer to the graphic designer—to ensure we hit the highest level of quality possible! 

These are some of the steps and components you’ll hear about in a well-established software development process:

Code Reviews: When a software developer is done fixing a bug or building out a feature, it best to have the new work reviewed by another software developer. Code reviews are your first line of defense. A second set of eyes can spot easy-to-miss development mistakes. 

Unit Tests: Software developers write unit tests as they develop an app. In this context, a “test” is a piece of code that validates another piece of code. Since software is “soft” and can change over time, these tests ensure that your app works as intended, even as things change down the line.
 
A unit test is just one type of test that can be written in code. Others are performance tests, integration tests and functional tests. These ensure the different parts of your app continue working as intended.

Continuous Integration: Just because you develop tests, that doesn’t mean that your app is being tested! Continuous integration is the practice of continuously using the tests you have as you make more changes. Continuous integration helps developers know when a new change breaks existing functionality as soon as it happens.

QA Verification: This step is usually performed by a QA engineer. Once a software developer is “done” with a bug or feature, he or she will hand it over to a QA engineer to verify. The person writing the code should not be the person verifying the code. 

User Acceptance: After QA verification is complete, it is best to have one additional verification step. After the QA engineer is done verifying a piece of functionality, he or she hands it over to the person that requested the code changes in the first place. This step is important because the “requester” had specific reasons for requesting those changes that may have gotten lost in translation. 

Instrumentation: Instrumentation is another way of saying “diagnostics.” If you release your app to the public and there’s a problem, you want to be able to recover quickly. Adding the right kind of instrumentation to your app and server before your app is released is an important prerequisite to recovering from a problem.

For a mobile app, the best kind of instrumentation is a crash reporter, which can send you detailed crash reports as they happen.

For an app’s back-end server, you should add instrumentation for logs, metrics, and alarms. These are detailed logs of everything your server does—metrics to monitor the health of your server, as well as alarms to alert you when some important metric becomes “unhealthy.”

What Does This Mean for You?

Developing a high-quality app requires the right people, process, and culture. In this article, you read about the role of the QA engineer as well as the checks and balances during the development process to ensure quality.

As always, there’s much more to QA and mobile app quality. In terms of process, you also need to have a well-defined regression testing plan after development is done. On top of that, some app teams like to do a beta test by inviting outside testers to review an app before launch. 

An important part of ensuring quality for your mobile app goes beyond testing. Beyond trying to prevent bad things from happening, it also includes what you do after something bad happens. You need to establish the right processes and culture of quality to ensure the right steps are taken. 

Taken together, a strong QA process is the best way to create a product that works once it reaches the hands of your end users. 

QA doesn’t guarantee unanimous 5-star reviews, but it does go far in preventing a flood of negative App Store reviews about a crashing, buggy app.


About Sweetpea mobile

Sweetpea Mobile is a mobile-centric software strategy, design and development agency that helps organizations make the transformation into the mobile world.

 
Pietro Rea