What exactly should automated testing do?

In software testing, automated testing refers to the process of using other software independent of the software under test to automatically execute tests, compare actual results with expectations, and generate test reports.

After the test process has been determined, test automation can automatically perform some repetitive but necessary test work.

It is also possible to accomplish tests that would be nearly impossible to do manually. For continuous delivery and continuous integration development methods, test automation is crucial.

With the increasing scale of software systems and the continuous expansion of application fields, the testing of software systems has become more difficult and complex, and the limitations of traditional manual testing have become more and more obvious.

Automated software testing techniques can overcome many problems of traditional testing techniques. Automated testing is based on a set of strict testing rules and evaluation standards, with a complete automated testing process.

Therefore, it can avoid test omissions caused by inertial thinking of testers, and can also reduce human errors caused by repetitive work in manual testing.

1. Significance and advantages of automated testing

Automated testing, especially the automation of unit testing, is a key feature of Extreme Programming and agile software development, also known as test-driven development (TDD).

The use cases for unit tests can be designed before the code is written and exist as a defined form of functionality.

As new code is written, unit tests are performed, bugs are found, and the code is continuously improved. Since developers can discover defects in time and make changes immediately, the cost of repair is greatly reduced. This continuous development method is considered to be more reliable than the waterfall model, which is a method of retesting after development.

Using unit testing frameworks (such as JUnit, NUnit and other "xUnit" type testing frameworks) to perform automated testing is a major trend in the software development industry.

The application of the unit testing framework makes it possible to conduct relevant unit tests immediately after the development of each part of the code to verify whether they are running as expected.

Manually completing some software testing tasks (such as regression testing of a large number of low-level interfaces) is very difficult and time-consuming, and it is not efficient to find certain types of defects. Therefore, test automation provides an effective way to complete this type of work.

Once the automated testing method is developed, the future testing work will be completed in an efficient cycle. Many times this is an efficient way to perform long-term regression testing on software products. After all, a regression introduced in a tiny patch early on can cause huge damage later on.

2. Limitations of automated testing

Although automated testing (especially for regression issues) can bring cost savings in the long run, it may still generate huge overhead to automate all tests in the short term. Usually, the industry uses a combination of manual testing and automated testing. method to complete the test work.

Although testing is "automated," human input is still required for test result analysis, test script maintenance, and writing.

3. Requirements for automated testing

①. Requirements for test cases

Most of the test cases that need to be automated are an important part of the regression test that needs to be performed every time the code is modified in the product under test. Taking automated testing methods for such parts can greatly reduce the manpower and material resources consumed by manual testing.

②. Requirements for testers

Since the test cases and output results in automated testing are composed of codes, test engineers (or software quality assurance personnel) must have the ability to code software. However, some test automation tools support specifying test steps through keywords, thus exempting the process of programming, and for testers, they are no longer required to master programming skills.

4. Classification of automated testing

There are many approaches to test automation, some general approaches that are widely used are listed below:

GUI Based Testing

User interface (GUI)-based testing uses a test framework that can generate graphical user interface operations (such as mouse clicks, keyboard input, etc.) to simulate user actions to observe and verify the correct response of the program.

Interface testing (also known as API-based testing, API Based Testing)

Interface testing refers to bypassing the GUI by calling the interface (API) to test the behavior applied to the verification. Usually the API bypasses the user interface of the tested application. It can also test the public interface with various input parameters to verify that the returned results are correct.

①. Graphical User Interface (GUI) Test

Many test automation tools provide record and playback functionality, which allows users to record their mouse clicks, keystrokes, etc., on an interactive user interface. In this way, in the subsequent test, the playback can automatically test these interactions, and the test for the GUI can be completed by comparing it with the interaction feedback under normal conditions.

This approach requires little user experience in software development and can be applied to almost any application with a GUI. However, these characteristics also brought some reliability and maintenance problems: any renaming or moving of buttons will cause script errors, and users will need to re-record scripts.

②. Interface test

Interface testing is one of the widely used software testing methods, which enables software testing engineers to ignore the influence of GUI and test the software function itself. It is a very critical step in program logic testing. Usually in the early stages of development, interface testing is performed to ensure that the code is always correct.

Interface testing is also used as a part of integration testing to judge whether the system meets the requirements of function, reliability, performance and security. Since interface testing does not use GUI, it mainly interacts with testers through characters.

③. Continuous testing

Continuous testing refers to the process of automatically testing the upcoming software version through the software delivery pipeline during the software development process and giving immediate feedback, which in turn reduces the business risks caused by software defects.

5. Automated testing framework

A test automation framework is an integrated system that sets a series of specific automation rules to execute tests for a specific product.

This system integrates (for testing) function libraries, test data sets, object details (metadata) and various reusable modules.

Combining these modules according to the test requirements can get a complete test case for a specific function or application scenario. A testing framework provides the basis for automated testing and simplifies the workflow of automated testing.

The first stage

1. Basic knowledge of software testing

Introduction to software testing basics to project actual combat (covering software testing basics + dark horse headline project actual combat)

2. 2-day quick start of Linux system

This video includes an introduction to the Linux operating system, common Linux commands, and the vi editor. After learning and mastering the content of this stage, you can have the ability to build Linux projects.

Linux System 2-Day Quick Start Tutorial

3. Intensive lecture on software testing MySQL database knowledge + project practice

This video includes data installation, data table operation, data operation - addition, deletion, modification, query, conditional query, sorting, aggregation function, grouping, paging, connection query, self-association, subquery, and subquery drill. After learning the content of this course, you can have the ability to verify the database; you can also quickly and standardly master the operation of adding, deleting, modifying and checking the database.

Software Testing MySQL Database Tutorial

The second stage of Python programming

Pre-study guide: After learning the content of this stage, you can master Python syntax and have programming ability; be able to establish programming thinking and object-oriented programming thinking; be able to master the UnitTest framework to manage test cases.

10 days to play Python software testing

After learning the contents of this stage, you can master Python syntax and have programming ability; you can establish programming thinking and object-oriented programming thinking; you can master the UnitTest framework to manage test cases.

10 days to play Python software testing tutorial

Phase 3 UI Automation

Pre-study guide: UI automation is roughly divided into web automation and app automation, which account for a large proportion in the field of automated testing and are often used.

1. Zero-based entry mobile automation - Appium framework

This course will explain the Appium framework in detail. Appium is an open source, cross-platform automated testing framework, which is suitable for automated testing of Native Application, Mobile Web Application or Hybrid Application.

Appium framework tutorial

2. Easily teach you to use Appium for IOS real machine automation testing

This set of courses presents the steps and precautions of environment installation to the students, and demonstrates and explains everything from the simulator to the actual operation of the real machine. The content is rich and vivid, and IOS end environment installation and practical operation can be completed after learning.

Easy to teach you to use Appium for IOS real machine automation testing tutorial

Phase 4 Interface Automation

Intensive Lecture on Interface Testing + Practical Tutorial of Chuanzhi Health

Interface testing is the most frequently used part of all automated testing. The dark horse stage is divided into 14 parts for detailed explanation. Involving HTTP, Postman, Pymysql, requests library, integrating UnitTes, Dubbo and many other tools, and finally using Chuanzhi Health project to carry out actual project combat at this stage.

Intensive Lecture on Interface Testing + Practical Tutorial of Chuanzhi Health

The fifth stage of performance testing

Pre-study guide: Performance testing belongs to the category of advanced testing, which is very helpful for salary improvement. The video at this stage explains the construction of performance testing environment, the use of JMeter tools, performance testing monitoring, analysis and tuning methods.

4-Day Quick Start Performance Test

This video learns the basic theory of performance testing and JMeter tools; through the actual combat of the light mall project, it takes students to master performance testing requirement analysis, performance testing plan, test case design, test script development, performance monitoring, performance analysis and tuning, performance testing Report summary.

4-Day Quick Start Performance Test

Guess you like

Origin blog.csdn.net/Itmastergo/article/details/132224926