Software Testing Fundamentals - Theoretical Knowledge

(1) The process of software testing:

1. Analyze test requirements

  • Testers analyze the needs of users, understand what the software should do, how to do it, and then determine how to test in the future.
  • The first task of testing is requirements analysis
    • Do a good job in testing requirements analysis
    • Always remind yourself to consider user needs
    • The culprit of manufacturing defects is not the programmer
    • Do a needs review
    • Review whether the content made meets the user's needs

2 Write a test plan

  • The test leader writes the test plan;
  • The content of the test plan
    includes product overview, test scope/test area/test item, test objective/test feature, test priority, test configuration/test resource (hardware, software, manpower, technology, etc.), test cycle, schedule ( Test tasks, personnel arrangements), test strategies, test methods/approaches, test communication, risk analysis, test standards, documents to be delivered, etc.

3 Design and write test cases

  • Design use cases are mainly reflected in writing test points;
  • Write test cases according to company format or choose some templates.

4 Execute the test

  • establish a test environment;
  • Execute test cases and record test events;
  • Submit and track bugs.

5 Evaluation and conclusion

  • Analyze the deviation of actual test and plan;
  • Collect and submit various test documents and data, and analyze the data;
  • Give the conclusion of whether to continue the test or terminate the test;
  • Summarize lessons learned

(2) Common test models

  • V model
  • W model
  • H model
  • X model
  • front model
  • Agile testing model

V model

insert image description here
(1) Advantages:
- The V-model explicitly divides testing into different levels or phases.
- Each stage corresponds to each stage of development.
- The testing strategy of the V model includes low-level testing and high-level testing. The low-level testing is for the correctness of the source code, and the high-level testing is for the entire system to meet the needs of users.

(2) Disadvantages:

  • Testing is a stage after development. In practical applications, errors that easily lead to the requirements phase are not discovered until the final system testing phase.
  • The object of the test is the program itself. The function of verification and validation of testing activities for requirements analysis, system design and other activities is ignored, and it is not discovered until the later acceptance test.
  • The process is linear, sequential, not iterative and iterative.

W model

insert image description here
(1) Advantages:

  • The W model has evolved from the V model. In fact, development is V, and testing is parallel V. Testing and development are carried out simultaneously, which is conducive to early and comprehensive discovery of problems.
  • Testing accompanies the entire software development cycle.
  • The object of the test is not only the program, but also the requirements, design, etc. to be tested.

(2) Disadvantages:

  • In the W model, activities such as requirements, design, and coding are regarded as serial. At the same time, testing and development activities also maintain a linear relationship before and after the completion of the previous stage, and the work of the next stage can be officially started. This makes it impossible to support an iterative development model.

H model

insert image description here

  • It completely separates test activities into a completely independent process, which clearly reflects test preparation activities and test execution activities. Testing occurs throughout the product lifecycle, concurrently with other processes.
  • Software testing not only refers to the execution of tests, but also includes many other activities (planning, requirements analysis, use case design, environment construction, submission of defects, evaluation summary, etc.).
  • When a certain test time point is ready, software testing will enter the test execution stage from the test preparation stage.
  • Software testing should be prepared as early as possible and executed as soon as possible.
  • Software testing is carried out hierarchically according to the different objects under test. The different levels of testing activities may be carried out in a certain order, but may also be repeated.

X-model (no need to master)

Like the W model, it is proposed to address the shortcomings of the V model.
insert image description here

front model

insert image description here

Agile testing model

  • Agile testing is a form of collaborative testing. Programmers program in pairs, and programmers play the role of testers. Agile testing is continuous testing.
  • Agile testing focuses on unit testing and acceptance testing. The process of unit testing is to design unit test cases first, then code them, and then execute the tests.
  • Agile testing emphasizes customer participation. After the unit test is passed, the code is integrated into the code base, and then the customer conducts acceptance testing.

Guess you like

Origin blog.csdn.net/qq_40794986/article/details/120241108