本文已参与「新人创作礼」活动,一起开启掘金创作之路。
为什么需要探索式测试
不管团队执行多少预先计划好的测试用例,当不按照脚本执行时,依然会有惊喜。
试图创建可全面覆盖所有情况测试集的努力是徒劳的。 ——《软件测试》
什么是探索式测试
探索式测试是一种自由的软件测试风格,强调测试人员同时开展测试学习、测试设计、测试执行和测试结果评估等活动,以持续优化测试工作。——测试专家Cem Kaner博士
1.长路径测试法
【定义】选择到达测试目的最长的操作序列组合。
【目的】发现缺陷。
【举例-1】某APP分享今日学习的路径包括:
①选择学习内容->开始学习->学习完成->分享;
②学习日历->选择非今日的学习内容->立即学习->学习完成->分享;
③微信公众号扫码-选择非今日的学习内容->立即学习->学习完成->分享;
第②③路径都是到达分享的长路径,需要覆盖到。可能出现的问题是路径较长时,在某一步参数丢失。
2.改变顺序和交互
【定义】确定关键特性,改变执行的先后顺序。
【目的】发现bug。
【举例-2】某APP的注册需要依次输入用户名-密码-密码确认-手机号-验证码,
改变执行顺序:密码-密码确认-手机号-验证码-用户名。
【举例-3】CRM系统中创建用户->为用户创建沟通记录和优惠券->用户凭优惠券兑换课程->课程开课,
改变执行顺序:课程开课->用户正价购买课程->为用户下发优惠券->用户使用优惠券。
随机组合,改变特性执行的先后顺序。
3.探索实体与实体间的关系
【方法】识别实体,列出实体的属性,找出不明显的实体,运用CRUD思维进行探索。
【目的】发现bug。
【CRUD思维】改变元素所在位置,如删除列表开始中间结束位置的条目;在某个值开始中间结束位置放特定字符;针对某序列的开始中间结束位置执行操作。
【举例-4】上文中的【举例-3】中,增加、修改、删除某一个步骤进行测试。