We include in our study all the artifacts required to build and compile the Mozilla suite: C++, C, header files, Java and IDL, HTML, Makefiles, resource files and support artifacts. C code accounts for a small fraction of the system. Its size ranges in the millions of lines of code (MLOC). Mozilla is an open-source Web browser ported on almost all known software and hard- ware platforms. To answer the research questions outlined in Section 1, we considered the Mozilla browser as a case study its CVS and Bugzilla repository were mirrored at the beginning of December 2006. ![]() Much in the same way almost never a Mozilla bug “of- ficially” goes into the CLOSED status. A considerable number of “bugs” never evolve into VERIFIED rather they remain in the RESOLVED status with final disposition FIXED. Indeed, at least for the Mozilla project, it may be over restrictive since Mozilla developers do not really comply to bug life cycle shown in Figure 1. A final thought is deserved by the above second condition limiting the match to VERIFIED issues/bugs. Indeed, the only source of information to discriminate between different types of maintenance intervention is the set of descriptions and messages posted on Bugzilla. Clearly, we are not in position to decide if the modification was due to corrective maintenance. In essence, if a fix, i.e., a patch, for a given issue is checked into Bugzilla, and is approved by QA team (i.e., resolution FIXED and status VERIFIED) and the same issue ID is retrieved from a CVS transaction message the chance that the two activities (i.e., the one on CVS and the one in Bugzilla) pertain to the same issue/bug are very high regardless who actually committed the change into Bugzilla or the CVS source tree. As Figure 2 shows, bugs can belong to the following. The dashed square represents the set of bugs having a resolution marked as FIXED 3. If we analyze the possibili- ties arising when matched bug IDs are used as hints of traceability links, a picture similar to the Venn diagram shown in Figure 2 is discovered. Let us focus on traceability links recovery of FIXED bugs. Again, there is no guarantee that bug IDs are actually part of commit messages. The implicit assumption is that, given a file, if the log message of a committed modification contains one or more bug IDs, it means that this change was made to fix those bugs. To recover traceability information all approaches resort to bug IDs often present in CVS log messages entered by developers when they commit modifications. Enforcing a rigid bug fixing process may help to document traceability links, however, this is difficult due to the lack of integration between the source code repository (CVS) and the bug tracking system (Bugzilla). In reality the real picture is more complex and different from life cycle shown Figure 1. A bug should be in VERIFIED status before its patch is applied to official CVS source tree (i.e., the modification approved by QA). In particular, it may happen that bugs once VERIFIED and FIXED are never, or seldom, CLOSED. In practice, at least for open source projects, there is no guarantee that life cycle shown in Figure 1 (as well as any other model) is consistently applied. The final goal of software maintenance is not to produce a patch per se but to produce a patch and apply it to fix the bug by modifying the source code. Figure 1 reports the theoretical bug life cycle. Bugs with status RESOLVED (VERIFIED, CLOSED) and with resolution FIXED are bugs with a documented (and QA approved) resolution. Clearly, INVALID (this was not a bug), WONTFIX (this bug will never be fixed), DUPLICATED or MOVED bugs are of scarce interest if the final aim is to build quality models. Command-line 'Send Unsent Bug-mail' tool C. index.cgi doesn't show up unless specified in the URL A.8.Ĭ reports "Client does not support authentication protocolī. Everybody is constantly being forced to relogin A.7. I installed a Perl module, butĬ claims it's not installed! A.4. The Apache web server is not serving Bugzilla pages A.3. Integrating Bugzilla with Third-Party Tools A. Configuring Bugzilla to Detect the User's Language 6.4. Prevent users injecting malicious Javascript 5. Disabling Remote Access to Bugzilla Configuration Files 4.3. ![]() Checking and Maintaining Database Integrity 4. Assigning Group Controls to Products 3.16. Editing Groups and Assigning Group Permissions 3.15.3. Assigning Group Controls to Products 3.5. Adding or Editing Components, Versions and Target Milestones 3.4.4. Automatic Notifications of New Releases 3. UNIX (non-root) Installation Notes 2.6.1. Multiple Bugzilla databases with a single installation 2.5. ![]() Serving Alternate Formats with the right MIME type 2.4.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |