软件测试的主要目的在于发现软件存在的错误(Bug),对于如何处理测试中发现的错误, 将直接影响到测试的效果。只有正确、迅速、准确地处理这些错误,才能消除软件错误,保证 要发布的软件符合需求设计的目标。在实际软件测试过程中,对于每个Bug都要经过测试、确 认、修复、验证等的管理过程,这是软件测试的重要环节。 错误跟踪管理系统 为了正确跟踪每个软件错误的处理过程,通常将软件测试发现的每个错误作为一条条记录 输入制定的错误跟踪管理系统。 目前已有的缺陷跟踪管理软件包括Compuware公司的TrackRecord软件(商业软件)、 Mozilla公司的Buzilla软件(免费软件),以及国内的微创公司的BMS软件,这些软件在功能 上各有特点,可以根据实际情况选用。当然,也可以自己开发缺陷跟踪软件,例如基于Notes 或是ClearQuese开发缺陷跟踪管理软件。 作为一个缺陷跟踪管理系统,需要正确设计每个错误的包含信息的字段内容和记录错误的 处理信息的全部内容。字段内容可能包括测试软件名称,测试版本号,测试人名称,测试事 件,测试软件和硬件配置环境,发现软件错误的类型,错误的严重等级,详细步骤,必要的附 图,测试注释。处理信息包括处理者姓名,处理时间,处理步骤,错误记录的当前状态。 正确的数据库权限管理是错误跟踪管理系统的重要考虑要素,一般要保证对于添加的错误 不能从数据库中删除。 软件错误的状态 新信息(New):测试中新报告的软件缺陷; 打开 (Open):被确认并分配给相关开发人员处理; 修正(Fixed):开发人员已完成修正,等待测试人员验证; 拒绝(Declined):拒绝修改缺陷; 延期(Deferred): 不在当前版本修复的错误,下一版修复 关闭(Closed):错误已被修复; Bug管理的一般流程 测试人员提交新的Bug入库,错误状态为New。 高级测试人员验证错误,如果确认是错误,分配给相应的开发人员,设置状态为Open。如 果不是错误,则拒绝,设置为Declined状态。 开发人员查询状态为Open的Bug,如果不是错误,则置状态为Declined;如果是Bug则修复 并置状态为Fixed。不能解决的Bug,要留下文字说明及保持Bug为Open状态。 对于不能解决和延期解决的Bug,不能由开发人员自己决定,一般要通过某种会议(评审 会)通过才能认可。 测试人员查询状态为Fixed的Bug,然后验证Bug是否已解决,如解决置Bug的状态为 Closed,如没有解决置状态为Reopen。 软件错误流程管理要点 为了保证错误的正确性,需要有丰富测试经验的测试人员验证发现的错误是否是真正的错 误,书写的测试步骤是否准确,可以重复。 每次对错误的处理都要保留处理信息,包括处理姓名,时间,处理方法,处理意见,Bug 状态。 拒绝或延期错误不能由程序员单方面决定,应该由项目经理,测试经理和设计经理共同决 定。 错误修复后必须由报告错误的测试人员验证后,确认已经修复,才能关闭错误。 加强测试人员与程序员的交流,对于某些不能重复的错误,可以请测试人员补充详细的测 试步骤和方法,以及必要的测试用例。