失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 什么是探索性测试

什么是探索性测试

时间:2023-09-19 02:19:12

相关推荐

什么是探索性测试

一、什么是探索性测试

探索性测试,最早是由测试专家 Cem Kaner 博士在 1983 年提出的,并受到当时语境驱动的软件测试学派的支持。后来,Cem Kaner 博士在佛罗里达工学院的同事 James A. Whittaker,凭借着在微软和谷歌担任测试架构师和测试总监的经验积累,撰写了最早的探索式测试书籍《Exploratory Software Testing》,扩展了探索式测试的概念和方法。

常用于质量管理的戴明环(PDCA)是按照Plan(计划)、Do(执行)、Check(检查)和Act(处理)的顺序,循环不止地进行下去的一种科学程序。一个循环完了,解决一些问题,未解决的问题进入下一个循环,整个过程是阶梯式上升的。

探索性测试将戴明环方法使用到了极致,它强调将测试相关学习、测试设计、测试执行和测试结果解读作为相互支持的活动,并行执行。其思维模型CPIE包括4个阶段:

※ Collation(整理):首先是测试相关学习,需要我们收集和整理被测产品的信息,并了解和理解它们。通常在这个阶段,我会翻开需求文档、方案文档看看,或者搜索之前的bug清单寻找思路

※ Prioritization(排序):进行测试设计,确定所有测试任务的优先级

※ Investigation(调查):对即将执行的测试任务进行仔细的分析并确定测试输入和预期输出,也属于测试设计的一部分

※ Experimentation(实验):重点在测试执行和对测试结果的验证,验证我们的预期是否正确,检查我们在整理阶段获取到的信息是否正确。根据实验结果,测试人员将收集更多的信息,并调整测试任务的优先级。以此不断达到收集反馈、调整测试、优化价值的效果。

所以与其说探索性测试是一种测试方法,不如说它是一种基于"实践->反馈->实践"的思维方式。

二、探索性测试的典型方法

根据不同产品的特性,可以将产品功能测试分成三个层次:单一功能特性测试、交互特性测试和系统交互测试。针对每个层次,探索性测试的方法可以简单的概括为:局部探索性测试方法、全局探索性测试法和混合探索性测试法。

1、局部探索性测试方法

我们首先会对软件的单一功能进行比较细致的探索式测试。“探索”的过程主要是基于功能需求以及非功能性需求进行扩展和延伸。

比如以软件系统的用户登录功能为例,作为探索式测试人员,首先应该站在最终用户的角度去理解和使用登录功能。为此,探索式测试人员需要分析出用户登录功能的所有原子输入项。假定原子输入项只有用户名、密码和登录按钮。接着组合这些原子输入项构成最基本典型的测试场景。

再比如,用真实合法的用户名以及密码完成登录就是一个非常基本典型的场景,如果该场景能够成功登录,就可以切换到下一个;如果该场景不能够成功登录,就需要去“探索”为什么没能登录成功,比如你可能会怀疑是否是因为用户名或者密码是区分大小写的,又或者是不是因为你多次错误的尝试而导致的。

基于你的怀疑,进一步去设计新的测试用例来验证你的猜测。总之,通过以上这样的“探索”过程,你将测试学习、测试设计、测试执行和测试结果评估串联成了一个快速迭代的过程,并在你脑海中快速建立了登录功能的详细模型。

2、全局探索性测试

以用户登录功能为例,在系统交互的探索式测试中,就不仅要考虑单一的登录功能了,而是要考虑用户登录与系统其他功能相结合的场景。

比如,你可以尝试不登录直接访问登录后的路径去观察系统的行为;再比如,你可以尝试不登录就去查看订单状态的操作等等。这些组合场景的设计主要取决于你想要验证,或者说想要“探索”的系统功能。很多时候这些灵感来自于你之前对系统的探索而取得的系统认识,同时你的技术直觉也在此扮演了重要角色。

3、混合探索性测试

混合探索性测试就是将探索性测试与传统的基于场景的测试方法相结合,通过引入变化达到系统交互测试的目的。

如果觉得《什么是探索性测试》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。