Solving A Bug

(Difference between revisions)
Jump to: navigation, search
(Created page with "== Solving A Bug == === Preparation: === {| border="1" |- |'''Description''' || Learners will gain an understanding of how bugs are reported in a complex FOSS project, how v...")
 
Line 4: Line 4:
 
{| border="1"
 
{| border="1"
 
|-  
 
|-  
|'''Description''' || Learners will gain an understanding of how bugs are reported in a complex FOSS project, how verify a bug, and how to contribute a fix to a FOSS project.  
+
|'''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 [[Bug_Tracker_Activity|Bug Tracker Activity]].
+
|'''Source''' || This activity is a specialization of the [[Solving_A_Bug|Solving_A_Bug]].
 
|-
 
|-
|'''Prerequisite Knowledge''' || None.
+
|'''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''' || 60 minutes
+
|'''Estimated Time to Completion''' || 120-180 minutes
 
|-
 
|-
|'''Learning Objectives''' ||Ability to: 1) Describe the role that a bug tracker plays in a FOSS project, 2) Describe the different types of issues stored in a bug tracker and their priorities, and 3)Identify and track the status of a particular bug in a project.  
+
|'''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''' || Access to Internet/Web and web browser.
+
|'''Materials/Environment''' || Java IDE configured with JUnit 4.12.
 
|-
 
|-
 
|'''Additional Information''' || ?
 
|'''Additional Information''' || ?
 
|-
 
|-
|'''Rights''' || Licensed CC BY-SA
+
|'''Rights''' || Licensed JUnit
 
|-
 
|-
|'''Turn In''' || Wiki posting describing the results of your exploration below.
+
|'''Turn In''' || Report that includes screen shots.
 
|}
 
|}
  
 
=== References: ===
 
=== References: ===
* [http://producingoss.com/en/bug-tracker.html Karl Fogel's chapter on bug trackers]
+
* [http://junit.org/]
* [http://en.wikipedia.org/wiki/Bug_tracking_system Wikipedia's page on Bug Tracking Systems]
+
* [https://github.com/junit-team/junit/wiki/I-want-to-help!]
  
 
=== Background: ===
 
=== Background: ===

Revision as of 20:05, 26 May 2015

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:

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 - Bug Reports

  1. Open a browser and go to GNOME Bugzilla
  2. Enter 'MouseTrap' in the search bar.
  3. What do each of the column names below indicate? What are the range of possible values for 2-7 below?
    1. ID
    2. Sev
    3. Pri
    4. OS
    5. Product
    6. Status
    7. Resolution
    8. Summary
  4. In what order are the bugs initially displayed?
  5. What is the meaning of the shading of some bug reports?
  6. What is the meaning of the colors used when describing a bug (red, gray, black)?
  7. What do the bug reports tell you about the current state of the system?
  8. Select a bug that you think that you might be able to fix and look at it more closely (click on the bug number).
    1. Identify when the bug was submitted.
    2. How understandable is the description?
    3. Identify if there has been recent discussion about the bug?
    4. Is the bug current?
    5. Is the bug assigned? To whom?
    6. What would we need to do to fix the bug?
  9. Repeat the previous step with a different kind of bug.

Part 2 - Collective Reports

This section refers to the entire GNOME project, not just MouseTrap.

  1. Click on the “Reports” link on the top of the page.
  2. Click on "Summary of bug activity for the last week."
  3. How many bug reports were opened in the last week? How many were closed?
  4. What was the general trend last week? Were more bugs opened than closed or vice versa?
  5. Who were the top three bug closers? Why is this important to know?
  6. Who were the top three bug reporters? Are these the same as the top three bug closes? What is the overlap in these two lists?
  7. Who are the top three contributors of patches?
  8. Who are the top three reviewers of patches? What is the overlap between these lists and the bug closers and bug reporters? What is the overlap between patch contributors and patch reviewers?

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License

CC license.png

Personal tools
Namespaces
Variants
Actions
Events
Learning Resources
HFOSS Projects
Evaluation
Navigation
Toolbox