Mobile testing, test automation, API testing: what you need to know how to work with in 2021

Habr, hello!

Reksoft specialists have collected up-to-date tools that will make life easier for a tester and help to quickly cope with familiar tasks.

So let’s go!

Mobile testing

Mobile testing is one of the most actively developing areas due to the rapidly growing mobile application market. Let’s analyze what you need to pay attention to when testing mobile applications and what tools you need to own for this.

Testing begins with checking for compliance with requirements and design. This is not only about checking the presence of all the pictures or working links, but about a full-fledged UX / UI analysis. This means that a tester should be able to work with Figma, Zeplin, use interface testing tools like Appium Viewer and others. It is also necessary to work out all possible routes for the user to move through the application. For this purpose, they create a mindmap – a diagram of links between pages. Any mindmap product is suitable for this – for example, Mindomo or xMind.

Mobile application testing checklist:

  • Geolocation.

  • Application work in different modes: portrait / landscape, split screen.

  • Input fields.

  • Push notifications.

  • Interruptions – incoming calls, SMS, internet access, low battery warning, sudden device shutdown and others.

  • Payment systems support (if there are payment transactions).

  • Compliance with operating system guidelines.

  • Impact on device performance.

It is also necessary to analyze network traffic: network disconnection and weak Internet, outgoing requests and received responses. To do this, use sniffers Charles / Fiddler, Proxyman and others.

API testing is performed as needed. For this task, specialized tools are used: Swagger, Postman, SOAPUI. They help document requests and validate them online. We will consider them in more detail later.

For testing on various devices, they use emulators like Genymotion, BlueStacks. However, successful tests on the emulator do not guarantee that the application will run smoothly on real devices. To connect to real mobile devices and integrate autotests there, they use BrowserStack, Xamarin or AWS farms. Or you can set up your own farm based on OpenSTF – this will allow all employees to have equal access to test devices, which is especially important in the conditions of distributed teams and remote work.

To automate UI testing of mobile applications, Appium, Detox, Ranorex are used – automation tools for running scripts and testing applications on Android or iOS using a web driver. We will take a closer look at test automation tools below.

When your project has a large number of autotests, it will be useful to automate their launch every time a new build is built. To set up this process use CI / CD systems – Jenkins / TeamCity.

Final set of mobile tester tools:

  • UI / UX testing: Figma, Zeplin, any mindmap-like product.

  • Network traffic analysis: Charles / Fiddler, Proxyman.

  • API Testing: Swagger / Postman / SOAPUI.

  • Automation of UI testing of mobile applications: Appium, Detox, Ranorex.

  • Device farms for testing mobile applications: BrowserStack, Xamarin, AWS.

  • CI / CD systems: Jenkins / TeamCity.

Test automation

In the coming years, automated testing will definitely not replace manual testing, but its share continues to grow from year to year. The following tools are the most popular here.

Automation platforms

  • TestComplete – a functional platform allows you to create automated tests for desktop and web applications, as well as applications for Android and iOS. Tests can be recorded, scripted, or manually created using keyword-driven operations and used to automatically replay and log errors. The tool supports scripting in Python, JavaScript, VBScript, and C ++ Script.

  • Katalon Studio Is a solution based on the open source automation platforms Selenium and Appium. Has a specialized IDE for testing web applications, APIs, mobile and desktop applications. Can be integrated into CI / CD, compatible with qTest, JIRA, Jenkins and Git.

    The tool is actively developing from year to year and has one indisputable advantage – the minimum entry threshold. Some scenarios can be recorded there using only an automatic recorder and without performing any additional actions.

Please note that none of the platforms can compare in functionality and applicability with full-fledged automation in a programming language. If the level of training of engineers allows you to write tests using a development environment with a wide variety of techniques and libraries, then this will be the best solution. In this case, you will not be limited by the capabilities of a particular platform.

Open-source frameworks

  • Selenium – a tool for automating web browser actions. In most cases, it is used for testing web applications, but it is not limited to this. In particular, it can be used to solve routine tasks of site administration or regularly receive data from various sources.

    Selenium has tremendous support and is constantly being improved. On its basis, many other tools have been made that simplify the work, but do not change the basis. He is not very easy to use, unlike his heirs, but he still has the largest number of followers and is recommended for study to understand the basics.

  • Selenide Is a wrapper around Selenium WebDriver. Simplifies work and allows you to focus on logic instead of routine with the browser. For many, this tool has become a salvation: it can perform the same functions as Selenium, but does not require the direct implementation of the simplest functions in the project, but is supplied immediately with them, which greatly speeds up the initial stage of interaction. It also has several useful features: built-in screenshots, proxies, logging, convenient integration with remote test execution.

  • Allure – a tool from Yandex, the first in popularity in the field of visualization of autotest reporting. Allure builds graphs, displays titles from tests, their steps, attached files and screenshots. It is very convenient and easy to connect, it can work out of the box with the main frameworks for autotesting, such as Junit or Testng.

  • Junit Is one of the most popular frameworks for self-testing in the Java environment. Allows you to work with both unit tests and any functional tests. Junit is easy to use: unlike its closest competitor Testng, it does not require complex configuration, supports multithreading and data-driven testing, and is also integrated with collectors (Maven, Gradle).

  • Selenoid – a convenient tool for remote and parallel test run. Uses docker, which provides good isolation of browser sessions and performance.

    Selenoid can be easily installed both on a local machine and on a virtual machine. You can monitor the execution of tests through the browser by accessing the Selenoid UI. The tool displays both the loading of containers and the actual execution of the test.

    Selenoid allows you to easily run tests on any of the popular browsers, has its own tools for taking screenshots from the session and recording video. For systems built on Kubernetes or Openshift, Moon is used – a tool from the same organization, but with advanced functionality for integration.

  • Appium Is an automation tool for testing mobile web apps and mashups on Android or iOS using a web driver. It is open source and allows you to write scripts using all languages ​​in which there are Selenium libraries, as it works on the basis of Selenium Webdriver. Due to its cross-platform and growing interest in mobile automation, it is gaining popularity.

CI / CD systems

  • Jenkins Is an open source Java system designed to support the continuous software integration process. It is a free tool that includes thousands of plugins that are constantly updated. It is convenient for automating functional testing of both API and UI, because it contains a plugin for working with Allure, is able to store reports and display trends.

    Jenkins allows you to track testing progress on timelines. Parameterize launches, for example, set up a launch for a specific time or generate a letter with a short report to the specified address after execution.

  • Gitlab – first of all, it is a software code repository management system. Repositories include a version control system to accommodate various development chains and branches. Allows developers to check code and rollback to a stable version of software in case of unexpected problems. All this is also useful for test automation and continuous integration systems. GitLab itself is also a CI / CD system, but not as widespread as Jenkins or Teamcity.

API testing

Interest in API testing has grown steadily over the past few years. It is an essential component in the CI / CD process, necessary for a successful software deployment. Here are the main tools you need to master for API testing.

  • SOAPUI Is a console API testing tool that helps you easily test REST and SOAP APIs and web services. The tool allows you to get a complete source document and embed your preferred set of functions.

  • Postman Is a great choice for API testing for those who do not want to deal with encodings in an IDE using the same programming language as the developer. The tool allows you to create REST, SOAP and GraphQL requests. Supports multiple authorization protocols and certificate management.

  • REST-assured – DSL for testing REST services, which is embedded in Java tests. This solution appeared more than nine years ago and has become popular due to its simplicity and convenient functionality.

    There are several tools that allow you to write API tests in a development environment, but historically REST-assured is the most popular for functional testing. It is used to test many systems, it is a complete tool with many protocols and options to overcome the problems associated with authorizations, tokens, electronic signatures and other difficulties that arise.

    Among the downsides is poor performance with parallel requests and not the most convenient tool for checking responses from the server. But here is Junit to help.

  • Swagger Is an open source framework that allows developers to create documentation for REST APIs. Testers can use it as examples, here you can immediately see what kind of endpoint was made, what type, what url. Examples of filling in a request, response and possible response codes for a request are often presented.

That’s all for now. Tell us in the comments what testing tools you use. We will be glad to receive your additions.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *