2006-02-10 Joost de Valk <jdevalk@opendarwin.org>
[WebKit-https.git] / WebKitSite / quality / bugwriting.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
2 <html>
3 <head>
4   <meta content="text/html; charset=ISO-8859-1"
5  http-equiv="content-type">
6   <title>Bug Writing</title>
7   <link rel=stylesheet href="../webkitdev.css">
8   <script type="text/javascript">
9         function version_set() {
10         var regex;
11         var matches;
12
13                 regex = new RegExp("Mozilla/5.0 \\(.*\\) AppleWebKit/(.*) \\(KHTML, like Gecko\\) Safari/(.*)");
14                 matches = regex.exec(navigator.userAgent);
15                 if (matches)
16         {
17                 document.getElementById('webkit_version').innerHTML = "<strong>You are currently using: <tt>" + matches[1] + ".</tt></strong><br><br>";
18                         document.getElementById('webkit_version').style.display = "block";
19                         webKitVersion = parseInt(matches[1]);
20         }
21         }
22 </script>
23 </head>
24 <body onload="version_set();">
25 <!--begin sidebar -->
26 <iframe id="sidebar" src="../sidebar.html"></iframe>
27 <!--end sidebar -->
28
29 <h1 id="banner">Bug Writing</h1>
30
31 <div id="content">
32
33 <p>This document describes how to write a good WebKit bug report. Good bug reports help developers and quality assurance (QA) people decide
34 an appropriate priority and severity for a bug, and increase the chance that a bug will be fixed quickly. The more specific information
35 you can provide, the better.</p>
36
37 <ol>
38         <li><b>Version</b>
39         <p>
40         Please select the WebKit version you were using when the bug occurred, or the closest match. <tt>312</tt> is the WebKit version
41         that shipped with Mac OS X 10.3.9. <tt>412</tt> up to <tt>417.9</tt> are the WebKit versions that shipped with Mac OS X 10.4 (Tiger) 
42         and it's updates. 
43         </p>
44         <p>
45         Locally-built versions of WebKit have a <tt>+</tt> after the build number, and their build number is generally higher
46         then the latest release version. So, for example, <tt>420+</tt> is a 
47         locally-built version of WebKit that's newer than the <tt>417.9</tt> version that shipped with the latest update of Tiger.
48         </p>
49         <div style="display: none; text-align: center;" id="webkit_version"></div>
50
51         <li><b>Component</b> 
52                 <p>If you know the precise cause of a bug (i.e., you've reduced it to a failing test case and know the reason), then you can 
53                 assign a bug to a specific component such as <tt>CSS</tt> or <tt>HTML Editing</tt>.  
54                 <p>If, however, there is any doubt in your mind as to the cause of the bug, then file it under <tt>New Bugs</tt>.  This component 
55                 is the place for any bugs whose cause has not yet been determined.  Once someone has reduced the bug and knows the cause, then it 
56                 will be moved from the <tt>New Bugs</tt> component to the appropriate place.</p>  
57         </li>
58
59         <li>
60                 <b>Platform and OS</b>
61                 <p>Please select the platform and the OS version that your bug occurred on. Typically this would be platform <tt>Macintosh</tt>
62                 and OS <tt>Mac OS X 10.3</tt> (Panther) or <tt>Mac OS X 10.4</tt> (Tiger). </p>
63         </li>   
64
65         <li>
66                 <b>Priority</b>
67                 <p>Normally a QA person or developer will set this, so the bug submitter can leave this at the default value. A number of
68                 <a href="bugpriorities.html">guidelines</a> and some individual judgment are involved in setting the priority. If you know the
69                 bug is a regression, ie. something is wrong which wasn't wrong in previous versions of WebKit, you can set this to P1.</p>
70         </li>
71
72         <li>
73                 <b>Severity</b>
74                 <p>In most cases you should leave this at <tt>normal</tt>, but if you are confident that your bug is <tt>trivial</tt> or an
75                 <tt>enhancement</tt>, it's helpful to specify that value. A QA person or developer will set this to some other value if
76                 appropriate.</p>
77         </li>
78         
79         <li><b>URL</b>
80                 <p>Fill in this field with the URL of a page that shows the bug, when possible. If you have created a <a href="reduction.html">test case reduction</a> for the bug,
81                 please add it to the bug report as an attachment rather than putting it on a web server and listing its URL here. Doing so
82                 makes it easier to work on the bug, and can be a first step towards checking in the test case along with the bug fix.</p>
83         </li>
84
85         <li><b>Summary</b>
86         <p>A good summary explains the problem in clear and specific terms, but is often concise enough to fit within the default summary space in Bugzilla.  
87         One should be able to tell exactly what a bug is about just by reading the summary.</p>
88         
89         Tips for a good summary:
90         <ul>
91                 <li>include the domain of the page that shows the bug (especially if it's an important site)
92                 <li>if the bug is a crash, note this and note whether or not the crash is reproducible
93                 <li>if you have tested and verified that this is a regression from a previous version of WebKit, prepend "REGRESSION" to the summary
94                 <li>if you know between which versions of WebKit the regression occurred, add this to the summary after REGRESSION (i.e., "REGRESSION (125-408)")
95         </ul>
96         </li><br>
97         
98         <li><b>Description</b> 
99         <p>In this field, write a more detailed explanation of the problem.</p>
100         
101         Tips for Descriptions:
102         <ul>    <li> Please do not include more than one bug in one bug report. </li>
103                 <li> If you can only reproduce the problem on a version of WebKit that you built yourself, include the date that you checked out the source code. </li>
104                 <li> If there is no simple URL to a page that shows the bug (for instance, you have to click through multiple pages for the bug to occur), then describe the exact navigation required to reach the page where the bug occurs. Don't just say "go to the forums"; use detailed steps. </li>
105                 <li> Look at Console and include any messages that might be relevant in the bug. </li>
106                 <li> Include the backtrace if you get a crash, if possible. File the bug first and then add the backtrace as an attachment.</li>
107                 <li> Include a screenshot for visual bugs. If the problem isn't very obvious, include a single screenshot which shows both correct and 
108                 incorrect renderings, for example Safari and another browser such as Firefox or Mac IE. Use Grab.app or cmd-shift-4 and grab as small an area as possible that demonstrates the problem. Then attach the screenshot to the bug. </li>
109                 <li> Be as specific as possible. For instance, if you're describing a problem that occurs while scrolling, note in the bug whether you're scrolling with arrow keys, arrow buttons, scroll thumb, clicking above or below the thumb, scroll-wheel mouse, etc. </li>
110         </ul><br>
111         
112         <li>
113                 <b>Depends on</b>
114                 <p>If the fix for this bug depends on another bug fix, put the other bug's number here. Otherwise, leave it empty.</p>
115         </li>
116
117         <li>
118                 <b>Blocks</b>
119                 <p>If this bug blocks another bug from being fixed, put the other bug's number here. Otherwise, leave it empty.</p>
120         </li>
121 </ol>
122
123 </body>
124 </html>