Solving A Bug
Contents |
Solving A Bug
Preparation:
Description | JUnit is a large, mature free and open source software (FOSS) that is written in Java. Learners will read an open issue in JUnit, find resources to research and understand it, replicate the bug, produce some improved additional test cases while writing a better bug report, and describe the process required to fix the bug. |
Source | This activity is a specialization of the Solving_A_Bug. |
Prerequisite Knowledge | 1) Including a library in a Java project 2) Running a JUnit Test Case (No in-depth knowledge of JUnit assumed) |
Estimated Time to Completion | 120-180 minutes |
Learning Objectives | Ability to: 1) Understand, investigate and report details on a real, poorly documented, unsolved issue in JUnit a FOSS application, 2) Reproduce a reported bug, 3) Write an improved bug report and 4)Describe the process required to fix the bug. |
Materials/Environment | Java IDE configured with JUnit 4.12. |
Additional Information | ? |
Rights | Licensed JUnit |
Turn In | Report that includes screen shots. |
References:
Part of your challenge is to find more resources.
Background:
Bug tracking systems are a form of change management and organization used by FOSS projects. Bug trackers do far more than simply keep track of bugs. They also are used to hold new feature requests, patches, and some tasks. Bug trackers are also called request trackers, issue trackers and ticket systems.
Directions:
We will use the GNOME MouseTrap project to explore a typical Bugzilla instance for a project.
Part 1 - Install a version of JUnit
- 1. You will download junit-4.12.jar at https://github.com/junit-team/junit/wiki/Download-and-Install . Remember the directory location you placed the jar files in.
- 2. Create a project in Eclipse.
- 3. Add the jUnit-4.12 jar in its build path.
Part 2 - Locate and describe the JUnit Issue
- 1. Locate issue number #226 in the github Social Coding JUnit Issue Tracker at https://github.com/junit-team/junit/issues/226.
- a. How is the issue categorized? Is this a bug or feature request or something else?
- b. What date was it reported?
- c. Has the issue been assigned?
- d. How many participants in the discussion?
Part 3 - Reproduce the JUnit Issue
- 1. Using JUnit 4.12, the information supplied about the issue and any other information you may have found in your research answer the following questions:
- a. Did the code shown execute?
- b. Was your result/output the same as the author of the issue?
- c. Take a screen shot of Eclipse when you reproduce the bug, and submit it in your report that answers these questions.
2. In your opinion, was this bug well-written and easy to understand for the first two cases? Why or why not?
Part 4 - Write an Improved Bug Report
- 1. There is a lot of missing information in this issue. Please supply three (at a minimum) pieces of information that should have been included in the description of the issue.
- 2. In a clear, and succinct manner provide a better description of the problem described. Please proved 2 additional test cases: one that is successful, one that is not. Show the unsuccessful/successful conclusion for each of your new test cases in screen shots.
Part 5 - Write an Improved Bug Report
1. Assume that this bug sparks your curiosity. State an approach that you would take to find a solution for this bug. A VERY general outline is acceptable. 2. Outline the approach you would take to commit the fix for the issue if you have successfully coded it. A general outline is acceptable.