定义

探索性测试(Exploratory Testing)是一种自由的软件测试风格,强调测试人员同时展开测试学习,测试设计,测试执行和测试结果评估等活动,以持续优化测试工作。

其特征有:即兴发挥,快速实验,动态调整。

核心

探索性测试是一种软件测试风格(Style),它强调独立测试人员 (Individual tester)的个人自由和职责(Personal Freedom and Responsibility)。

为了持续优化其工作的价值(Value),将测试相关学习(Test-related Learning),测试设计,测试执行和测试结果分析作为相互支持的活动,在整个项目过程中并行的执行。

特性描述

  • 是一种思维方式和测试风格,而不是一种具体的软件测试技术,可以应用于任何测试阶段。
  • 强调“同时进行测试设计和执行”, 通过执行阶段的发现进一步设计新的测试,能够充分发挥软件测试工程师的“主动发现和思考”的技能。
  • 将测试学习,测试设计,测试执行和测试结果分析同时进行,作为一个循环快速的迭代,以不断收集反馈,调整测试,优化价值。
  • 与随机测试和漫游测试并不相同,具有一定的思维模式CPIE。
  • 符合敏捷价值观,通过测试逐渐学习产品,并让所学指导测试实践
  • 详细的测试记录是测试执行的自然结果,通常应该包含测试目标,测试范围,测试策略,缺陷列表,测试过程中发现的值得进一步探讨的问题,可以复用的测试资源,测程耗时等。

测试过程

测试人员制订测试计划和测试用例,在后续步骤的细微时间片中,它们将会被被反复执行。

分解测试任务,每个任务都需要有明确的退出条件和时间限制。

在一个测试用例内执行测试,在该过程中,测试人员设计测试,执行测试,评估测试结果。根据获得的知识和发现的疑问再设计测试用例,以拓展测试的广度和深度。

反思当前的测试进展,并优化测试计划,根据新的认识:可以追加一个测试用例,可以修改当前计划的不足,可以删除一些多余的任务等。

集合团队力量,评审测试计划,头脑风暴,分析测试结果。

  1. 测试人员按照一个测试用例来执行测试,得到的程序输出与预期不一致。
  2. 但是经过分析并不是一个缺陷,根据这个输出想出了新的测试思路。
  3. 根据新的思路做详细的测试,就这样一直探索下去,最终发现一个问题。
  4. 而发现问题的这个测试思路和测试用例并没有出现在最初的设计中。

对比即兴测试

  • 相同点:

    都强调即兴发挥,利用直觉和经验,快速地测试软件,并不停的调整测试策略。
  • 不同点:

    探索性测试:是带着反思的测试,在整个过程中测试人员不断地提出假设,用测试去检验假设,持续完善测试模型,然后分析测试结果来证实或推翻假设,驱动进一步的测试。

    即兴测试: 往往是利用错误猜测,典型风险和常见缺陷来快速地试探,它可以在短时间内发现问题,但是不强调系统性,完整性。

CPIE

该模型包含了一组启发式问题,以推动测试人员在知识,分析,实验和测试执行上深入探索。

整理 (Collation):尽可能收集关于测试产品的信息,去了解和理解它们

排序 (Prioritization):确定所有测试任务的优先级。

调查 (Investigation):对即将执行的测试任务进行仔细的分析并确定测试输入和预期输出。

实验 (Experimentation):执行测试,验证预期结果,检查获取信息的正确性。根据实验结果,收集更多的信息,调整测试优先级,深入探索。

HTSM

启发式测试策略模型HTSM(Heuristic Test Strategy Model)

测试人员利用质量标准(Quality Criteria)、项目环境(Project Environment)、产品元素(Product Element),指导测试技术(Test Techniques)的选择与应用,并产生观察到的质量(Perceived Quality)。

  • 项目环境(Project Environment):资源,约束和其他影响测试的项目元素。
  • 产品元素(Product Elements):需要测试的对象。
  • 质量标准(Quality Criteria):分操作性标准和开发标准
  • 测试技术(Test Techniques):生成测试的策略,有效的选择和实施测试技术,需要综合分析项目环境,产品元素和质量标准。

参考信息

什么是探索性测试?

探索式测试:基本概念

测试建模:启发式测试策略模型(Heuristic Test Strategy Model)

Testing - 测试基础 - 探索的更多相关文章

  1. Testing - 测试基础 - 方法

    选择和使用测试方法和工具 按照测试需求用途(或测试技巧)选择 在软件开发生命周期和软件测试流程中适当地选择 按照测试人员实际技能选择 选择可提供的和可执行的 测试方法 类别及技巧 目标 使用方法 举例 ...

  2. Testing - 测试基础 - 自动

    自动化测试模型 一个自动化测试框架就是一个集成体系,在这一体系中包含测试功能的函数库.测试数据源.测试对象识别标准,以及种可重用的模块. 自动化测试框架在发展的过程中,不断有新的模型(概念)被提出,目 ...

  3. Testing - 测试基础 - 概念

    测试是为了度量和提高被测试软件的质量,对测试软件进行工程设计.实施.维护的的整个生命周期过程. 仅仅发现Bug是测试的初步,而分析出根本原因推动问题的解决,却要有很深的功底. 不同的测试岗位从事不同的 ...

  4. Testing - 测试基础 - 分类

    对软件内部结构的深入程度 黑盒测试:又叫功能测试.数据驱动测试或基于需求规格说明书的功能测试. 白盒测试:又称结构测试.逻辑驱动测试或基于程序代码内部构成的测试. 灰盒测试:包含性能测试.自动化测试. ...

  5. Testing - 测试基础 - 流程

    测试存在于各个阶段: 需求测试--->单元测试--->集成测试--->系统测试--->性能测试--->用户测试--->回归测试 需求测试 完整性&正确性 一 ...

  6. Testing - 测试基础 - 用例

    测试用例 是指对一项特定的软件产品进行测试任务的描述,体现测试方案.方法.技术和策略. 内容包括测试目标.测试环境.输入数据.测试步骤.预期结果.测试脚本等,并形成文档. 每个具体测试用例都将包括下列 ...

  7. Testing - 测试基础 - 阶段

    估算 测试对软件工作量的估算的准确性 测试评估软件系统的状况的准确性 关注点: 不准确的估算 不适当的开发过程 不真实的状态报告 如何知道对工作量的估算是正确的 估算工作量的工具很容易出错 对软件工作 ...

  8. Testing - 测试基础 - 理解

    理解 目的 测试就是要找到关键信息,有关项目和产品的关键决策都是根据这些信息做出. 对产品质量做出总体评估. 找出并报告团队所有可能会对产品价值产生消极影响的问题(但并不意味着能发现所有问题). 重心 ...

  9. Testing - 测试基础 - 模型

    珠玉在前,不再赘言. 软件测试模型 软件测试模型汇总

随机推荐

  1. [转载]iOS9 使用CoreLocation

    在iOS8之前,只要 #import <CoreLocation/CoreLocation.h>引入CoreLocation.framework. @property (nonatomic ...

  2. IOS 获取当前对象所在的VC

    id next = [self nextResponder] ; while (next != nil) { next = [next nextResponder]; if ([next isKind ...

  3. 调试SQLSERVER (一)生成dump文件的方法

    调试SQLSERVER (一)生成dump文件的方法 调试SQLSERVER (二)使用Windbg调试SQLSERVER的环境设置调试SQLSERVER (三)使用Windbg调试SQLSERVER ...

  4. xUtils 1.8.4 (Android工具库) 发布 - http模块优化

    感谢关注xUitls的网友最近一段时间给予的热心反馈,xUtils近期做了很多细节优化,同时修复和优化了大家反馈的一些问题.重要的变化有http请求返回更全面的结果信息:下载设置断点续下时,如果服务器 ...

  5. SQL入门经典(二) 之数据库基本查询、添加、更新和删除

    使用SQL查询: SQL查询基本语法: SELECT [ALL|DISTINCT]  [TOP (<expression>) [PERCENT] [WITH TIES] ] <col ...

  6. git 本地库提交至远程服务器

    1. git init 2. git add . 3. git commit -am "###"      -------以上3步只是本地提交 4.git remote add o ...

  7. 设计模式之美:Dynamic Property(动态属性)

    索引 别名 意图 结构 参与者 适用性 效果 实现 实现方式(一):Dynamic Property 的示例实现. 别名 Property Properties Property List 意图 使对 ...

  8. 一道原生js题目引发的思考(鼠标停留区块计时)

    我瞎逛个啥论坛,发现了一个题目,于是本着练手的心态就开始写起来了,于是各种问题接踵而至,收获不小. 题目是这样的: Demo: mouseenter与mouseover区别demo 跨浏览器的区块计数 ...

  9. LuaAlchemy API 介绍

    The AS3 Sugar provides a Lua-like way to access AS3 class and instance creation, property getter/set ...

  10. IOS 多线程02-pthread 、 NSThread 、GCD 、NSOperationQueue、NSRunLoop

    注:本人是翻译过来,并且加上本人的一点见解. 要点: 1.前言 2.pthread 3.NSThread 4.Grand Central Dispatch(GCD) 5.Operation Queue ...