CPE 309 Training Plan
Purpose
The purpose of this document is to describe what technical training
activities
are necessary on this project.
Required Skills
Add to the list below any
additional
technical skills that developers will need for the project to succeed.
This list is best created as a team activity.
- Design black box test
cases
using Equivalence
Partitioning and Boundary Value Analysis.
- Write an automated system
test script.
- Write an automated GUI test script, such as Abbot.
- Design white box test
cases
using control
structure analysis and basis path analysis.
- Write JUnit tests.
- Write java source code
that
conforms
to class coding standard.
- Be able to use
the Checkstyle automated coding style checker.
- (Optional) Use the AStyle
reformatting
tool to
format source code.
- Be able to use Subversion
for
source
code
control.
- Be able to use Trac
(or Teamatic or
Elementool) for defect
reporting and tracking.
- Be able to
follow the Personal Software
Process (PSP) and complete the required documentation correctly.
- Carry out a software code
inspection
properly and complete the required documentation correctly.
- (Optional) Be able to use
the Emma coverage tester. (Here's a
Emma
walkthrough).
Initial Skill Assessment
(Spring 2008) We will assume that our team
members
have none of the required skills with the following exceptions:
- Everyone should know the class coding standard and how to
use CheckStyle.
- Some people may know how to use Subversion. However, they
still need to do the Subversion activity.
- Some people may
know how to write JUnit tests. Individuals may exempt themselves
from JUnit training by providing sufficient examples of JUnit tests
they wrote last quarter.
Training Goals for Individuals
The goal is for all individuals
to
be competent with all of the required skills list above.
Training Resources
- Read the class coding
standard. Read the Checkstyle overview and features
and how to run
Checkstyle from the command line.
- Read the intro to CVS
presentation,
the CVS/SVN
Tutorial, and if necessary the Subversion manual.
- Read Why
use JUnit? and the
JUnit quick start guide and the
JUnit Style guide.
- Read about the
difference between black box and white box testing. (Skip "reader
comments").
- Read about two Black
Box Testing techniques.
- Read the System
Test Case format and guide to writing System
Test Cases and Scripts
- Read about Control
Structure Testing.
- Read the Basis
Path Testing Tutorial and study the Basis
Path Testing example
- Read about Software
Inspections.
- Read about PSP procedures. Basic
PSP
script and FAQ.
- Read about using the Abbot GUI
testing framework.
- Add other resources as appropriate.
Training Activities
- (Read) Printout this sample
java module (on a single page) and mark in ink all the deviations
from
the class coding
standard. You may use a brief narrative comment (e.g., "missing
@param tag") or you can use a reference number from the coding
standard. Rename the file with a ".java" extension. Now
run the Checkstyle tool with the 308style.xml
and 308checks.jar
and obtain a printout of
the results. Highlight each item on the printout that you failed
to find through manual inspection.
Also note any items you discovered that were not found by the
Checkstyle tool.
- (Read) Carry out the Build Poem
and the PolyRanking
exercises to demonstrate updating a module in the class
SVN repository.
- Part A. (Read) The Lewis and
Loftus
text provide an Account.java
class (Listing 4.5) that represents a bank account. They have a typical
test driver called BankAccounts
(Listing 4.4).
- Write a JUnit test class, AccountTest, which
performs the same tests as their driver.
- Compile it and run it with JUnit. Note: Use the assertEquals()
method,
which
implies that you will need to add an equals() method to the
Account
class.
- Write a new test
case that reveals
a defect lurking in the Account class. (Hint:
Bad Money example)
- Submit a source
listing
of your complete JUnit test class, the modified Account
class, and a listing of the execution of your JUnit test (using the
text-based TestRunner).
Part B. Follow the steps in the tutorial
How to Test Units in Isolation with JUnit and complete the short
exercise at the end.
- Part A) Invent a fictitious defect and
demonstrate
creating, updating, and closing the
defect in your team's defect
tracking tool.
Part B) Complete the defect reporting and repair exercise 3
with your Java application.
- Part A. Complete the ad-hoc
testing activity.
Part B. (Read) (Read)
Complete the homework on black
box techniques.
- Part A) (Read) Complete the system
test revision homework.
Part B)
Complete the system
test script homework
. (Spring 2008) Complete the
Costello Tutorial
(skip the exercise
at the end). Submit printout of the script you created.
- (Read) Complete the one
problem in the Control
Structure Testing Homework.
- (Read) Complete the two
problems in the Basis
Path Testing Homework.
- Part A. Complete the PSP training activity
Part A.
Part B. Complete the PSP training activity
Part B.
- (Optional) On the course Resources page, find the link to the
AStyle reformatting
tool. Download the tool and use the sample batch file to reformat this
example poorly
formatted code. Compare the result to the original and explain what
improvements have been made.
- (Read) Complete the Software
Inspection Homework.
- Supplemental
Basis Path Testing Assignment (optional)
- Supplemental
JUnit Testing Assignment . (optional)
-
Supplemental Defect Repair and Reporting exercise 2. (optional)
Training Assessment Procedure
Spring 2008
Developers complete the activities according to the
course calendar.
On the due date the developers bring their completed work to class.
Instructor leads a discussion of the activity and solutions.
Developers review each others work and mark corrections on the paper
using green, red, or pink colored ink.
Instructor reviews work, records credit/no credit/bonus, and returns to
developers.
Spring 2006
Developers complete the activities according to the
course schedule.
On the due date the developers bring their deliverables to class.
Instructor leads a discussion of the activity.
Developers review each others work and mark corrections on the paper
using green, red, or pink colored ink.
Ten points possible per assessment.
Instructor reviews work, assigns score, records score, and returns to
Training Manager.
Training Manager keeps record of which developers have completed which
assessments.
Training manager recommends supplemental training as appropriate for
developers with low scores.
Schedule (Suggested)
Before unit development begins (Stage 1) developers
must have completed:
(Recommended, not required) The PSP documentation training
The coding standard training.
Using CVS.
Before unit testing begins (Stage 1) developers
must have completed:
Read the Test Plan.
The JUnit test case writing training
(Recommended) How to Test Units in Isolation with JUnit.
Before beginning integration
tasks
developers must have successfully passed the assessments for
Read the Change
Control Plan.
Using CVS
Using the team defect tracking
tool.
Before beginning writing system
test scripts developers must have completed:
The black box testing
training
The system test script training
Before unit development begins (Stage 2) developers
must have completed:
The control structure
and
basis path testing trainings.
Design By Contract training.
Before beginning any software inspections (Stage 2) developers
must have completed:
The software
inspection
training.
Before beginning maintenance
tasks
developers must have successfully passed the assessments for
Using CVS
Using team defect tracking tool.
Training Results
Summary
Give a summary of how the
training
plan was carried out.
Assessment Results
Include the actual results
from
the assessments.
Document History
1/6/05 Revised Assessment Procedure for Wtr 05
1/12/04 JD Made PSP optional instead of
strikethrough. Added 206 to title. Changed "teamatic" to "team
defect tracking tool."
12/30/03 JD Revised for Winter 2004
5/12/03 JD added link to Basis Path Tutorial
4/13/03 JD added link to PSP training
4/2/03 JD added testing article to "activities"
3/30/03 JD Initial Release
link back to team home page