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

©2019-2020 Toolsou All rights reserved,
java Four functional interfaces ( a key , simple )os Simple use of module Browser kernel ( understand ) Some East 14 Pay change 16 salary , Sincerity or routine ?HashMap Explain in detail It's unexpected Python Cherry tree (turtle The gorgeous style of Library )html Writing about cherry trees , Writing about cherry trees