Software bugs are familiar to both the developers and users of software. Matthew A. Telles [1, p. 56] offers the following definition for a bug: “Bugs are behaviors of the system that the development team (developers, testers and project managers) and customers have agreed are undesirable.” Due to human errors and bad specifications, bugs will continue to be a part of software development projects.
Tracking bugs is important for several reasons. Business wise bugs are considered expensive since they damage the company’s reputation and delay projects: “In 1994, Capers Jones conducted a survey of approximately 4,000 software projects. The survey asked the participants for reasons for schedule overruns. One of the most common reasons reported was poor quality.” [1, p. 63]
In addition, the survey also showed that many projects are simply cancelled due to an overwhelming amount of problems. From the human point of view, the people involved in projects with numerous problems get frustrated, demoralized and lose interest.
While web application development is a relatively new branch of software engineering, many of the traditional software engineering practices apply to it: “Following proper software engineering techniques (or modifying them for web development) can have a substantial impact on overall system usability primarily because it enables developers to achieve higher quality.” [2, p. 343]
The Marmalade 1.0 bug tracking system (also referred to as Marmalade) aims to help development teams to report and keep track of errors in projects. The system is meant for projects that utilize a browser-based interface such as a content management system or a web site. A browser-based system is, however, not a pre-requisite so it can be used to keep track of virtually any software project.
The system can be roughly divided into two components: reporting and administration. Found flaws are reported using the reporting interface and managed using the administration interface. The aim was to make the reporting of errors as convenient as possible. In addition, it was ideal to send as much automatic data as possible. Apple Computer, Inc. has successfully applied a similar method in debugging their Safari web browser (public beta launched in January 2003). The application has an integrated bug reporting interface that allows users to report various problems. It has advanced features such as a built-in option to send a screen capture to demonstrate rendering errors. The sent error reports are logged to a database that the developers can access. The reporting interface is shown in Image 1.
Image 1 - Screen capture of the Safari browser’s bug reporting interface
The client
The system was made for Morning Digital Design Oy (from now on referred to as Morning), a Finnish provider of digital marketing services. The work was done in September-December 2003 as an independent project.
The company has a relatively long history, dating back to 1988. Throughout the years the company has undergone multiple mergers and operating names. The current form was reached in January 2001 when To The Point Oy and TJ Group Branding and Advertising units were united. The shares of the formed company were distributed equally to the previous owners. Both Edita Oyj and TJ Group Oyj hold 50% of the shares.
With such a long history, the service offerings and products of the company have evolved through the years. As markets change the previous focus from producing CD- ROM multimedia products has switched to a broader direction: “Morning is a service company that focuses on consulting, planning and producing works for digital marketing communications” [3]
The company employs over 50 people in two offices in Helsinki and Tampere. The turnover for the year 2001 was EUR 4 million and EUR 4.5 million for the year 2002.
Motivation and objectives
Morning has multiple products that are either completely browser-based or have a browser-based administration interface. These include the Morning CMS system for content management on the web and the more versatile SmartStore CMS for publishing content for the following channels:
- Retail store terminals
- Mobile devices
- Internet
- CD-ROM / DVD
The main motivation for building the Marmalade system was the fact that there were no uniform means to keep track of the problems in the products being developed. Many project managers keep Microsoft Excel charts or similar tools to keep track of the problems. The requests for fixing the problems were given in person or by e-mail.
Introducing uniform reporting templates (examples shown in APPENDIX E) could make the process more fluent, but ultimately these methods of tracking bugs become a problem. For example, when a group of people is doing work on a project, time can be wasted by searching for problems that have already been addressed: “Were you able to find the reported bug? If not, remember that bugs don’t just go away; either they’re hiding, or they have been fixed already.” [4, p. 193]
The objective was to improve the workflow of the development process by providing a tool that would be used by the whole project team to keep track of problems and errors.
Structure of thesis
Chapter 2 contains a general description of the development process as a whole.
Chapter 3 describes the basic requirements set for the Marmalade system.
Chapter 4 elaborates the planning phase and briefly introduces the technologies used to build the system and the reasons they were chosen.
Chapter 5 explains the implementation in detail, including problems encountered.
Chapter 6 describes how to deploy the system to track a browser-based application.
Chapter 7 analyses the process in general and draws conclusions such as what should have been done differently and what could be done to improve the system.
APPENDIX A, B and C contain screen captures of the final application.
APPENDIX D contains a table of commercial bug tracking tool license fees.
APPENDIX E contains two examples of traditional bug reporting forms.
APPENDIX F contains the file structure of the final application.