Testing Trends in 2020


Article author: Dmitry Shadrin



Introduction


I would like to share my top of testing tools that weekly help me to work effectively and improve my performance.

I do outsource testing and have to work with various types of products: mobile applications and games, web, serious cryptocurrency projects for Desktop, etc. In this article, I would like to select the most convenient and meaningful tools that help me optimize my work when testing mobile applications.

Mobile applications


The most important thing that needs to be emphasized in testing a mobile application is functional testing . When you have decided who your product is made for, who the end user is, then only you can make competent end-to-end tests for your application.

We always begin testing with compliance with the requirements and design of the application. A good QA should know the requirements for the product under test, and an excellent one should be friends with the design. And this means not only being able to look into Figma, Invision or Zeplin, but also to understand how the UI / UX of its application works.
To more accurately consolidate all user movements across application screens, a mindmap is usually compiled. Of the most convenient for me, I can single out xMind, Mindomo and MindMeister.

With the advent and updating of the mind map it becomes easier to test applications, and what is especially convenient is to update and replenish test documentation (check list, for example).

A good checklist is based on project requirements, documentation for features and tasks assigned to the team in the current implementation. The mind map allows you not to forget and take into account all the nuances, thereby making excellent ground for end-to-end testing. A service that will help you both find ready-made checklists and update your own: https://checkvist.com/checklists/476089


Tools that will be needed to verify the above cases:

Charles or Fiddler sniffer, as the most popular network traffic analysis tools so far. They allow you to check cases for a network breakdown and weak Internet, look at outgoing requests and received answers. They also allow you to simulate some situations that are difficult to reproduce on real cases.

Data from sniffers will come in handy during further testing of the API. But for working with the API, I advise you to use specialized tools: Swagger UI, Postman. Both tools solve two problems: documentation of requests and their interactive verification.

It is worth thinking about the automation of the testing process. One of the most common solutions for automating UI testing of mobile applications isAppium . A relatively easy entry threshold and an abundance of documentation, as well as a huge base of QA specialists who will always help to answer questions.

Appium is a free, open-source cross-platform tool that helps automate applications for both Android and iOS. It is one of the most widely used tools for creating automatic tests for smartphones and tablets.

The undoubted advantages of Appium are ease of use, as well as support for many programming languages: Java, Ruby, Python, C #, PHP.

Before you start working with Appium, you must configure the environment from the following components:



After the software is installed, you can take care of the application. You will need .apk-either an .ipa file for iOS for an Android application in order for this application to be installed on the selected device when running tests. If the application was not installed on the device, then the test code will install it, and then run the tests themselves.

In the process of testing automation, sooner or later the question arises: testing on real devices or using emulators. As practice and ruthless statistics show, emulators are not a panacea. Situations are very common when everything works perfectly on emulators and all tests are passed. But on a real device, the application is blocked by a security system, the operation of another application or custom firmware (hello Android!).
My recommendation is to combine and use device farms. Services such as BrowserStack, AWS Device Farm, Xamarin Test Cloud. You connect to real devices, you can integrate your autotests into these services and look at the results. But it is always worthwhile to have target devices in the device park, as well as devices from the upper and lower bars (the minimum allowable and flagship).

A good alternative to Appium is codecept.io
If you prefer JS as the language for developing autotests, warmly welcome to CodeceptJS. Detailed documentation, tests do not take up much screen space (you will understand what I mean) and the active support of all modern mobile operating systems will make you think in favor of this tool.

After your project has grown a significant number of autotests, it would be nice to automate their launch every time you build a new build. Customize and configure this will help you modern CI \ CD systems. Personally, I prefer Jenkins or Teamcity, but here it’s a matter of taste.

Another tool to reduce and optimize regression testing is the dependency matrix (it is also a trace matrix). In short - this is a table in which the dependencies of the elements of the system from each other are put down. To compile such a matrix, you need to understand the application code, and it will also help to consult with the project architect. But in the end, such a tool will significantly (in my memory - up to 40%) reduce the time of regression testing. You can read more about the matrix.here .

Hint's


Here is my set of useful hints for finding the maximum number of errors, given the specifics of mobile applications.

  • Always check cases for folding / reversing, waking up from sleep mode, and turning it on / off. For Android, there is a setting - Do not keep activities ( DNKA ). When testing with this setting, be sure to indicate this abbreviation in bugs so that it is easier for the developer to reproduce this.
  • Notifications / notifications - there are local and server ones (i.e. tied to a network connection). It is always worth remembering them and checking their proper operation. They should always lead to the target screen. Or you should abandon them until the developers have found the right way to navigate.
  • Charles . .
  • , , . . , .
  • . iOS: ipa- . Android , , . .
  • , QA . .
  • . , . , . . . β€œ ” .
  • . , . 20% . , . , , β€œ QA”.
  • . .


In this note, I wanted to go over the basic tools and hints that I use in my daily work. You can learn more about all modern tools in our course on mobile testing on the OTUS training platform. I also invite you to a free lesson, in the framework of which we will discuss in more detail modern testing practices for mobile Android / iOS applications, talk about the necessary set of testers in 2020 and consider the topic of automating our work and tests.

All Articles