Heuristic Test Strategy for Mobile Software Test | Remember Important Aspects

Feyza Dayan
Trendyol Tech
Published in
7 min readSep 9, 2021
Image on inc.com by Jeff Haden

“Words fly, writing remains. Get rid of your burdens with reminders.”

Let me briefly explain what the heuristic test technique is. The Heuristic Test Strategy Pattern is a set of patterns for designing and selecting the tests we will run, without actually performing our tests. The primary precedence of this model is to remind testers what to think about when designing, creating, and performing tests. As a result, it has been chosen to facilitate the work of professional testers, to allow them to work in a systematic way and to facilitate the recall of test techniques. You can check here for more detailed information about the heuristic test strategy model.

We have a lot of work to do daily. Because of our private life, meetings and planning, etc.. life can be stressful and we may encounter work and situations that need to be kept up. That being the case, there is much to discover and remember.

In this article, I would like to share some of the methods I used while testing Trendyol Applications, so as not to forget the important things of my work. Thanks to these approaches, my tests are more controlled, systematic and planned.

Three very nice approaches that you can use;

  1. Checklists
  2. Mnemonics
  3. Mind maps

1. CHECKLISTS

While doing software tests, we write test scenarios to systematically test each new feature and not miss any details. Every new feature that has been developed is tested in its own branch. When all the tests are finished, we merge the development into the develop branch.

After the test cases are finished, we prioritize our manual test cases to expand our package content and explore the new feature. However, sometimes we may encounter situations such as the following.

  • Feature can be very complex,
  • The issue being developed requires a lot of maintenance work,
  • It can be very difficult to predict where the development will have an impact in practice.
Animated by Lea Unger for sovanta on Dribbble

In such cases, I follow a checklist of application parts that need to be manually retested before proceeding to application testing, so as not to forget important things.

When creating checklists, try to be very general and high-level so that they can be used in a few different projects, but they can also be prepared more specifically to test a particular feature.

The table below contains an overall list that covers many important aspects of the mobile app testing process. Its content can be reproduced, but thanks to a book I read, I am following the table below. You can use this list for several different mobile apps.

Generic Mobile Testing Checklist
Table 1. Generic Mobile Testing Checklist

*13* Deleted apps must be removed completely; no data is allowed to be on the device. Updating the app should not affect the stored data and the current state of the app.

When creating a checklist, I recommend doing it specifically for your project and application. Because there may be differences between the e-commerce application and the applications that include payment systems, etc.

2. MNEMONICS

Mnemonics are a widely used learning technique that helps to retain information through association. Especially when learning a foreign language, this technique comes up a lot.

Each letter in these mnemonics is also known as a software testing approach or technique when testing mobile apps. When doing our tests, we can use this technique to remember important elements. Because it is easy to remember, it helps me a lot when performing my tests.

I recommend it to all my friends who do mobile testing. You can expand this technique for yourself, and you can make your own mnemonics.

Image on thoughtco.com by Melissa Kelly

Here is my mnemonic I created and also use;

“IF TOPIC FUN”

Interrupting: How will the app behave after any interruption?

  • How does the app behave in interruptions such as SMS, phone calls?
  • Is it possible to return to the application after interruptions?

Feature: Requirements related to the development carried out.

  • Is the requested enhancement working as it should?
  • Does this feature affect other features?
  • Check this feature again in Regression Testing.

Test data: Types of different test data.

  • Types of input — see if the app uses special characters, any different number, and so on.
  • What should be the min-max number or character?
  • Size of files — what size should the file, video or images be?

Operations: Test how it is used?

  • What happens when I switch environments while the application is open?
  • What happens when I switch to 3G versus Wi-Fi?
  • How does it behave in error situations?
  • What happens if the connection is interrupted?
  • Does the app crash if the backend service returns an error?

Platform: Test the relevant platform where the development is made.

  • If the development is on other platform, compare. Android/iOS.
  • What kind of platform specific errors can occur?

Inputs into the device: Keyboard, touchscreen, swiping operations.

  • How do keyboard transitions happen?
  • Are touchscreen gestures and typing smooth?

Complexity: Find the most complex parts of the application.

  • What are the complex structures in app?
  • What is the maintenance requirement?

Function: Test what it does.

  • Can we describe everything the app does?
  • Can we work on all aspects of the application? Did you click every button?
  • Did you fill out each form? Are the texts correct?
  • Are there any errors in the backend services?
  • Have you done the negative tests?
  • How does error handling work?

User tour: Metrics that affect the user.

  • Why are we making this feature? What will be the contribution to the user?
  • Is it an effective method for all users? Collect users feedback.
  • Does the feature fit the our user profile?

Network: Use the app in different networks (LTE, 3G, Wifi..)

  • Can the application work at the same level in different networks?
  • Are there any crashes in different network transitions?
giphy.com

Mnemonic are helpful by showing me what testing technique or strategy I should follow, using a single letter when I’m taking my test. I think it’s a great approach. It helps us organize the testing strategy, our ideas.

There is a wide variety of mnemonics created by professional experts. If you want to review some of them, you can check out the articles I mentioned below for reference.

Everyone’s work discipline is different, so if you prepare your own mnemonics, it may be more effective for you. I would also like to say that it makes it easy to keep in mind and test runs.

3. MIND MAPS

Mind maps are nice ways to visually organize information, as they can help you see your thoughts and ideas under the big picture, as with all topics, as well as on specific topics like mobile tests.

Inspired by mind maps created by professional testers, another reminder I created while doing my mobile tests in order not to miss important points is mind maps.

You can see my mind map that I created and used in the Figure 1 below.

Figure 1. Mobile Testing Mind Map

You can see the other mind maps Figure 2 and Figure 3 about mobile testing created by Rosie Sherry, the woman behind the Ministry of Testing, a platform and professional community for software testers that leads in software testing content, training and activities.

Figure 2. Mobile Testing Mind Map
Figure 3. Mobile Testing Mind Map

I recommend creating your own mind maps so that you can see the big picture and at a glance, you can see the places that need to be tested, while doing mobile software tests. Mind maps do not have to be limited to just one, you can multiply your mind maps according to your test technique and test strategy. You can even hang them somewhere or write them down so that you can access your mind maps whenever you want and make them a part of your life.

Image on pngtree.com

The 3 methods I have explained above allow me to easily reach the strategy I need to follow and the methods I need to use while doing my tests. The good thing is, my unconscious reflex improves when I hold it in front of my eyes. At the same time, it makes it easier for me to convey my thoughts to my teammates.

I recommend these approaches not only to my friends who test mobile software, but also to all QA people. All 3 approaches can be specified for use on all platforms such as web, mobile-web, etc..

I hope this article will be useful to you. Please do not hesitate for any questions or suggestions.

--

--

Feyza Dayan
Trendyol Tech

Sr. Developer in Test at Trendyol International @Berlin, MBA, BSc. Computer Engineering https://www.linkedin.com/in/feyzadayan/