The test is a vast discipline that helps to ensure the quality of software. This quality includes different dimensions that can be grouped into three categories: functionalities, engineering and adaptability.However, the test is often the subject of insufficient investment by software publishers or IT teams. As with security the feeling of spending time perceived as unproductive takes precedence over best practices that recommend at least one tester for two developers. The reality observed in the field can be up to two times lower. This phenomenon is probably increased by the significant weight of service companies and specific developments. Their relative importance is stronger than elsewhere, partly for cultural reasons and as a result the culture of packaged software is weaker.
The different levels of tests
First note that software tests are generally multi-level. There are potentially four levels of tests. The unit tests which are conducted by the developer and which are to verify the performance of the functions which it is responsible. These functions are tested independently often with reduced data. It is desirable to define very early representative test sets because the developer can perform unit tests on this basis and the quality will be improved.
The integration tests which are conducted by a dedicated tester within the dvt development team or a quality team working in close cooperation. The peculiarity of these tests is that they aim to test the pooling of several components and the sequence of complete processes beyond the simple unitary functions. Again the availability of test games early in the cycle is an important factor of effectiveness.
The system tests or qualifications tests which are to unfold complete scenarios representing the case of using the software and regardless of the implementation or the underlying components. In black box logic it is strongly recommended that the team performing these tests be separate from the development team. It can even sometimes be put off-shore which has the merit of requiring a fairly detailed formalism and push for a good description of all scenarios of use.
Conclusion: test to determine the quality
The acceptance tests conducted with pilot users to validate the software’s suitability to trade and ease of adoption by those who will use it regularly. In the same way associating users very early with a first portion of the software will make it possible to know the acceptance criteria by the users and if necessary to adjust certain ergonomic choices for example.The functional tests validate the good behavior of the software for the service rendered. These tests are often those described in detail in the scenarios and on which the bulk of the investment is made in analogy to the specifications that often describe in detail the function to be fulfilled.