In: Computer Science
escribe the purpose of the following testing procedures:
Component testing
Integration testing
System testing
Acceptance testing
Functional testing
Volume testing
Load Testing
Stress testing
Recovery testing
Confirmation testing
Regression testing
Maintenance testing
White-box testing
Black-box testing
Answers
1) COMPONENT( also called MODULE ) testing
Is a type of software testing in which testing is performed on each individual component separately without being integrated with other components. Generally a software is made up of several modules/components. Component testing deals with testing these components individually. For each of the components a test senario is defined. It is performed by testers and is done after Unit testing is over.
----------------------------------------------------------------------------------------------------------------------------------------------
2) INTEGRATION testing
Is a level of software testing when the complete software is combined togther and tested as a group/single unit. The purpose of this testing is to find faults in the interfaces and interaction between integrated components of a system. It is of two types:
(a) Component integration testing: Tests the interfaces and interactions between components
(b) System integration testing: Tests the entire system and all its compoents are interacting correctly
------------------------------------------------------------------------------------------------------------------------------------------------
3) SYSTEM testing
Is a blackbox testing technique( a test which is not concerned with the internal code of the software) performed on the entire system, for meeting specific requirements. Its input are all those components which have successfuly passed the integration testing. It tests for any inconsistency between the units/modules.It is performed on the entire system in the context of the SRS(Software Requrement Specifications)/FRS(Functional Requirement Specification).
4) ACCEPTANCE testing
Is the testing by the client to certify that the system meets all the requirements as specified and were agreed upon. This is the final phase of testing, after which the software application is sent to production department. It is carried out by running an acceptance test script and then comparing the results with the expected ones.There are four types of acceptance testing:
(i) User acceptance testing
(ii) Business acceptance testing
(iii) Alpha testing
(iv) Beta testing
They are designed to reach at a conclusion such as , accept the system as it is delivered; or accept the system after the requested modifications will be done or completely reject the system.
------------------------------------------------------------------------------------------------------------------------------------
5) FUNCTIONAL testing
It checks that each function of the software operates correctly and exactly as specified in the SRS document. It is also a blackbox testing. Each and every function of the software is tested with appropriate inputs, and verfying them with the outputs. It generally involves checking the UI (user interface), how easy it is for a user to navigate through and use the software, database,security, APIs etc.
---------------------------------------------------------------------------------------------------------------------------------------------
6) VOLUME (also called FLOOD) testing
In this type of testing the software is subjected to a huge volume of data. Then the impact of volume on the system response time and behaviour(stability) is studied. It helps in designing the scalability plan of the system. It does an early detection of system bottlenecks and assures that the system is ready for real-world usage. It involves :
1. Checking system performance with increasing the volume of data in the database
2. Identify problems that are likely to occur when volume becomes larger than a certain limit.
3. To find the point beyond which the system becomes unstable.
----------------------------------------------------------------------------------------------------------------------------------------------
7) LOAD testing
It is a type of non-functional software testing, in fact it is a type of performance testing that determines the performance/system behaviour for a specific load , generally for normal and peak loads. Its actually a test to ensure that the system performs as expected when too many people are using it simultaneously. It involves simulating real-life user load. It typically involves testing the infrastructure of the application, if it is suitable for the application or not. It also aims of finding how many simultaneous users the system can handle and try to identify maximum operating capacity
------------------------------------------------------------------------------------------------------------------------------------------
8) STRESS testing
This is also one of the performance testing techniques. It tests the software performance under extreme load conditions. It tries to break the system by overloading its resources. Its main objective is to :
1. Make sure the system recovers from system failures easy i.e. it is used to test the recoverability of the system. The system should show an error message when opperating under extreme load conditions and should recover soon once the conditions normalize.
2. Hardware issues
3. Data corruption issues
-------------------------------------------------------------------------------------------------------------------------------------------
9) CONFIRMATION testing( also called RE-TESTING)
Is done to make sure the test cases which failed in the last execution are passed now , once the defects have been removed from the system. The failed test cases are re-run to ensure thay have passed now, and the defects/faults are gone.
----------------------------------------------------------------------------------------------------------------------------------------
10) REGRESSION testing
Is a type of testing to that confirms that recent code changes are not adversaly affecting the existing features of the system. It is a selection of already executed test cases , which are re-executed to check if the existing features are working as expected.
---------------------------------------------------------------------------------------------------------------------------------------------