
A system test is a test that is executed after building a system or software.
This is done to ensure the quality of the system by confirming that the entire system and software are per the specifications and that the required functions and performance are satisfied.
This time, we will introduce the ST that are carried out in the process of system development, such as the flow of system development tests and the types and procedures of the main tests.
table of contents
- 1. What is a system test?
- 2. System development test flow
- 3. Main system test seeds
- 4. System test procedure
- 5. System testing ensures high quality
What is a system test?
System testing is one of the testing methods performed as part of system development, and is also called “comprehensive testing”. It is often done in the final stages of system development and is tested with the same settings as in actual use. In the ST, we verify whether the developed system works as expected and whether the built system meets the function and performance requirements according to the specifications. By conducting multifaceted tests in the same environment as the production environment, assuming actual usage conditions, it is useful to discover bugs and defects that are not known in the development environment. In addition, tests are performed that include the hardware from a bird’s-eye view of the entire system, not just a part of the system, so defects related to the hardware environment can be detected.
The ST is performed at the final stage of development after completing the unit test to check each program or function and the integration test to check if there are any bugs by combining the programs. Through thorough testing before delivery, you can ensure the quality of your system and reduce the risk that remains after delivery to your clients.
System development test flow
In general, system testing involves making a plan and then building a test environment. The test is done after creating the items, preparing the data, and confirming the procedure. If the plan itself doesn’t work well, or if you get stuck in the middle, it will affect the progress of the entire project.
1. Unit test
In system development, unit tests are performed first. In the unit test, the created programs are individually tested one by one to verify whether they operate normally, and the functions, performance, operability, etc. of each module (part) are checked.
2. Integration test
Next, perform an integration test. In the integration test, we combine multiple modules confirmed in the unit test to verify that there are no problems and that the connection is successful. Perform it in several steps, from small joins to large joins.
3. System test
Finally, all the programs and hardware are combined to test the entire system. The system test is the final test on the developer side. While running the hardware, it performs all the expected processing of all subsystems, such as normal batch processing, monthly processing, quarterly processing, and annual processing.
The ST is performed when the integration test is completed and the modification is completed. However, the test plan itself has already started from the basic design stage of the system.
The purpose of system testing is to make sure that the specifications determined in the basic design are met. If there is no problem with the ST, it will be handed over to the client, and it will operate and move to the user test (operation test). If there is no problem with the user test, it will go to production as it is.
Main system test types
System tests are divided into several types depending on what is verified. We will explain the contents and items of typical system tests.
● Confirmation test
<Regression test (regression test)>
This is a test to check if the unchanged part is affected or a new defect occurs in another part when the system is modified. Always do this every time you modify your system.
<Degrade check test>
When you make a fix to your system, check to see if you have reverted to a previous version or have a fixed bug again.
● Evaluation test
<Security test>
Check that security-related functions such as prevention of unauthorized access from the outside and prevention of information leakage are operating according to the specifications. It is indispensable in a system where an unspecified number of users are expected.
<Usability test>
Check whether the system is easy for users to use, such as operability, learning, visibility, and comprehension. It also leads to the satisfaction of the users who used it.
<Fault tolerance test>
This is a test to ensure that the system works with minimal functionality in the event of a failure. For example, generate a pseudo failure such as a hardware failure or a database server down, and check the failure response and recovery procedure.
● Load test
<Performance test>
Based on the performance requirements of the system, the performance is evaluated and judged whether the processing capacity meets the specifications. The response time is measured and optimized for each condition such as system time efficiency and resource efficiency.
<Long run test>
Keep the system running continuously for some time. This is a test to confirm the reliability of the system, which verifies that the performance does not deteriorate or stop.
<Stress test>
Make a lot of access at once to see if the system works properly under overload. Detects exclusive control, conflict conditions, memory leaks, etc., and verifies the situation under heavy load.
<Road test>
Measure the normal and peak behavior of your system to see if it can withstand peak operation.
<Capacity test>
Measure the largest transaction that can run without sacrificing performance. This is a test to consider how to enhance the system when the number of users and the amount of data increase.
System test procedure
System testing uses hardware to test the entire system. For business applications, use the same data as the actual data.
● Creating a test plan
Create a “system test plan” by summarizing the policies and outlines of the entire system test. The plan defines the overall direction of the test, including the purpose and scope of the system test, implementation method, test environment, and schedule.
● Creation of specifications
Create a “system test specification” based on the ST plan. The system test specification is a summary of the actual test work. In addition to specific items such as ST scenarios, test data, and test cases, the specifications also determine who will perform which test and how much to pass.
System test plans and ST specifications are shared with all system development members and clients to confirm the direction.
● Building the environment
Based on the system test specifications, we will build an environment for conducting ST. As a general rule, prepare the same machine and attached hardware as the production, and verify the operation of the entire system from the hardware, OS, and middleware.
Prepare the same data as the production, such as master data and transaction data. By using the same data as the production, check if there are any unexpected operations or problems.
● Implementation of system tests
Perform the tests specified in the system test specifications. If you find a bug or bug, fix it and test again.
After executing all the scenarios and confirming that the system works with the expected test data and test cases, the ST is completed. Then hand it over to the client.
System testing ensures high quality
In many cases, system tests cannot be performed satisfactorily and are omitted, such as “the specifications and requirements have changed many times” and “the delivery time is tight and there is no test time”.
Depending on the delivery date, the test may be completed by the unit test or integration test, and the ST may be omitted.
Sure, system testing can be time-consuming and costly, but without system testing, you won’t know where an unknown glitch will occur.
Thorough system testing will improve the quality of the entire system and make maintenance easier after the start of operation.
System testing is cost-effective and is an essential test for system development.
If you ever want to know about similar things, check out the Facebook page Maga Techs