脚本测试(Scripted Test,简称ST)
- 一般是先根据需求文档编写测试用例,而后由测试人员本人或他人再根据测试用例的具体描述步骤(脚本)进行执行与验证。这种是已经持续了几十年的测试方法。
- 存在的缺点:传统脚本测试的速度,无法应对敏捷快速交付。迭代周期在1-2周,无法花费大量的时间写详细的用例。频繁的需求变成导致需要花大量的时间来更新和维护测试用例。
探索式测试(Exploratory Testing)
- 其实本质是一种测试思维方法,强调要根据当前的实际情况来选择最合适的测试技术进行测试。
- 关键就是:边学习、边设计、边测试、边思考。
- 测试专家 Cem Kaner 博士在1983年提出探索式测试,后来,Kaner 博士在2006年1月Exploratory Testing Research Summit 会议上将探索式测试的定义为:
Exploratory software testing is a style of software testing that emphasizes the personal freedom and responsibility of the individual tester to continually optimize the value of her work by treating test-related learning, test design, test execution, and test result interpretation as mutually supportive activities that run in parallel throughout the project.
- 探索式测试是一种强调测试人员的自由和责任以不断优化其工作价值的测试方法,它通过将学习、测试设计、测试执、测试结果行作为互相支持的活动在整个项目过程中并行执行。
适用场景
- 时间相对较紧张、测试对象说明不完善。
- 需要快速学习一款产品。
- 想要在最短的时间内发现最多严重的bug。
- 想要检查一个测试人员的工作。
优点
- 不用预先费时费力的做计划,在开发完成后立即开始测试。
- 以用户的角度来测试,以保护频繁迭代的用户体验。
- 侧重于分析潜在风险,测试人员通过发散性思维去思考每个模块。
值得注意
- 他不是新的测试技术,只是一种测试风格或者方法。在测试过程中,还是会用到常规的测试用例设计方法。
- 和敏捷宣言更强调个体一样,探索式测试同样强调测试人员个人的主观能动性。
- 探索式测试把测试学习、测试设计和测试执行这些在传统脚本测试中需要分开不同阶段来完成的任务并行的执行,以此可以最快的得到反馈,并且指导优化下一轮的迭代。
与随机测试的区别
- 随机测试就是不动脑子的随机点点点。
- 探索式测试是有策略的发散性测试。这种通过对前一个结果的反馈进行分析然后指导和优化重新设计问题的方式其实就是探索式测试的核心理念所在,它和没有策略完全依靠随机的方式是截然不同的。
何时选用探索式测试
类别 | 时间紧迫 | 时间充裕 |
---|---|---|
需求不明确/变更频繁 | 探索式测试 | 探索式测试为主,脚本测试为辅 |
需求明确/变更少 | 探索式测试为主,脚本测试为辅 | 脚本测试为主,探索式测试为辅 |
探索式测试的思维模型 CPIE
- 整理(Collation):尽最大可能收集关于被测产品的信息,去了解和理解它们。
- 排序(Prioritization):确定所有测试任务的优先级。
- 调查(Investigation):对即将执行的测试任务进行仔细的分析并确定测试输入和预期输出。
- 实验(Experimentation):实际地去测试,验证我们的预测是否正确,检查我们在整理阶段获取到的信息是否正确。根据实验结果,测试人员将收集更多的信息,并调整测试任务的优先级。强调通过Experiment来持续改进测试设计。
流程管理
- 在敏捷测试中,以探索式测试为主,如果没有流程管理,容易忽略测试目标,保证不了产品的质量和测试效率。
- 探索式测试在具体执行方面,一般会采用一种称之为Session-Based Testing management(简称SBTM)“基于测程的测试管理”的方法来进行测试。
- SBTM是指会话时间(30min、60min)内完成一个具体特定测试目标,在会话时间内对测试学习、测试设计、测试执行、测试结果评估进行快速迭代。围绕着目标不断地拷问、质疑被测系统。
参考链接
相关资料
- 《敏捷软件测试:测试人员与敏捷团队的实践指南》,Lisa Crispin
- 《探索式测试实践之路》,史亮,高翔
- 《埃森哲探索式测试方案》
- 《全程软件测试(第3版)》,朱少民
网友评论