In our previous post, we saw the first two levels of testing. In this post, we will see about System Testing and Acceptance Testing processes.
System testing phase starts once the integration testing phase is completed successfully. In this phase, the system with all components integrated is ready for further testing as a whole. In system testing the behaviour of whole system/product is tested as defined by the scope of the development project or product. System testing is usually required before and after a system is put in place
It may include tests based on risks and/or requirement specifications, business process, use cases, or other high-level descriptions of system behaviour, interactions with the operating systems, and system resources. System testing is most often the final test to verify that the system to be delivered meets the specification and its purpose. System testing is carried out by specialists testers or independent testers. System testing should investigate both functional and non-functional requirements of the testing. Some system testing types are,
Usability Testing – Usability testing mainly focuses on the user’s ease to use the application, flexibility in handling controls and ability of the system to meet its objectives
Load Testing – Load testing is testing of application software under real-life loads. Load testing is performed to determine a system’s behaviour under both normal and anticipated peak load conditions.
Regression Testing – Regression testing involves testing done to make sure none of the changes made over the course of the development process has caused new bugs. It also makes sure no old bugs appear from the addition of new software modules over time.
Recovery Testing – Recovery testing is done to demonstrate a software solution is reliable, trustworthy and can successfully recoup from possible crashes.
Migration Testing – Migration testing is done to ensure that the software can be moved from older system infrastructures to current system infrastructures without any issues.
Functional Testing – Also known as functional completeness testing, functional testing involves trying to think of any possible missing functions. Testers might make a list of additional functionalities that a product could have to improve it during functional testing.
Hardware/Software Testing – IBM refers to Hardware/Software testing as “HW/SW Testing”. This is when the tester focuses his/her attention on the interactions between the hardware and software during system testing.
Acceptance testing is a test conducted to determine if the requirements of products are met. Acceptance testing is basically done by the user or customer although other stakeholders may be involved as well. Acceptance testing is most often focused on a validation type testing.
- User Acceptance testing: User Acceptance testing is the software testing process where a system is tested for acceptability & validates the end to end business flow. Such type of testing executed by the client in a separate environment (similar to the production environment) & confirm whether the system meets the requirements as per requirement specification or not.
- Alpha testing: Alpha testing is conducted by Customer at the developer’s site, it is performed by potential users like developer, end users or organization users before it is released to external customers
- Beta testing: Once the alpha testing is over, beta testing follows in order to improve the quality of the product and see that the product is as per the requirement of the customer. This form of testing is done a couple of days or weeks before the launch of the product. Beta Testing is always open to the market and public. It is carried in the real world scenario with the people who are actually going to use the product.
- Contract Acceptance Testing
- Contract Acceptance Testing means that a developed software is tested against certain criteria and specifications which are predefined and agreed upon in a contract. The relevant criteria and specifications for acceptance must be defined when the contract itself is defined and agreed upon.
- Regulation Acceptance Testing
- Regulation Acceptance Testing, also known as Compliance Acceptance Testing, examines whether the software complies with the regulations. This includes governmental and legal regulations.
- Operational acceptance testing
- Also known as Operational Readiness Testing or Production Acceptance Testing, these test cases ensure there are workflows in place to allow the software or system to be used.
This should include workflows for backup plans, user training, and various maintenance processes and security checks.
This comprises of the various level of testing. It essential to spend a considerable amount of time in each of the levels. As the progression of the software entirely depends on the level of testing done.