Software Test Plan (STP)- describes plans for qualification testing of Computer Software Configuration Items (CSCIs) and software systems. It describes the software test environment to be used for the testing , identifies the tests to be performed , and provides schedules for test activities.
There is usually a single
STP for a project . The STP enable the acquirer to assess the
adequacy of planning for CSCI and , if applicable , software qualification
testing
These pages provide some guidelines that will ease your way through the software testing process. Our suggestions are general, so you can adapt them to the needs of your development environment.
Although testing is described
here as a linear process, it is clear that more than one person
is involved. Some of the steps in the process are managerial (defining
testing goals, performing analysis at different stages), and some
are more technical (creating and running tests).
Many quality experts believe that planning is the most important stage of the testing process. With a good test plan, you can assess the quality of your application at any time.
The planning process consists
of five main stages.
The first step in the software testing process is to define your testing goals and outline the general strategy you will use to achieve them. This important step is key to a successful testing endeavor.
Your testing goals should answer three basic questions: what to test, how, and by whom?
What to test?
of each element of the software functionality?
How to test?
System tests to test the system as a whole across functional areas.
Stress tests to test how the software reacts under repeated execution of the
same operations.
Installation to test that the system can be installed smoothly
Security to test access to the system without authorization
Boundary tests to exercise code at the data and system boundaries.
Performance and load tests to test the performance of the system under
load conditions.
open/close bugs)?
Who/When?
Since the typical application is too large to test as a whole, it is necessary to break it down into more manageable units. This breakdown can be extended several levels into sub-systems, and should be based on the testing goals and the functional units of the application.
To help determine how
to break down your application into test subjects, you can look
at the user interface of the application, or refer to system specifications
or business requirement documents. But in most cases, a familiarity
with your application will suffice.
During this stage, you further break down each test subject and sub-subject into individual tests (or test cases). Each test should have a distinct objective, such as to verify a specific function or system requirement.
The tests you define should be based on the testing goals you determined at the beginning of the process. You can derive tests by examining various design documents, such as data-flow diagrams (DFDs), entity relationship diagrams (ERDs), structure charts, functional specifications, business requirements, or user documentation.
If no formal documentation
exists, you can collect input from subject matter experts, developers,
and project leaders. As a last resort, you can perform reverse
engineering and write system specifications by examining the software.
At this point, you design steps for each test you defined in the previous stage. Test steps provide detailed, step-by-step instructions on how to perform the test: the actions to be per-formed, input to be entered, and the expected output.
Example: For
the test, you could design the following test steps:
| 1 | Open the Login window. | Login window appears |
| 2 | Type "bart" in the Agent Name field, "mercury" in Password field, and Press OK. | Login successful. Main window of application appears. |
| 3 | Type "bart" in the Agent Name field, "abcd" in Password field, and Press OK. | Login fails. Error message appears. |
By now you have completed a test plan and test design. Using the test steps you can begin manual test execution. During this final planning stage, you automate the tests using WinRunner.
Following are some guidelines as to which tests to automate, and how to assign testers to automation tasks:
Test Execution is the heart of the testing process. Each time your application changes, you will want to execute the relevant parts of your test plan in order to locate defects and assess quality.
The execution process
consists of three main stages. Click on one of the blocks in the
flow chart below, or just move on to the next page to read on.
During this stage you decide the subset of tests from your test database you want to execute.
Usually you do not run all the tests at once. At different stages of the quality assurance process, you need to execute different tests in order to address specific goals. A related group of tests is called a test cycle, and can include both manual and automated tests
Example: You can create a cycle containing basic tests that run on each build of the application throughout development. You can run the cycle each time a new build is ready, to determine the application's stability before beginning more rigorous testing.
Example: You can create another set of tests for a particular module in your application. This test cycle includes tests that check that module in depth.
To decide which test cycles to build, refer to the testing goals you defined at the beginning of the process. Also consider issues such as the current state of the application and whether new functions have been added or modified.
Folloare examples of some general categories of test cycles to consider:
Once you have created cycles that cover your testing objectives, you begin executing the tests in the cycle. You perform manual tests using the test steps. WinRunner executes automated tests for you. A test cycle is complete only when all tests-automatic and manual-have been run.
With Manual Test Execution you follow the instructions in the test steps of each test. You use the application, enter input, compare the application output with the expected output, and log the results. For each test step you assign either pass or fail status.
During Automated
Test Execution
you create
a batch of tests and launch the entire batch at once. WinRunner
runs the tests one at a time. It then imports results, providing
outcome summaries for each test.
You analyze and validate
test results after every test run. You want to identify all the
failed steps in your tests and to determine whether a bug has
been detected, or if the expected result needs to be updated.
Locating and repairing software bugs is an essential part of software development. Bugs can be detected and reported by engineers, testers, and end-users in all phases of the testing process. Information about bugs must be detailed and organized in order to schedule bug fixes and determine software release dates.
Bug Tracking involves two main stages: reporting and tracking. Click on one of the boxes below, or turn the page to read on.
.
Once you execute the manual and automated tests in a cycle, you report the bugs (or defects) that you detected. The bugs are stored in a database so that you can manage them and analyze the status of your application.
When you report a bug,
you record all the information necessary to reproduce and fix
it. You also make sure that the QA and development personnel involved
in fixing the bug are notified.
The lifecycle of a bug
begins when it is reported and ends when it is fixed, verified,
and closed.
Communication is an essential part of bug tracking; all members of the development and quality assurance team must be well informed in order to insure that bugs information is up to date and that the most important problems are addressed.
The number of open or
fixed bugs is a good indicator of the quality status of your application.
You can use data analysis tools such as re-ports and graphs in
interpret bug data.
| Specification ID | |
Author(s): | Victor Portianski |
Application Name: | Import Utility |
Version: | x.x |
| Approval | |||
Signature: | |||
Approved By: | |||
Title: | |||
Date Approved: | |||
| Reviewers | |||
Reviewed By: | |||
Title: | |||
| Description | Location | Author(s) | Date |
| Request/Gap Information | C:\ Cont.doc | ||
| Request/Gap Information | C:\ Cont7.doc | ||
| No. | Author | Change Description | Date |
Software Test Environment
Test Identification
Test Schedules
Requirements Traceability
The software to be tested is Import Utility version x.x. For itemized testing description, please refer to paragraph 3.1.2 of this document.
This test plan relates to the application known as Import Utility version x.x. Testing will be performed for both the planned new functionality of the release as well as maintenance issues.
The Software Test Plan (STP) describes plans for qualification testing of software. It describes the software test environment to be used for the testing, identifies the tests to be performed and provides schedules for test activities.
Import Utility's functionality is described in the functional design specification (see Related Documents section of this document).
Import Utility is a stand-alone application which uses
This document describes plans for qualification testing of Import Utility version x.x. It describes the software test environment to be used for the testing, identifies the tests to be performed and provides schedules for test activities.
The document is originally intended for internal review and guidance, but may be shown to personnel if authorized by one of the individuals designated as an "authorizer" on the title page.
This section describes the software test environment at each intended test site. Reference may be made to the High Level Design Document (HLD) for resources that are described there.
All testing will take place in the QA department.
| Item | Version |
| Oracle | 7 |
| Operating Systems | Clients |
| Windows 95 | Pentium - 32MB |
During the test period, one QA Engineer will be required.
Prior to the start of full-scale testing, the functional spec describing the new functionality will be distributed. A handoff meeting between Development and the QA/Documentation group is scheduled to demonstrate functionality and to answer any questions which may arise. The QA Engineer will also be given a review of the testing procedure and batch run instructions beforehand.
The list of WinRunner tests to be performed is located in Appendix A of this document.
The descriptions of all other tests can be found in the Software Test Description document (see Related Documents section on cover page for location).
General functionality tests and erroneous input tests will be performed.
Tests must be performed for three operating environments: Windows for Work Groups, Windows 95 and Windows NT
The following table describes the testing matrix:
| RDBMSs | Oracle |
| Operating Systems | Windows 95 |
| Servers | Novell
NT |
The test include the following main steps:
Here is more detailed scheme for the testing:
For example, for Warehouses Module it possible to choose the following columns: node_id,is_tracked_inventory,is_sa,sa_person_id,rb_stock_type,rb_receive_ type,is_allow_trans,descr,warehouse_type_id,address_id,is_primary,inv_type_id,warehouse_id
The full list of Modules, their mandatory fields and additional fields for testing see Appendix A.
The list of columns is separated by a defined character ( comma or tab ).
Repeat the test when selecting different set of header columns:
| 1. | Select only the mandatory columns | Select the columns which are listed in the right box | Shouldn't be any problem |
| 2. | Select mandatory and additional columns of different types (checkbox, text, DDDW etc.) | Drag the columns which were from the very beginning in the left box and which are of different types | Shouldn't be any problem |
node_id,is_tracked_inventory,is_sa,sa_person_id,rb_stock_type,rb_receive_
type,is_allow_trans,descr,warehouse_type_id,address_id,is_primary,inv_type
_id,warehouse_id
the data could be:
BALTIMORE,Y,Y,,0,0,Y,Gary Ruckle's Mobile arehouse,sa,1634,N,all,gary
TPMS-LOG,Y,N,,0,0,Y,TPM Service Main ,CENT,1544,N,all,TPMS-MAIN
The sequence is very important and empty values should be represented by close separators;
Generate the data for testing the following situations:
| 1. | Import of duplicate records | Type two or more the same rows in the file | Utility should return warning or error message during Import process |
| 2. | Import the data, which length is more than it is defined in the database | Type a data that takes more characters than it should be |
| 1. | Access Application | |
| 2. | Access the necessary Module | |
| 3. | Retrieve step by step all the records you have added to the CSV file on the 5th step and check the data in all the columns you have defined | All the records should be in the database
The changes in the non-key fields should take place only if you have chosen New and Update Mode on the 6th step |
The testing will take place at QA department on 1997
A schedule for each test site depicting the activities and events listed below (as applicable) in chronological order:
On-site test period assigned to major portions of the testing
Pretest on-site period needed for setting up the software test environment and other equipment, system debugging, orientation, and familiarization
Collection of database/data file values, input values, and other operational data needed for the testing
Conducting the tests, including planned retesting
Preparation, review and approval of the Software Test Report (STR)
By now we have the following requests:
All the test stands for
checking Import Utility functionality and fulfilling the requests,
but as far the information that has to be added to the Lisa -
type database is absolutely new, so the most related step of
the test is checking New Records Only Mode of Import Utility
(step 6) and all the situations from the Creating Header ( step
4) and Generating data (step 5).
Appendix A.
| Employees | employee_person_id
employee_node_id person_last_name person_first_name | Employee ID
Node Last Name First Name | Varchar2 30
Varchar2 30 Varchar2 40 Varchar2 40 |
|
| Customers | company_descr
main_company_id company_is_site | Name
Customer ID Site | Varchar2 60
Varchar2 30 Boolean |
|