One way to contribute to an open source project is to select a bug, fix it, and submit the solution back to the community. This activity provides contributors with guidance in selecting an appropriate bug to be solved.
Students should be familiar with how bug trackers work -- see Intro to Bug Trackers (Activity).
|Learning Objectives||After successfully completing this activity, the learner should be able to:
|Process Skills Practiced|
- In order to identify an appropriate bug to be solved, you must first identify the criteria you should use to select an appropriate bug. Spend some time thinking about the following questions before you start searching the bug tracker:
- What platform is the application run on?
- What parts of the application are you familiar with?
- What programming language is used?
- What database is used?
- What other technologies are used?
- How complex is the code base?
- Where is the documentation?
- What kinds of things are you able to contribute?
- Test cases?
- Installation instructions?
- Once you have some understanding of the types bugs that you are comfortable addressing, find the bug tracker for the project.
- Peruse the bug tracker and identify a set of five possible bugs. You may need to ask the community to ensure that the bugs are still relevant.
A list of bugs including bug number, brief description (in your own words, not copied from the bug report), and a feasibility assessment of how likely you will be able to solve the bug. The feasibility should include an explanation of why you think that you have the skills to solve the bug. The list should be organized in order from easiest to solve to most difficult. One possible format for the deliverable might be:
|Bug Number||Short Description||Bug Status||URL for Bug||Analysis|
Alternative submission Could also ask for estimate of resources, time, and/or lines of code needed to solve the bug and/or set of test cases to test solution.
If you're working with a specific open source project:
- ask the project (via IRC or mailing list) if there are a particular set of bugs that your students should focus on. Providing a subset of bugs for students to investigate will reduce time students spend searching for bugs.
| ACM Body of Knowledge
Area & Unit(s)
Software Development Fundamentals (SDF) // Software Engineering (SE)
Development Methods, Verification and Validation (Defect tracking)
Medium (requires some understanding of the intended functionality of the software, ability to use bug tracking software, and critical thinking skills)
|Environment / Materials||
Student needs access to the project's bug tracker, internet access.
Heidi Ellis, based on Gina Likins
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License
Suggestions for the Open Source Project
Your community should have specific expectations around [support] that are published [somewhere]. For example, if your code will only work on Fedora versions newer than 19, then specify that.
If there are a set of bugs that it would be more helpful to have someone verify, then marking those in some way would help the instructor.