探索性测试(Exploratory Testing)概述
在敏捷测试(Agile testing)中,探索性测试是作为一个重要组成部分而出现的,把“对系统的探索”和“对系统进行测试”结合在一起,敏捷测试可以利用探索性测试达成“敏捷”的目标。
探索性测试并不是一个最近才被提出来的测试技术,也不是一种很深奥的技术——事实上,许多测试工程师在自觉或不自觉地使用这种技术。那么,究竟什么是探索性测试呢?
对探索性测试的理解本身会存在一些争议,因此,很难给出探索性测试的准确定义,不过,一般来说,探索性测试具有这样的一些特点:
1、探索性测试强调测试设计和测试执行的“同时”性——这个“同时”是相对于传统软件测试过程中严格的“先设计,后执行”来说的;
2、测试工程师通过测试来不断学习被测系统;
3、探索性测试的重点是创造;
探索性测试的出发点是“测试者如果没有真正使用过系统,就不可能真正理解和掌握系统,也就不可能真正有效地测试该系统”,相信所有有过测试实践的测试工程师都会承认这一点,确实,在我们没有接触到一个真正的系统之前,很难完全认识到这个系统,虽然可以在测试计划阶段按照需求或是设计的要求写出测试方案和用例,但总觉得这些用例不可能具有太强的可操作性。
事实上,探索性测试给出的另一个测试的思路:“如果我们可以在对系统的测试中逐渐深入地学习系统,测试是否会更加有效率?”在我看来,这个问题的答案是显然的,如果测试工程师能够在测试中对系统越来越深入地了解,那么,利用这些逐渐增加的了解,自然可以让测试变得更加有效率。
探索性测试只是一种方法和思路,并不是一个确定的过程。因此,在使用探索性测试时,无法回避的是When的问题,也就是说,在什么时候进行探索性测试更加有效呢?我的答案是“在你认为合适的时候”:)因为,探索性测试可以针对不同的测试层面,例如,针对业务场景的探索性测试、针对功能点的探索性测试,甚至是头脑风暴式的探索性测试,都能够在测试中发挥积极主动的作用。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构