System testing is a process of testing, that validates the complete and also fully integrated software product. The main intention of a system test is to evaluate the end-to end system specification. That is basically the software, which is only one element of a larger computer based system. System testing is actually a sequence of different tests whose purpose is to exercise the full computer based system. System testing comes under the Black box testing.
How to verify the software using System testing?
Testing is completely combined software applications including external devices in order to check how the components interact with one another. It is called as end-end testing scenario. Verifying in detail, testing of every input in the application to check for expected outputs. Testing of the user’s experience with that application. System testing is done by professional agents when the software gets completed and before it gets introduced to the market.
How to perform system testing?
To test the system as a whole, requirements and expectations should be clear and the tester should understand the real-time usage of software applications. There are third party tools, versions of OS, architecture of OS that can affect the system’s functionality, performance, security, recoverability.
System testing is performed in a planned and systematic form. Below are the steps to perform test.
- First step is to create the plan.
- Then create test cases and test scripts.
- Prepare the test data required for this testing.
- Run the system test cases and script.
- Notify the bugs, re-testing is done once the bug is fixed.
- Regression test is done to verify the impact of change in code.
- Repeating the test cycle until the system is ready to be deployed.
- Signing off from the testing team.
Procedure to write system test cases:
- Test case Id
- Test suite name
- Description- which describes the test case to be executed.
- Test Steps- step by step procedure to explain the way to perform testing.
- Test Data- Dummy data is ready to check the appliance.
- Expected result- expected result as per the need document is provided during this column.
- Actual result- result after the execution of the test case provided in this column.
- Pass/fail-comparison in actual and expected result defines the pass/fail criteria.
Types of system testing:
Functionality testing- To make sure that the functionality of the product is working as per the requirements defined within the capabilities of the system.
Recoverability Testing– to make sure how well the system recovers from the varied input errors and other failure situations.
Interoperability testing– To make sure whether the system can operate well with third party products.
Performance testing- to make sure that the system’s performance under the various condition works as expected, in terms of performance characteristics.
Scalability testing-To confirm the system’s scaling abilities in various terms like user scaling, geographic scaling and resource scaling.
Reliability testing-To make sure the system can be operated for a longer duration without developing failures.
Regression testing- to confirm the system’s ability as it passes through an integration of various subsystems and maintenance tasks.
Documentation testing- To confirm that the system’s user guide and other help topics documents are correct and usable.
Security testing-To make sure that the system does not have unauthorised access to data and resources.
Usability testing- To make sure that the system is easy to use, learn and operate.
Consider an example a car manufacturing. A car manufacturer does not produce the car as a complete car. Each and every component of the car is manufactured separately like seats, steering, mirror, break, cable, engine, wheels etc. After the production of each component, it is tested independently whether it is working the way it is supposed to work and it is called unit testing.
When each part is assembled with another part the assembled combination is checked if assembling has not produced any side effect to the functionality of each component and whether both components are working together needless to say which is named as integration testing. Once all parts are assembled and car is ready it is not ready actually. The complete car needs to be checked for different aspects as per the requirements explained like the car which can be driven smoothly breaks, gears and other functionality working properly, car does not show any sign of tiredness after being driven 2500 miles continuously, colour of car is accepted and car will be driven in any kind of roads like smooth and rough, sloppy and straight etc. Similarly the software programs are developed separately, integrated, and tested at each levels. The complete effort of testing software after it integrated is called as system testing.