CSc 309 Training Activities for Spring 2009

  1. Be able to document a process using a formal process definition.
    1.
    Why Process?  
    2. Process Def Hwk due Apr 13.

  2. Write Java source code that conforms to course coding standard.
    1. Read the class coding standard.  

  3. Use the Checkstyle automated coding style checker.
    1. Read the Checkstyle overview and features and how to run Checkstyle from the command line.  (Checkstyle is also installed on the instructor's grader account and can be run in the CSc labs : 
                  ~graderjd/bin/stylechecker myprogram.java )
    2. 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.  

  4. Be able to use Subversion repository under Trac for automated source code control.
    1. If you've never worked with a version control system before, read the first two sections of chapter 1 of the Subversion online manual.  ("The Repository" and "Versioning Models"). Optionally, read the intro to CVS powerpoint presentation.  
    Read the short tutorial on using the RapidSVN client (available in the CSc labs).
    Optionally, read the Guided Tour of Subversion for NetBeans.
    2. Carry out the Build Poem exercise to demonstrate updating a module in the class SVN repository.

  5. Write system test cases conforming to the course test case format.
    1. Read the System Test Case format and guide to writing System Test Cases and Scripts.  (Note: Schach calls these "Product Tests" and some teams called them "Acceptance tests").
    2. Complete the system test revision homework.

  6. Write automated unit tests using the  JUnit framework.
    1. Read  Why use JUnit? and the JUnit quick start guide and the JUnit Style guide.
    2. The Lewis and Loftus text provides an Account.java class (Listing 4.5) that represents a bank account. They have a typical test driver called BankAccounts (Listing 4.4).

  7. Be able to use Trac for defect reporting and tracking.
    1. Read how to use the Trac ticket system.
    2. Complete the defect reporting and repair exercise .

  8. Perform a software code inspection properly, including the required documentation.
    1. Read about Software Inspections and study the inspection process.
    2. Complete the Software Inspection Homework.

  9.  Design black box test cases using Equivalence Partitioning and Boundary Value Analysis.
    1. Read about the difference between black box and white box testing. (Skip "reader comments"). Read about two Black Box Testing techniques.
    2. Complete problem 1 and 2 from the homework on black box techniques.

  10.  Design white box test cases using control structure analysis.
    1. Read about Control Structure Testing.
    2. Complete problems 1 - 3 in the Control Structure Testing Homework.

  11. Write unit tests that use fakes to test the unit in isolation from other modules.
    1. Follow the steps in the tutorial How to Test Units in Isolation with JUnit and complete the short exercise at the end.

  12. Write an automated GUI test using a scripting tool such as Costello or Selenium.
    1. Here are three short tutorials I found on the web.  I haven't verified them for correctness, but they look okay.

  13. (Implementation Manager) Be able to use Ant for creating cross-platform compile, build, and deploy scripts.
    1. Read "Writing a simple buildfile" (through "Example buildfile").

  14. (QA Manager) Be able to use the Emma coverage tester.
    1. Complete the Emma walkthrough.

  15. (Optional) Use the AStyle reformatting tool to format source code.
    1. 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.

  16. (308) Be able to document a class using Javadoc comments and required class and method header format.

  17. (308) Be able to document a detailed design using the pseudocode standard.

  18. (Optional). Play the software engineering simulation game..

  19. Basis Path Testing Technique
    1. Tutorial and example
    2. exercises.



Schedule (Suggested)

Before unit development begins (Stage 1) developers must have completed:

The coding standard training (B & C).
Using Subversion (D).

Before unit testing begins (Stage 1) developers must have completed:
Read the Test Plan.
The JUnit test case writing training (F).
(Recommended) How to Test Units in Isolation with JUnit (K).
Before beginning integration tasks developers must have completed:
Read the Change Control Plan.
Using the team defect tracking tool (G).
How to Test Units in Isolation with JUnit (K).
Before beginning writing system test scripts developers must have completed:
Writing System Tests (E).
The black box testing training (I).
(Optional) The system test script training (L).
Before unit development begins (Stage 2) developers must have completed:
The control structure and basis path testing trainings (J).
Design By Contract training.
Before beginning any software inspections (Stage 2) developers must have completed:
The software inspection training (H).


Document History
4/17/2009 JD Added second problem to item I.
4/13/2009 JD Removed boldface. Removed "basis path" from item J. Added item R (SimSE). Added item S (basis path).
4/8/2009 JD Completed item J.
4/7/2009 JD Completed item I.
4/5/2009 JD Initial Release