Assignment 13: Test Plan Write a high

advertisement
Assignment 13: Test Plan
Write a high-level test plan for the ATM Simulation by Russell C. Bjork. This includes testing scope, testing
approach, testing criteria and quality checkpoints, and tools and automation strategy.
Author(s)
William Rozzo and Jonathan Wesel
Summary
...
Significant Findings or Learning
We found it difficult to complete the test plan without a proper Requirements Specification. The ATM
Simulation had requirements, but they were very informal. In order to make sense of it, we had to
reorganize it and assign requirement IDs. This made it easer to reference them in the scope and throughout
the plan.
We also found it tricky to think in terms of how things would be done since the true development was
already completed, and it was not actually done by us. Once in the right mindset however, we found it a good
exercise of the way one might want to approach a project with respect to testing. It was helpful to point out
the testing goals and the focus of the testing in terms of what we were mostly concerned with. This is a very
important thing to do in a real world application of a test plan. For example, in a very large-scale system with
over 900 source code files and thousands of lines of code it would be a very daunting task to test each and
every piece of the code. It is much more realistic to have a focal point and goals to consider and mold the
testing against.
Honor pledge
I pledge on my honor that I have not given or received any unauthorized assistance on this
assignment/examination. I further pledge that I have not copied any material from a book, article, the
Internet or any other source except where I have expressly cited the source.
Detailed Analysis
Part 1: Testing Scope
Testing the ATM Simulation will place focus on end user facing functions. This includes the four main options
given to the customer, Deposit, Withdrawal, Transfer, and Balance Inquiry. It will concern the software
dealing with bank transactions, customer accounts, and card verification.
Top priority will be given to any paths that result in funds being added or removed from accounts through
deposits and withdrawals. The reasoning behind this is that problems in these areas hold the most risk for
key stakeholders. It could be costly for the bank customer to fix and frustrating for the ATM user.
The table below describes the requirements that will be included in the test plan.
Req ID
2.1
2.2
2.3
3.1
3.2
3.3
3.5
3.6
3.7
3.8
3.9
4.1
5.1
6.1
7.1
Requirement Description
The ATM will service one customer at a time
A customer will be required to insert an ATM card and enter a personal identification number (PIN)
The customer will be able to perform one or more transactions.
A customer must be able to make a cash withdrawal from any suitable account linked to the card,
in multiples of $20.00.
Approval must be obtained from the bank before cash is dispensed.
A customer must be able to make a deposit to any account linked to the card, consisting of cash
and/or checks in an envelope.
Approval must be obtained from the bank before physically accepting the envelope.
A customer must be able to make a transfer of money between any two accounts linked to the
card.
A customer must be able to make a balance inquiry of any account linked to the card.
A customer must be able to make a balance inquiry of any account linked to the card.
A customer must be able to abort a transaction in progress by pressing the Cancel key instead of
responding to a request from the machine.
The ATM will communicate each transaction to the bank and obtain verification that it was allowed
by the bank.
If the bank determines that the customer's PIN is invalid, the customer will be required to re-enter
the PIN before a transaction can proceed.
If a transaction fails for any reason other than an invalid PIN, the ATM will display an explanation of
the problem, and will then ask the customer whether he/she wants to do another transaction.
The ATM will provide the customer with a printed receipt for each successful transaction, showing
the date, time, machine location, type of transaction, account(s), amount, and ending and available
balance(s) of the affected account ("to" account for transfers).
The test plan will not deal with the mechanics of the simulation. The simulation will be tested as if it were a
real ATM and will not include any physical functions such as filling the machine with cash, inserting the credit
card, or dispensing money. The purpose of the simulation is to ensure the ATM software functions correctly,
and testing the simulation portion would not be beneficial in the view of key stakeholders such as the bank
customer.
Part 2: Testing Approach
Test Approach
The ATM simulation is a system in which the need for security and reliability are most important. Based on
the type of system the ATM simulations is, a set of testing goals and objectives were created. The goals and
objectives are based on what are considered the key factors for ensuring a successful product, most
importantly security and reliability.
Goals:
 Remove as many security related flaws from the system as possible
 Increase overall system reliability



Increase defect prevention
Remove existing defects
Increase the probability the system will adhere to requirements
Objectives:
 Ensure that the system performs all security related tasks reliably
 Ensure that the system performs its core functionality in a timely manner
 Ensure that the system performs all core functionality correctly
 Automate testing where possible to save resources
In the process of establishing a test plan that will lead to a successful product, key project members got
together and came up with a list of risks that have a direct impact on product quality. The most important
risks considered were schedule, staffing, development bottlenecks such as software waiting on hardware,
and training necessary for engineers on tools. The plan for testing has been developed with these key risks in
mind. For example, the tools for testing and development were chosen based on existing experience of test
and development engineers to decrease the need for training which could negatively affect the schedule.
Additional risk details are outlined in the table below.
Number
1
Risk
Schedule
Description
Any slips in meeting
project milestones
on time.
2
Staffing
Loss of key team
members. At any
time someone may
get sick or leave the
company, this must
be taken in to
consideration.
3
Bottlenecks
4
Training
This could be a
bottleneck with
respect to an
imbalance in
engineer experience
(others cannot
proceed without the
experience of
another), or one
group such as
software waiting on
hardware before it
can continue.
All engineers must
have the proper
training in all areas
Effect
Direct impact on
budget, cost increases,
customer satisfaction
decreases.
Direct impact on budget
and schedule due to
improper manning. This
could also cause
additional training to be
needed if an untrained
replacement must be
attained.
Schedule slips due to
waiting on a single
group or engineer.
Decreased customer
satisfaction and trust.
Negative effect on
budget.
Mitigation Strategy
Add some grace to the schedule
estimates to compensate for
possible slips.
Tool training can take
weeks depending on
how many different
Select as many tools as possible that
engineers already have experience
using to reduce the need for
From the start ensure there is the
proper number of engineers for all
tasks throughout the project. Lay out
a backup plan for any missing
engineer in case this occurs.
Ensure all engineers have proper
training in areas necessary to avoid a
single point of failure. Mitigation for
proper scheduling should ensure the
least amount of bottlenecking with
respect to different groups waiting
on others before productivity can
continue.
he or she is
responsible.
tools are used and the
current experience of
engineers with such
tools. This could push
schedule back and
hence have a negative
budget impact. Training
for tools will cost
money as well.
additional training.
Acceptance of the ATM system is based on the following criteria:
 Formal Qualification Testing (FQT) is conducted
o All system requirements are tested against, if any requirement fails it must be reviewed with
the customer to decide impact and whether system can be accepted with the failure.
 All requirements regarding system reliability pass
 All requirements regarding system security pass
 All trouble reports closed/resolved
Development for the ATM system follows the Waterfall lifecycle model. Based on well known statistics
regarding defect removal efficiency, the testing team has decided to test the system early and as often as
resources permit. This means that for each phase of development testing will be conducted.
Requirements Phase:
The main deliverable from this phase of development is the requirements specification. Static testing will be
conducted on the requirements to ensure that they are complete and accurate. System requirements will
also be tested to ensure they adhere to the overall goals and objectives of the system.
Design Phase:
This phase of development will produce an overall system design, which will be a guideline for the system
implementation. To ensure the overall system design is sufficient, experts from both inside and outside of the
project team will review it. Reviewers will focus on the systems goals and objectives when reviewing the
design. This will allow further development phases to build upon a strong foundation.
Implementation Phase:
For each major ATM capability unit testing will be conducted on the security of critical components.
Additionally, after each capability is developed and unit tested, it will be added to the overall system and go
through integration testing.
Verification Phase:
Once all major capabilities are complete, as bugs are found and fixed regression testing will be conducted.
Also, initially the system will be alpha tested in house. Once alpha testing completes and the system is
nearing deployment, it will go through beta testing at select sites before it is officially deployed. Lastly, formal
qualification testing against the system requirements will be conducted.
Maintenance Phase:
Regression testing will continue throughout the maintenance phase as bugs are found or new functionality is
introduced to the system.
Part 3: Testing Criteria and Quality Checkpoints
The Test Plan begins with the Requirements Phase. The entrance criteria of this phase are simply that the
project begins. A request has been given by the stakeholders to develop the system through a statement of
work or request for proposal. The exit criteria are the production of the System Requirements Specification
(SRS). A quality checkpoint will include a review of the SRS where test team members are present.
The Design Phase begins when there is an SRS that has been agreed upon by all key stakeholders. The test
team will determine which requirements need to be tested. They will focus efforts on understanding design
documents dealing with these requirements. This phase ends once the design documents are completed and
reviewed. Checkpoints for this phase include the Preliminary Design Review (PDR) and the Critical Design
Review (CDR). These reviews will include a representative of the test team along with other key stakeholders.
Implementation begins upon successful completion of the CDR. The exit criteria are met when the system has
been fully integrated. The checkpoints would include the completion of each major development phase and
handed off for integration and test.
Upon completion of integration and test, the Verification Phase begins. This phase is complete when
regression tests are done and beta testing has been thoroughly carried out. These are the exit criteria.
The entry criteria for the Maintenance Phase are the completion of the beta testing and delivery of the
system to the customer. The exit criteria are simply the end of the products lifecycle.
Below is a table summarizing the entry & exit criteria of each phase along with checkpoints.
Phase
Requirements
Design
Implementation
Verification
Entry Criteria
RFP
Complete SRS
Successful CDR
Integration Complete
Exit Criteria
SRS
CDR
Integration Complete
Delivery
Maintenance
Delivery
End of Product Life Cycle
Quality Checkpoints
SRS Review
PDR & CDR
Build Phases
Regression & Beta tests,
FQT
Part 4: Tools and Automation Strategy
The ATM simulation utilizes a known dedicated platform for all ATMs on which the system is deployed. As
such, the test team does not have to be concerned with automated tests not covering different system
software configurations. The test teams goals for test automation is to both reduce resources required to
conduct tests and to allow ease of test repeatability. Testing facilities will include hardware identical to what
will be in the field so that tests can be conducted on the same hardware that the system will be finally
deployed onto.
Code will be developed using the Java programming language. To save funding and resources, Eclipse is the
chosen development environment as all test engineers have experience using this tool. Additionally Eclipse
provides debug configurations that allow test repeatability with minimal effort. All source and configuration
items created throughout development will be tracked using Subversion via the Subclipse Subversion plugin
for Eclipse. All bugs found during development will be tracked using the Mantis bug-tracking tool. Any test
scripts that can aide test automation and ease of repeatability will be developed using the Python scripting
language. Python was chosen due to its strength as a language, the fact that it is extremely easy to learn and
the speed at which test scripts can be developed when compared to other scripting languages such as Perl.
The following is a summary of the tools to be utilized for test automation efforts.
Activity/Test
Development Environment
Configuration Management
Defect Tracking
Automated Test Scripts
Tool
Eclipse
Subversion, Eclipse Subclipse Plugin
Mantis
Python, Eclipse configurations
Download