Basic Concepts of System Testing - A Beginners Guide https://www.softwaretestingclass.com/basic-concepts-ofsystem-testing-a-beginners-guide/
2 Overview 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 airplane, 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. What is 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. This is black box type of testing where external working of the software is evaluated with the help of requirement documents & it is totally based on Users point of view. For this type of testing do not required knowledge of internal design or structure or code. This testing is to be carried out only after System Integration Testing is completed where both Functional & Non-Functional requirements are verified. In the integration testing testers are concentrated on finding bugs/defects on integrated modules. But in the Software System Testing testers are concentrated on finding bugs/defects based on software application behavior, software design and expectation of end user. Why system testing is important a) In Software Development Life Cycle the System Testing is perform as the first level of testing where the System is tested as a whole. b) In this step of testing check if system meets functional requirement or not.
3 c) System Testing enables you to test, validate and verify both the Application Architecture and Business requirements. d) The application/system is tested in an environment that particularly resembles the effective production environment where the application/software will be lastly deployed. Generally, a separate and dedicated team is responsible for system testing. And, System Testing is performed on staging server which is similar to production server. So this means you are testing software application as good as production environment. 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. Scalability Testing: To test that the system is scalable enough in terms of user, geographic, resources, etc. 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.
4 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.
5 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. How to do System Testing In Software System Testing following steps needs to be executed: Step 1) The first step is preparation of System Test Plan: Goals & Objectives Scope Critical areas Area to focus Test Deliverable Testing Strategy for System testing Testing Schedule Entry and exit criteria Suspension & resumption criteria for system testing Test Environment Roles & Responsibilities Glossary Step 2) Second step is to creation Test Cases: It is very much similar functional test case writing. In test case writing you should write the test scenarios & use cases. Here you should consider different type of testing like Functional testing, Regression testing, Smoke testing, Sanity testing, Ad-hoc testing, Exploratory testing,
6 Usability testing, GUI software testing, Compatibility testing, Performance testing, Load testing, Stress testing, Volume testing, Error handling testing, Scalability testing, Security testing, Capacity testing, Installation testing, Recovery testing, Reliability testing, Accessibility testing etc While writing test case you need to check that test cases are covering all functional, non-functional, technical & UI requirements or not. Step 3) Creation of test data which used for System testing. Step 4) Automated test case execution. Step 5) Execution of normal test case & update test case if using any test management tool (if any). Step 6) Bug Reporting, Bug verification & Regression testing. Step 7) Repeat testing life cycle (if required).