There are four main stages: unit test, integration test, System test and acceptance test.
Unit Test
Unit Testing (module testing) is a small piece of code written by a developer to verify that a small, well-defined function of the code being tested is correct. Typically, a unit test is used to determine the behavior of a particular function under a particular condition (or scenario). Unit tests are often also written by development (one of the white box tests). The methods you can use are static code analysis, data flow analysis, code coverage analysis, and so on.
Integration Testing
Integration testing, also known as assembly testing or joint testing. On the basis of unit testing, all modules are assembled into subsystems or systems according to the design requirements (e.g., according to the structure diagram) for integration testing. The practice shows that although some modules can work independently, it is not guaranteed to work properly. In some parts of the program can not reflect the problem, in the overall situation is likely to be exposed, affecting the implementation of the function. In addition, if a program consists of multiple processes, you should test them in pairs instead of testing all the processes at the same time. An effective integration test helps to solve the problem of compatibility and operability of related software with other systems.
System Testing
System testing, is the confirmed software, computer hardware, peripherals, network and other elements together to carry out a variety of information system assembly testing and validation testing, system testing is for the entire product system testing, the purpose is to verify whether the system meets the requirements of the definition of specifications, Identify areas that are inconsistent with or inconsistent with the requirements specifications, thus proposing a more complete solution. After the system test finds the problem, it is debugged to find out the cause and location of the error and then correct it. is a black box class test based on the overall requirements specification of the system, which should cover all the components of the system. Objects include not only the software to be tested, but also the hardware on which the software relies, peripherals and even some data, some supporting software and its interfaces.
Acceptance Testing
The acceptance test is the last Test action before the software is deployed. After a software product has completed unit testing, integration testing, and system testing, the software testing activity that was performed before the product was released is the final phase of the technical test, also known as the delivery test. The purpose of the acceptance test is to ensure that the software is ready and that it can be used by end users to perform the established functions and tasks of the software.
Software Testing Fundamentals (iii) testing phase