整合CVSNT 和 Mantis 缺陷管理系统 - 『.net技术』

来源:百度文库 编辑:神马文学网 时间:2024/05/21 00:00:50
整合CVSNT 和 Mantis 缺陷管理系统 缺陷管理是贯穿于整个软件开发生命周期中不可缺少的一个环节。 缺陷包括产品错误,需求和设计变更,新特性或扩展功能(New Feature,Enhancement)等,它存在于整个软件开发生命周期之中。使用缺陷管理系统便于项目组和管理人员获取正确、足够的信息,简化了地域分散的组织的信息共享流程,它还可以实现工作流程的自动化,最大限度减少重复工作。 错误报告应该包括: * 失败描述:摘要、重建步骤、隔离信息; * 识别信息:顺序的ID号、报告作者、报告日期。 * 严重性等级,以评估在测试条件下,错误在系统中的绝对影响; * 优先级,评估顾客实际使用中发生事件的可能性,或对顾客的后续影响; * 环境:系统软、硬件配置,测试版本号; * 附件,错误信息或屏幕截图。 提交之后,Bug为‘新建‘状态,由测试人员确认后,状态为“已确认”,然后再由变更控制委员会(视项目规模组织,可以是不同角色的几个人组成或一个人担当)评审决定: * 确认是Bug,分配给相关开发人员修复,状态为‘已分派‘; * 不是Bug或其他原因,关闭,状态为‘已关闭‘,然后在解决状况中根据实际情况选择; * 是Bug,但延迟到下一个版本修复,状态为关闭,在解决状况中设置为暂停。 开发人员将问题修复后,其状态改为‘以解决‘,他们应发布到下一个测试版本(Test Build)中,测试人员测试所有‘以解决‘的问题,没有问题应关闭,未修复则要重新打开。 对其他变更(如需求改变或新增),以上流程同样适用,但可能需要多次分配,如需求变更,业务分析员要更新需求文档,系统分析员要更新设计文档,然后程序员改代码。 Mantis 是一个PHP开源的缺陷追踪管理系统,配置非常简单。由于我们的研发团队分散于各地,需求、设计、开发、测试和用户反馈来自不同地区,使用电子邮件和文档来跟踪缺陷时,信息共享和错误状态更新特别费时费力,文档工作量也越来越大,于是我们决定启用Web形式的缺陷追踪管理系统,共用数据实现工作流自动化。初步选择决定使用Mantis,在经过测试小组一个多月对Mantis系统的测试试用后,反馈结果良好,我们马上决定将系统用于跨地域开发的项目,在半年的时间里,系统运行稳定,性能也不错,流程得到了极大的简化,交互性增强,提高了工作效率。 Mantis基本特性: * 操作简单,上手快 * 同时支持多个项目、68种语言,包括中文; * 支持多种大型数据库(MySQL, MSSQL, PostgreSQL, Oracle) * 权限设置灵活,不同角色有不同权限,每一个项目都可以设置不同权限,每个项目可设为公开或私有状态,每个缺陷可设为公开或私有状态,每个注释可设为公开或私有状态,每个缺陷可以在不同项目间移动; * 主页可发布项目相关新闻,方便信息传播; * 方便的缺陷关联功能,除重复缺陷外,每个缺陷都可以链接到其他相关缺陷; * 支持上传附件 * 注册支持验证码和邮件确认 * 支持自复位密码 * 缺陷时间追踪 * 权限置顶功能 * 动作认证方式(默认,LDAP, HTTP, Active Directory) * 缺陷报告可打印或输出为CSV格式,WORD格式,Excel 格式, HTML格式; * 可自定义用户缺陷字段; * 系统自动跟踪记录缺陷历史,可输入注释; * 生成报告和图表:支持绘制各种缺陷趋势图和柱状图(可选); * RSS 反馈 * 可定制的Email通知功能,每个用户可根据自身的工作特点只订阅相关缺陷状态邮件; * 支持整合Wiki(可选) * 聊天集成(可选) * 版本控制集成:支持整合CVS和SVN * 缺陷工作流程可以完全定制,不过定制工作流略显繁琐。 小结: 集成CVSNT: 必须和CVSNT在一个服务器上! 增加一个用户如cvs,该用户要有提交注释的权力! 然后打开 config_defaults_inc.php,修改如下的配置: # --- Source Control Integration ------ # For open source projects it is expected that the notes be public,however, # for non-open source it will probably beVS_PRIVATE. = VS_PRIVATE; # Account to be used by the source control script. The account must beenabled # and must have the appropriate access level to add notes to allissues even # private ones DEVELOPER accessrecommended. = ‘cvs‘; # If set to a status, then after a checkin with a log message that matchesthe regular expression in # , the issue statusis set to the specified status. If set to OFF, the # issue status is notchanged. = RESOLVED; # Whenever an issue status is set to , theissue resolution is set to # the value specified for thisconfiguration. = FIXED; # Regular expression used to detect issue ids within checkin comments. #see preg_match_all documentation at # http://www.php.net/manual/en/function.preg-match-all.php = ‘/bissue [#]{0,1}d+b/i‘ # Regular expression used to detect the fact that an issue is fixed andextracts # its issue id. If there is a match to this regular expression, thenthe issue # will be marked as resolved and the resolution will be set tofixed. = ‘/bissue [#]{0,1}d+[Fixed]/i‘ 抓取(checkout)仓库的CVSROOT,修改 loginfo 文件为: * ALL C:/Dev/php/php.exe C:/Dev/Mantis/core/checkin.php 然后提交 loginfo 文件! 然后只要你提交的文件注释中含有 ‘issue #122‘ or ‘issue 122‘ 的字眼,就会被自动加入到 对应的 122 号问题的注释上!而注释中含有‘issue #122[Fixed]‘则还会自动改变问题的状态为fixed. 这样一般cvs就ok了,不过在cvsnt中支持bug id的功能,可以通过参数的形式传入 checkin.php * ALL C:/Dev/php/php.exe C:/Dev/Mantis/core/checkin.php %u %s %b %m