探索性测试的18个总结

1)探索性测试与脚本化测试的主要区别:1)探索性测试将更多更高的认知水平的工作放在测试执行,而脚本化测试则更关注测试设计;2)前者更强调测试活动的并行和相互反馈(学习、设计、执行与结果分析等),而后者的测试活动是相对串行的。

  2)脚本化测试的主要优点是:1)尽早发现缺陷;2)不同利益相关者参与评审;3)可重用性;4)测试覆盖率评估。

  3)脚本化测试强调测试的尽早介入,如尽早设计测试用例。但是测试人员越早设计测试用例,对测试对象的了解越少,对风险的了解也越少。测试人员对测试对象的了解是一个逐步的过程,脚本化测试需要更多的工作量以应对这个过程(需求的细化和变更等)。

  4)提供测试对象的质量信息是测试的一个主要目的。但是不同的人对质量的理解是不一样的,脚本化测试能预先定义所有利益相关者的质量要求吗?脚本化测试能预先定义不同缺陷的来源吗?回答是不能。而这正是探索性测试引入的一个初衷。

  5)测试对象的需求是不断变更的、不同开发人员会犯不同的错误、测试环境与组合也是不断变化的,通过脚本化测试很难及时跟踪这些问题,即使能也需要考虑时间与成本。探索性测试的及时反馈与不断修正是一个解决之道。

  6)“复现缺陷,并确定复现的具体步骤”、“下棋”、“刑侦现场”、“拼图游戏”等,其中的思维应该是探索性,还是脚本化?哪个效率更高?

  7)组织内引入探索性测试,需要测试人员掌握各种技术与方法、知识、技能与实践,并以此为支撑,不是每天喊着这个概念就可以成功实施的。这个理念也同样适用于敏捷开发与测试。车是好车,但是我们的路修好了吗?

  8)不管是文档化还是存在于测试人员的头脑中,好的测试设计是什么?好的测试设计应该是随着测试环境不断变化的(例如测试组合、测试环境),以不断扩大测试覆盖率,并将关注点放在高风险的区域。

  9)不同的测试对象和测试目标,需要不同的测试策略和测试技术,而这将得到不同的测试用例、不同的测试文档与不同的测试结果。

  10)探索性测试没有脚本化特点,并代表它是不做准备的,它也不是随机的,而是提供更多的选择。探索性测试同样需要设计各种支撑性的内容:测试数据、失效模式、模型等。没有测试计划文档,也不代表探索性测试是没有计划的。

  11)探索性测试如下象棋,其规则很简单。但是我们在欣赏象棋比赛的时候,不会说:“啊,下象棋的规则真精彩!”相反,我们关注的是隐含在这些规则下选手选择下一步如何走的技巧与技能,它的技术含量也不在其规则,而在选手的技巧与技能。规则简单,技巧复杂。

  12)探索性测试的学习、设计、执行与结果分析等测试活动是相对并行并且是相互支撑的,了解这个并不代表测试人员掌握了探索性测试。正如婴儿学会了爬,并不代表就懂得了走、跑与跳等运动技能。

  13)探索性测试过程中的一个重要挑战是如何设计测试用例(尽管不一定是脚本化的,也可能是在测试执行的时候进行测试设计),例如:从测试技术到测试用例、从失效模式到测试用例、从风险列表到测试用例、从测试思想到测试用例。

  14)从用户现场反馈了一个问题:他们在配置某个功能的时候,界面上打印了一些奇怪的信息,然后系统就重启了。此时测试人员更倾向于采用探索性测试,而面临的首要挑战就是“如何从失效模式设计测试用例”,以复现该问题。

  15)探索性测试本身不是一种技术,而是一种测试方式或者思维。那么,脚本化测试应该是什么呢?是技术?不是方式或者思维?

  16)什么使得测试活动具有探索性测试特点呢?答案在于测试人员的认知投入:测试人员如何应对持续变化的情况。

  17)探索性测试不一定会有测试用例文档的输出,这并不代表它没有测试设计。探索性测试的设计不是为了控制,而是为了指导你的测试。

  18)探索性测试更强调个人和交互,而不是过程和工具;更强调应对变化而不是遵循计划;更强调可工作的软件而不是可理解的文档;更强调相互合作而不是合同谈判;从这个层面而言,探索性测试是敏捷的。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-10-23 17:51:07

探索性测试的18个总结的相关文章

探索性测试(四):探索性测试并不是快速测试

快速测试也是一种测试的方法,它既可以照本宣科的进行,亦可以探索的方式进行.尽管一个使用高度探索性方法进行测试的测试员可能会执行很多快速测试,而快速测试也通常是运用探索性测试方法时的重要因素.但是,快速测试和探索性测试并不是一样的. 快速测试是需要少量时间或一点精力去准备和执行的廉价测试.这类测试甚至不需要具备与待测试的应用程序相关的大量知识或相关的业务领域知识,但它们有助于快速地获取新的信息.快速测试不是强调广泛和完整,它的目的是用最低的成本快速揭示信息. 快速测试是了解产品.识别区域风险及薄弱

《移动App测试的22条军规》——第23章,第19节对微信App进行自动化测试和探索性测试

23.19 对微信App进行自动化测试和探索性测试 我们在对微信App进行测试时,必然会进行自动化和探索性测试. (1)在编写微信App的自动化测试时,我们还是选用Appium来帮助我们录制对应的脚本:而基于测试金字塔的测试架构设计,我们对于Appium的自动化测试,选择编写"用户登录微信后,在通讯录中添加招商银行公众号"这个用户旅程(如图23.45-图23.55所示). 打开微信App的主界面(如图23.45所示). 打开"Contacts"(通讯录)页面(如图2

自动化测试(AT)与探索性测试(ET)

软件自动化测试 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程.通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较.在此过程中,为了节省人力.时间或硬件资源,提高测试效率,便引入了自动化测试的概念. 前提条件 实施自动化测试之前需要对软件开发过程进行分析,以观察其是否适合使用自动化测试.通常需要同时满足以下条件: 1)软件需求变动不频繁 测试脚本的稳定性决定了自动化测试的维护成本.如果软件需求变动过于频繁,测试人员需要

寻找用户轨迹的“探索性测试”

国内的大部分公司在做交互设计的时候很大部分都是处于探索阶段,但是因为产品的商业价值很难允许失败,所以很多设计师对于交互设计的结果都很难确定,甚至会因此屈服于商业价值,从而导致了一个恶心循环. 在上次的D4设计论坛中,针对于口碑网改版的设计方法,UT斯达康的设计经理提到了利用新旧入口的方式来进行用户测试,并提出了使用新界面提供老界面入口的方式进行用户测试.在我们设计产品的时候其实也可以利用产品的特性进行一些"探索性测试". 测试大致可以分成几种:一种是验证性的测试,在知道结果的前提下进行

易用性测试和探索性测试

近些年来,随着敏捷开发方法和互联网企业的发展,易用性测试和探索性测试被越来越受到关注. 客户也经常提这样的概念或者尝试实践.有些客户可能只做易用性测试,有些客户则关注探索性测试.还很少看到两者都做得.这里简单诠释下两者的相同和不同,如果有不同意的地方,敬请指正. 相同点 1. 易用性测试和探索性测试都是面向业务的测试.所谓面向业务的测试是区别于面向技术的测试,它更多关注用户感受,逻辑是否合理,流程是否正确,功能是否有遗漏等. 2. 两者属于手工测试范畴.虽然有时候用户也可以用工具辅助做探索性,但

探索性测试揭秘

最近看了不少有关探索性测试的讨论和观点,老实说越看越糊涂.所以忍不住吐槽一下,在这里和大家讨论一下探索性测试.希望对于想学习和尝试探索性测试的朋友有所帮助澄清,或者是更加糊涂,^_^. 探索性测试有很多很多的定义: 百度百科的定义:"同时设计测试和执行测试". 嗯..什么意思? Cem 老人家的正式定义:"a style of software testing that emphasizes the personal freedom and responsibility of

《移动App测试的22条军规》—App测试综合案例分析23.19节对微信App进行自动化测试和探索性测试

23.19 对微信App进行自动化测试和探索性测试我们在对微信App进行测试时,必然会进行自动化和探索性测试. (1)在编写微信App的自动化测试时,我们还是选用Appium来帮助我们录制对应的脚本:而基于测试金字塔的测试架构设计,我们对于Appium的自动化测试,选择编写"用户登录微信后,在通讯录中添加招商银行公众号"这个用户旅程(如图23.45-图23.55所示). 打开微信App的主界面(如图23.45所示).打开"Contacts"(通讯录)页面(如图23.

基于会话的探索性测试管理

探索性测试是一个特殊的测试过程,它的测试活动和测试内容是动态变化的,更多的是通过测试执行的结果来指导后续的测试活动,花在文档上的时间很少,这也就意味着探索性测试的可管理性不强,对于每个测试人员执行的测试活动的进度和效果很难监控.为了更好地开展探索性测试,Jonathan Bach提出了一种"基于会话的测试管理(Session-basedtest management,缩写为SBTM)"方法,这种方法可以对探索性测试进行更好地管理,把探索性测试的优势更好地发挥出来. 基于会话的测试管理是

初探团队基于session的探索性测试

如果你是一名测试人员,那么不管你对探索性测试的了解是多是少,我肯定你一定用过探索性测试的方法.想想看,你是否曾经这样测试过?不仅仅按照测试案例或者脚本上写什么,就完全使用那一套相同的数据.一模一样的流程,而是根据你执行时的所见,临时有所想和所动,进行一定程度的自由发挥?我想你肯定有过,这就是探索性测试,它将你的测试与纯基于脚本的测试(script. based testing)区分开来.而这种自由发挥,因为是有大致方向和范围的,所以也与完全盲目乱点的猴子测试(monkey testing)不同.