【Knowledge Combing】Chapter 2 of Software Testing Core Technology

Chapter 2 Testing Process

2.1 Software testing phase

2.2 Test process model

2.3 The tasks, roles and responsibilities of each link in the software development and testing process


2.1 Software testing phase

insert image description here

Acceptance Test

1. alpha test

Alpha testing is a test performed by users in a development environment, and it can also be a test performed by users within a development organization in a simulated environment. In alpha testing, the software is used in a natural state. The developer sits next to the user, taking note of bugs and usage issues. This is a test performed in a controlled environment. The purpose of α testing is mainly to evaluate the function, localization, usability, reliability, performance, and support of software products (Function, Localization, Usability, Reliability, Performance, Support, FLURPS), especially focusing on the interface and features of the product. Alpha testers are the first people to see the product besides product developers, and their suggestions for features and modifications are valuable.

2. beta test

Beta testing is a test performed by multiple users of the software under the actual use environment of one or more users. These users are external users who have signed a contract with the company to support the pre-release of the product, request to use the product, and are willing to return any error information to the developer. Unlike alpha testing, when beta testing is performed, the developer is usually not present at the testing site. Thus, beta testing is the live application of software in an environment beyond the developer's control.

In the beta test, users record all problems encountered, including real and subjective ones, and report them to developers regularly; developers make revisions after comprehensive user reports, and then deliver software products to all users .

Comparison of unit testing, integration testing, and system testing

insert image description here

Regression Testing

Software should be regression tested after defects found during testing or other activities have been modified. The purpose of regression testing is to verify that defects are correctly fixed and that changes to the system do not affect previous functionality. Regression testing can occur at any stage, including unit testing, integration testing, and system testing.
insert image description here

1. Strategies for Regression Testing

If regression testing needs to consider how to select re-executed test cases, it is necessary to determine the regression testing strategy. Common regression testing strategies are as follows.

●Completely repeat the test: re-execute all the test cases established in the previous test stage to confirm the correctness of the problem modification and the local influence of the modification.

●Selective repeat test: Selectively re-execute part of the test cases established in the previous test phase to test the modified program. The specific breakdown is as follows.

■Covering modification method: For the modified part, select or reconstruct the test case to verify that no error occurs again. That is to say, this type of regression test only selects test cases based on the modified content, and this part of the test cases only guarantees that the modified defects or new functions are realized. This method has the highest efficiency, but the risk is the greatest, because it cannot guarantee whether this modification affects other functions. This method can be used in the state where the schedule pressure is very high or the coupling of the system structure design is small.

■Peripheral impact method: not only cover the use cases determined by the modification method, but also analyze the diffusion impact of the modification. For those parts that are indirectly affected by the modification, select test cases to verify that it has not been adversely affected. This method is more adequate than the coverage modification method. This type of regression test needs to analyze which part of the code or function may be affected by the current modification. For all affected functions and codes, all corresponding test cases will be regressed. How to judge which functions or codes are affected depends on the specification of the development process and the experience of test analysts (or developers). For a project with a detailed requirement tracking matrix in the development process, it is relatively simple to analyze the code area or other functions affected by the modified function in the matrix, and experienced developers and testers can effectively find out the affected areas. Function or code; for unit testing, after modifying the code, it is also necessary to consider the impact on some public content, such as global variables, input/output interfaces, configuration files, etc. This method is recommended by the industry and is suitable for general projects.

■Indicator achievement method: a method similar to unit testing. Before re-executing the test, first determine an indicator to be achieved, such as completely covering the code of the modified part, covering 60% of the interface related to the modification, etc. Based on this Requirements, select a minimal set of test cases.

2. Regression testing process

Regression testing also requires a process, which can be referred to the following process.

(1) In the stage of test strategy formulation, formulate regression test strategy.

(2) Determine the versions that require regression testing.

(3) Release the regression test version, and execute the regression test according to the regression test strategy.

(4) If the regression test passes, close the defect tracking list (problem list).

(5) If the regression test fails, return the defect tracking sheet to the developer, and the developer will revise the problem and submit it to the tester again for regression testing.

3. Automation of regression testing

Regression testing is a test that reuses previous results. It is difficult to predict how many times the regression system will reach a satisfactory level. Therefore, regression testing may become a repetitive and distracting work. Enthusiasm will be greatly reduced. Therefore, the automation of regression testing is very important.

The automation of regression testing includes the automatic operation and configuration of test programs, the management and automatic input of test cases, the automatic execution of tests, the automatic collection of test information and results, the automatic comparison and conclusion of test results (especially the aforementioned various data sharing decisions).

For tests with relatively simple system test functions, relatively stable test interface and good test cases, it is more appropriate to use the "capture playback" tool, such tools include QTP, Robot Framework, Selenium, etc. In order to realize the automation of test cases and the automatic judgment of test results, scripted test cases containing control structures and internal realization of result judgments are the only choice. Such scripting languages ​​include Python, Ruby, Java, etc.

For complex testing in a specific system, if there is no general commercial tool to choose from, you can try to develop a dedicated automated testing tool.

The automation (or instrumentation) of regression testing is a problem that needs to be considered as early as possible. This possibility should be considered when determining the test plan. If necessary, resources should be invested in development, and the formation of tools that can be inherited and promoted is the final Purpose.


2.2 Test process model

CMM (Capability Maturity Model)

role (role) entry criteria (entry criteria) input (input) activity (activity) output (output) exit criteria (exit criteria)

review and audit work product managed and controlled

measurement, documented procedure, training, tool

Double V model

insert image description here


2.3 The tasks, roles and responsibilities of each link in the software development and testing process

项目经理
开发工程师
测试工程师
开发经理
测试经理
质量保证人员QA
变更控制委员会CCB

Continue to learn, to be continued. . .

Guess you like

Origin blog.csdn.net/Restarting2019/article/details/129104791