Software Testing Technology Course: Software Testing Process

The software testing process is as follows:

  1. Test Plan
  2. test design
  3. test execution
    • unit test
    • Integration Testing
    • confirmation test
    • System test
    • Acceptance Test
    • Regression Testing
  4. Verify activity

Test Plan

The test plan is written by the test leader to determine the goals and strategies of each test phase. This process will output the test plan, clarify the test activities to be completed, estimate the amount of time and resources required to complete the activities, and carry out the arrangement of activities and the allocation of resources.
The test basis is mainly formulated based on the project development plan and test requirements analysis results.

2: Test Design

Design the test scheme according to the test plan. The output of the test design process is the test cases used in each test phase, determine the test case set for each test requirement, and determine the test process for executing the test cases.

According to the software test plan, software requirements, software architecture design, software detailed design and other documents, design test cases as follows:

  1. For each test requirement, determine the test cases it needs.
  2. For each test case, determine its inputs and expected results.
  3. Determine the test environment configuration and required drivers for the test case.
  4. Write test case documentation
  5. Peer review of test cases

3: Test Execution

As shown, the test execution process is divided into the following testing phases: unit testing, integration testing, validation testing, system testing, acceptance testing, etc.

4: Unit testing

Unit testing is the lowest level of testing activities in the software development process, the object of the test is the smallest unit of software design, unit testing is also called module testing

Many people misunderstand the concept of a unit as a concrete function or a method of a class, which is not accurate. As a minimum unit, it should have clear function definition, performance definition and interface definition, and can be clearly distinguished from other units. A menu, a display interface or a specific function that can be completed independently can be a unit. In a sense, the concept of a unit has been extended to a component.

Environment for unit testing:

Since each module is not isolated in the whole software, when
unit testing each module, it needs to consider its
interconnection with the surrounding modules.
In order to simulate this connection, several auxiliary test modules must be set up during unit testing . These auxiliary modules are divided into two types:

  • Driver module (driver): It is used to simulate the upper module of the module under test, which is equivalent to the main program of the module under test.
  • Stub module (stub): It is used to simulate the lower-level module of the module under test, which is equivalent to the submodule called by the module under test.

How unit testing is done

Unit testing can be done in two ways:

Disadvantages of unit testing:

  • New problems are introduced when modules call each other;
  • The combination of several sub-functions cannot realize the main function;
  • Errors accumulate to unacceptable levels;
  • Errors in global data structures, etc.

Integration Testing

OK test

After the integration test is completed, the modules developed separately are connected to form a complete program. Among them, various problems existing in the interfaces between the modules have been eliminated. So it entered the confirmation test phase.

Confirmation testing is the process of evaluating a software product against the software requirements specification to determine whether it meets the requirements specification. It determines whether the final software product is correct or not.

Determine the strategy for testing:

  • Requirements-based testing: Using a black-box testing strategy, user requirements are tested without knowing the detailed design specifications or code. Requirements-based testing designs test cases based on functional design specifications.
  • Function-based testing: adopt the black-box strategy, design test cases according to the functional design specifications, and use methods such as equivalence class division, boundary value analysis, and fault guessing.
  • Internal-based testing: Only white-box testing strategies can be used, but functional design specifications can be used to develop test plans. Once white-box testing is adopted, a series of techniques can be used to ensure that the internal parts of the system are fully tested and achieve sufficient logic coverage.

System test

System testing is actually a comprehensive inspection of each component in the system, which is very close to our daily testing practice.
The goal of system testing is not to find software faults, but to demonstrate system performance.

注意:系统开发人员和组织不能负责系统测试,系统测试最好由独立的测试机构完成。 

Acceptance Test

Acceptance testing is the process of comparing the final product with the current needs of the end user. It is the last quality inspection activity after the software development is completed and before the software product is delivered to the user. It answers whether the developed software product meets the expected requirements. User acceptance and so on.

Acceptance testing not only checks the quality of a certain aspect of the software, but also conducts a comprehensive quality inspection and determines whether the software is qualified. Therefore acceptance testing is a strictly formal testing activity and should be performed in a production environment rather than a development environment.

Regression Testing

Regression testing is the testing of a program to determine whether new bugs have been introduced as a result of bug fixes.
Regression testing is not a new testing activity, it is the process of re-executing some or all test cases to check whether repairing a fault introduces a new fault.

Verify activity

Verification activities exist at each stage of the test life cycle, including requirements verification, functional design verification, detailed design verification, and code verification. In each verification activity, the purpose of testing is to find as many faults as possible, and testers should actively participate in software review and walkthrough work, and carry out verification work.

Come on, testers! If you need to improve your plans, do it, it's better to be on the road than to wait and see from the beginning. Your future self will definitely thank your hard-working self now!

Guess you like

Origin blog.csdn.net/weixin_47648853/article/details/130770183