Software engineering testing is broadly divided into three steps: unit testing, integration testing, system testing, unit testing has been introduced last time, this time from the integration test start.
One
Integration testing is in the middle stage, after unit testing, and also after unit testing, because, as the name implies, it is the integration of different units, small units constitute subsystems, to test. For this reason, it has a big premise that all units in this unit test is not a problem, the integration test is only responsible for testing the interface between the unit and the like there are no errors, the unit of the problem should not be integrated test tube. Moreover, if the error in the unit, the integration test should also be found, because it is to find errors between the interface, the error is positioned as message delivery, interface function errors and other reasons caused by the error. So this is the wrong location is very difficult, the cost of testing greatly increased, the brain a little bit normal is not the end of the dry.
Because it is the different units together, so, the combination of methods naturally different, you can a brain of all the east to put together, and then see whether it can work, or 1.1, 1.1 point test, and factory machinery, such as assembly is a truth, can be different units as part of the machine, The whole software is understood as a machine.
Of course, this kind of testing is necessary, in fact, as long as it is still present, and appears in the enterprise rather than only in textbooks, then this method should have merit, those entrepreneurs are not fools, on the contrary, they are smart. and integration testing can be said to be used very often. Integration testing is the integration of different units after unit testing, testing interfaces (interfaces between cells, interfaces in non-cells, which have been tested during unit testing). These are parts of the unit testing process that are not involved and who dare not say that it is not a problem. Or a machine analogy, you make a bunch of parts no problem, but assembled, the machine may not be able to boot normally. So you still need to test the situation after assembling it.
A brain of the spell up there is a professional point, called "Non-incremental integration test", it is the time to assemble the machine, the whole machine is saved. As for the machine can move, then again, this method is convenient, no need to do anything technical content, is the assembly, but after the trouble, if the machine is not a problem, then the natural good but, in case the machine does not move (this is not possible), you want to find the problem where it is not good to find, the last freshman regiment, Mistakes in many places can lead to problems, and troubleshooting is a hassle.
1.1-point spell also has a gentle point of the name, called "Incremental integration test", from the name can be seen, things are gradually increasing. Unlike "non-incremental integration testing", it is an element of a unit to add.
Most of the elements have a tree structure, so there are roughly two incremental methods, one is top-down, one is bottom-up, the former starts from the main module, at first, with some piles (simple simulation of a module) instead of its sub-modules, and then gradually down, the pile module replaced with a real sub-module , knowing that all the modules were replaced, the integration test was completed. The downward approach uses our usual depth-first or breadth-first.
Bottom-up Instead, start with the submodule, then add its master module, as the submodule is ready, so this time there is no need for a pile module.
Of course, there is a kind of compromise method, you can start from the middle, and then two ways to expand on both sides , called "Sandwich integration."
One drawback of the three methods is that, because the units are added in order, it is always a partial unit test that is not sufficient. Top-down, due to the initial use of the pile module, the lowest level of module testing is not enough. Bottom-up, the high-level test was postponed to the end, and the overall design error was found later. Sandwich method, the target layer is not adequately tested before integration.
Two
Look at the system test, this test is basically the final stage, this time the software part is basically completed, so, need a final from the user's perspective to observe the test.
Because it is from the user's point of view, the system test is black box test, and can be said to be the largest range of black box testing, for the entire software all functions. At the same time, the hardware is also a consideration, because in the future all users of the hardware will not be the same, at this point to start testing hardware compatibility.
System testing There are many ways, first of all, because it is black box test, black box test method can be used, and then, because it is a test for the whole, there are some special methods, such as stress testing, capacity testing, backup testing, installation testing.
Integration testing and system testing