What is software testing ? The purpose and principle of software testing
Operate procedures under specified conditions , To find program errors , Measuring software quality , And evaluate whether it can meet the design requirements .
Purpose of software testing ：
* Testing is the execution of a program , The purpose is to find errors
* A successful test case is to find errors that have not been found so far
* A successful test is one that finds errors that have not been found so far
* Ensure that the product performs the functions it promises or publishes , And the functions that users can access have clear written instructions .
* Ensure products meet performance and efficiency requirements
* Ensure products are robust and user friendly
Principles of software testing ：
* A necessary part of a test case is to define the expected output or take over
* Programmers should avoid testing their own programs
* Organizations that write software should not test the software they write
* The results of each test should be thoroughly checked
* Test cases should be written not only based on valid and expected input , It should also be based on invalid and unexpected inputs
* Check whether the wiping procedure “ Didn't do what it was supposed to do ” Half the test , The other half of the test is to check whether the program is “ Did what it shouldn't have done ”
* Avoid discarding test cases after use , Unless the software itself is a one-time software
* When planning test work, you should not acquiesce in the assumption that no errors will be found
* Possibility of more errors in some part of the program , Proportional to the number of errors found in this section
* Software testing is very creative , An intellectually challenging job
What are the main test case design methods at present ?
White box test ： Logical coverage , Cyclic coverage , Basic path coverage
Black box test ： Boundary value analysis , Equivalence class division , error guessing , Causality diagram method , State diagram method , Test outline method , Random test , Scene method
What is static test , dynamic test , Black box test , White box test ,α test β test
* Static testing is the process of finding possible errors in program code or evaluating program code without running the program itself .
* dynamic test
Is the actual running of the program under test , Enter the corresponding test instance , Check the difference between the operation result and the expected result , Determine whether the execution results meet the requirements , So as to check the correctness of the procedure , Reliability and effectiveness , The performance of the system, such as efficiency and robustness, is analyzed .
* Black box test
Generally used to confirm the correctness and operability of software functions , The purpose is to check whether the functions of the software can be realized , Treat the tested program as a black box , Regardless of its internal structure , Knowing the relationship between the input and output of the program or the function of the program , Rely on software specifications to determine test cases and infer the correctness of test results .
* White box test
Test according to the internal logic structure analysis of software , Code based testing , Testers judge the quality of the software by reading the program code or by using single step debugging in development tools , General black box testing is implemented by the project manager in the development of programmers .
* α Testing is conducted by a user in the development environment , It can also be controlled test conducted by users inside the company under simulated actual operation environment ,Alpha Testing cannot be done by programmers or testers .
* β Test is a test conducted by multiple users of the software in the actual use environment of one or more users . Developers are usually not at the test site ,Beta Testing cannot be done by programmers or testers .
What are the quality characteristics of software products ?
Functionality ： adaptability , accuracy , Interoperability , Compliance , Security .
reliability ： Maturity , Fault tolerance , Recoverability .
Usability ： Intelligibility , The habit of easy learning , Operability .
efficiency ： Time characteristics , Asset properties .
Maintainability ： Analyzability , Changeability , stability , Testability .
Portability ： adaptability , Ease of installation , Compliance , Replaceability
Software testing is divided into several stages What are the test strategies and requirements for each stage ?
Corresponding to the development process , The testing process will go through unit tests in turn , integration testing , System test , Four main stages of acceptance test ：
* unit testing ： Unit test is the smallest unit for software design –– The test of the correctness of program modules and even code segments , Usually by developers .
integration testing ： Integration test is to assemble the modules according to the design requirements for testing , The main purpose is to find problems related to interfaces . Before the product is submitted to the testing department , All product development teams need to conduct joint debugging , So in most enterprises, integration testing is done by developers .
System test ： The system test is conducted after the integration test passes , The purpose is to fully operate the system , Verify whether all subsystems can work normally and complete the design requirements . It is mainly carried out by the testing department , It is the biggest and most important test of the testing department , Have a significant impact on product quality .
Acceptance test ： The acceptance test is based on the 《 Requirements specification 》 Is the acceptance standard , Testing requires simulating the actual user's running environment . The actual project can be carried out together with the customer , The last system test for the product . The test content is a comprehensive test of functional modules , Especially document testing .
Unit test strategy ：
Top down unit testing strategy ： Much more expensive than isolated unit testing , Not a good choice for unit testing .
Bottom-up unit testing strategy ： Reasonable unit testing strategy , But the test cycle is long .
Isolated unit test strategy ： Best unit testing strategy .
Test strategy of integration test ：
Big bang integration ： Suitable for a maintenance project or small tested system
Top-Down Integration ： Suitable for clear and stable product control structure ; High level interface changes little ; The underlying interface is not defined or may be modified frequently ; There are great technical risks in the production control components , Need to be validated early ; Hope to see the system function behavior of the product as soon as possible .
Bottom up integration ： It is stable for the bottom interface ; High level interface changes frequently ; The underlying component was completed earlier .
Progress based integration
advantage ： High degree of parallelism ; Can effectively shorten the development progress of the project .
shortcoming ： Heavy pile and driving work ; Some interface tests are inadequate ; Some tests are repetitive and wasteful .
Test strategy of system test ：
Data and database integrity testing ; functional testing ; User interface test ; performance evaluation ; Load test ; Strength test ; Capacity test ; Security and access control testing ; Failover and recovery testing ; Configuration test ; Installation test ; Encryption test ; Usability test ; Version validation test ; Document test