CSCI 240 - Testing Assignment

Final Compilation due Tues Nov 20 at the start of class

The Assignment

For this assignment, you will be developing and implementing a strategy for testing ANOTHER TEAM's system. This will give you a chance to practice working with a "legacy" system, applying testing methodologies, and broaden your experience of the technologies involved in Vi-Char.

This assignment is divided into 4 parts, some of which you will complete individually and some of which you will complete with your Testing Group (which is different from your normal team). Each part will be done in order, building on the previous work.

Part 1: Exploring The Code Base (due Fri 11/02)

The first part of the assignment involves working with legacy systems. You'll be given access to another team's code and documentation. Your goal is to try to understand their system using only the documentation they provide. For this part of the assignment, you can ONLY use the documentation they provide--asking a member of the developing team for help or an explanation will be considered cheating.

During this part of the assignment, you will perform the following activities:

You'll start this process on your own, write a copy of a short document (2-3 pages) describing your work. Upload this document to Moodle by normal class time on Mon 11/05. This document should answer the following questions, each in a paragraph or so:

  1. Were you able to install and run the system? Why or why not?
  2. Does the system conform to the specificatin? In what ways does or doesn't it match the documentation?
  3. Is the implementation (code) easy to understand? Why or why not?
  4. What might you have changed about how the system was organized/
  5. List three (3) features or functions of this system that should be tested for defects and robustness.

You will be handing in a copy of this write-up as well (also on Fri 11/02); it will be graded as a Quiz.

On the Friday this is due, you'll be meeting with other reviewers of the same system. This will be your Testing Group. You should compare notes about how things work and what functionality needs to be tested, begining to compile a group Testing Plan.

Part 2: Code Review

On Tues 11/06, you'll be doing a pair-based informal code review. You'll be getting together with a developer of the system you're testing. The developer will give you a verbal walk-through of the code, explaining what each method/component/etc. does and how it works.

From this point on, it is acceptable to discuss and coordinate with the developers of your testing system about how things work and any other work you may need to do.

Part 3: Perform Testing

In your Testing Group, you will peform tests--both functional and unit tests--on the system (which you should now have a sufficient understanding of). Remember that everyone needs to take part in the testing process--if possible, have each person take the lead on a different test.

Part 4: Write up Testing Results (due Tues Nov 20)

As a group, you will compile your analysis, reviews, test results, etc. into a single testing report to give back to the developing team. This document should have a format similar to the following1:

  1. Cover Page: Include a cover page with the name of the system you are testing and the names of all the Testing Team members.
  2. Introduction: As with previous documents, include a few sentences about the project so we know what the document is concerning. Also make sure to identify what software system is to be tested, as well as the risks and impacts introduced by this software. This should be about a page.
  3. Features to be Tested: List what features and functionality you tested.
    • Give a name to each feature that you are testing (for easy identification purposes)
    • Describe each feature in non-technical language that lay users could understand.
    • Detail the Pass/Fail Criteria for each feature to be tested. How will you know if a feature works or not? At the unit level, this may be "all test cases completed," while at a higher level this might be "A specified number of attempts completed without errors and a percentage with minor defects."
    • Detail the Testing Methodology: e.g., how are you going to practically apply the pass/fail criteria (e.g., "have one person hit the same button 10 times to see if it worked").
  4. Test Results: Include a table of whether each feature passed or failed testing. You can also include any notes about tests may have failed (e.g., "caused system to crash") to help the developers fix the fault in the future. Note that the system does not need to pass all the tests at this point.
  5. References: Include annotated links to any tools or frameworks that you used to perform your testing.

This final document will be due on Tues Nov 20 (before Thanksgiving break); in class, your group will share back the results of your testing.

1 Although your document will not exactly follow the standard, you may be interested in the IEEE Standard 829 for Software Test Documentation.

Submitting

Part 1 is due Mon 11/05 at the start of class; upload a pdf copy to the appropriate Moodle dropbox.

Part 4 is due Tues 11/20 at the start of class; upload a pdf copy to the appropriate Moodle dropbox.