This bugs me

6.4. Exercise - Find the Oldest Bug

Find the oldest bug that’s still open in your chosen project. Write a blog entry describing the problem, with a theory about why the bug hasn’t been resolved yet. (Bonus points if you can actually resolve the bug.)

My team is working on an open-source project called Zulip. The oldest open Zulip Github issue is titled “Replace memcached with redis”. It was opened on September 25, 2015, so it’s been open for more than five years. I believe what has kept this issue open for so long is that it’s more of an improvement than it is a bug, so the priority has always been low.

Some users would like to change the Django caching type from Memcached to Redis. The idea is that this would trim Zulip’s runtime by removing an extra remote cache and Zulip’s installation dependency.

In June 2017, a pull request that aimed to resolve this issue was created. However, the leader of the Zulip community, Tim Abbott, commented on this request that “[he is] much more interested in an implementation that makes this an option (so we can offer a sane migration path) than something that just flips this over.” I think the nature of this issue is such that most people who would want to work on it would be so passionate about it that they’d want it implemented fully, not added as an option. Hence, the issue was set aside when this pull request that flipped the caching type completely to Redis was rejected.

6.5. Exercise - Create Your Bug Tracker Account

Figure out how to create a new account on the bug tracker of your chosen project. You’ll need that account very soon.

My chosen project, Zulip, does not seem to have a bug tracker outside of github.com, which I already have an account on, of course. Specifically, they use Github Issues for bug tracking.

6.6.1. Exercise - Reproduce a Bug

Go through your project’s bug tracker and find a bug that you think you might be able to reproduce – and then try to reproduce it in the latest build. Take careful notes. Report your experiences as a comment to the bug. If you can reproduce the bug, great! Give as much information as you can. If you can’t reproduce the bug, great! Give as much information as you can, and ask the original reporter if there are other steps you might be able to take to reproduce the bug.

For this exercise, I decided to try to reproduce a bug that I identified as a potential issue for my team to fix. We wrote a bit about the initial triage of this bug on our team wiki. Essentially, this bug does not capture filters when the search term precedes them in the search query. See the images below in my reproduction of this bug in the development environment:

The first image displays the behavior of Zulip in the handled case - when the search filter precedes the search term “research”. It auto-suggests “Desdemona” as a sender. The second image displays its behavior in the unhandled exception. That is, when the search term “research” is typed in before the filter for the sender, the search does not autosuggest “Desdemona” when we begin to type it. It fails to recognize “sender:” as a filter. I tested this with several other search terms and types of filters to come to the same conclusion. Reproducing this bug was the first step to working on resolving it. This was a great exercise to get me started on my first bug fix!

6.7.1. Exercise - Bug Triage

Find five bug reports in the new state, and attempt to triage them according to the rules above. Your goal is to do as much as you possibly can, in a short period of time, to make those bug reports as useful as possible to the developer to whom they are assigned. (Note: be sure to follow any triage rules that your project may have defined. If there are no set triage rules, be sure to announce your intentions on the project’s mailing list, so that developers can provide you some guidelines if they choose.)

This was the trickiest exercise of all. I wasn’t able to find any project-specific triaging guide, though I’d be interested to see if any other teams working on Zulip did. The TOS chapter defines five steps to triaging:

  1. Letting the user know that someone has looked at it
  2. Looking for other similar bugs
  3. Guaranteeing proper severity and/or priority
  4. Ensuring that the bug is sensible and helpful to developers
  5. Ensuring that the bug is filed against the correct component, with the correct version

I looked through some bugs in the new state and did not feel comfortable completing these steps without being able to locate the triage rules for Zulip. It seems the main contributor and leader of the project, Tim Abbott, is typically the first to jump in on issues. He is usually quick to respond, so these few bugs in the new state are recent. Nonetheless, it was useful to learn about general triage steps as this is software engineering concept is new to me.

2021

Meeting Charleston

2 minute read

Today, I attended the Alumni Symposium. During freshman year, one of my classes had encouraged attendance to the (then in-person) symposium, but I was unable...

Chapter 9

2 minute read

The journey does not end after a software project has gone live. This week’s reading was “Continuing the Journey” - Chapter 9 of Client-Centered Software Dev...

Chapter 6

3 minute read

“Databases reside at the heart of most software applications” (SD Chapter 6, pg 168). This week’s readings cover Chapter 6 of our textbook, Client-Centered S...

Chapter 5

2 minute read

This week’s reading (Chapter 5 of Client-Centered Software Development) covers domain classes and unit/system testing. According to the text, “domain classes...

Release early and often

2 minute read

Proper documentation for both internal and external users of a software application is crucial to its sustained success after deployment. This week, we read ...

Stupid or Solid?

2 minute read

This week, we read “From STUPID to Solid Code!” by William Durand. This article is packed with high-level do’s and dont’s of programming. The “dont’s” are co...

What’s Happening?

2 minute read

This week, our class chose and reflected on articles from Software, Computer, or CoACM magazines. While perusing software magazines (finding good ones was an...

This bugs me

4 minute read

6.4. Exercise - Find the Oldest Bug Find the oldest bug that’s still open in your chosen project. Write a blog entry describing the problem, with a theory ab...

Reflections on Open Source in Today’s World

2 minute read

This week, our assignment was to explore http://opensource.com/, reading at least two medium-length articles from the site and blogging about what we learned...

Reflections on FOSS

3 minute read

This class, CSCI 462, is centered around contributing to an open-source software project through bug fixes, documentation fixes, and other improvements. Befo...

Introduction

1 minute read

Hi everyone! My name is Janneke (pronounced ‘Yah-Nuh-Kuh’) Morin.

Back to top ↑

2020

HW21: Chapter 24

1 minute read

24.6 Explain why program inspections are an effective technique for discovering errors in a program. What types of error are unlikely to be discovered throug...

HW20: Team Progress II

1 minute read

I feel like our team made great progress on the most recent deliverable (deliverable 4)! We met via Zoom more often than we did between any other two variabl...

HW19: Chapter 23

less than 1 minute read

23.6 Figure 23.14 shows the task durations for software project activities. Assume that a serious, unanticipated setback occurs, and instead of taking 10 day...

HW18: Chapter 21 and Chapter 22

2 minute read

21.4 Explain why an object-oriented approach to software development may not be suitable for real-time systems.

HW17: Team Progress I

2 minute read

This is my first reflection on our team’s testing project. I think this will be a helpful exercise as we move into the final stages of building our testing f...

HW16: Chapter 20

2 minute read

20.10 You work for a software company that has developed a system that provides information about consumers and that is used within a SoS by a number of othe...

HW15: Chapter 19

1 minute read

19.3 Why is it impossible to infer the emergent properties of a complex system from the properties of the system components? In the words of Ian Sommerville,...

HW14: Chapter 18

less than 1 minute read

18.4 Define an interface specification for the Currency Converter and Check Credit Ratings services shown in Figure 18.7.

HW13: Chapter 17

2 minute read

17.10 Your company wishes to move from using desktop applications to accessing the same functionality remotely as services. Identify three risks that might a...

HW12: Chapter 16

less than 1 minute read

16.9 Design the interfaces of components that might be used in a system for an emergency control room. You should design interfaces for a call-logging compon...

HW11: Chapter 9

2 minute read

9.8 Briefly describe the three main types of software maintenance. Why is it sometimes difficult to distinguish between them? Fault repairs to fix bugs and v...

HW10: Chapter 15

2 minute read

15.10 The reuse of software raises a number of copyright and intellectual property issues. If a customer pays the software contractor to develop a system, wh...

HW9: Chapter 8 and reflections on testing

5 minute read

8.7: Write a scenario that could be used to help design tests for the wilderness weather station system. Context: According to Chapter 7, Design and Implemen...

HW8: Mythical Man Month

3 minute read

Mythical Man-Month - Does adding more labor to a project linearly reduce the time to completion? Or does it do the opposite, particularly to an already late ...

HW7: Chapter 5 and 6

1 minute read

5.3: You have been asked to develop a system that will help with planning large-scale events and parties such as weddings, graduation celebrations, and birth...

HW6: Chapter 2

1 minute read

2.1 Suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems. Explain ...

HW5: Chapter 4 and reflections

6 minute read

4.5: Using the technique suggested here, where natural language descriptions are presented in a standard format, write plausible user requirements for the fo...

HW4: Reflections on software failures

3 minute read

Our readings this week began with a focus on several software engineering failures which resulted in devastating incidents such as plane crashes (Space Craft...

HW3: Chapters 11 & 12

3 minute read

11.4: What is the common characteristic of all architectural styles that are geared to supporting software fault tolerance? Architectural styles geared to su...

HW1: Chapter 1

3 minute read

1.3: What are the four important attributes that all professional software should possess? Suggest four other attributes that may sometimes be significant.

HW0: Introduction

less than 1 minute read

Hi everyone! My name is Janneke (pronounced ‘Yah-Nuh-Kuh’) Morin.

Back to top ↑