Regulatory references қР 27 шілде 2007 ж. «Білім туралы»


Application of automated testing



бет7/35
Дата10.03.2023
өлшемі131,3 Kb.
#73252
1   2   3   4   5   6   7   8   9   10   ...   35
1.4 Application of automated testing
Automation of testing does not completely exclude manual testing from the development process, but significantly reduces its share, reduces the cost and improves the quality of software products being developed by eliminating routine operations from the testing process. There are two most common routine testing processes that are most often automated by QA specialists [8]. 1. Smoke Testing (Smoke Testing) is a type of software testing that includes a non-exhaustive set tests aimed at checking the operability of the most important functions. The results of this testing are used to decide whether the assembly is stable enough to continue testing, or to verify the correct functioning of the system [8].
2. Regression Testing is a collective name for all types of software testing aimed at detecting errors in already tested sections of the source code. Regression testing checks the product for errors that could appear as a result of adding a new section of the program or correcting other errors. The purpose of this type of testing is to make sure that updating the build or fixing errors did not cause new bugs [8]. Today it is difficult to imagine the development of a large software project without the use of automated testing in the development process . The current stage of testing development is characterized by deep integration of testing with the development process as a whole, as well as the widest use of automation, a colossal set of technologies and tools for automation [11]. This master's thesis is devoted to the automation of smoke and regression functional testing of different parts of the same system at the integration and system levels, respectively.
There are three types of automated tests that are commonly used in development [12]. 1. Unit Tests. Implemented by developers to test individual parts of the program code. 2. Integration, functional tests (Service Tests). Testing through access to the functional layer, bypassing the user interface. A quick way to test system components. These tests can be run without user intervention and check system processes at high speed. 3. UI tests. Implement end-to-end coverage and ensure stable operation of the system and satisfaction of critical business requirements by interacting with the user interface. Mike Cohn organized these test groups into a hierarchy known as the "test pyramid" (Figure 6), which illustrates the ratio of tests required for effective system testing. To date , the concept of the classical pyramid is a reference in the field of automated testing [12] At the top of the pyramid is the level of manual testing,since it is somehow alw ys present and performed, at least to familiarize with the system and its updated functionality. It is worth noting the similarity of the level division of automated testing with the division of the entire testing as a whole, which wasgiven earlier in section
The difference is that duringautomation, system testing is performed through interaction with the user interface and comparing the behavior of the software with the expected the result, and the representation of the levels in the form of a pyramid showsthe ratio of the number of tests from each level, according to the sizeof the block inside the pyramid. At the same time, the separation proposed by Mike Cohn, when most of all tests are unit tests, and UI tests are less, is considered the preferred test development option [12]. However, this ratio may vary depending on the specific task and the specifics of the work of the development teams and QA specialists of a single software development company. This master's thesis is devoted to the implementationof auto mated UI tests (the top level of the pyramid) of a mobile application on the Android platform, as well as solutions for performing automated functional tests and collecting their results, bypassing the user interface (the middle level of the pyramid). Such types of automation are implemented using specializedtesting automation tools that provide the ability to interact with the interface of the program under test, as well as other software tools that allow the use of low-levelthe capabilities of operating systems or to integrate with data collection and monitoring systems. There are many tools for implementing automated testing. Each of them allows you to solve a completely different range of tasks, differing in complexity, volume, execution environments and many other characteristics. The following is a description of those tools that are suitable for solving the problems identified in the domain analysis section. Development of a solution for automated testing and monitoring of remote servers includes such important details as integration with the Prometheus data collection and notification system and the creation of SSH connections followed by the execution of certain commands on a remote server. Implementation of these features, taking into account that the SS connection must be installed with more than 1000 servers, is feasible only at the software level. Taking into account the accompanying requirements for the software solution, no ready -made tools were found to solve this problem. The way out is development own solution for testing and fulfilling all the stated requirements. Such solutions are usually called frameworks. Thereare many different definitions of a framework. The most suitable and widely used in the field of test automation: "A framework for test automation is a set of interacting components that facilitate the creation and execution of automated tests and the presentation of their results" [9]. In other words, the testing automation framework covers everything a QA specialist needs, to write, run and analyze automated tests, and may also include the implementation of the tests themselves. During testing, the application is accessed by various automation tools. The application interacts with the user,the syste m and other applications through interfaces such as: API API (Application Programming Interface) — the main interfacefor interactin g with other programs. GUI (Graphic User Interface) is a graphical interface used to interact with the user. Net Net (Networking Interface) — a network interface used to inter act with the Internet. Tests can use all these interfaces to interact with the application. In manual testing, the tester is the intermediary between the tests andthe application: he converts the text of the test cases into actions with one of the interfacesFor automation, you need to replace the tester with tools that can interact with one or more application interfaces. You will also need utilities to run and generate a set of tests.
The SDK application under test is being developed for the platform
Android, therefore, the following is an overview of tools suitable for automating testing of the user interface of Android applications.
Appium
Appium is a free
, open-source, cross-platform mobile automation tool designed to
automate native and hybrid mobile applications [15].
Advantages of Appium:
 is a free and open source tool;
поддерживает supports a number of programming languages, such as Java,
Python, C#, Ruby, JavaScript, PHP without the need to make changes to the
tested applications;
работает works on various devices and emulators.
The disadvantage is that Appium does not support
pop-up message detection (Toast). In addition, some
testing specialists believe that the test reports received are
not informative enough [14].


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   ...   35




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет