This document provides a test plan for testing a web-based gym membership software application. It outlines the testing environment, organizational assessment, and assumptions. It discusses the importance of unit, usability, and system test planning. It describes test identification and levels including component, integration, and regression testing. It provides details on planned tests and schedules, test reports, requirements traceability, and characteristics of test plans. The test approach, outline, and regression test plan are also summarized.
Some of the Material in this paper has been repurposed from C.docx
1. ***Some of the Material in this paper has been repurposed from
CS CS455-1501-B-01 with Professor Lemaster, and CS346-
1501A-01 with Professor Borrego ***
Software Testing CS459-1601B-01
Testing scenarios for gym membership web based software
02-22-2016
Revision History
Revision
Date
Sections Changed
Reason
Description
Author
1.1
02-22-2016
Original Document
Initial Revision
2. Initial Revision
Table of Contents
Section 1 Software Testing Environment 4
1.1 Overview 4
1.2 Testing Environment 4
1.3 Organizational Assessment 4
1.3.1Determine Software Capabilities 4
1.3.2creating an environment supportive of software testing 5
1.3.3Determining Staff Competency 5
1.3.4Determining User Satisfaction 5
1.4 Assumptions 5
Section 2 Importance of unit/usability/system test planning
process 6
2.5 Test Identification and Test Levels 7
2.5.1Component Testing 7
2.5.2Integration Testing 7
2.5.3Regression Testing 8
2.6 Planned Tests and Test Schedules 8
2.7 Test Report 8
3. 2.8 Requirements Traceability 8
2.9 Summary 9
Section 3 Characteristics of Test Plans 10
Test Planning Approach 11
Outline of The Test Plan 12
Appendix A 13
5.1 RTM13
References: 15
4Section 1 Software Testing EnvironmentOverview
Membership fees for Devil Dogg Crossfit are determined by the
number of classes a member attends however there is no
application in place which keeps track of this and individuals
are essentially put on the “honor system” whereby they are
asked to keep track of the number of classes they attend per
week. This system is very disorganized, creates a great deal of
confusion, and makes it very difficult to keep track of the
members of the gym which in turn makes it very difficult to
determine the actual financial health of the gym. To resolve
these issues Devil Dogg Database application will be developed
and tested during this project lifecycle. The application is a
web based software application that allows a gym going
customer to determine their membership type, the cost of that
membership, and the features the membership provides is
required for the Devil Dogg Crossfit company.
Testing Environment
The application will be compatible Windows 7 through
Windows 8.1. The compatibility of the application with other
OS platform will require specific testing The two tier Thin-
client model will be the chosen architecture to host the
application. In this model the client is only used to provide an
interface to connect to the server. All of the resources and
applications reside with the server, and the server is also
responsible for data management on the network.
Organizational Assessment
4. Determine Software Capabilities
The application has a Customer User and an Administrator
Account with the functional requirements for the Customer User
and owner user being as follows:
· The Customer User shall be able to create unique identifier
account along with a password to secure the account.
· The Customer User shall be able to login to the account once
it is created.
· The Customer User shall be able to determine their
membership type.
· The Customer User shall be able to determine the cost
associated with that membership.
· The Customer User shall be able to track the benefits available
versus benefits used.
· The Customer User shall be able to read, update, and delete
their account when desired.
· The Administrator Account shall be able to determine the
number of paying members at the gym.
· The Administrator Account shall be able to determine the
membership type associated with each individual user.
· The Administrator Account shall be able to determine the cost
of membership for each individual member.
· The Administrator Account shall be able to determine the
benefits utilized for each individual member.
· The Administrator Account shall be able to determine the total
sum of membership fees per month.
· The Administrator Account shall be able to read, update, and
delete member accounts when desired.
creating an environment supportive of software testing
To create an environment supportive of software we will
perform the following steps:
1. Determine the software testing model most appropriate for
our organization and adopt that model.
5. 2. Determine our current competencies, level of user
satisfaction, and software testing capabilities.
3. Develop and implement a plan to improve our current level of
user satisfaction, competencies, and software testing abilities.
Determining Staff Competency
When following the steps to create an environment supportive
of software testing the current capabilities and competencies
will be assessed. This assessment will enable the development
of a baselin
e of our staff competency. The plan we develop will in turn
move the baseline in a positive direction allowing the company
to compete on a world class level.
Determining User Satisfaction
Usability testing will allow us to determine if the application is
on track to meet the user needs and to validate the system
design in its current state. The only way to effectively
determine if an application meets the user requirements is to
collect empirical through a series of usability tests collected
from application users. This will make determining the
strengths and weaknesses of the applications easier to identify
during the early phases of the project and allow us to
consistently created updated and improved prototypes.
Assumptions
There are no assumptions at this time. Conditions which must
exist for application testing to be comprehensive and on
6. schedule have not yet been defined therefore no assumptions are
currently required.
Section 2 Importance of unit/usability/system test planning
process
1 Importance of Unit/Usability/System Test Planning Process
Testing means a great deal to engineers and developers because
it can detect system issues early in the development process,
and provide a means to mitigate those issues. The earlier a
defect is identified, the easier it is to mitigate, and
Requirements testing allows for the early identification of
defects within the system.
The first step in implementing the testing process is to establish
the testing plan and establish the testing criteria. The test plan
is the project plan for the testing work to be performed however
it does not specify the design or contain test cases or test
procedures, they do not address that level of detail. Three of the
most important reasons to develop a proper test plan are as
follows:
1. Test plans guide project thinking. When writing a test plan
the most important features of the design are emphasized.
2. Test plans promote communication. A proper test plan and
the test planning process requires input from all members of the
project. The test plan should influence the think of the project
members and the project members should influence the test plan
through communication among peers.
3. Test plans help to identify and manage changes in
requirements. As a project evolves the requirements will
change and the test plan is modified based upon those changes.
Updating the test plan keeps the testing aligned with
requirements.Characteristics of Test Plans
A properly developed test plan should include the approach,
scope, schedule, and resources of the test activities. The
characteristics of a properly developed test plan are as follows:
1. It should identify the features to be tested, the testing tasks,
and the tester assigned to complete these tasks.
7. 2. It should identify the test environment, test design
techniques, and degree of tester independence.
3. It should identify the entry and exit criteria, the rationale
behind that selection and any risks which may require
contingency planning.
Test Planning Approach
The approach taken during application testing will emphasize
the following objectives:
1. Start small and continue to focus on resolving small issues
which will ultimately allow you to conquer the large issues.
Conducting a larger number of tests with a smaller number of
users allows you continually focus on those small problems, and
that focus will allow you to make steady measurable progress
(Gothelf, 2011.
2. Continue testing on a regular schedule (weekly at a
minimum) throughout the lifecycle of the application. When
testing becomes a routine scheduled part of the development
process the development becomes used to evaluating and
modifying the product according the qualitative insight gained
from the usability testing (Gothelf, 2011). This again keeps the
problems small and easy to handle.
3. Show the customer the current state of the application on a
regular basis. While the application is in a production
environment the customer should have a solid idea the current
state of the application, and should be providing feedback on
how well they believe the application is meeting their needs.
This continual dialog will help to prevent misunderstandings
and allow the small issues to be observed and resolved quickly.
4. Share the results of the usability testing with all potential
users and request feedback on a regular basis. Though the
number of users in a usability test should remain small, all
potential users should be able to see and provide feedback on
the results allowing designers to effective collect empirical data
and provide an application that meets all of the user’s needs.
5. Reply to the provided feedback as quickly as possible. When
8. users provide feedback they should receive a response as
quickly as possible letting them know that their opinions are
being heard and their feedback acted upon.
1.1 Test Plan Outline
Scope
The overall purpose of testing is to ensure the devildogg
database application meets all functional and technical
requirements. The overall purpose of this test plan is to
describe the strategy and overall test plan for the application.
The approach illustrated in this document provides the
framework for all application testing. The test plan will be
updated as required for each subsequent release of the
application, and individual test cases will be written for each
version of the application that is released.
Component Testing
Component testing utilizes the provided input by the user to
receive the output of the system. The expected output of the
system is then compared to the actual output to determine the
quality of the output. Because the output is compared to set
requirements this is usually a form of black box testing where
the tester does not require any knowledge of the system.
Integration Testing
Integration testing allows developers to simulate a real world
environment for the application and see how the application
reacts to the stresses received. Typically there is external
hardware and software specifically designed to provide the
application with a simulated environment and working
conditions which mimic the real world. The results of a
simulation should be believable and repeatable. It is usually
best to have an independent auditor perform and verify the
9. simulation testing to ensure accuracy and believability. When
Unit Testing is complete Integration testing is then performed.
Integration testing validates the functionality of the components
of a process when they are integrated into a process.
Regression Testing
Regression testing is a type of software which occurs during the
maintenance phase of the project when a change to the software
or hardware has been made. The goal of regression testing is to
uncover “regressions” in the functional areas of the system.
After configuration changes, enhancements or patches have
been applied to the system. Regression testing will test the
compatibility of changed components or parts with the new
system and
Planned Tests and Test Schedules
The testing schedule will be defined using the Microsoft Project
software to develop a Gantt chard and will break the project
into five phases with each phase comprising approximately one
week of man hours per phase. A Gantt chart allows you to see
the various activities on a project, the start and end date for
those activities, which activities overlap in time with each
other, and the length of the project as a whole. The ability to
obtain that much information with a single glance allows project
manager’s to determine the overall status of the project, and
individual details regarding project tasks in a quick and
efficient manner. When these charts were originally developed
it was a very laborious task done by hand and manually updated
by hand as the project progressed. At the time that was a
disadvantage of the Gantt chart, however modern software has
automated the process of updating a Gantt chart, and made it a
very simple task to create and maintain a Gantt chart. The
disadvantages of a Gantt chart can be the time and expense to
generate reports, the cost of training personnel in using the
software associated with it, and security concerns if the details
of the Gantt chart is placed online.
Test Report
10. The test report contents will include a summary of the test
activities and the final test results. The results will be
communicated to the project stakeholders and approved by the
project manager. Specifically, the test report will contain a
summary of the test strategy,
Requirements Traceability
A requirements traceability matrix allows us the trace
requirements from their original development to their final
implementation on a timeline which records their origin and
final stage of development. This helps us to ensure the design
meets the customer needs and helps us to assess the impact of a
requirements change. The following table tracks the
requirements, and links the requirements test case number.
Those test cases are used to verify the usability of the system
and ensure that the customer receives exactly what they asked
for.
Summary
No matter the type of test or technique used it is vital that the
procedures are planned and traceable, and all of the results are
documented for later review. The attributes of a good test
include uniqueness, the high probability of finding errors, a
medium degree of complexity, and proper suitability for the
application being tested. When the verification and validation
process is properly utilized the result is the elimination of
unexpected errors, and the delivery of a system that meets all
requirements.
Section 3 Regression Test Plan Outline
2 Regression TestingTest Risks / Issues
The purpose of regression testing is to ensure that defects which
were fixed do not bring up problems in the operation of the
software. Software testing is a very important process and with
its complexity, there are some issues which may come up.
Solving one bug can lead to the unearthing of more bugs in the
software. During regression testing, it is important to test each
11. part of the software which has been modified. After the
integration of new parts of the software, regression testing
should be done in order to ensure that the system will work well
after the changes. Some other risks which might come up due to
the addition of more functionality include new bugs, ports
which might not work well and the whole program might be
defective after addition of functionalities.Items to be Tested /
Not Tested
Item to Test
Test Description
Test Date
Responsibility
General functional regression
During this process, a broad test of the product is done. This is
aimed to check whether newly added functionalities in the
product have led to issues
Test Date
Software tester
Conversion or port testing
This tests the success of port and new platform to ensure that
the program works in the new platform
Test Date
Software tester
Bug regression testing
This testing focuses on doing more tests on a bug which has
been said to have been fixed.
Test Date
Software tester
operation
The software testers have to check and ensure that after fixing a
bug or any problem in the code, the process does not affect the
operation of other modules or the same module which was
affected by the bug before its fixing.
Test Date
Software tester
Build verification testing
12. This testing is done to check whether there are parts which are
broken be
Test Date
Software tester
Localization testing
This test is done on different modifications on the user
interface. The language modification may bring some problems
which need testing to ensure that the performance is good.
Test Date
Software tester
Configuration testing
Testing the program to ensure that it can work in different
operating systems
Test Date
Software testerTest Approach(s)
Regression testing is a very important part of system
development. It is good in the detection of issues which have
not been detected before. There are different test approaches
which will be used during the test of this program. Some of the
test approaches include the ones outlined below:
Corrective Regression Testing
This is useful when the test specifications are not modified and
it involves reusing of test cases.
Selective Regression Testing
This is a type of testing which uses part of the existing test
cases. A retest on any program is allowed only if there is a
change in the entities. Only the changed items are tested.
Progressive Regression Testing
This is done when there are modifications in the specifications
which will lead to the designing of new test cases.
Test Regulatory / Mandate Criteria
There are numerous mandates that the system must be tested
against. The system will be storing personal information of the
system users including the administrator as well as the other
users. This requires security and privacy testing on the system.
13. System testing for the accounting module is important to ensure
that all the financial functionalities are compliant with the
governmental regulations.Test Pass / Fail Criteria
In this section, the pass or fail criteria which is the most
appropriate for the test plan is determined. There are different
criteria used for the determination of whether the test was
successful or not. These include:
Unit Test Plan
This checks whether all the test plans were completed. Also, the
automated test tool can be useful in checking whether all code
lines have been covered well.
Master Test Plan
All allowed test plan levels should be completed and this
criteria looks at the levels of the tests.
For any test plan to be successful, it should indicate whether or
not the project stage can proceed or not.Test Entry / Exit
Criteria
Entry criteria
This is a section which deals with the process of starting tests
and ending tests. There are some requirements which must be
met for any tests to commence. They include the successful
installation of the test hardware platform, configuration and
their proper functionality. Also, there is the need of proper
documentation of the system including its design and
requirements which will enable the tester to carry out the tests
easily. Before commencing the tests, it is also very important
for the testers and any person involved in the process of testing
to be trained before the testing process can begin. Installation
of all the software tools to be used in the process of testing
should be in place. Also, the test data which is useful for the
testing process should be available to the testers. The other
thing which is very important and must be considered is the test
environment. It should be ready before testing begins.
Exit Criteria
There are numerous things to be considered when
completing a test process. Some of the considerations include
14. checking whether all the tests and the test plans have been
successfully completed. Also it is important to ensure that an
acceptable level of testing has been done. Before exiting, all the
severe bugs in the software should be dealt with. Also, the most
risky areas should be dealt with before exiting the test. It is also
extremely important to consider the budget of testing. If the
budget has been spent, exiting will be considered. Lastly, if the
schedule is completed, then it is important for the testers to
exit.
Test Deliverables
Some of the test deliverables which will result from the process
of testing include a test case document, test results or reports,
defect results, test summary report, test trace-ability matrix and
release notes.
The test case document is used by testers to check whether
various features in the system are working well. This is an
important deliverable because it shows whether the system is
working as needed or not. Stakeholders read the test case
document to know whether the testing process was the right
quality.
The test results or report shows the success of the
implementation of the system. These reports are useful
deliverables as they show whether or not the system has
successfully been implemented.
Defect results are found in a document showing the number of
defects in the system. With the defect results, one is able to
know whether the system is working as expected or not.
Test summary report is another deliverable which is useful in
the process of testing software. This is a document which will
be useful to the stakeholders in ensuring that they identify all
the defects which are outlined in the summary.
Test traceability matrix is a table which will correlate
documents requiring many-to-many relationship in the
determination of the completeness of the relationship.Test
Suspension / Resumption Criteria
The test suspension criteria are useful in showing the criteria to
15. be used during the process of suspending part or the whole test
process. Some of the considerations to be made include the
introduction of defects which cannot allow the testing process
to go on, external dependent systems which might not be
available, missing out on a critical path deadline during the
process of development or testing as well as a holiday which
may interfere with the schedule of development and testing.
On the other hand, the circumstances under which the system
testing can be resumed include the availability of the external
dependent systems, when a bug has been successfully fixed or
any other problem has been successfully implemented and the
testing team has been notified to continue with the testing
process. Also, after a renegotiation with the clients for the
testing team to continue with the process as well as the end of a
holiday, the testing process can resume. Test Environmental /
Staffing / Training Needs
For the testing process to be carried out, there are some very
important things which must be addressed. Some of them
include the test environment which can be in the form of a lab,
hardware or software. The environment should be fully
functional and ready for the testing process.
The staff members should be trained on how to use the
environment and the test needs for the system.
The staff members should be trained all the areas which need to
be tested and the requirements. The staff should also be able to
interact well with the tools used in the testing process.
Test Planning Approach
TBD
Outline of The Test Plan
TBD
Appendix A
3
4 RTM
16. Req ID
Description
Requirement
Category
Component (HW or SW)
Test Case
Test Procedure
REQ0001
Registration Status View Test
Customer User shall be able to view their registration status
with each interaction.
Functional
Software
TC001
TP001
REQ0002
Registration Page Access Test
The system shall only allow unregistered users to access the
registration page.
Interface
Software
TC002
TP002
REQ0003
User Input Test
The system shall allow the Customer User to input their name,
address, billing information, and preferred method of payment
external interface
Software
TC003
TP003
REQ0004
Account Creation Test
The Customer User shall be able to login to the account once it
is created.
Interface
17. Software
TC004
TP004
REQ0005
Membership Test
The Customer User shall be able to determine their membership
type.
Interface
Software
TC005
TP005
REQ0006
Web Page Navigation Test
The system shall direct the Customer User to the to correct web
page according to the selection identified in the main menu
User Interface
Software
TC006
TP006
REQ0007
Load Performance Test
The system shall be able to support a minimum of 20
simultaneous users during peak hours.
Performance
Software
TC007
TP007
REQ0008
Software updates Test
The application will support auto updates without user input.
Performance
Software
TC008
TP008
REQ0009
Browser Load Time Test
18. The load time of the web pages shall take no more than five
seconds on a standard DSL speed or higher internet connection.
Performance
Software
TC009
TP009
REQ0010
System maintenance test
The system will allow the Administrator Account to install
patches and security updates on a live system without shutting
the system down.
Security
Software
TC010
TP010
REQ0011
Membership Fees Test
The Administrator Account shall be able to determine the total
sum of membership fees per month.
Functional
Software
TC011
TP011
REQ0012
Utilized Benefits Test
The Administrator Account shall be able to determine the
benefits utilized for each individual member.
Functional
Software
TC012
TP012
REQ0013
Membership Cost Test
The Administrator Account shall be able to determine the cost
of membership for each individual member.
Functional
19. Software
TC013
TP013
REQ0014
Membership Type Test
The Administrator Account shall be able to determine the
membership type associated with each individual user.
Functional
Software
TC014
TP014
REQ0015
Database Communications Test
The application shall only allow a connection to the SQL
database defined within the program.
Security
Software
TC015
TP015
REQ0016
Operating System Compatibility Test
The application shall be compatible with Windows 7 through
Windows 8.1 Operating Systems
Performance
Software
TC016
TP016
REQ0017
CRUD Administrator Account Test
The Administrator Account shall be able to read, update, and
delete member accounts when desired.
Functional
Software
TC017
TP017
REQ0018
20. Login Lockout Test
The system shall lockout the Customer User after 5 failed
attempts to login.
Security
Software
TC018
TP018
REQ0019
Login Lockout Duration Test
A Customer User which has been locked out shall remain locked
out for a period of 24 hours
Security
Software
TC019
TP019
REQ0020
Unique Identifier Test
The system shall require a unique identifier account along with
a password to access the application.
Security
Software
TC020
TP020
Legend/Instructions:
Req ID
A unique ID number used to identify the traceability item in the
requirements traceability matrix.
Description
This column contains the requirement title or description.
Requirement
This column contains a description of the requirement.
Category
This columns contains the requirement type.
Component (HW or SW)
This column is populated with a description of the hardware and
software design components.
21. Test Script or Procedure
This column is populated with the identification of the
procedure, script, or test case used.
Test Case Number
This column is populated with the test case number linked to the
functional requirement.
Req ID
A unique ID number used to identify the traceability item in the
requirements traceability matrix.
Description
This column contains the requirement title or description.
User Document
This column is populated with a description of the procedural
document linked to the functional requirement verification
method.
***NOTE: Traceability Matrix adapted from
CDC_UP_Requirements_Traceability_Matrix_Template.xls by
Daniel Vitek MBA, PMP - Consultant to CDC NCPHI, retrieved
from http://www.cdc.gov/cdcup/
References:
ISQTB (2016). What is the purpose and importance of test plans
in software testing? Retrieved
From http://istqbexamcertification.com/what-is-the-purpose-
and-importance-of-test-plans/
Onestoptesting.com. (2016). Test Plan - Suspension criteria &
resumption requirements. Retrieved from
http://www.onestoptesting.com/test-plan/resumption-
requirements.asp
Perry, W. (2015). Effective methods for Software Testing.
Wiley Publishing Inc.
Pandhi, D (2006). How to Create the Best User Experience for
Your Application. Retrieved
From https://msdn.microsoft.com/en-
22. us/library/aa468595.aspx
System Usability Scale (SUS). (n.d.). Retrieved from
http://www.usability.gov/how-to-and-tools/methods/system-
usability-scale.html
Testingeducation.org. (2016). Examples of Regression Testing.
Retrieved from
http://www.testingeducation.org/k04/RegressionExamples.htm