From: developerWorks Chinese Author: Cai Yan (cindy_cai@sina.com) [2004/04/26]
Defect management runs throughout the entire software development life cycle, is an indispensable link, but there is no need to pay more attention to some small and medium-sized developers in China. This paper combines practical applications, systematically introduces defect tracking open source software BuggIit and Mantis, and throwing bricks, causing attention. In your project, if there is such a problem: the defects of the tester have been forgotten; the extension project is finally released, but the user has frequently complained that the management personnel points to testers; writing irregular error reports, Make developers to find testers again and again; the regional dispersion development team, through email and document exchange, defective state confusion, relevant personnel can't get relevant change information in time ... then let test organization use databases to deploy Records and tracking of product defects! For SMS development organizations, it may be unlikely to use thousands of US dollars a licensed business software, but the software for free and easy-to-maintain can fully meet your needs of 80%. If your organization is still trapped in an endless disorderless defect, don't hesitate, move, free software can manage this process well, but in implementation requirements, you should be self-improved. Let's take a look at a small and medium-sized development process for more than two years, perhaps some inspiration to you. I. Project background, organized a company in the global shipping industry informatization, there are four R & D centers around the world, mainly for company development of shipping and logistics software, mostly to use the company's internal and business-related customers, some mature software Sales are available to peers or a neutral platform. The company's Shanghai R & D center uses free or open source software tracking defects, with independent test teams, including functional testing, pressure testing, quality assurance, and process improvement, and is free software Buggit. Later, in order to solve the problem of defect tracking in different places, it began using Mantis 0.17.5 (open source software, php / mysql / web based) to start using an actual project, and feedback according to the feedback of different roles of the project group. The test team improves the system to configure and code changes; because the effect is very good, it will be promoted to many other projects after a few months. Second, defect tracking process defects include product errors, demand and design changes, new features or extensions (New Feature, Enhancement), etc., which exists in the entire software development lifecycle. Use the Center database to facilitate project groups and managers to get correct, enough information, simplify the information sharing process of geographical dispersion, which can also automate the workflow and minimize duplicate work. Different organizations, the defect tracking process will vary, and the figure below is a typical defective life cycle map. During the alpha / beta test, the tester submits the discovered bug to the defect tracking system, which should include: failure description: summary, reconstruction step, isolation information; Identification information: order of the ID number, report author, report archiving date . A good system also needs: Severe levels to assess the absolute impact of errors in the system under test; priority, assess the possibility of events in the actual use of customers, or follow-up impact on target customers; System soft, hardware configuration, test version number; attachment, error message, or screenshot.
After the submission, bug is "submitted" status, change control committee (Change Control Board), can be a different role of several people, or a person who is a person who is determined: it is bug, assigned to related developers to repair, status For "assigned"; not bug or other reasons, close, status "closed", resolution selection according to the actual situation; is bug, but delay to the next version fix, the status is "postponed". After the developer repairs BUG, its status is changed to "resolved", and they should be released into the next test version (Test Build), testers test all "resolved" bugs, no problem should be turned off ("closed" status), no Repair is to reopen ("OPENED" status). For the bug submitted by the user, some systems add "confirmed" state, indicating that the test bug does exist. For other changes (such as demand change or new), the above process is equally applicable, but may require multiple assignments, such as demand changes, business analysts want to update demand documents, system analysts want to update design documents, and then programmers Change code. It is best to have the following functions: root cause: Root Cause: This requires the help of developers; Close Date and Resolution: System Generate Close Date, how to solve the problem; system automatically track record defect history, Enter a comment; convenient query function; customizable report, defect trend chart; Email reminder. III. After the implementation process of defect tracking process is formulated and evaluated, the appropriate tool should be selected, and a newly established organization can also select the tool, and then combine a specific tool to develop processes. Before formally implementing all members of the project group, we will improve the use efficiency of tool usage and communication between members. Initially we chose a very simple and easy-to-maintain tool buggit for bug tracking inside the project group; with the emergence of cross-regional development project, communication and communication complexity convex, we selected the web based system. Let's take a look at the specific implementation of the two systems. Using free tool buggit buggit is a very compact C / S structure Access application, which is limited to intranet, 10 minutes can be configured, easy to use, easy to query, meet basic defect tracking, and ten users Decree domain, there are twelve reports output. We used a more than a dozen to develop a two-year time (version V2.20 BLD 4 for Windows 95/98 and NT), basically no data loss, there have been several database format errors, generally recover, email Notices and defect trend graphs are unstable. The security and permission control of the system is very weak, and team members need to cooperate according to specifications.
For more information, please visit the buggit home page http://www-900.ibm.com/developerWorks/cn/linux/software_engineering/l-mantis/www.pb-sys.com The picture below shows the Buggit home page and detailed defect report. Using web-based open source software Mantis Mantis is a php / mysql / web-based defect tracking system, even if you have no experience, you can configure it within one day. Since our R & D team is a regional distributed, some projects are in Shanghai, Silicon Valley and Hong Kong's R & D, development, demand, design, development, testing and user feedback from different regions, using email and documents to track defects. Sharing and error status update cost time, with the extension of the project, the document workload is getting bigger and bigger, then use the web-based system, the project group share a central database to achieve workflow automation to make a schedule. Because it is an open source software, it is necessary to consider the system stability and installation configuration, maintenance workload, this work is fully implemented by the test group, and we will install Mantis to the PC that Mantis to work in January to April, please different roles The person trial, the feedback effect is good, and we will immediately decide to use the system to be used across geographical development. The system is officially installed on the developed server, the operating system is Solaris, and the configuration is slightly more complicated than Windows. During use, according to the development group feedback, the proposed propositions by the test group are relaxed by the modified source program to integrate the bug history and defect charts in the next version to 0.17.5, an increase CSV Export Data field. Now we have promoted the system to several other projects, with a total of about 40 people, access to the company's special line, in the past one year, the system is stable, the performance is also ideal, simplified the process, thus improved Work efficiency. Mantis feature Mantis current version is 0.17.5, the next version 0.18.0 is in the beta issue phase. With regard to product details and support, please visit Home http://mantisbt.sourceForge.NET/, the figure below shows all bugs and view detailed bugs. Mantis Basic Features: Personal Customized Email Notification Functions, each user can subscribe only related defect status messages according to their own work characteristics; support multi-project, multi-language; permission settings, different values, each item is available For the public or private state, each defect can be set to open or private, each defect can be moved between different items; the home page can release project related news, convenient information dissemination; convenient defect association function, except for repetition defects, each It can be linked to other related defects; the defect report can be printed or output to a CSV format, 0.18.0: Support customizable report output, customizable user input domain; there are various defect trend graphs and histograms for projects Status analysis provides a basis. If the requirements cannot be met, the data can be output to Excel; the process is not convenient, but the process can meet the general defect tracking. IV. Project implementation lessons learned as the last ring, wrong, delay, negligence, etc. of the project, may be manifested in the test phase, how to manage and analyze various issues is very important for quality control and process improvement, using the Web The Based system is a good practice.
During the project group, it is not difficult to use the database system to use the database system. Because the test person is submitted to the bug report, the test staff uses the most, and I believe that the test staff is very well understood, as long as the project manager supports Very good. If you want to change other defects, if you change, you can manage it easier. Of course, there is no problem in technology, it is difficult to change in workflow, although using email and document management, it is not as good as database system. Provide so many analytical and report options, but relying on manual management in small-scale projects can also do well. In the implementation of multiple projects, we encounter such a situation, and some projects have a change in demand, and there are many times, and the project team actively puts forward the use of database systems to manage; some projects have just started, first There is not much development in the stage of development, and the resistance is great when it is implemented. My primary goal is to manage errors and changes in an orderly manner. When there is a conflict on the implementation, it is important to succeed that the relationship between the project is important to the success of the project. Often have a successful case, and it is easy to go back. It is best to give a local pilot when implementing a new process, using PDCA cycles, continuously summing up experience, and promotes. Using a defect database, you can make a variety of defect analysis charts, thus predicting project risk or interpretation test results. The following two diagrams are the defect map generated by Mantis. From the accumulated error opening diagram, the error generated trend is analyzed. When the error report does not converge, the software is released, it is clear that the risk is very large, and of course, it should be combined with the actual, flattened in the curve. When testing work is carried out, the craft is rising, the wrong severity level is equal. The overall situation of the measured system can be analyzed from the histogram of the severity level. In the issuance of the management irregular organization, the test group can explain the test results by explaining these figures, thereby specification issuance process. The first part mentioned the root cause domain, he helps to focus on developers to focus on the most serious, most frequent sectors, thus consuming the least resource improvement process to achieve the most significant results, this is I am the most commonly used 80/20 rule in the process of improvement. In the implementation of the project, the actual situation is not ideal, because the developers are busy changing BUG, there is a root cause of the active write error, which requires the support of the developer's cooperation and manager. The use of defective data should be cautious, do not make mistakes, should ensure the authenticity of the data, otherwise the data is not significant for the process. In the implementation process, everyone will make a lot of demand for tools, which should be assessing which is a common requirement, core needs, system modification complexity, impact on current systems and system upgrades. In the implementation process, the workflow of different role people has been in-depth and accurately, and the improvement of the workflow can be improved. Pros and disadvantages using open source systems Since the code of the open source system is open, users can maintain and customize themselves, and everyone can submit new features and feature expansion requirements without having to be manufactured by the manufacturer of commercial systems. Open source systems users all over the world, BUG is easily discovered, and the low-efficiency procedures in the open source code are also easily discovered and modified. Of course, the more popular software, the stronger the vitality, the faster BUG clearance and new features. The integration of open source systems and other tools is not as integrated with the integration of tools for the entire software development life cycle, such as project management, demand management, modeling, automation test, defect tracking, configuration management, etc., implementing the entire development process. Automation.