We know that in unit Testing a single program, single function, single module is tested and after that a integration testing is comes where We Testers test the integration between several modules and we need to ensure that there is proper data transmission and proper communication happening between the modules. And after integration testing we performs System Testing.
When whole Software is ready and integrated together then we need to perform the System Testing on the software and ensure that everything is working as per the requirements. Here not only the functional requirement is tested but also the non-functional requirements are tested. System testing is carried out by the testing team and to test the non-functional requirement testing a specialized testing team is needed. For example to perform a performance testing then performance testers are needed. Same with security testing, to perform a security testing a security testers are needed.
Understand one thing, in system testing we do not perform all the functional testing types. We only perform functionality Testing, Regression Testing, Retesting and smoke and sanity testing, don’t get confused with the diagram. And in case of non-functional testing, we always not need to perform all these shown testing types, it’s totally depends on the clients requirement, but like a eCommerce site it is needed to perform a performance testing on it, because when there is a special offer or any sell is going on eCommerce site then a heavy traffic is expected. and other types of non-functional testing like security testing is need to be conducted on Banking software, because in banking application data of user should be secured, data loss from banking application can cause a huge money loss so it is needed to perform a security testing on banking application.
First step of system testing is making a Test plan for the system testing. Here all the planning is done like resources, roles and responsibility of every testing team mates, then type of testing that is need to be performed (both functional and non-functional), scheduling the test activity etc. all things need to be planned.
Once System test plan is ready then second step is to write the test cases, unlike v-model we don’t write the test cases parallel to the development phase. Test cases is written against the requirement and if any functionality is difficult to understand then the tester may approach the developer, business analyst or the manager or even client also, to get the answer of all the queries. Once the Test cases writing work is done then it’s time to execute them against the Software. Here tester need to write the test cases for each and every requirement. Here we are going to test whole software not a particular part like unit or integration testing. And if there is a scope of automation testing then that the test script is created as per the scenarios and requirements. After writing the test cases to all test cases are executed against the software. The bugs found during testing of whole software are reported to developer. After bug fixing sanity, retesting and regression testing is done.
There are also test cases written for the non-functional requirement also .for example, for eCommerce site suppose there is one requirement say software should able to handle 5000 concurrent user simultaneously for 1 hour. So to evaluate this requirement testers need to perform different performance testing type example: Load Testing : here the software is subjected a 5000 concurrent user for an 1 hour, and in Endurance Testing : the Software is subjected to the 5000 concurrent user but the time is extended form 1 hour to server hour even whole day. And in Stress Testing : here the main aim is to break the system, tester increase the user limit from 5000 to 7-8000 even till the break point and time is also increased in this performance testing type and lastly Volume Testing : when the database is almost full or have lot of data then that might affect the system and it make slow down the system so that is also need to test how system performs under the heavy data. With the similar way the security and other non-functional types of testing is conducted by the specialized Testers. Based on the scope.
Main Points :
- System Testing is performs after the integration testing.
- System Testing is performed on fully integrated Software.
- In System Testing Functional and Non-functional both the aspect is tested.
- To perform non-functional testing a Specialized Testers are requires.