脚本化测试并不是一个好的测试实践,在实际测试过程中面临各种问题和挑战。探索性测试的引入,可以很好的作为脚本化测试的补充,以解决这些问题。
探索性测试的基本思路是:随着项目的不断进展和深入,测试人员设计和执行的内容应该是不断演化的测试用例,例如:不断设计和执行被测对象中功能和数据的不同输入的组合;不断发现测试对象中新的测试组合,从而拓宽和增加测试的覆盖率(被测对象中功能和输入的各种组合几乎是无穷的,脚本化测试中并不能预先全部定义)。另外,探索性测试将测试的关注点总是集中在高的优先级和重要的方面,从而不断提高测试的有效性和效率。
探索性测试是软件测试的一种类型,它更强调测试人员的个人主观能动性和职责,在测试过程中,将学习、设计、执行和结果分析作为并行且相互支持的测试活动,即探索性测试的四个测试活动在时间上是并行的并且相互反馈的,这和脚本化测试活动有比较明确的时间顺序存在差别。除了测试活动时间顺序不同之外,探索性测试和脚本化测试之间的区别还体现在:
° 探索性测试在需要的时候设计测试用例,既可以在设计的过程中执行它们,也可以作为后续测试执行的输入,并在合适的时候对测试用例进行变更;
° 探索性测试一般情况下不需要在前期准备脚本,但是没有脚本并不代表测试人员不需要做测试相关的准备。探索性测试也需要在项目的前期参与软件工作产品的评审,并为测试过程中可能需要的测试任务准备材料,例如:测试数据、失效模式列表等;
° 探索性测试过程中,测试人员通常自己负责管理他们自己的时间。在任何时间点,测试人员可以开展合适的测试活动,例如:重用以前的测试用例、创建和执行新的测试用例、创建失效模式列表、开