Abstract on the theme of graduation work

Content

Introduction

In the modern IT sphere, large companies need technologies and means of quality control of the developed software product. Quality Assurance (QA) industry helps to validate new software functionality, write general documentation, test plans for functional testing, criteria for entering and exiting testing, specific test cases for the developed functionality [1].

1. Relevance of the topic

The relevance of this industry is to solve the problem of maintaining the quality of the product as a whole. Basically, this is done by manually testing software products received from the development department. But this approach may have the following disadvantages:

2. The purpose and objectives of the study, planned results

The disadvantages of manual testing are partially solved by automated product testing. The objectives and benefits of this approach:

Therefore, the main purpose of the work is to analyze the effectiveness of automated testing of the window interface of a software system, compare current tools for testing automation, describe a platform for automated testing, describe examples of building custom scripts [2].

3. Analysis of technologies for automated testing of programs

To review the main tools, the most modern types of writing application code were considered: BDD (Behavior-driven development) and TDD (Test-driven development)[3].

The main idea of the BDD methodology is to combine in the process of developing purely technical interests and business interests, thereby allowing managers and programmers to speak the same language. For communication between these groups of personnel, a subject-oriented language is used, the basis of which is natural language constructions that are understandable to a layman, usually expressing the behavior of a software product and expected results.

TDD, in turn, is a software development technique that relies on repeating very short development cycles: first, a test is written covering the desired change, then code is written to allow the test to pass, and in the end, the new code is refactored to the relevant standards. In most cases, this technique is not focused on testing user interfaces of a window interface.

Basically, interface testing automation tools use BDD tools. The BDD approach, together with engineering practices, allows you to abandon legacy-documentation containing irrelevant information and receive new documentation on the fly, store it with the project.

An example of development cycles using BDD and TDD approaches is shown on image 1.

Example development cycles using BDD and TDD approaches

Image 1 — Example development cycles using BDD and TDD approaches

The considered approaches are based on the use of the following testing automation tools.

Selenium is a Java application that can analyze files of a specific structure to find commands for managing the browser and commands for performing certain actions and checks. Main advantages: the tool is free, supports many programming languages, portability, cross-platform, cross-browser compatibility (using Selenium Grid), integrates with web automation and mobile test automation, most often used with BDD.

Watir is a test automation tool that is used to test web applications. This is an open source Ruby library. Since the basic protocol of the tool is OLE, it can interact with Microsoft IE (which, unfortunately, most other automation tools cannot). The main advantages: cross-browser compatibility, interacts with BDD-frameworks and frameworks for unit testing. Of the minuses, it can be noted that the tool only helps automate web interfaces, it is used with the Ruby language, and most often it is used with BDD [3].

Katalon Studio is an effective tool for automating the testing process of web applications, mobile applications and web services. Katalon Studio is a descendant of frameworks such as Selenium and Appium. He took from the latter many advantages associated with integrated automation of software testing, most often used with BDD.

Unified Functional Testing or UFT is a popular commercial functional testing tool. It provides a full range of functions for testing APIs, web services, as well as for testing the graphical interface of desktop, mobile and web applications on all existing platforms, most often used with TDD.

TestComplete is an effective tool for testing desktop, mobile and web applications. TestComplete supports various scripting languages. Testers can perform keyword testing and data-driven testing, most commonly used with BDD [4].

A comparative characteristic of the considered interface testing automation tools is shown on image 2.

Comparative characteristics of the main tools for testing interface automation

Image 2 — Comparative characteristics of the main tools for testing interface automation

3.1 Building test scripts for the hierarchical window interface of a program

The most difficult object to test is the user interface. [5]. Therefore, the task of automated testing of the window interface was solved by new software tools using a platform that uses the following tools: JavaScript, TypeScript, Selenium WebDriver, Jasmine, Protractor, Node JS, Gulp.

Jasmine is a BDD framework for testing JavaScript code.

Selenium WebDriver is a browser driver that allows you to develop programs that control browser behavior.

Protractor e2e test framework based on WebDriverJS, which replaces the initial e2e tests of AngularJS [6].

This platform provides at the beginning to design a script in the form of a full-fledged test case. After this scenario is presented in the form of pseudo-code, but according to the template of the selected test automation tool. Automation of the process is aimed at the most accurate coverage of test scenarios with program code (script). The scenario building template is shown in image 3.

Description of the test case specification with pseudo-code (on the example of the DonNTU website)

Image 3 — Description of the test case specification with pseudo-code (on the example of the DonNTU website)

Thus, almost all tests allow you to validate certain steps, as well as emulate user scripts.

As an example, consider a scenario of user interaction with the DonNTU website in order to test its interface. The user visits the page and has to wait until it loads. He understands that the page loaded when, for example, the Register button appears. Then he clicks on this button and waits for a window with a data entry form to appear. Accordingly, if any of this does not appear on the user interface, then an automated test will let you know.

For this way of implementing this scenario, you need to translate the pseudocode into program code that will be executed in the environment of the automation tool. Thus, the testing automation tool can configure the parameters of the launched browser driver (window resolution, mode), specify only those specifications that it wants to test with automated tests, configure data output after passing the test, set the time after which the test will end if it falls.

Conclusions

When analyzing the effectiveness of automated testing of the window interface of a software system, the main testing problems, approaches to effective automated testing of user interfaces, and the preparation of a base for covering test cases with automated tests were considered.

As the considered approaches to the development of automated tests, the BDD and TDD methodologies were chosen, as well as one of the most advanced testing automation tools, Selenium Webdriver, was used. A template for writing test scripts on pseudo-code was developed, which was automatically translated into program code (script). The developed platform was tested on testing the window interface of a real site. Thus, a method is proposed that provides high efficiency automated testing of the window interface of software systems.


When writing this essay, the master's work is not yet completed. Final completion: May 2020. The full text of the work and materials on the topic can be obtained from the author or his leader after the specified date.

List of sources

  1. Специальность QA Software Tester или кто такой Quality Assurance Engineer — Режим доступа: https://itvdn.com/ru/specialities/qa — Загл. с экрана;
  2. Автоматизированное тестирование. Обоснование применения автоматизации в тестировании, её основные преимущества и недостатки. — Режим доступа: http://www.protesting.ru/automation/functional/whytoauto.html — Загл. с экрана;
  3. Каковы основные различия между TDD и BDD? - unit-testing | Qaru – Режим доступа: http://qaru.site/questions/50262/what-are-the-primary-differences-between-tdd-and-bdd — Загл. с экрана;
  4. Лучшие инструменты для автоматизации тестирования в 2017 году: фреймворки для автоматизации тестирования – Режим доступа: https://geteasyqa.com/ru/blog/best-automation-testing-tools/ — Загл. с экрана;
  5. Тестирование пользовательского интерфейса - QA evolution – Режим доступа: https://qaevolution.ru/testirovanie-po/vidy-testirovaniya-po/testirovanie-polzovatelskogo-interfejsa/ — Загл. с экрана;
  6. Разворачиваем автоматизацию за пару часов: TypeScript, Protractor, Jasmine – Режим доступа: https://habr.com/ru/post/451522/ — Загл. с экрана;
  7. Что такое Selenium WebDriver? – Режим доступа: https://habr.com/ru/post/152971/ — Загл. с экрана.