I have tried to compile the Testing stages involved in V-model.These are basically my notes from Foundations of Software testing book by Rex Black.
Four types of testing namely-
1) Component Testing
2) Integration Testing
3) System Testing
4) Acceptance Testing
COMPONENT TESTING(CT)
– CT is also known as Unit,module and program testing.Searches for defects and verifies the functionality of software e.g. modules,programs,objects etc. that are separately testable.
– May be done in isolation from the rest of the system.
– Stubs and Drivers are used to replace the missing software and simulate the interface between software components.
– A stub is called from the software component to be tested.
– A driver calls a component to be tested.
– CT includes testing of functionality and specific non-functional characteristics such as resource behavior( e.g. memory leaks) performance or robustness testing as well as structural testing.
– Test cases are derived from work products such as software design or data model.
– A module can be tested by a different programmer from the one who writes the code.
– One approach in CT is used in Extreme Programing(XP) is to prepare and automate test cases before coding.This is called test-first approach or test-driven development.It is highly iterative and based on cycles of developing test cases.
INTEGRATION TESTING(IT)
– Interfaces between components interactions to different parts of system such as OS hardware or interface between systems.
– Carried out by a an integrator.
– Can be carried out after component testing-known as component integration testing or after system testing known as System Integration testing.
– Greater the scope of integration the more difficult is to isolate the failures to a specific interface which increases risk.
– Big-bang approach-all the components or systems are integrated simultaneously after which everything is tested as a whole.
Advantages- Everything is finished before integration testing starts
Disadvantage- Time consuming;Difficult to trace the cause of failures with late integration.
– Incremental Testing approach-all programs are integrated one by one and a test is carried out after each step.
Advantage- Defects are found early
Disadvantage- Time-consuming since stubs and drivers are to be used in the test.
Types of Incremental Testing
1) Top-Down-Testing follows the architectural structure.Components or systems are substituted by stubs.
2) Bottom-Up-Control flows upwards.Components or systems are substituted by drivers.
3) Functional Incremental-Integration & testing takes place on the basis of the functions or functionality as documented in functional specification.
– Incremental testing is preferred over Big Bang.
– Testing of specific non-functional characteristics(e.g. performance) may also be included in integration testing.
– May be done by developer or an independent testing team.
SYSTEM TESTING
– Concerned with the behavior of the whole system/product as defined by the scope of a development project or product.
– Include test cases based on risks/business requirements,business processes,use cases and interaction with Operating system.
– It is most often the final test on behalf of development to verify that the system to be delivered meets the specification and its purpose to find more defects.
– Carried out by independent testing team or by specialist testers.
– Should investigate both functional and non-functional requirements by the system.
– Non functional requirements include-performance and reliability.Deals with incomplete or undocumented requirements.
– System testing of functional requirements is done by Black Box Testing.
– Requires controlled test environments with regard to control of software versions,test ware and test data.
ACCEPTANCE TESTING(AT)
– After system testing almost all defects are corrected the system is then delivered to user or customer.
– Testing is responsibility of user or customer,stakeholders might get involved.
– Goal is to establish confidence in the system,part of the system or specific non-functional characteristics i.e. usability of the system.
– Focused on validation type of testing
– COTS(Commercial Off The Shelf) software product may be acceptance tested when it is installed or integrated.
– Acceptance testing of the usability of a component may be done during component testing.
– Acceptance testing of a new functional enhancement may come before system testing.
– User Acceptance test focuses mainly on the functionality thereby validating its fitness-for-use of the system by business user.
– Operational acceptance test focuses or validates whether the system meets the requirements for operation.System administrator performs it.
– Two types of AT-
1) Contract AT
2) Compliance AT
1) Contract AT
– Performed against a contracts acceptance criteria
– Acceptance is defined when contract is agreed.
2) Compliance AT
– Performed against the regulations which must be adhered to such as governmental,legal or safety regulations
– Also known as Regulation AT.
For COTS mass market product there are two types of testing
1) Alpha Testing
– Takes place at developers site.
– Developer observe the users and note problems.
2) Beta Testing or Field Testing
– Sends the system to users who install and use it under real world conditions.
– User sends observation notes