The 10th Chapter Software test
Software testing is a key activity of software quality assurance, it is through review of requirements specification, software design instructions and program code, to ensure that software products before delivery, as far as possible to detect latent problems in the software.
First, verification and confirmation
Software issues that meet the following 5 rules are defined as software errors:
(1) The software does not meet the function indicated by the product specification;
(2) The software has appeared the error that the product specification indicates will not appear;
(3) The software does not meet the objectives of the product specification, although not specified but should be achieved;
(4) The SOFTWARE function is beyond the scope specified in the product specification;
(5) Software Testers think the software is difficult to understand, difficult to use, slow to run, or the end user is not satisfied.
Software testing attempts to demonstrate that software products or intermediate products can meet customer needs, including logical coordination, completeness, and correctness, at all stages of the software life cycle.
Software validation is a series of activities and processes that are designed to ensure that software products meet their descriptive requirements.
Software validation: Confirmation of requirements specification and procedure confirmation. Confirmation of the program: static confirmation, dynamic confirmation.
Ii. Fundamentals of Software Testing
The goal of software testing is to systematically identify potential errors and pitfalls in the software with minimal time and effort.
Basic principles of software Testing:
(1) "Early and continuous software testing" should be the motto of software developers;
(2) Programmers should avoid checking their own programs;
(3) in the design of test cases, should include reasonable input conditions and unreasonable input conditions;
(4) The test case should have the test input data and the corresponding expected output of the two components;
(5) Fully pay attention to the cluster phenomenon in the test;
(6) Strictly implement the test plan and eliminate the randomness of the test;
(7) Every test result should be checked thoroughly;
(8) Properly maintain all the test process documentation, for the maintenance of convenience.
Software Test V model: From top to bottom: requirements analysis, conceptual analysis, detailed design, coding; bottom: unit test, integration test, System test, acceptance test.
Test documents: Test plans, test specifications, test cases, defect reports.
The importance of testing documents is in the following aspects: Verifying the correctness of requirements, testing resources, identifying the risks of tasks, generating test cases, evaluating test results, testing, and determining the effectiveness of testing.
Software testing requires 3 types of information: Software configuration, test configuration, test tools.
Testers should have the following qualities: communication skills, empathy, technical ability, self-confidence, diplomatic ability, sense of humor, strong memory, patience, skepticism, self-supervision, insight.
Third, software testing strategy
Unit Test: module interface test, local data structure test, important execution path test, error handling test, boundary condition test, Duan Yuancan Villager test method.
Integration testing: Top-down testing, bottom-down integration.
System test: Recovery test, safety test, strength test, performance test.
Software debugging: A simple Debugging method (1. inserting a print statement into the program; 2. Run part of the program;3. with Debugging Tools), inductive debugging, deduction, debugging, backtracking method debugging.
Iv. Software Testing methods: Static test and dynamic test, black box test and white box test
Five, object-oriented software testing
Object-oriented test types: Model testing, class testing, interactive testing, System (subsystem) testing, testing along, releasing Tests.
"Software Engineering--theory, Method and practice"--tenth chapter