Software Project Test Plan

Ankh Software Project Test Plan
Document name and number: AnkhSTP1_0.doc
Contributors: Ankh Software Development Team
Ankh Software System Design
Contents
Test Plan Identifier ...............................................................................................................3
References ............................................................................................................................3
Test Items .............................................................................................................................4
Risk Issues ...........................................................................................................................5
Features To Be Tested .........................................................................................................5
Features Not To Be Tested ..................................................................................................5
Approach To Testing ...........................................................................................................6
Criteria for Pass and Fail......................................................................................................7
Component .......................................................................................................................7
Integration ........................................................................................................................7
System Testing .................................................................................................................8
Suspension and Resumption Criteria for Testing ................................................................8
Test Deliverables .................................................................................................................8
Remaining Test Tasks ..........................................................................................................9
Environmental Needs ...........................................................................................................9
Responsibilities ....................................................................................................................9
Schedule ...............................................................................................................................9
Risks and Contingencies ....................................................................................................10
Approvals ...........................................................................................................................10
Glossary and Definitions....................................................................................................10
265332077
2
Ankh Software System Design
Test Plan Identifier
This test plan is identified as AnkhSWTP_n_n. The numbering for the document shall
be incremented by releases and versions after baseline reviews.
References
For general information on the test program:

The general procedures for the system testing effort can be found in the Ankh System
Test Plan. (AnkhSWSTP.doc).

The procedures for the component testing effort can be found in the Ankh Component
Test Plan (AnkhSWCTP.doc).

The procedures for the integration testing effort can be found in the Ankh Integration
Test Plan (AnkhSWITP.doc).
Figure 1 shows the relationship between the project test plan and the specific plans
relating to product features:
.
Softw are Test
Plan
Com ponent Test
Plan
(Functional
Specifications and
Docum entation)
Integratino Test
Plan
(Stripes)
System Test Plan
(Installation)
Figure 1. Specifics are given in component, integration, and system test plans.
The following documents provide specification information:

Requirements, along with use cases and CRC cards can be found in the Ankh Software
Requirements Specification.

Conceptual and behavioral diagrams, such as class, sequential, and collaboration
diagrams, can be found in the Ankh Software Design Description.
265332077
3
Ankh Software System Design

Component (implementation and deployment). The configuration for the components,
classes, and files that comprise Ankh can be found in the Ankh Software Configuration
Management Plan.

The software development schedule can be found in the Ankh Software Development
Project Management Plan.

The TOR chart for preliminary classes can be found in an appendix to the Ankh SRS.
Test Areas
Requirements shall be tested both specifically and as combined into stripes. Each stripe
covers a specific set of requirements. In some cases, two or more stripes may address the
same requirements.
The following list provides a summary of the stripes that comprise the game:

Stripe 1—Opening, Requirement 8, 16, 18, 38, 46, 14, 15, 17, 23, 28, 46, 57,

Stripe 2.1—GUI Objects , Requirement 18, 52,

Stripe 2.2—Floor Tiling, Requirement 43.

Stripe 2.3—Mesh Placement, Requirements 43, 13

Stripe 2.4—Save and Load, Requirement 4.

Stripe 3.1—Navigate Alexandria, Requirement 13, 14, 15 , 16, 17, 36, 61,

Stripe 3.2—Sound, Requirements 29,30,31,32,33

Stripe 4—Character Editor, Requirements 18, 19, 20, 21, 22, 35, 44

Stripe 5—Unit Physics, Requirements 13, 14, 15, 16, 17, 35, (41), 47, 48, 42, 45, 64

Stripe 6—Inventory Items, Requirements 40, 49, 55

Stripe 7—Combat, Requirements 54, 56

Stripe 8—Acquire Skills, Requirements 20, 34, 47, 55, 56

Stripe 9—Acquire Weapon, Requirements 14, 15, 16, 17, 40, 49

Stripe 10—View Statistics, Requirements 14, 15, 16, 17, 18, 19, 20, 21

Stripe 11—AI, Requirements 24, 25, 26, 37

Stripe 12—Remaining Level, Requirements 27

Stripe 13—Saving and Loading, Requirements 1 ,2,3,4,5,6,7,8,9,10,11,12

Stripe 14—Options, Requirements 39

Nonfunctional Requirements, Requirements 50, 51, 53, 58, (59), 60, 61, 62, 63
265332077
4
Ankh Software System Design
Risk Issues
The risk issue for the software are as follows:

Upgrades to DirectX that may affect the release of the game.

Changes to the Boost library that may cause version problems.

Creation of the game so that it compiles in Versions 6 an 7 of Microsoft Visual
Studio.

Deployment of the game on PCs that have both high- and low-end hardware
configuration.

Size of the software and complexity of the components. The software is to be used for
teaching purposes. It should be as simple as possible to install and compile.

Software should be free of all graphical and sound components that have not been
verified to have been properly acquired.
Features To Be Tested
The following features are to be tested:

Each and every functional requirement. Verification and validation of each requirement
constitutes test issues of the highest priority and risk.

Integration of each stripe. Verification and validation of the designated functionality for
each stripe constitutes test issues of the highest priority and risk.

Classes that comprise each stripe. This is to be conducted on a selective basis. The risk
posed by issues relating to class design are high risk.

Loading of assets for each stripe.

Successful play of the game without failure. The reason for this is that testing time may
be minimized by the delivery schedule.

Documentation of classes for user purposes poses issues of high risk.

Installation of the stripes, the game, and associated software and assets. Successful,
defect-free installation is of the highest priority and poses a high risk.

The documentation associate with the specification, design, and configuration of the
product. The documentation poses medium risk.
Features Not To Be Tested
The following features shall not be tested:

The components acquired through the Boost library
265332077
5
Ankh Software System Design

The components acquired through the Win32 libraries.

The components acquired through the DirectX libraries.
Approach To Testing
The specific test cases for stripe testing are included in the following documents:
Ankh Component Test Plan. Procedures and criteria for testing design artifacts are
documented in the Ankh Component Test Plan. Procedures and criteria for verifying and
validating requirements are documented in the Ankh Component Test Plan. This
document contains functional test cases for each requirement, together with test cases for
classes and other features of the software. This plan shall include functional and
structural test cases, along with inspections. Issues explored in this test plan shall include
the following:

Conformity of requirements to specification

Performance of algorithms

Design integrity of classes and operations

Code documentation

Conformity of names, classes, files and other features to the configuration plan
specifications and policies
Ankh Integration Test Plan. Procedures and criteria for testing the integration of stripes
are documented in the Ankh Integration Test Plan. This plan shall include functional and
structural test cases. Issues explored in this test plan shall include the following:

Reliability of software for each stripe in terms of defect rates and time required to
eliminate defects

Conformity of each stripe to the specified design

Robustness of stripes in the described user context (the stripes will be used for
educational purposes)

Limitation of the number of resources assigned to each stripe

Each stripe is clean of excessive files and can be downloaded without problems from the
built management system.

Conformity of the stripe to the conventions and policies established in the configuration
plan
Ankh System Test Plan. Procedures and criteria for testing the installation program for
Ankh are documented in the Ankh System Test Plan. Issues explored in this test plan shall
include the following:

Each strip of the software can be installed and compiled.
265332077
6
Ankh Software System Design

Documentation can be installed and opened for reading.

The software fits onto one CD.

No excess or duplicate or unused files are in any stripe.
Criteria for Pass and Fail
Criteria for pass and fail shall be distinguished according to the type of testing being
formed. According, testing criteria shall differ slightly between component, integration,
and system tests.
Component
1. The focus of component testing shall be on the validity and verification of
requirements.
2. A test case shall be established for each and every item to be tested. Any test case
may encompass several requirements, but it may be used to primarily examine only
one requirement at a time.
3. The test cases for requirements testing shall be based on the use cases created for the
requirements specification. They shall seek, as nearly as possible, to precisely trace
the scenario the use case provides, beginning with the use case trigger event and
ending with the use case end event.
4. Successful operation of the software in fulfillment of the scenario set in the use case
shall constitute a criteria for success.
5. For verification purposes, a feature of the software shall be found that disables the
functionality of each use case to demonstrate that the software under test accounts for
the functionally in question. If the functionality can be shown to be disabled as a
result of having disabled the software under test, then the test shall be considered
successful.
Integration
1. A test case shall be developed to tested the integrated behavior of each stripe.
2. The test case for integration shall be based on the use case developed in the software
design specification for each stripe.
3. Each stripe must be tested in isolation from every other stripe.
4. Success criteria for integration shall be as follows:
5. The stripe compiles without problems.
6. The tester can play the sequence of events listed in the stripe use case, from the
trigger event to the end event, without detecting errors.
265332077
7
Ankh Software System Design
7. A negative test shall be imposed. The tester shall disable selected functionality to
confirm that the code under test accounts for the observed functionality. Testing shall
confirm that the disabled functionality accounts for the use case features under test.
8. Regression Testing shall be included in the Integration test. The procedure shall be
that upon effecting repairs to stripe n, the testing shall examine stripe n-1 to confirm
that the changes have not effected the functionality of the previous stripe. Regression
testing shall involve executing test cases for each and every requirement of the
previous stripe.
System Testing
System testing shall involve the following criteria for pass and fail:
1. The software shall be installed on designated computers and shall be shown to install
and execute without problems.
2. After installation, each stripe must execute without problems.
3. The user shall be able to install any stripe or any document without encountering a
software defect.
4. The user shall be able to uninstall any stripe or any document without encountering a
software defect.
Suspension and Resumption Criteria for Testing
The criteria for suspension and resumption of testing shall be as follows:
1. If the test case for a requirement cannot be met, then testing shall be suspended, and
the problem shall be referred to maintenance.
2. Upon completion of maintenance action toward the requirement, testing shall resume.
3. If the software crashes for a given stripe, testing shall be suspended, and the stripe
shall be submitted to maintenance.
4. After maintenance allows the stripe to successfully compile, testing shall resume.
Test Deliverables
The following deliverables shall be provided by the testing effort:
1. Test plans shall be completed for component, integration, and system testing.
2. Each defect shall be reported to the defect tracking system.
3. A statement of the defect shall be provided.
4. The defect shall be initially assigned to the lead programmer.
265332077
8
Ankh Software System Design
5. All newly logged defects shall be classified as “open.”
6. Upon notification that a defect had been repaired, testers shall confirm the repair and
log the defect as tested and verified.
7. For each test case, a test case shall be completed according to the form provided in
the test plan.
8. For each test case completed, a record shall be made in an excel spread sheet to
record the history of the test case.
9. Test scripts shall be associated with the test cases for which they are used.
Remaining Test Tasks
Tests completed shall be logged according to the stripe to which they apply.
Information concerning completed testing shall be forwarded to the project manager for
schedule update.
Environmental Needs
Testing shall take place using Microsoft Studio, Version 6 and Version 7.
TortoiseCVS shall be used to perform configuration management for builds.
IssueTracker shall be used to log discovered current defects.
Microsoft Excel shall be used to log defect histories.
Responsibilities
Testing responsibilities shall be assigned to developers designated as testers. These
individuals will have responsibility for formalized testing—testing guided by the test
plans.
Opportunistic testing shall be performed by anyone who uses the software during the
development period. These users will log defects according the stripe they are using.
Schedule
The testing schedule shall appear as part of the project management plan.
265332077
9
Ankh Software System Design
Risks and Contingencies
The minimal acceptable coverage will be the verification of requirements and the
verification that stripes compile.
All requirements shall me met before the product can be delivered.
If defects remain at the end of the designated development period that do not fall into the
above categories, then the development team will conduct a review of the defect to
determine whether action must be take to repair it.
Approvals
The author of the book shall reach consensus with the development team to approve the
testing effort.
Glossary and Definitions
This section contains a list in which the terms and acronyms used in this document are
defined.
Behavioral Test
This is blac-box testing. This test verifies requirements without
investigating the specific ways in which they have been
implemented.
Component
This term refers to either the classes or the groups of classes
through with functionality is implemented. Component testing
refers to any stage of the system at which it is possible to exercise
the functionality of a given requirement.
Coverage
Refers to the percentage or probability distribution of testing
coverage for a given system or component of a system.
Defect
Any part of the software or documentation that is found not to
properly express requirements or the design or to cause the
software system to malfunction.
Defect Report
A record of a detected defect filed in the defect tracking system. It
should include a unique identifier, the name of the person reporting
the defect, the date of the report, the person to whom the defect is
assigned, and a concise account of the defect.
265332077
10
Ankh Software System Design
Functional testing
Synonymous with black-box or structural testing. Designates
testing that takes place to verify that the software has been
constructed according specification.
IEEE 829
General test plan template from the Institute of Electrical and
Electronics Engineers.
Integration
This refers to any effort to build the entire stripe of the product. An
integration testing effort, for this reason, applies to a system build
that completely encompasses all requirements of a given stripe.
Log
A permanent record of actions taken toward a defect. A log
contains report entries.
System
System refers to the software product installed as an application on
a given hardware system of set of hardware systems. Testing the
product as a system involves the completed system.
Stripe
A stripe is a set of functionality embodied in a single component of
the system, together with a description of the point in the
development process in which the component comprising the stripe
is implemented. Stripes are represented using up to five views of
the system. Each stripe should represent a complete system build
(of the system at the point in question). Within the strip
documentation is a component view from which you can identify
the specific functionality implanted with the stripe.
Structural testing
This is white-box testing or testing that involves investigating the
implementation of code for performance and other issues.
Test case
A test is a document of actions to be taken to test software. Test
cases should follow IEEE conventions, but no strict demands for
conformity to any specific standard apply. Generally, for
behavioral or black-box testing, every script should be uniquely
named and numbered and correspond to either a requirements use
case or a stripe use case.
Test script
This can refer to either a program written to run an automated test
or a manual script written to guide a testing effort. It may be, for
instance, a check list.
Test suite
Any set of tests that relates to a common objective, such as validity
of a given functional requirement.
Validation
NASA Defintion: Confirmation by examination and provision of
objective evidence that the particular requirements for a specific
intended use are fulfilled [ISO/IEC 12207, Software life cycle
265332077
11
Ankh Software System Design
processes.] In other words, validation ensures that “you built the
right thing”. (www.hq.nasa.gov/office/codeq/software/index.htm)
Verification
NASA Defition: Confirmation by examination and provision of
objective evidence that specified requirements have been fulfilled
[ISO/IEC 12207, Software life cycle processes]. In other words,
verification ensures that “you built it right”.
(www.hq.nasa.gov/office/codeq/software/index.htm)
Use case
A description of the use of the system. A use case consists of a
scenario, and a scenario has a trigger event and a concluding event.
A use case can be represented diagrammatically or through a
narrative. It is most commonly documented with a numbered set of
use steps.
265332077
12