Project Name Document Version 1.0 Prepared by Jane Doe, ITS Last Edited July 23, 2016 PLAN REQUIREMENTS SOLUTION ANALYSIS DESIGN BUILD TEST TRAIN/DEPLOY MAINTENANCE TOTHE DOCUMENT OWNER: This template is provided as a guideline and resource. The structure and instructions give detail about what might go into a completed document. Only you and your team, however, know what will best fit the needs of your specific effort, and you are encouraged to adapt the template as appropriate to meet those needs. Functional Test Plan The Functional Test plan describes the tests, both manual and automated, that will be performed to confirm that all functional requirements for the system have been met. The Functional Test Plan documents the targets and other criteria which will be used to define the specific test cases for each of the types of testing which were listed in the Comprehensive Test Plan, referring to other documents such as the Use Cases and Requirements and Traceability Matrix as necessary. This testing includes functional verification, functional scenario, access control, data testing, and regression tests and will capture environment and process requirements to complete those tests. This plan is the reference document for test case / test script creation. The audiences for the Functional Test Plan include: • The project team -- Reviews for technical accuracy, completeness, and feasibility • Other groups which will be involved in testing -- Review for technical accuracy and agree to details • Customer steering committee -- Provides sign-off on high-level plan Executive Summary Summarize the approach, process, and assumptions, dependencies and risks. The goal of functional testing is to confirm that the <Project> system meets all functional requirements. The Functional Test Plan includes the tests, both automated and manual, to be conducted by the project team to confirm that all functional requirements have been met and all pertinent university policies are observed. Test Approach Different projects will require different types of functional testing. Choose the appropriate types for your project, as outlined in the following sections, and describe the test scenarios, scripts, or use cases for each type of test, as well as the expected outcome for each type of testing. Include information about which tests will be automated versus manual. Page 1 of 5 Project Name Document Version 1.0 Features to be Tested Describe the features from the Design documentation to be tested. Features not to be Tested Describe the features that will not be tested by this plan along with the reasons. Functional Verification These tests use the requirements documentation and design documents to validate that the software is functioning properly, including interfaces, main path testing, error handling and boundary values. (This type of testing is sometimes referred to as component testing.) Functional Scenario These tests verify the use case functions as described in use case documentation, including main path and exception paths. These tests are more of an end-to-end test to mimic a user experience. This has been referred to as functional integration testing. Access Control These tests verify that only the authorized roles can perform actions on authorized business objects. This should include testing of access provisioning and deprovisioning. Data This testing should include large-scale data tests to verify that the system functions correctly when many business objects are present. Additionally, tests for data accuracy, data completeness, data integrity, data updating/reconciliation processes, and data import and export processes should all be included. Regression These tests are used to verify that code is checked in, defects are fixed, and the existing code does not regress. In addition to this minimal set, tests can be added to an existing regression set depending on what code is being changed and the importance of the functionality. System and Integration It is anticipated that this section is needed to detail what was introduced in the Comprehensive Test Plan. System and Integration Testing pulls in all the functional components of a project, integrating into the complete solution, and testing all interfaces. For larger projects, it is common that functional components are verified and then need to be integrated to provide a complete solution. (This testing has been referred to as end-to-end testing.) Additionally, functional components may be built to be inserted into a larger system. If that is applicable, describe the required integration test. Accessibility Use this Section if detail in addition to the Comprehensive Test Plan is needed. Functional Test Plan Page 2 of 5 Project Name Document Version 1.0 Test Process Identify the methods and criteria used in performing test activities. Define the specific methods and procedures for each type of test. Define the detailed criteria for evaluating test results. Also, the “order of events” should be documented. If regression testing is done at the end of each phase, then document it in this paragraph. Are there any dependencies or other elements that will impact the order in which the tests will be performed? Include skill sets required by the test team. Test Prep Identify the set of tasks necessary to prepare for and perform testing activities. Identify any inter-task dependencies and any specific skills required. Include the build of test scaffolding, test data creation, or test case automation. Test Entry Criteria Identify the set of tasks necessary to prepare for and perform testing activities. Identify any inter-task dependencies and any specific skills required. An example would be that all test cases need to be written and documented. Consider items such as staff availability and environment set-up completion. If there is a phased approach, define the requirements for entry of each phase. Test Deliverables Identify the deliverable documents from the test process. This includes Jira issues, test execution logs, and test summary reports. Identify the location and availability of each of these. Environment Requirements Specify both the necessary and desired properties of the test environment, including the physical characteristics, communications, mode of usage, and testing supplies. Also provide the levels of security required to perform test activities. Identify special test tools needed and other testing needs. Hardware and Networking Identify the computer hardware and network requirements to complete test activities. Document any differences between the test environment and the production environment. Software Identify the software requirements needed to complete test activities. Test Deliverables Identify artifacts coming out of this test, including test scripts, updated test plans, test execution results, issued logged. Tools Identify any testing tools or infrastructure that may need to be developed. Identify the software tools employed, including use of each tool. Include defect tracking tools and any required configurations. Functional Test Plan Page 3 of 5 Project Name Document Version 1.0 Documentation Identify the documents required to support testing activities. Assumptions, Dependencies, and Risks Assumptions Identify the assumptions associated with this plan, such as “The above environment will be complete.” Dependencies Identify the dependencies such as resource availability, hardware availability, code delivery, and dependencies on external teams. Risks Identify the risks associated with this plan, specifying mitigation and/or contingency plans. Test Case Coverage Matrix Complete the matrix to indicate how function is covered by test cases, expanding as appropriate for your system. The functional list should be complete: all functions, all function parameters, and all conditions of the function parameters should be listed, whether or not a test case exists to cover that condition. This matrix is to be used for planning purposes and should list the test case name; the actual test cases will not be stored in this matrix. Test case defines a set of conditions to be verified and has an expected and repeatable outcome. Documentation of the test case should also include specific set-up requirements and other entry conditions. A test script is an automated, semi-automated, or manual set of steps used to implement a test case. These scripts are used to determine if a function meets expected behavior and delivers an expected result. There is a 1-1 mapping of a test case to a test script. Functional Test Plan Page 4 of 5 Project Name Document Version 1.0 Function/Action Parameter Function (input 1, input 2,…input n) input 1 valid input 1 invalid input 1 upper limit input 1 lower limit input 2 valid input 2 invalid input 2 null input 2 too long input n alpha input n numeric input n special char Test Case name Use Case Name testcase a testcase a testcase b testcase a Activity create object edit object delete object modify object Revision History Identify document changes. Version Date V1 Functional Test Plan Updater Name Description Initial draft completed. Page 5 of 5