IEEE Std. 829 Test Plan Document
Before initiating any process or activity, it is always advised by experts to prepare a plan or strategy, which makes the whole process of testing, developing and more, easy as well as convenient. Similarly, during the process of software development or testing, software engineers agree upon a plan, approach or strategy, to accomplish their desired results of software development and testing. In software testing, test plan serves as the blueprint the various testing activities that will be conducted on a software or application by the team of testers. It outlines the planning of test process and contains its guidelines. Therefore, a test plan can include details about the testing approach, testing tasks, environment needs, resource requirements, schedule and various constraints. In short, test plan is a significant part of software testing and they are crucial for deciding innumerable things and elements related to it. Hence, here is a detailed discussion on test plan document and its significance in software testing life cycle.
Why is IEEE Standards Important?
IEEE standards or technical standards are a compilation of formal documents that establish uniform engineering or critical criteria, methods, process and practices developed through an accredited consensus process. These standards are developed on the guiding principles of openness, balance, consensus and due process. Moreover, IEEE standards are established in order to meet technical, safety, regularity, societal and market needs. These are catalysts for technological innovation and global market competition and are extremely beneficial for the learning engineers, as it provides them the tools for use in learning about standards and their impact on design and development.
Defining a Test Plan:
Test Plan plays a significant role in the process of software testing. It is a very crucial document that outlines the strategy of how a given project or product will be tested. Test Plan is used by testers as a guidebook for executing the process of testing accurately. In short, test plan is vital if a tester wants to keep the process of software testing on the right track and ensure that the end product performs and functions as per the demands and requirements of the client. Moreover, team of testers follow the IEEE 829 standard of test plan documentations, as there can be a difference of opinion regarding what should be included in a test plan document. Other reasons that make test plan important are mentioned below:
- It helps in determining the effort that is required in validating the quality of the application under test (AUT).
- Assists the people outside the testing team, such as developers, business managers, customers and other stakeholder, in understanding the details of the various test executed on the application.
- Test plan guides tester’s thinking, as it acts like a rule book that needs to be followed without any break.
- Testers can document the important aspects related to the software testing like test estimation, test scope, test strategy and more, which can be later reviewed by the management team and re-used for other projects.
What is IEEE STD 829 Test Plan Document?
IEEE is an international institution that defines standards and templates that are universally acknowledged and accepted. It has defined standards for system and software test plan documentation, which is globally known as IEEE 829 standard. This standard specifies the format for a set of documents that are required for software and system testing. The IEEE 829 standard specifies the various stages that are in the documentation process, each of which produce a separate document for every testing stage. These stages are very crucial to the documentation process and are used by software engineers in creating a test plan for software testing. Therefore, some of the stages of test plan document are described below:
- Test plan identifier: This uniquely identifies the test plan. Moreover, it identifies the project and may include version information. It also contains information regarding the test plan type.
- Introduction: Here the summary of the test plan is documented. Introduction sets the objective, scope and goals of the test plan. It also specifies the limitations and constraints related to the resource and budget of the test plan.
- References: This contains a list of all the documents that are related to the test plan or has a connection to it.
- Test Items: The test artefacts and aspects of the software that will be tested are included here.
- Features to Be Tested: All the features and functionalities to be tested are listed in detail in this stage of test plan document. It also contains references to the requirements specifications documents, which further contains the details of features to be tested.
- Features Not to Be Tested: Lists the features and elements of the software and the product that are out of the scope of testing. Here, the reasons of why these features are not tested is also provided.
- Approach: The approach used for testing the software or application is described by the testers here. From details about how the testing will be conducted to information regarding the source of test data, input and outputs, testing techniques and priorities is also included.
- Item Pass/Fail Criteria: This section of the test plan document describes the success criteria for evaluating the test results. Success criteria for each functionality that needs to be tested is described in details to make the process of testing easy and convenient for the testers.
- Test Deliverables: Test deliverables are the documents that will be delivered by the testing team at the end of testing process. This may include test cases, sample data, test report, issue log, among other things.
- Testing Tasks: Testing tasks are defined. It will also describe the dependencies between any tasks, resources required and estimated completion time for tasks. Testing tasks may include creating test scenarios, creating test cases, creating test scripts, executing test cases, reporting bugs, creating issue log.
This list of various stages of test plan document is non exhaustive, as there are several more aspects of software testing that are included in the test plan document.
How to Write a Test Plan?
Apart from being beneficial for testers, test plan document is a really important part of test management process. This plan ensures that all the functional or design requirements are implemented in the document and provides a procedure for unit and system testing. Additionally, with the assistance of test plan, testers can identify the documentation process as well as the method of unit and system testing. However, to enjoy these benefits of test plan, a tester needs to write it properly, while making sure that it contains all the required and necessary information. Therefore, to help testers in preparing a proper test plan, here are the steps to create test plan as per IEEE 892 standards:
- Analyse the Product: The initial step towards creating a test plan is to analyse the product thoroughly, which helps in understanding it features, functionality and other crucial things. Other aspects that should be considered are business and client requirement, testing needs and more.
- Design the Test Strategy: Once the product is analysed, testers should develop the test strategy for different test levels. The test strategy can be composed of several testing techniques. Keeping the use cases and business requirements in mind, the tester decides which testing techniques will be used.
- Define Test Objectives: Test Objective is the overall goal and achievement of the test execution. The objective of the testing is finding as many software defects as possible, while ensuring that the software under test is bug free before release.
- Define Test Criteria: The standard or rule on which a test procedure or judgement is based is also included in the test plan.
- Resource Planning: All the resources required by the test team for testing a software or application should be mentioned in the test plan. These resources could be human, equipment’s, as well as material needed to complete a project.
- Plan Test Environment: This is the setup of software or hardware, where in the test team executes the test cases. It consists of user and real business environment, as well as physical environment, such as server, font end running environment. In short, all these details regarding the software testing environment should be included in the test plan.
- Schedule and Estimation: The techniques used to determine the estimated effort required to complete the project should be included in the test planning, along with the details about the scheduled test.
- Determine Test Deliverables: Test deliverables is a list of all the documents, tools and other components that has to developed and maintained in the support of the testing effort.
A Test Plan is a significant part of SDLC, as it contains detailed information regarding an upcoming testing effort, which further defines details such as, scope of testing, its schedule, risks, contingencies, among other things. This document provides testers numerous advantages and serves as a valuable record of the type of testing executed on the software product. According to IEEE 829 Standard, a test plan includes test plan identifier, introduction, test items, features to be tested, test deliverables, responsibilities, staffing, and more, which allows testers as well as other members of the project to get a clear understanding of the whole testing process.
Hence, with the assistance of a test plan, a software engineer can effectively document important aspects of the software testing procedure, which can be later reviewed and reused for other projects.