探索性测试vs脚本化测试
作者:网络转载 发布时间:[ 2012/2/6 15:26:54 ] 推荐标签:
脚本化测试并不是一个好的测试实践,在实际测试过程中面临各种问题和挑战。探索性测试的引入,可以很好的作为脚本化测试的补充,以解决这些问题。
探索性测试的基本思路是:随着项目的不断进展和深入,测试人员设计和执行的内容应该是不断演化的测试用例,例如:不断设计和执行被测对象中功能和数据的不同输入的组合;不断发现测试对象中新的测试组合,从而拓宽和增加测试的覆盖率(被测对象中功能和输入的各种组合几乎是无穷的,脚本化测试中并不能预先全部定义)。另外,探索性测试将测试的关注点总是集中在高的优先级和重要的方面,从而不断提高测试的有效性和效率。
探索性测试是软件测试的一种类型,它更强调测试人员的个人主观能动性和职责,在测试过程中,将学习、设计、执行和结果分析作为并行且相互支持的测试活动,即探索性测试的四个测试活动在时间上是并行的并且相互反馈的,这和脚本化测试活动有比较明确的时间顺序存在差别。除了测试活动时间顺序不同之外,探索性测试和脚本化测试之间的区别还体现在:
● 探索性测试在需要的时候设计测试用例,既可以在设计的过程中执行它们,也可以作为后续测试执行的输入,并在合适的时候对测试用例进行变更;
● 探索性测试一般情况下不需要在前期准备脚本,但是没有脚本并不代表测试人员不需要做测试相关的准备。探索性测试也需要在项目的前期参与软件工作产品的评审,并为测试过程中可能需要的测试任务准备材料,例如:测试数据、失效模式列表等;
● 探索性测试过程中,测试人员通常自己负责管理他们自己的时间。在任何时间点,测试人员可以开展合适的测试活动,例如:重用以前的测试用例、创建和执行新的测试用例、创建失效模式列表、开展测试对象背景知识方面的研究,以指导新的测试设计和执行等。探索性测试可以在任何时间对这些测试活动进行相应的组合;
脚本化测试还是探索性测试?
(1)犯罪现场
假设我们在某犯罪现场,你作为其中的刑侦人员,需要调查和研究犯罪现场的有关线索,你是选择脚本化的方法还是探索性的方法?
● 脚本化方法:按照预先设计的脚本,根据其中的步骤,以及预期结果分析犯罪现场,得出相关的信息,例如:谁有这个作案动机?他是如何实施的?他是谁?
● 探索性方法:按照犯罪现场的实际情况,例如:在现场能够发现的痕迹,比如脚印、凶器等,推测有关信息。随着收集信息的增加,以及不断的推理和推断,分析其中的信息,后查找具体的嫌疑人和其作案的动机。
(2)拼图游戏
拼图游戏是另一个在日常生活中常见的应用探索性思想的方法。在拼图的过程中,游戏者很难通过预先定义的步骤和期望结果来指导具体的拼图过程。相反,游戏参与者需要根据当前的图片状态、本次拼图的动作等,指导下一步的行为,即学习、设计、执行和结果分析并行进行,并相互支持和反馈。
前面阐述了脚本化测试和探索性测试的区别,引出了在测试过程中开展探索性测试的必要性,那么,在什么情况下,或者在什么场合适合采用探索性测试?下面列出了一些常见的场景,在这些场景中可以考虑采用探索性测试的方法:
● 对新产品和功能需要在短时间内提供反馈信息;
● 快速的了解产品质量;
● 已经采用了传统的测试方法,开始寻求测试的多样性;
● 在短时间内发现重要的缺陷;
● 对测试人员的工作进行检查;
● 调查并定义一个具体的缺陷;
● 调查一个具体的风险的状态,来决定传统测试方法的测试深度和范围。
上面是测试人员在测试过程中经常应用的探索性测试例子。尽管例子中的场景比较简单,但是它体现了探索性测试的特点:测试过程更多的依赖于测试人员的个人技能和主观能动性,并且将更高级别的认知水平放在测试执行阶段,而不是设计阶段;测试人员需要在测试过程中不断的学习、设计、执行和分析结果,并根据其中得到的信息指导后续的测试工作,直到完成该测试任务。
但是,测试过程中不能将脚本化测试和探索性测试完全对立起来,它们两者是相辅相成的。脚本化测试和探索性测试两者之间不是完全独立的,测试过程中的许多测试活动兼有脚本化测试和探索性测试。图1是脚本化测试和探索性测试之间的演变关系。
图1 脚本化测试和探索性测试的关系
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11