Approach for System Testing
System testing of software is a testing process which is conducted on a complete, integrated system to evaluate the system’s compliance with its specified requirements whereas Functional testing is testing each and every functionality of the application individually.
System testing is testing the application as a whole, without leaving even a single object. This type of testing involves testing of the functionality, performance, security; user interfaces etc, System testing falls under black box testing. It doesn’t require the programming knowledge. In system testing software test professional aims to detect bugs, both within the interfaces and also within the software as a whole. However, during the integration testing of the application the software test professional aims to detect the bugs / defects between the individual units that are integrated together.
During the development developers perform the unit testing. After the integration of all components of the software being developed, the whole software system is rigorously tested to ensure that it meets the specified business, functional & non-functional requirements. System Testing is done after the unit testing and integration testing are completed. In many organizations there are separate and dedicated teams for performing System Testing.
Why system testing is Important?
System Testing is a crucial step in Quality Management Process.
1) The System Testing enables us to test, verify and validate both the Business requirements as well as the Application Architecture matches.
2) The System is tested to verify if it meets the functional and technical .requirements.
3) The application/System is tested in an environment that closely resembles the production environment where the application will be finally deployed
Pre Requisites for System Testing:
The prerequisites for System Testing are:
A) All the Individual components should have been successfully Unit Tested.
B) All the components must have been integrated and Integration .Testing should be completed.
C) Test environment should be ready to carry out testing process.
Steps needed to do System Testing:
The following steps are important to perform System Testing:
1: Create a Test Plan
2: Create Test Cases
3: Identification of test data for system testing.
4: Create Scripts if necessary
– Build environment and
– to automate Execution of test cases
5: Execute the test cases
6: Fix the bugs if there are any and perform regression testing
7: Repeat the test cycle.
What is a ‘System Test Plan’?
Test plan is a document which includes introduction, assumptions, list of test cases, list of features to be tested, approach, deliverable s, resources, risks and scheduling.
The contents of a software system test plan may vary from organization to organization or project to project. It depends how we have created the software test strategy, project plan and master test plan of the project. However, the basic contents of a software system test plan should be:
– Goals & Objective
– Area of focus (Critical areas)
– Deliverable s
– System testing strategy
– Entry and exit criteria
– Suspension & resumption criteria for software testing
– Test Environment
– Staffing and Training Plan
– Roles and Responsibilities
How to write system test cases: The basic objective of writing test cases is to validate the testing coverage of the application. The system test cases are written in a similar way as we write functional test cases. However, while creating system test cases following points needs to be kept in mind:
They cover all the use cases and scenarios
– The Test cases were prepared as per the technical Requirements and Specifications.
– The Test cases validate the technical Requirements and Specifications
– The Test cases verify if the application/System meets the Business & Functional Requirements specified
– The Test cases may also verify if the System meets the performance standards
There is no assurance that, the person who authored test cases will execute them. So while preparing the test cases see that they simple, easy to understand & all the steps were in proper sequence, so that it will easy for the executioners to execute them.
- Test Case Name
- Steps to Execute – Steps to follow for execution of the test case
- Expected Result
- Defect Id.
Steps for Effective System Testing:
There are various factors that affect the success of System Testing:
1) Test Coverage: Test Coverage means the test cases that were designed & then executed should cover all the requirements, Functionalities as per the use cases, Business Requirements, Technical Requirements, and Performance Requirements. System Testing will be effective only to the extent of the coverage of Test Cases. Adequate Test coverage implies the scenarios covered by the test cases are sufficient. The Test cases should “cover” all scenarios.
2) Test Execution: Executing the test cases is one of the important phases in STLC. The Test cases should be executed in the manner specified. If there is no time to execute all the Test Cases, we have to execute the High Priority test cases first & then if the time permits others.
3) Defect Tracking: It is the process of finding defects in a product or in Software. The defects found during the process of testing should be tracked.
4) Build Process Automation: A Lot of errors occur due to an improper build. ‘Build’ is a compilation of the various components that make the application deployed in the appropriate environment. The Test results will not be accurate if the application is not ‘built’ correctly or if the environment is not set up as specified. Automating this process may help reduce manual errors.
5) Test Automation: Automating the Test process could help us in many ways:
a. The test can be repeated with fewer errors of omission or oversight
b. Some scenarios can be simulated if the tests are automated for instance
simulating a large number of users or simulating increasing large amounts
of input/output data
6) Documentation: Proper Documentation is very much necessary. It helps us to keep track of No.of test cases executed, bugs raised, etc. It provides clear picture about the tasks that were done & to be done. It also helps create a knowledge base for current and future projects..