System testing is carried out to explore system functionality. It is performed during each build and during software release stage as alpha and beta testing.
System testing is carried out under the following conditions:
- unit and integration testing stages are successfully completed
- software development is done in accordance with specification
- appropriate testing environment is created
At the system testing stage we explore behavioural aspects and design of the system, and also its compliance with believed expectations of user.
As a rule, we use two approaches:
- requirements based approach that involves creating test cases for each requirement
- use case based approach that consists in writing use cases, or scenarios, to check out the ways the system is used. The scenarios are verified with test cases.
System testing is performed in the following way. Primarily, we write a system test plan, then generate test and use cases. As the next step, we create test data used for system testing and execute test cases automatically. Afterwards we execute test cases in a regular way. As a result of testing, we draw up a report on detected bugs and conduct regression testing after their removal. The testing cycle is repeated until all bugs are eliminated.
This type of testing involves testing for correspondence to functional and non-functional requirements as well as adaptive testing, load and stress testing, usability testing, compatibility testing, UI testing, performance testing, etc.
When system testing is over, we provide a detailed report on detected bugs and their removal recommendations.