The target of the test
Testing is naturally conducted throughout the entire development and maintenance phases, at different levels. There are 4 levels of software testing stages that need to be completed to ensure a working IT product. They enable us to test a separate module, group of modules or the system as a whole. At that, none of the test levels can be assigned a higher priority as all of them are equally important for success of the program, regardless of the models and methodologies used.
Unit testing
This level of testing allows you to test the functionality of a single element of the system. What should be considered as the element – module of the system – is defined by the context. This type of test is most fully described in the standard IEEE 1008-87 “Standard for Software Unit Testing”, which provides an integrated concept of a systematic and documented approach to unit testing. Do not forget that outsourced testing is a good way to reduce development costs since the service of third party partners is less expensive than that of local QA specialists.
Integration testing
This level of testing is the process of checking the interaction between software components / modules.
Classical integration testing strategies – “top-down” and “bottom-up” – are used for traditional, hierarchically structured systems but are not suitable, for example, for testing loosely coupled systems built in service-oriented architectures (SOA).
Modern strategies depend more on the architecture of the system being tested and are built based on identification of functional “threads” (for example, workflows and data).
Integration testing is a regularly performed activity that involves working on a sufficiently high level of abstraction. The integration testing ‘best practice’ is based on the incremental approach, which allows you to avoid conducting one-off tests related to testing the results of another long run period, when the number of detected defects leads to major redesign (traditionally, the negative experience with launching and testing of only major releases is called “big bang “).
System testing
System testing covers the whole system. Most functional failures should be identified at the unit and integration levels. In turn, system testing, usually focuses on non-functional requirements – security, performance, accuracy, reliability, etc.
At this level, interfaces to external applications, hardware, operating environment, etc. are also tested.
Add Comment