探索式测试

软件测试52讲-

如面试一个候选人,提出非准备的问题并且根据对方的回答再问问题,就是在探索候选人。

对于软件测试来说,也有非常类似的过程。

比如,你首先根据软件功能描述来设计最初的测试用例,然后执行测试;

测试执行后,可能你得到的输出和预期输出不完全一致,于是你会猜测这种不一致是否可能是软件的缺陷造成的;

为了验证你的想法,你会根据错误输出设计新的测试用例,然后采用不同的输入再次检查软件的输出。

在一次测试中,你可能会经过几轮这样的猜测和验证,进行反复“探索”,最终确定了一个软件的缺陷。

而这个过程中,你会发现,识别缺陷的思路和测试用例的设计,并没有出现在最初的测试设计和测试用例文档中,而是以很快的速度在你的脑海中以及实际测试执行和验证中快速迭代。

从本质上来看,上述的两个过程就是探索式测试最基本的思维模型了。

所以说,探索式测试本身并不是一种测试技术,而是一种软件测试风格。这个测试风格,强调测试工程师要同时开展测试学习、测试设计、测试执行和测试结果评估等一系列的活动,以持续优化测试工作。


在目前的工程实践中,探索式测试发现的缺陷最多,而且发现的缺陷也很有代表性。

探索式测试具有即兴发挥、快速实验、随时调整等特征

首先,探索式测试是一种软件测试风格,而不是一种具体的软件测试技术。作为一种思维方法,探索式测试强调依据当前语境与上下文选择最合适的测试技术。所以,切记不要将探索式测试误认为是一种测试技术,而应该理解为一种利用各种测试技术“探索”软件潜在缺陷的测试风格。

探索式测试强调独立测试工程师的个人自由和责任,其目的是为了持续优化其工作的价值。

最后,探索式测试建议在整个项目过程中,将测试相关学习、测试设计、测试执行和测试结果解读作为相互支持的活动,并行执行。


在敏捷开发的每个迭代中,新开发的功能基本都要依靠探索式测试保证产品的质量。

在探索式测试中,测试工程师不断提出假设,通过测试执行去检验假设,通过解读测试结果证实或推翻假设。在这个迭代过程中,测试工程师不断完善头脑中被测试应用的知识体系,并建立被测应用的模型,然后利用模型、过往经验,以及测试技术驱动进一步的测试。


如何开展探索性测试?


1)首先会对软件的单一功能进行比较细致的探索式测试(这也是设计测试用例时候的考虑。)
2)探索测试的功能和其他模块功能的交互,组合场景的设计主要取决于你想要验证,或者说想要“探索”的系统功能。(还是觉得,没有需求的,没写用例的测试,就是探索性测试。)


探索式测试强调依据当前语境与上下文选择最合适的测试技术

这样说,我现在的很多不写用例的测试执行就是在探索式测试。
疑问:探索式测试,有需求文档吗?提前写的有测试用例吗?
探索式测试是重现缺陷步骤的探索吗?
探索式测试可以说是测试用例写的不完整吗?我经常测着测着发现有些点没想到,然后补充用例。

重新定义"测试"——是测试人员和被测对象之间的一次对话(session),不断质疑系统。
当我在熟悉系统,没有需求文档的时候,应该在不知不觉中就用了探索式测试的方法。

探索式测试是否可以帮你找出尽可能多的缺陷,还是取决你对系统需求的理解以及根据过往经验而积累的技术直觉。

探索性测试最好的地方就是思维没有太多的局限,可以最大程度发散思维地去质疑去测试。我通常会在我测试计划的最后留出一天做这个测试。

朱少民?看家本领之三:软件测试的批判性思维
https://mp.weixin.qq.com/s/SsJyUkIbAkriTaI_CpWJoQ
国内软件测试界的领军人物和资深专家,二十多年来一直从事软件测试、质量管理和过程改进等工作,
先后出版了十多部著作,包括测试方面的畅销书《完美测试》、《轻轻松松自动化测试》、
《软件测试方法和技术》、《软件测试》和译作《自动化测试最佳实践》等,经常在国内外会议上发表演讲。
之前曾任思科-网迅(中国)软件有限公司QA高级总监,
目前是同济大学软件学院教授、中国科技大学软件学院教指委委员。


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值