JMU CS345 - Software Engineering
Help Policies Solutions Study-Aids Syllabus Tools
Homework: Testing and Debugging


1 Purpose

The primary purpose of this assignment is to help you review (and demonstrate that you have acquired) the knowledge and skills required to test and debug software. This includes an understanding of black-box and clear-box testing, the debugging process and instrumentation techniques, and the creation of a testing environment.

2 Overview

As you know from earlier assignments, SagaciousMedia is a (fictitious) company that develops educational hardware, software, and content for both the formal and informal education markets. To date you have written several components for their application named Transcriptz.

For this assignment, you must create unit tests for and debug a class that was written by SagaciousMedia. Specifically, you must create JUnit tests for PostFilterMappingTransformer.java, identify the faults it contains, and correct those faults.

You must also correct any other defects in the PostFilterMappingTransformer class. This includes, but is not limited to, style defects, incorrect/insufficient comments, "suspicious" constructs, code duplication, lack of clarity, etc.

3 Documents

Sagacious Media has created several new documents for this release.

4 Hints

The PostFilterMappingTransformer class contains several faults. So, it should fail some of your tests. If it does not, improve your test suite.

For each failed test, understand the symptom and the trigger condition (i.e., stabilize the fault). Then, localize each fault, correct each fault (documenting the correction in the source code), and verify the correction.

5 Testing

You must use JUnit (v5) for testing. Your JUnit test suite need only cover the PostFilterMappingTransformer class. Your tests must be in a package named testing and each test class must include the word "Test" in its name. You must not make use of any of the data files from previous assigments in your tests.

6 Submission

You must submit (using Gradescope) the necessary "old" classes and interfaces, the corrected PostFilterMappingTransformer class (and associated interface), and your JUnit tests (for the PostFilterMappingTransformer only) in a .zip file (packaged correctly).

Because you should not be using Gradescope to verify your code (i.e., because you must be able to write correct code and tests without the help of a submission system), you may submit to Gradescope at most five times and you will not receive any hints from Gradescope. If you submit more than five times you will receive a grade of 0.

7 Grading

Your submission will be graded by Gradescope as follows:

Hence, the autograder will assign one of three possible grades: 0, 50, or 100. Points may then be deducted if you submit too few tests.

Copyright 2024