We all agree to the fact that any system that we use in our day to day life should be well functional without any flaw or defect whether it is an aeroplane, a car, a software etc. Let’s take an example of personal computer (PC). A PC has a monitor, motherboard, mouse, microprocessor, DVD player, RAM, hard disk, keyboard, etc. All of these parts are manufactured separately and individually tested before they could be assembled into a PC. Again different motherboard supports different microprocessor like 32 bit or 64 bit, different capacity RAM, hard disk, etc. Thus to carve a complete system, compatibility test is done after integration test. When complete system is assembled into PC, a system test is done to check all assembled part are working as expected. Once PC is ready it undergoes acceptance test done by the end user or the vendor who sells PC in the market.
In the similar way software is developed into different modules and each module is unit tested and then these modules are integrated for integration testing. This constitutes entire system which undergoes System Testing to test after integration all modules together are doing good. Once system is tested it undergoes acceptance test by client or end user.
Checkout more on System Testing: What? Why? & How?
System Testing Approach:
- Unit Testing: When code is written for project modules, it is tested at the unit level. Since this testing requires knowledge of code therefore it is known as white box testing and usually carried out by the developer.
- Integration Testing: Unit tested modules are integrated to form a system, in this testing compatibility of modules are tested i.e. whether they are working as expected when integrated together or not.
- System Testing: System testing is also known as black box Testing and it is conducted to test the functionality of the system that it is behaving as expected.
- Acceptance Testing: Once system is ready, it undergoes testing by end user or client to verify it meet the user expectations and all desired functionalities.
Types Of System Testing:
- Usability Testing: To test that the user interfaces are user friendly and easy to operate and use.
- Documentation Testing: To test that the user manual and system guide is correct and complete.
- Functionality Testing: To test that the system functionalities are behaving as expected and specified in software requirements document.
- Inter-Opearbility Testing: To test that the system compatibility with other third party software products.
- Performance Testing: To test that the performance of the system and to make sure system does not break while operating with available resources.
- Stress Testing: To test that the system behavior when it is operated under stress and to mark its break point.
- Load & Stability Testing: To test that the system is capable enough to withstand expected load without breaking down.
- Reliability Testing: To test how long the system can operate without developing any issue or error.
- Regression Testing: To make sure that new functionalities added into the system does not break the existing functionalities.
- Compliance & Regulatory Testing:To test that the system specification and operation complies well with required regulators.
- Security Testing: To test that the system is secured enough to protect it from unintended users.
- Recoverability Testing: To test how well the system can recover after breakdown or outage without impacting the business.
System Testing Main Focus Areas:
- Hardware Interfaces: System interfaces like software connectivity with USB port, reading DVDs, etc. are working fine in a system.
- Complex functionalities: System is behaving as expected for complex functions like output to a file in desired format, etc.
- System Security: System integrated as a whole is secured enough and allows intended users to access the system functionalities assigned to user.
- Disaster Recovery / COB Testing: How long a system doing to take to recover from outage or disaster without impacting the continuity of business.
- Performance Testing: Performance testing is done to make sure system is able to withstand the unexpected load or request without breakdown.
- User Interface: How easily system is responding to user interface for request like AJAX call, button click, file upload, etc.
- Install ability: How easy the software is to get installed without much effort or knowledge needed.
- Documentation: How efficiently use manual is documented to use the software by end user.
- Usability: How easy the system software is designed so that it can be put into use by naïve user.
- Load or stress testing: This testing define the maximum load capacity of the system software before it could breakdown or crash.
- Backward Compatibility: If a new version of software is developed, new system should make sure that it supports all the existing interfaces and functionalities that exists in the old version and on the top of that new functionalities are supported.
Advantages of System Testing:
- System Testing covers full end to end testing.
- System software architecture and business requirements are both tested in system testing.
- Proper system testing help in mitigating after production go live issues and bugs.
- System testing is conducted in an environment similar to production environment or sometimes it is done with prod parallel test environment where same data is feed to exiting system and new system to compare the differences in functionalities added and removed. This helps the user to understand the new system better and feel comfortable with new functionalities added or existing functionalities amended or removed.
Over to you on System Testing:
System testing is the type of testing to check the behavior of a complete and fully integrated software product based on the software requirements specification (SRS) document. The main focus of this testing is to evaluate Business / Functional / End-user requirements.
System testing is very essential before any project “Go live” as it ensures that all required software functionalities are in place and work as expected.
If you really like this article, consider subscribing to get all Testing Updates in your Inbox for FREE. To get testing tips Click Here.