Test levels in Software Testing
Test levels are determined on basis where the tests are added and executed in the software development process.There are four testing levels which adhere to a logical sequence in order to reduce the risk of defects .
Different testing levels progressively test the simpler components and move to bigger more complex systems.
Four Test levels are :
Unit/ Component Testing
Unit testing is a software testing method by which individual units of software are tested to determine whether they are suitable for use.
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.
Data conversion / migration programs
|Developer who wrote the code
Integration means combining. Different tests interfaces between components, interactions with different parts of a system, such as the operating system, file system and hardware, and interfaces are combined and tested
The strategy employed can significantly affect the time and effort required to yield a working, higher-level element.
Note: ‘‘integration testing’’ is sometimes defined as the level of testing between unit and system..
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.
There may be more than one level of integration testing
- Component Integration Testing : tests the interactions between software components and is done after component testing
- System Integration Testing: tests the interactions between different systems or between hardware and software and may be done after system testing.
|Software and system design
|Sub-systems database implementation
System testing tests the system as a whole which enables testers to ensure that the product meets business requirements, as well as determine that it runs smoothly within its operating It’s a black box testing.
Some Important features of System Testing are:
- Done to minimize the risk of environment related failures not found in testing.
- In this testing, the test environment mimics the production environment as much as possible.
- Appropriate black-box techniques are used to check the functionality of the system
- It aims to check functional and non-functional requirements of the system, and data quality characteristics.
|System and software requirement specification
Risk analysis reports
|System, user and operation manuals
|Independent Testing team
Testing process where a system is tested for acceptability by stakeholders/users. The purpose of this test is to evaluate the system’s compliance with the business requirements and assess whether it is acceptable for delivery.
Some features of Acceptance testing are :
- Done to gain confidence in the system ,specific non-functional characteristics of the system. Assess the system’s readiness for deployment and use.
- Acceptance is usually the last stage of testing
- Performed by end users and other stakeholders against the business scenarios.
- It aims to verify functional and non-functional requirements of the system, and data quality characteristics.
- It is one of the most important types of testing, as it confirms that application meets the intended specifications and satisfies the client’s requirement.
- The QA team will have a set of pre-written scenarios and test cases that will be used to test the application.
Types of Acceptance Testing:
User acceptance testing :
This type of testing verifies if a system is fit for use by business users.
Operational (acceptance) testing :
Done by system administrators, which includes activities like:
- backup/restore testing
- Disaster recovery
- Maintenance tests
- Data loading and migration
- Check of security vulnerabilities
Contract and Regulation Acceptance Testing:
This type of testing is to verify that the produced software satisfies the contractual agreement. Acceptance criteria should be defined when the parties agree to the contract.Such as government, legal or safety regulations.
Alpha Testing :
Alpha testing is performed at the developing organization’s site but not by the developing team.
Beta testing, or field-testing:
It is performed by customers or potential customers at their own locations.Beta testing is done by a limited number of end users before delivery, the change request would be fixed if the user gives feedback or reports defects.
Risk analysis reports
|Fully integrated system
Operational and maintenance processes
|Customers or potential customers