软件测试的目的是以最少的人力、物力和时间找出软件中潜在的各种错误和缺陷,通过修正各种错误和缺陷提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险,一句话就是规避风险。
一个好的测试用例在于发现从前未发现的错误;一个成功的测试是发现了从前未发现的错误的测试。 所以更为合适的定义是:测试是为发现错误而执行程序的过程。
软件测试的目的是证明、检测、预防。
证明:
1) 获取系统在可接受风险范围内可用的信心。
2) 尝试在非正常情况和条件下的功能和特性。
3) 保证一个工作产品是完整的且可用或可被集成的。
检测:
1) 发现缺陷,错误和系统不足。
2) 定义系统能力和局限性。
3) 提供组件、工作产品和系统的质量信息。
预防:
1) 通过将测试活动提前介入到软件生命周期中,尽早的发现并消除前期研发阶段引入的缺陷,以防止前期缺陷遗留并放大到后续环节。
2) 通过对发现的缺陷进行分析,找出导致这些缺陷产生的流程上的不足,通过改进流程,预防同类缺陷再次产生。
对于如何处理测试中发现的错误,将直接影响到测试的效果。只有正确、迅速、准确地处理这些错误,才能消除软件错误,保证要发布的软件符合需求设计的目标。在实际软件测试过程中,对于每个Bug都要经过测试、确认、修复、验证等的管理过程。
错误跟踪管理系统为了正确跟踪每个软件错误的处理过程,通常将软件测试发现的每个错误作为一条条记录输入制定的错误跟踪管理系统。
缺陷跟踪管理软件在功能上各有特点,可以根据实际情况选用。当然,也可以自己开发缺陷跟踪软件。
为一个缺陷跟踪管理系统,需要正确设计每个错误的包含信息的字段内容和记录错误的处理信息的全部内容。字段内容可能包括测试软件名称,测试版本号,测试人名称,测试事件,测试软件和硬件配置环境,发现软件错误的类型,错误的严重等级,详细步骤,必要的附图,测试注释。处理信息包括处理者姓名,处理时间,处理步骤,错误记录的当前状态。
正确的数据库权限管理是错误跟踪管理系统的重要考虑要素,一般要保证对于添加的错误不能从数据库中删除。
软件错误的状态新信息(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状态。
拒绝或延期错误不能由程序员单方面决定,应该由项目经理,测试经理和设计经理共同决定。
错误修复后必须由报告错误的测试人员验证后,确认已经修复,才能关闭错误。
加强测试人员与程序员的交流,对于某些不能重复的错误,可以请测试人员补充详细的测试步骤和方法,以及必要的测试用例。