2.3 自动化测试的目标
在《Software Test Automation》(Addison-Wesley,1999)一书中,第8章有一张非常有用的表,列出了自动化测试的不同目标。当我们开始自动化测试时,根据这张表,按照优先级顺序,列出下列这些测试目标:
增强在软件质量方面的信心;
更早进入市场;
减少测试开销;
保持可重复性测试的一致性;
自动运行测试;
找出回归测试中的bug;
经常运行测试。
第一阶段实施完成之后,又加入了以下测试目标:
质量更好的软件;
测试更多的软件;
性能测量;
找出更多的bug;
在不同的操作系统上测试。
【真知灼见】
刚开始不要设定太多目标,最初先重点完成某些目标,再逐步添加新的目标。
另外,在更深入的自动化的全新迭代周期中,我们又制订了新的目标:
1)收集统计数据来制定度量标准(用以回答以下问题):
① 在哪个操作系统上找到的bug数量最多?
② 在同一个操作系统上将测试进行分割会不会漏掉一些bug?
③ 哪些bug是在特定操作系统上才出现的?是在哪种操作系统上出现?
④ 哪些测试发现的故障数量最多?
⑤ 哪些测试从来都没有发现故障?
⑥ 哪些失效是由发布测试发现的,而不是由每晚的测试所发现的?这有利于我们分析为什么这类故障在发布过程中比较晚时才发现。
2)将未使用的硬件用来做其他的事情。
3)尽量达到每周7天、每天24小时不间断使用硬件。
4)缩短bug从发现到反馈给相关人员的时间间隔(最初从几周缩短到几天,然后缩短到只隔一夜,最后缩短到检查代码之后就直接完成反馈。)
5)使用我们自己的数据库来收集统计数据,这样就可以在真实的产品环境中拥有自己的数据,并且有可能会遇到在其他没有发现的故障(用你自己的方法来解决)。
6)使测试场景不可能手动运行。
7)使场景维持几天。
8)使场景具有多个用户。
9)重新使用预处理任务,并使其自动化。
10)重新使用后续处理任务,并使其自动化。
11)对于测试结果自动生成测试报告。
12)完全的自动化测试。