Go to previous article – 10 rules to follow in software testing
What is System testing?
System testing, performed before acceptance testing and after integration testing, is a test conducted on software or hardware that evaluates a complete and fully integrated software product and how it complies with its specific requirements.
It tests the system’s behavior. Similarly, to acceptance testing, system testing falls within the category of black box testing which means the tester does not have to have any knowledge of the inner code design.
Those who carry out these rigorous tests are usually specialist testers or independent testers and should generally explore the functional as well as the non-functional requirements of the system test. The tests are sometimes based on use cases, risks or requirements specifics, business processes, or other system resources.
Since there are numerous software components to a single system, system testing involves a series of different tests, each one performed to exercise the full system and not only part of it. This occurs after all of the individual software components pass the integration testing procedure; there can be no inconsistencies between the parts of the software integrated together.
Any defects within the system as a whole or within its inner-workings will be detected during this test and presented in the results. This is also known as end to end scenario testing where the external peripherals are checked as well.
Not only are the software components tested but also the design, behavior, and expected results; the system is tested with the intention of it surpassing the software or hardware specifications. The overall and final outcome should be an efficient product that meets the user’s requirements and ensures a healthy experience.
As mentioned above, before system testing can take place a few things must happen.
Unit testing must happen followed by integration testing. Once those two procedures pass system testing may begin. System testing is a very broad term as it covers more than fifty types of test procedures. Which of the fifty types of system tests are used depends on who is testing the product, the time and resources available, and the testing budget.
If the tester is coming from a large company he/she may use different methods than someone coming from a smaller company; they may also have access or not have access to the same types of tools or have the same budget.
A few of the fifty types of system testing that may be used are:
- Load testing– This ensures the software will be able to function properly under the specified load requirement.
- Recovery testing- Making sure a system can recover from a crash is imperative. That is why testing for software solution and recovery reliability is so important.
- Usability testing- Usability focuses on how easy the user can access the software and navigate it as well as the ability of the software testing to handle its objectives.
- Migration testing- Moving software from one system infrastructure to another can be complicated and easily ridden with mistakes. This type of test is done to ensure the move can happen without any issues.