A Bug Tracking System for Students

A Bug Tracking System for Students

Design and Implementation of a Bug Tracking System for Student Groups David Lannoye Department of Computer Science University of North Dakota Grand Forks, North Dakota 58202 [email protected] Abstract With the strong focus that undergraduate computer science programs are now placing on software engineering there is still one area where students are not exposed to the technology that our colleges in the commercial sector have been embracing for some time. That area is the implementation and use of bug tracking systems. This paper will discuss the design goals and development of a bug tracking system that is targeted for use by student groups to aid them in managing the development of software projects by minimizing the hassle of tracking bugs in the various versions of the software. The final system itself allows groups to collect and store various computer anomalies, errors, and problems from the project that they are working on and to be able to effectively document and communicate these bugs to the members of their group in a real-time system. The paper will examine design choices that were made to create such a system that provides powerful bug tracking abilities to students, while still serving as a gentle introduction to these systems as they are used in commercial software development. We will also examine the ideal audience for this type of system and talk about its ability to scale to larger groups as the number of communication paths between group members grows. Finally this paper will examine the benefits of exposing students to this type of software system during their time in school. 1. Introduction Undergraduate computer science classes often emphasize group project work to introduce students to the working environment of the average computer science graduate. In this group work many students try to use technology similar to that of the current industry standard, e.g. UML modelers, integrated development environments, and revision control. However, one area that many student groups ignore is the use of bug tracking systems or bug databases. In industry these play an important role by allowing developers to keep a centralized repository of all the known and fixed bugs in their software. Bug tracking systems are a tool used by software developers to enhance the quality of their software products. The automation that bug tracking systems provide allows for efficient monitoring and controlling of reported bugs. Generally bug tracking systems allow developers and testers to add bugs to a database, provide details about the bugs in the database and make updates to the bugs as progress is made. Along with these features there also features that allow bugs to be assigned to specific developers. This allows for allows for developers to use the bug tracking system as a to do list when the development cycle enters a maintenance stage. Finally bug tracking systems allow for the bugs that are entered into them to be prioritized making critical bugs easier to find in the database. 1.1. Problem Description As it has been noted that many student groups do not use bug tracking systems, so we felt it would provide an interesting experiment to design and implement a bug tracking system that is targeted for use by undergrads. The bug tracking system will be designed with features that the average student project will need, but will lack some of the more advanced features of commercial bug tracking systems. For our project we will determine which features a bug tracking system needs to offer students to be an effective system. We will then design and implement a system around these requirements. 1.2. Significance of the Work By providing a bug tracking system aimed at students we are giving students a chance to experiment with technology that the industry is currently using, but still have a system that serves as a gentle introduction to the use of bug tracking systems. The use of a bug tracking system provides groups with an advantage when it come to documenting the system since the bug database serves as a record of the maintenance and improvements that have been made to the software. The use of a bug tracking system also allows developer to keep track of bugs in a more organized fashion than other methods. Finally, after reviewing currently available bug tracking systems there were none available that were targeted to be used by students as an introduction to using bug tracking systems. 1.3. Scope of the Work The development of our bug tracking system was carried out as part of the course for a class at the University of North Dakota. Since it was developed as a semester long project our system was designed to support multiple front ends for interaction with the bug database, but for the purposes of the class only one frontend was implement. Our work included several iterative design phases followed by an implementation phase where the system was deployed to a database and a frontend was developed. 2. Benefits There are many benefits to introducing students to bug tracking systems. Specific to students there is the benefits that exposure to this technology can bring when they enter the work force. However all developers can receive benefits offered by bug tracking systems like streamlining the bug tracking process, providing repeatable tests, and reducing development time and cost by allowing for improved coordination and communication among team members. 2.1. Exposure One of the most important benefits of introducing this type of knowledge management technology is the exposure that it gives to undergrads. By giving them this exposure before they first enter the workforce they will be familiar with bug tracking systems. This will be an advantage as when they start new projects there are many other things that they will likely need to be brought up to speed on such as coding standards, libraries, and development environments. Eliminating the need to learn how to use a bug tracking system will allow them to become productive members of the team in a shorter time span. 2.2. Limited memory for details When it comes to managing the details of a complex project like software development psychology studies have shown that on average the human mind can only keep track of seven chunks of information (1). When one thinks of the impact of this on software development it becomes clear that seven chunks of information is a limiting factor when one needs to jumble around variable names, algorithms, and bugs. Thus, the use of a bug tracking system allows developers to offload this responsibility to a centralized and searchable repository of information. Allowing them to forget about bugs, but yet still have documentation of their existence and come back to work on them at a later date. 2.3. Repeatability When bugs are accurately described in the bug tracking system it allows developers to view all of the steps necessary to reproduce the bug. Having these steps documented allows the developer to create a test case for the bug and use tools such as a debugger to start diagnosing the problem. Had the steps not been documented properly parts might be forgotten making the bug non- reproducible, thus causing it to go unfixed. Documenting test cases also allows developers to notice common steps between bugs, potentially alerting them to problems at higher levels in the software architecture. 2.4. Group Management When it comes to group management bug tracking systems also offer some obvious benefits. As we know in any group project as the number of group members increases so do the number of possible communication paths between them. Having a bug tracking system helps to create a centralized place for all bug information to be stored, thus simplifying the communication process as it is related to bugs. And since all information is centralized when a tester or developer finds a new bug they can check the database to see if anyone else has reported it, allowing them to eliminate duplication of efforts that might occur if two developers found the same bug and independently set about fixing it. Also since the bug database assigns the ownership of the bug to one person it lays out responsibilities for that person to decide whether the bug needs to be fixed or not. Finally since the bug tracking system documents who owns the bug, other developers are quickly able to discover who the main contact point for that bug is. 2.5. Potential Pitfalls One of the main pitfalls to using bug tracking systems is that it can be hard to convert others on your project to start using the bug tracking system. And if everyone isn’t using it the bug database can become incomplete quickly. 3. Design Goals To design our bug tracking system we start by examining existing commercial bug tracking systems. Most of our design ideas came from examining Bugzilla (2) and FogBugz (3) bug tracking systems. After examining these commercial implementations we then started to iterate on our design until we established what we felt outlined the core functionality of our bug tracking system. Our major design goals are as follows 3.1. Simplicity The first design goal we established is what we consider to be our most important goal: The program must be simple to use. Since this program will likely be the first experience for many students with bug tracking systems it should be functionally complete, but provide limited extras allowing the user to focus on the core features of using a bug tracking system. 3.2. Multi User At an early stage we decide that the program had to support multiple connections to the bug database.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    10 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us