Test Plan & Data – Two Important Things for a Software Testing Process
Proper inputs and prior planning are mandatory needs for any process to execute successfully in order to get the desired results from it. Similar is the case in the software testing process too where the testing process is planned in a series of steps prior it’s actual execution. The performance of the software subject to specific work conditions is tested by providing the necessary inputs or test data required to make the software start working.
For example, consider that an internet banking application is being tested to see whether it shows the relevant information about the account of the account holder when he/she enters the account holder number in it. Here the user will test the software by entering different kinds of input which would be tested for its reliable performance in showing up the exact internet banking facilities available for the user upon the entrance of his/her account holder number.
Hence, the software tests are conducted to find out the reliability of software to produce the actual output as desired from it when the proper input is provided.
What actually are Test Plans and why do you need them in a Testing Process?
A test plan is a schedule of activities and information of various activities to be done or requirements in the testing process.
Planning is an important activity that ensures a perfect testing process as desired and hence saves up the time of the testers who do not have to think or get involved in planning things at the time of execution. The test plans made prior to the testing process, will provide an answer to various questions that may arise in mind of a tester like what needs to be used in the process, responsibilities of the testers, what will be the critical items for testing, what will be the scope of the process, how long it would take to test the software and various other things about the testing process.
The test plans are mandatory before starting the actual testing and are usually required for three main reasons in a software testing process. These can guide the process, serve as the means of communication among the team who require to know about the testing and lastly managing the change in the process which becomes much easier with a prior plan that can be updated as the process progresses and hence makes it easier for the tester to keep on the testing process go in tune with the project requirements in order to ensure maximum accuracy in the testing.
A test plan would be a document containing the brief description of the responsibilities of people involved in the process. It would define the testing scope, schedule and duration of the testing process and would give a clear idea of the important things to be focused on during the process. Information like defect reporting and documentation and the technical environment, data, work area and interfaces used in testing can also be found in this important document.
Following is the template of an IEEE standard software test plan highlighting the components mandatory to be produced in test plan.
1) Identifier of the test plan: Every test plan is given a unique identifier so that the documentation of the test plan may vary from all other documents.
2) Short summary of the software to be tested: A short description and references for better understanding the test plan are appropriate. Definitions of unfamiliar terms may be included.
3) What are to be tested: This would be the list of software items that are to be tested in the process. Here the software is tested from user’s point of view
4) Features to be tested: in this section of the plan, characteristics of the items to be tested would be highlighted. These could be the things like functionality, security, portability, performance, usability etc of the software. However following this tester may include a section describing about the features not to be tested during the practice.
6) The testing method: It covers the overall methodology of testing to ensure that all items and their features will be adequately tested.
7) Criteria for acceptance of software upon testing: This section defines the criteria that help the tester to identify whether each item has passed or failed during testing.
8) Suspension criteria: It describes different conditions under which testing will be suspended.
9) Test resumption needs: This describes the subsequent conditions after suspension under which testing will be resumed.
10) Tasks: This is the list of tasks to be executed for the testing process.
11) Environment: This is the list of needs required to develop an environment suitable for performing the testing process. It may include the list of entities like software, hardware, facilities, people and tools required for performing the test.
12) Manpower and training: This specifies the number of people that would be required for the process and training that would be required to be provided to them if necessary.
13) Responsibilities: This section of the test plan highlights the individuals or persons and their responsibilities in the process.
14) Schedule: Defines the important milestones and dates in the process, including the starting as well as the finishing date.
15) Risks: This section highlights the risk assumptions in the test process.
16) Deliverables: These represent the documents to be created during the testing process.
17.) Approvals: The list of persons who should approve the project and upon whose approval the process would move on to the next level.
So what actually is this Test Data and is it so important in Software Testing?
Yes, test data is a kind of input for the testing process and therefore is a crucial requirement for software testing. If a tester wants to find the output from the software program or needs to evaluate the performance of the software, he/she has to provide the necessary input to it. Input provided to the software system to perform would be termed as the test data. Using the test data, one can evaluate the software in two ways – the kind of output the software generates for the given data or whether the software is able to manage with unexpected, extreme or unusual inputs or not. Proper test data in a testing process ensures that the quality of the software is maintained by enabling accurate evaluation of all the possible test scenarios for analysis of the software.
For instance, consider the internet banking application again. Here the person is required to enter his account holder number which suppose is to be a ten digit number with alphabets for sure while excluding all the special characters. Hence, here the appropriate test data for which the proper output can be expected would be something like 345GAF7892. But however, the tester tests the software with uncertain or extreme conditions to check the performance of the system like he may enter code like 345_GAF*7892. This kind of input should generate an error as expected.
Different testing processes like automated, white box, black box or security testing will require different set of test data to be provided which can be generated in different ways. The test data can either be generated through tools or manually. Whatever be the process of data generation, it’s the appropriateness or accuracy in the testing data that will allow the tester to locate and correct the serious flaws in functionality of the software program.
Hence, in this article, the significance of proper test plans and test data in a testing process is explained. Here, the test plan is explained as the necessary documentation of pre-planned needs of the testing process while the test data is seen as the important requirement for validating the software performance in order to ensure its reliability with input provided by the users.