Software Testing is one of the most important steps in the software development process. Software testing makes sure that the developed software satisfies all customer requirements and executes without errors. As the software developments paradigms and techniques has shifted from the initial waterfall software development to OOD/Agile and other newer concepts, testing has also shifted from conventional (traditional) testing towards Object Oriented Testing (OOT). But because waterfall development is still in use, conventional testing is still used by the testers.
What is Conventional Testing?
Conventional testing process takes place mostly when waterfall life cycle is used for developing software at organizations. Conventional testing always takes place during the test phase of the life cycle, which usually follows the development phase and proceeds the implementation phase. During this testing phase, mainly three kinds of testing will be conducted. System testing will make sure that the system features satisfy the customer requirements documented in the SRS (Software Requirements Specification), usually taking a black box approach. Integration testing tests the preliminary design by taking a functional and decomposition approach. Integration testing is based on the structure of the design using either a top-down or a bottom-up approach. Finally, unit tests make sure the detailed design is correct.
What is Object Oriented Testing?
Using Object Oriented (OO) analysis and design along with Agile and other recent software development methodologies lead to Object Oriented Testing. OO development is usually focused on the behavior. Testing is done having the emphasis on composition. That means design is created piece by piece and composed together to complete the full system. Because rapid prototyping and some form of incremental approach are used for OO development today, the three conventional testing levels (system, integration and unit testing) are not clearly visible in OO design (but they do exist most of the times). System testing (under OO testing) will take much of the same (black box) approach as conventional testing and will check the requirement specification (because requirements have to be verified regardless of the development process). Unit testing under object oriented testing is similar to conventional unit testing, but the basic difference is the definition of the unit used. Currently accepted units used for unit testing are classes and methods.
What is the difference between Conventional Testing and Object Oriented Testing?
Conventional testing is the traditional approach to testing mostly done when water fall life cycle is used for development, while object oriented testing is used when object oriented analysis and design is used for developing enterprise software. Conventional testing focuses more on decomposition and functional approaches as opposed to object oriented testing, which uses composition. The three levels of testing (system, integration, unit) used in conventional testing is not clearly defined when it comes to object oriented testing. The main reason for this is that OO development uses incremental approach, while traditional development follows a sequential approach. In terms of unit testing, object oriented testing looks at much smaller units compared to conventional testing.