惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
博客园_首页
Vercel News
Vercel News
WordPress大学
WordPress大学
美团技术团队
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
小众软件
小众软件
Y
Y Combinator Blog
博客园 - 【当耐特】
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google DeepMind News
Google DeepMind News
云风的 BLOG
云风的 BLOG
腾讯CDC
M
MIT News - Artificial intelligence
爱范儿
爱范儿
Recent Announcements
Recent Announcements
雷峰网
雷峰网
Last Week in AI
Last Week in AI
宝玉的分享
宝玉的分享
The Register - Security
The Register - Security
Jina AI
Jina AI
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Hugging Face - Blog
Hugging Face - Blog
P
Privacy & Cybersecurity Law Blog
Recorded Future
Recorded Future
Help Net Security
Help Net Security
N
News and Events Feed by Topic
博客园 - Franky
P
Proofpoint News Feed
L
LINUX DO - 热门话题
S
SegmentFault 最新的问题
The GitHub Blog
The GitHub Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
月光博客
月光博客
D
Docker
Google DeepMind News
Google DeepMind News
有赞技术团队
有赞技术团队
IT之家
IT之家
Security Latest
Security Latest
L
LangChain Blog
V
V2EX
阮一峰的网络日志
阮一峰的网络日志
J
Java Code Geeks

David Baron's Weblog

Software engineering, responsibility, and ownership Software engineering, responsibility, and ownership David Baron's weblog: Security and Inequality Running animations on the compositor thread David Baron's weblog: Tying ecosystems through browsers David Baron's weblog: Payments on the Web Thoughts on migrating to a secure Web David Baron's weblog: The need for government David Baron's weblog: Priority of constituencies How browser developers should seek feedback from Web developers A possible approach to shorter release cycles David Baron's weblog: Fifteen years Why debug builds (and assertions) are important Ten years of the Mozilla Foundation Open licensing at the W3C Why adding compositing and blending to CSS is harder than it looks How you can help with removing -moz- prefixes Moving bug history out of the primary display of a bug report Beware of locale-specific behavior in the C library Eating dogfood and shipping software Specification style and the future of the Web CSS border-image changes and unprefixing Improving font size readability on Firefox for Android David Baron's weblog: CSS Animations, part 2 Hue-preserving color inversion with SVG filters Changes to handling of @-moz-keyframes David Baron's weblog: window.matchMedia() David Baron's weblog: CSS Animations What does a blur radius mean? Crash analysis in the future David Baron's weblog: calc() David Baron's weblog: colorDepth David Baron's weblog: Hidden complexity in specifications The most important field in a bug report: the summary WOFF font format submitted to W3C David Baron's weblog: :-moz-any() selector grouping setTimeout with a shorter delay Faster repainting in SVG foreignObject David Baron's weblog: Distributed Extensibility David Baron's weblog: Broadening crash analysis Correlating crashes with binary extensions or plugins David Baron's weblog: ex-HTML Downloadable font formats for the Web Web Accessibility as a Political Movement David Baron's weblog: CSS priorities David Baron's weblog: Bug priorities David Baron's weblog: Semi-vacation Some new CSS features in Firefox 3 David Baron's weblog: New selectors David Baron's weblog: The age of bugs Seeking a good Linux distribution David Baron's weblog: Teaching to the test David Baron's weblog: March 2008 David Baron's weblog: February 2008 David Baron's weblog: January 2008 David Baron's weblog: October 2007 David Baron's weblog: September 2007 David Baron's weblog: August 2007 David Baron's weblog: June 2007 David Baron's weblog: April 2007 David Baron's weblog: March 2007 David Baron's weblog: January 2007 David Baron's weblog: September 2006 David Baron's weblog: August 2006 David Baron's weblog: July 2006 David Baron's weblog: May 2006 David Baron's weblog: February 2006 David Baron's weblog: January 2006 David Baron's weblog: December 2005 David Baron's weblog: October 2005 David Baron's weblog: September 2005 David Baron's weblog: June 2005 David Baron's weblog: May 2005 David Baron's weblog: April 2005 David Baron's weblog: March 2005 David Baron's weblog: February 2005 David Baron's weblog: October 2004 David Baron's weblog: September 2004 David Baron's weblog: August 2004 David Baron's weblog: June 2004 David Baron's weblog: May 2004 David Baron's weblog: April 2004 David Baron's weblog: March 2004 David Baron's weblog: February 2004 David Baron's weblog: January 2004 David Baron's weblog: November 2003 David Baron's weblog: October 2003 David Baron's weblog: September 2003 David Baron's weblog: August 2003 David Baron's weblog: July 2003 David Baron's weblog: June 2003 David Baron's weblog: May 2003 David Baron's weblog: April 2003 David Baron's weblog: March 2003 David Baron's weblog: February 2003 David Baron's weblog: January 2003 David Baron's weblog: December 2002 David Baron's weblog: November 2002 David Baron's weblog: September 2002
The bug system I wish I had
David Baron · 2012-08-17 · via David Baron's Weblog

Back in October, Martin Best interviewed me (among others) to find out how we use Bugzilla. During the interview, while I was describing to him how I use it, I came up with some ideas on how I'd prefer Bugzilla to work.

One of the big problems I see with Bugzilla is that we don't have a good way to track what work has already been done for a bug and what work needs doing. For example, there are some bug reports filed against core Gecko code where the problem is clearly explained and reproducable, but it's not clear whether the behavior is correct. These bug reports would benefit from being looked at by somebody with knowledge of the relevant standards describing the correct behavior. There are other bug reports where the problem is clearly a bug (say, a crash), but it's not at all clear under what conditions the problem occurs. These bug reports would benefit from being looked at by somebody who can suggest conditions that might be relevant, so that the conditions that cause the crash can be found (so that the crash can be reproduce and debugged by a developer). But we don't have a way to direct these individuals to the right bug reports to spend their time on, which contributes to bug reports being ignored simply because dealing with bugs is an inefficient use of time.

One of the other problems with Bugzilla is that bug reports are often read frequently, but they're often read for a particular purpose, such as figuring out how serious the problem is in order to decide whether it needs to be fixed for a certain release, such as figuring out how to fix it, or such as figuring out whether a patch posted to the bug should be accepted (which depends on figuring out both whether and how the bug should be fixed). In both cases, there's a long linear stream of comments in the bug report, but the person reading the comments only needs to read a portion of the comments. This problem gets worse as the number of comments increases (which sometimes happens quite quickly).

I think it would help solve both the problem of directing people at the bug reports where they can be useful and the problem of filtering comments relevant to a given task, if Bugzilla's user interface were more oriented around these tasks.

I think the key goals that we'd want to separate things into are something roughly like the following:

Understand description
Do the developers or triagers reading the bug understand what the reporter is saying?
Agree it's a bug
Do the module owners or peers or other authority agree that the problem is a bug?
Can reproduce
Can others reproduce the problem described?
Why it's important
What makes this problem important or urgent to fix?
How to fix
What should be done to fix the problem?
Workarounds
What could be done to work around the problem if it can't be fixed now? (This discussion is currently discouraged because it gets in the way of other goals, but if it were separated it wouldn't need to be discouraged.)
Reports of intermittent test failures
Until we figure out a better way of tracking these than Bugzilla, this should probably be its own category. In fact, to some extent, our Bugzilla already has category UI for this.
Should this patch be committed (separate for each patch)
A discussion about the merits of and problems with each patch in the bug (with sequences of revision of the same patch being considered the same). In other words, code review.

One of the difficult aspects of designing something like this, however, is the tradeoff between the cost of maintaining metadata and the desire to get work done quickly. There are currently many bugs in Bugzilla that have a bunch of fields that are just left at their defaults (e.g., severity, priority), and in many cases that's fine because we don't have a need to maintain these fields. But once a bug gets complicated enough, it's useful to be able to keep the discussion organized. So it would be desirable to design the interface that allows this additional organization in a way that it's optional and that the organization can be added to data (e.g., comments) after those comments are created (for example, once there are too many comments to deal with in the current disorganized way). Doing this would also provide a transition mechanism for existing bugs.

One idea for how to build such a user interface, to give a vague idea of the sort of thing I'd like, though not one that I'm committed to, is to have separated areas of discussion (permanent comments) for the different goals we have (where comments could be recategorized after they were made, in case they were miscategorized or the bug was initially entirely uncategorized). These could, for example, be shown in tabs where the tab has an indication of the number of comments and the state. For many of the goals, in addition to the permanent comments (which could be moved to a different goal if miscategorized), we would also have a boolean state (a checkbox) to record if the goal has been met, and in some cases an editable description to record the summary of the discussion (e.g., an editable list of steps-to-reproduce that can be revised as they are better understood). I think these separate boolean states could replace much of the state currently stored in the status and resolution fields.