Integration Testing Vs Unit Testing Vs
This article will present you with a complete idea about Integration Testing ,Unit Testing and System testing.
We will learn below topics in this article
- Testing the interfaces between components
- Tests communication between 2 components, not individual component functionality
- Integration Testing can be performed after unit testing and before system testing
- To validate to if different pieces of the modules work together as a whole.
- Scope is broad and puts the whole application under test
- Integration Testing is carried out by testers
Approaches to integration testing:
- Big Bang Approach
- Incremental Approach
- Sandwich Approach
Some features of integration testing
- Testing done to verify communication of data and actions across different systems, hardware, software or environmental components.
- It also tests nonfunctional aspects.
- Performed after integration of modules, software and external components.
- Integration techniques are used.Preferably this should be in incremental mode rather than a BIG BANG approach as it’s harder to isolate failures
- Aims to remove defects and performance issues due to integration of various systems.
- It is a level of the software testing process where individual components of a system are tested.
- Objective is to validate that each unit of the software performs as designed.
- Concerned with functional correctness and completeness of individual program units
Isolate each part of the program and show that the individual parts are correct.
Why Unit Test?
- Faster Debugging
- Faster Development
- Better Design
- Reduce Future Cost
Who performs it?
- Performed by software developers
- May also independent software testers (Understanding of code, architecture and design is required)
Some important points of Unit testing:
- Used to check or defects and functioning of an individual piece of code like object or class.
- Done at the time of code development. Defects are usually fixed straight away.
- Run or check of code using stubs, drivers and Simulators, Test Driven Development (Test First approach), unit test framework, debugging tool
- Unit testing mainly targets on checking functional and non functional aspects like unit code, performance, robustness, memory leakage etc.
- Performed by Developers.
- Testing complete, integrated system to evaluate the system’s compliance with its specified requirements.
- Carried out by specialists testers or independent testers.
- Covers both functional and non-functional requirements of the testing.
- Objective is verify and validate both the business requirements as well as the applications architecture
- Testing application thoroughly to verify that it meets the technical and functional specifications
Types of system testing
The mainly using types are
- Usability testing
- Stress testing
- Regression testing
- Functional testing
- Load testing
- Sanity testing
- Security testing
Entry criteria for system testing
- Complete software system should be developed
- Unit testing and Integration testing must be completed Specifications for the product have been completed
- Test scripts are ready
Exit criteria for system testing
- All the test cases for the system should be executed
- No critical defects should be opened
Application meets all the document requirements and functionalities