传统认知中的软件测试是一个使用测试用例设计技术设计用例并执行测试用例的过程。

测试用例技术的目的是确保能够更多地覆盖、检测软/硬件错误,减少冗余测试。自动化测试或多或少地被认为是机械地执行测试脚本,将预定义的测试用例输入被测系统,对比系统输出和预期结果。

然而,在实际的工程实践中我们会发现,现实世界的测试很少是基于严格、系统、以及完成记录去运行预定义的测试用例。

相较于传统的测试方法,探索性测试(ET)方法更具创造性。

测试设计、执行和学习并行,不断地学习、反馈、优化测试方法并在实践中应用。但是ET通常被认为是一种经验类方法或错误猜测法,更多地依赖隐性的经验知识,我们不否认ET的这个特点。

容易理解的是:累积的经验知识可以帮助我们更好地进行测试设计,可以帮助我们更好地辨认测试过程中的异常或故障(例如,从日志中观察到某个WARNNING输出,如何确定它是否是软件故障导致的异常输出)。

——这也是本篇文章讨论ET围绕的核心问题:如何辨认故障。问题关键是:如何利用经验知识拓展ET测试技能辨认故障。

那么,我们需要哪些经验知识呢?在这里,总结出了三大类经验,是我们提高ET测试技能时需要的,分别是:领域知识、系统知识、通用软件技术知识。

领域知识

领域知识又可以分为用户视角和应用领域视角。

什么是用户视角?在测试设计过程中我们经常提倡的一个理念是:从用户角度使用我们的产品。

用户视角

用户视角要求了我们需要学习和了解真实用户的使用习惯、方式,和在真实场景中我们产品的交互方式和内部运行情况。

因此,用户视角又可以分为:产品使用过程关联的上下文情景,上下文中的信息内容和表示形式,以及用户真实使用案例。

1、产品使用过程关联的上下文情景

测试人员通常是系统本身的常用用户,具有丰富的使用经验。

当测试人员意识到他们使用程序方式与实际用户使用方式相冲突的时候他们会很快地改变测试策略或测试方法,而所有的测试失败都与测试情景和测试上下文关联。

因此,基于此我们在进行ET测试的时候可以使用“产品使用过程关联的上下文情景“经验知识提高我们的测试技能。

详细来说,主要就是两点:模拟用户真实使用场景,准备尽量真实的测试数据进行测试。

2、上下文中的信息内容和表现形式

当测试人员模拟真实场景进行测试的时候,需要理解和观察情景中展现的上下文信息内容和表现形式。

当软件系统以一种“不尽人意”的方式呈现数据、展现结果,或者展现错误的、有缺陷的数据时,那么可能会提醒测试人员,选择更多测试数据样本进行测试,观察软件系统的表现方式。

例如:某个web系统页面按钮点击无反应,或者某个输入框输入特殊字符导致页面布局错乱。这些案例都可以成为激发测试人员发散性思考的闪光点。

3、客户真实案例中披露的问题

当测试人员进行探索性测试时,了解具体的真实案例、客户所在,按照客户的使用习惯测试软件系统,能够提高识别软件系统风险的能力。

例如:当测试人员测试一个新特性的向前兼容性时,导入了一个历史的复杂数据导致软件系统异常。这样的案例在客户真实情境中不乏多见,利用客户真实案例评估或测试改变的特性有助于披露隐藏在软件设计或开发中的风险问题。

应用领域视角

应用程序域视角代表的是应用领域的相关知识,包括测试人员掌握的自然知识和应用程序的理论、规则和技术细节域,而不是使用上下文。

我们把这透视分为两种:概念性知识学科内容,以及学科的实用知识物质和工具。

1、概念性知识和学科内容

概念性知识和学科内容在此可以通俗理解为测试人员掌握的一些逻辑推理知识、测试经验等。

例如:测试人员根据某个web系统的页面提示,推理、筛选得知是应用前端问题还是应用后台程序问题。

2、对工具的实用性知识

工具可以帮助测试人员提高测试效率,对工具的熟悉和操作的熟稔度直接影响测试效率和测试结果分析。使用工具进行测试,测试结果可以作为测试人员的参考。

总的来说,训练测试人员的探索性测试思维需要测试人员了解相关的领域知识。图表总结,该部分知识如下:

系统知识

应用系统知识的两个主要视角:交互特性和系统视角,以及单个特性和功能视角。

测试人员的对系统及其相关知识和理解特征可以进一步分为知识的系统的工作机制、逻辑和交互相关知识。

交互功能和系统内视角

测试人员对系统及其相关知识和理解特征可以进一步分为知识系统的工作机制、逻辑和交互,以及历史版本故障。测试人员知道特性是如何一起工作的以及系统的基本工作逻辑。

测试人员了解系统应该如何对某些事物做出反应,输入数据或配置的各种变化和可以基于这种理解来认识失败。

重点是不一定是细节的准确性,而是系统应该如何反应、系统是否有反应、反应是否正确。

例如:一个测试人员正在测试一个模拟现实生活的系统基于工程模型的情况。在这种情况下,通过观察系统的响应测试人员意识到系统未能正确反应以变化的仿真参数和性能该模型。系统要么完全没有反应,要么只反应了一部分。

值得注意的是:了解工作机制、逻辑和互动是通过观察整体反应来应用的,使系统的配置、状态或数据发生变化或者通过模拟现实的使用场景。这方面的知识也被应用于识别发生在不是直接在测试焦点中的区域,例如无意的变化。

最后,当系统知识作为测试人员一个新特性时,将一致性启发式以相似的特征和故障识别为基础,同一系统的新特性与类似特性不一致。

单个特性和功能视角

单个特性和功能视角几乎是每个测试人员经常测试的类别,针对单个特性设计测试用例进行测试。

在此,我们说明探索性测试技能的时候给大家建议的是:锻炼测试人员分析日志的能力,要有敏感的“嗅觉”,能够及时发现日志中的异常打印和错误信息,并逆向追踪导致系统异常的场景、代码等。

总结一下,本部分系统知识的分类和知识类型及使用方式如下表所示:

通用软件工程知识

通用软件工程知识指的是能够明显发掘的错误,不需要经过深层分析。

例如:GUI层面的功能错误、布局错误,很容易让测试人员一目了然判断它是否是故障。

又例如:功能层面的可用性,可以让测试人员参考用户手册很容易判定它是否满足用户需求,是否简单可用。

它又可以分为通用正确性视角、可用性视角和直接错误视角。具体如下表所示:

总结

探索性测试是一种自由、灵活的测试风格,近年来被许多测试人员推崇,相应地也诞生了一些测试技巧,如局部探索性测试方法和全局探索性测试方法。

虽然我们不断强调探索性测试不是单纯的经验性测试,但却也不能否认丰富的经验为探索性测试带来的好处。

本文从3个角度简单阐述了如何丰富探索性测试经验,加强探索性测试技能,希望能对大家有所帮助。

软件测试工程师自学教程:

这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】

接口性能测试 — 软件测试人必会618实战场景分析

软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.

美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看

测试开发之全面剖析自动化测试平台 — 软件测试人的必经之路

软件测试必会_Jmeter大厂实战 — 仅6步可实现接口自动化测试

Jmeter实战讲解案例 — 软件测试人必会

我推荐一个【Python自动化测试交流群:746506216】,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,助你快速进阶Python自动化测试/测试开发,走向高薪之路。

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

学习新方法:加强探索性测试技能相关推荐

  1. 神经网络可解释性、深度学习新方法,2020 年 AI 有哪些势不可挡的研究趋势?...

    来演:雷锋网 2019 年最后一场学术顶会告诉我们 2020 年该研究什么! 文 | MrBear 作为 2019 年最后一场重量级的人工智能国际学术顶会,NeurIPS 2019 所反映出的一些人工 ...

  2. ICCV2021 比MoCo更通用的对比学习范式,中科大MSRA提出对比学习新方法MaskCo

    关注公众号,发现CV技术之美 今日分享 ICCV2021论文『Self-Supervised Visual Representations Learning by Contrastive Mask P ...

  3. DeepMind提出强化学习新方法,可实现人机合作

    来源:AI前线 作者:Ben Dickson 译者:盖 策划:凌敏 本文来自 BDTechTalks 网站的"AI 研究论文评论"专栏.该专栏提供人工智能最新发现的系列解读文章. ...

  4. 强化学习新方法,让后空翻回旋踢再也难不倒机器人 | 伯克利论文

    夏乙 发自 凹非寺 量子位 出品 | 公众号 QbitAI 波士顿动力人形机器人的后空翻技能亮相时,惊艳了全球群众. 这么复杂的动作,不用说现实世界中的机器人,就算是在模拟器里,学起来也非常的难. 现 ...

  5. 面向星际争霸:DeepMind 提出多智能体强化学习新方法

    不久前 DeepMind 强化学习团队负责人.AlphaGo 项目负责人现身 Reddit 问答,其中一个问题是「围棋和星际争霸 2 哪个更难?潜在技术障碍是什么?」近日,DeepMind 发表论文, ...

  6. 刷新SOTA!Salesforce提出跨模态对比学习新方法,仅需4M图像数据!

    文 | 子龙 多模态已经不是一个新鲜的话题,如何在一个模型中融合CV和NLP的信息同时吸引了两个领域的目光(CV.NLP的会都能投),但是很容易就能想到,来自图片的视觉特征和来自语料的文本特征来自不同 ...

  7. sqlite3学习笔记-方法介绍和测试代码

    创建数据库 :sqlite3 test.db 查看数据数据 : .databases 创建表 :create table student (id integer primary key autoinc ...

  8. 手机相册怎么拼图?快来和我学习新方法

    随着如今科技发展的越来越快,手机可以说是使用率非常高的电子设备.随着手机功能越来越多,我们使用手机的时间也越来越长.用手机拍照是现在很常见的功能,我们也通常会需要到将图片上传到某个渠道或者分享给同事或 ...

  9. 不可替代的测试人:一文解释探索性测试是什么

    剧本式测试 随着软件技术的发展,软件开发过程中对软件测试的需求越来越庞大,从原来单纯的寻找软件缺陷,到后来的学习软件.挖掘软件中存在的缺陷.评估软件可用性.性能等等方面,软件测试发挥着重要作用. 考虑 ...

最新文章

  1. View事件分发机制(源码分析篇)
  2. @ControllerAdvice这个注解主要作用是什么
  3. 【javascript】四舍五入
  4. js实现图片上传预览及进度条
  5. C语言求35 45的最大公约数,C语言怎么求最大公约数和最小公倍数
  6. Teams内嵌的卡片image的限制
  7. 8.12模拟:dp递推
  8. Office web app server2013详细的安装和部署
  9. Zabbix监控——proxy 分布式监控配置
  10. Bootstrap 下拉菜单
  11. Codeforces 699D Fix a Tree 并查集
  12. L3-012 水果忍者 (30 分)-PAT 团体程序设计天梯赛 GPLT
  13. Matlab Tricks(二十六)—— 置乱(随机化)与恢复(shuffle/permutation restore)
  14. 【Numpy基础】矩阵数组相乘与神经网络的实现
  15. 网络工程师学习笔记(四)
  16. 【图像边缘检测】基于matlab拉普拉斯算法图像边缘检测与增强【含Matlab源码 456期】
  17. 计算机语言环境变量,Win7环境变量中如何切换语言
  18. 基于模型的约束排序,并探究OTUs对pH的响应特征——单峰or线性?
  19. 有了这十五款编程游戏,谁都可以学编程!
  20. 物理量与单位符号的书写标准

热门文章

  1. 【搞笑】杨超越毕业典礼发言模板替换
  2. MIUI中无法获取所有短信的坑
  3. 蚁群算法(ACA)详细介绍(JAVA实现及代码详解)
  4. 华清远见C语言学习心得
  5. 分析修改不成功的因素
  6. 信息与信息化基本概念
  7. GenerateAllSetter:一键生成所有setter方法
  8. 爬虫:12306模拟登陆
  9. [转载]石泉两河镇观光园美女如云——2(美女篇)_陕南赤子_新浪博客
  10. SQL语句里中括号的作用