聊聊探索性测试

探索性测试定义及来源:​

特意度娘了一下,探索性测试的定义:

探索性测试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。

探索性测试强调测试设计和测试执行的同时性,这是相对于传统软件测试过程中严格的“先设计,后执行”来说的。测试人员通过测试来不断学习被测系统,同时把学习到的关于软件系统的更多信息通过综合的整理和分析,创造出更多的关于测试的主意。

探索性测试最早提出者,还是测试专家 Cem Kaner 博士在 1983 年提出的,并受到当时语境驱动的软件测试学派的支持。

对于测试工作者来说,你首先根据软件功能描述来设计最初的测试用例,然后执行测试;测试执行后,可能你得到的输出和预期输出不完全一致,于是你会猜测这种不一致是否可能是软件的缺陷造成的;为了验证你的想法,你会根据错误输出设计新的测试用例,然后采用不同的输入再次检查软件的输出。

在一次测试中,你可能会经过几轮这样的猜测和验证,进行反复“探索”,最终确定了一个软件的缺陷。而这个过程中,你会发现,识别缺陷的思路和测试用例的设计,并没有出现在最初的测试设计和测试用例文档中,而是以很快的速度在你的脑海中以及实际测试执行和验证中快速迭代。

探索性测试是如何开展的?

探索性测试是一种灵活而动态的测试方法,它强调测试人员在执行测试的同时进行学习、设计测试案例以及执行测试。这种方法不依赖于详尽的预先编写好的测试用例,而是依靠测试者的直觉、经验和对系统的理解来发现潜在的问题。以下是探索性测试开展的主要步骤和策略:

  1. 理解需求和背景:

    • 开始前,测试人员需深入理解软件的业务需求、用户场景以及非功能性需求,这有助于构建测试思路。

  2. 设定测试目标:

    • 明确本次探索性测试的目标,比如要验证的功能点、预期探索的范围或想要发现的特定类型缺陷。

  3. 设计测试章程:

    • 制定测试章程,这是一个简短的测试任务说明,包括测试的重点区域、时间限制和探索的目标。章程帮助聚焦测试活动并提供探索的方向。

  4. 实施测试:

    • 测试人员根据章程开始探索,边学边测,不断调整测试策略。可能会采用不同的测试技术,如遍历测试法快速检查基本功能,反叛测试法输入极端或恶意数据,以及基于场景的探索等。

  5. 记录与反馈:

    • 实时记录测试过程中发现的问题、使用的测试数据、观察到的现象及任何相关的思考。这不仅有助于后续分析,也是团队间知识共享的基础。

  6. 迭代与优化:

    • 根据测试执行的结果和反馈,不断调整测试策略和方向。探索性测试鼓励快速迭代,基于新发现的信息优化测试计划。

  7. 利用工具辅助:

    • 可以利用思维导图工具(如Xmind)来组织思路、记录测试想法或创建测试场景,帮助更好地规划和回顾测试活动。

  8. 经验总结与分享:

    • 完成测试后,总结成功的测试模式、遇到的问题和学到的经验教训,通过培训或文档形式分享给团队成员,提升整个团队的测试能力。

探索性测试重视测试人员的主动性和创造性,是一种适应性强、能够快速适应变化的测试方法,尤其适合于时间紧迫或需求频繁变更的项目环境。

探索性测试优点和不足之处:

探索性测试的优点:

  1. 灵活性和即时性:探索性测试允许测试人员根据实时的发现和理解立即调整测试策略,迅速应对需求变化或新发现的问题,特别适合敏捷开发环境。

  2. 提高发现缺陷的能力:由于其非线性和创新性,测试人员可能发现那些按照传统脚本测试难以捕捉到的缺陷,尤其是边缘情况和交互问题。

  3. 促进学习和理解:测试过程中同步进行的学习,加深了测试人员对软件系统的理解,有助于发现更深层次的问题。

  4. 减少前期准备时间:相比传统测试需要事先设计大量测试用例,探索性测试可以更快启动,节省了宝贵的项目时间。

  5. 鼓励创新和创造力:测试人员被赋予更多自主权,可以自由发挥创意,尝试新颖的测试方法,有利于激发潜在的测试思路。

  6. 增强测试覆盖率:通过即兴的测试路径和策略,可以覆盖到脚本化测试可能忽略的场景,提高整体的测试覆盖面。

不足之处:

  1. 依赖测试人员技能:探索性测试的效果很大程度上取决于测试人员的经验、技能和直觉,缺乏经验的测试人员可能难以高效执行。

  2. 可追溯性和重复性问题:由于测试活动是非脚本化的,复现发现的问题或进行回归测试可能较为困难,影响缺陷管理的效率。

  3. 测试结果的主观性:测试结果可能受到测试人员个人判断的影响,缺乏标准化评估可能导致测试结果的不一致性。

  4. 测试文档不足:相较于传统测试详尽的测试计划和用例文档,探索性测试可能缺乏充分的书面记录,不利于知识传递和团队协作。

  5. 测试深度与广度的平衡:在有限的时间内,追求测试的广度可能牺牲了对某些领域的深度测试,反之亦然。

综上所述,探索性测试是一种强大的工具,特别是在快速迭代和高度不确定性的项目中,但它要求测试团队具备高度的专业能力和良好的自我管理。为了最大化其效益,通常建议结合其他测试方法,如自动化测试和结构化测试,以形成互补。

探索性测试常见的测试场景有哪些?

  1. 用户登录与权限验证:

    • 尝试不同类型的用户账户登录,包括正常用户、管理员、未激活账户、已锁定账户等。

    • 输入无效凭据,如错误的密码、不存在的用户名,以及特殊字符的使用。

    • 登录后尝试访问不同权限级别的功能,测试权限控制是否准确。

  2. 功能交互与异常流:

    • 在进行某个功能操作时,中途打断或切换到其他功能,检查数据一致性与状态恢复。

    • 强制测试法,如重复提交表单、快速连续点击按钮,测试系统稳定性。

    • 删除或修改关键数据后,观察系统反应及错误处理机制。

  3. 边界条件与极限值:

    • 输入数据的边界值测试,如文本框的最大最小长度、数值字段的上下限。

    • 大量数据的输入,测试性能和处理能力。

    • 时间和日期的边界测试,如选择最早和最晚的有效日期。

  4. 兼容性与平台多样性:

    • 在不同浏览器、操作系统、设备或屏幕尺寸上测试应用的表现。

    • 网络条件变化下的应用响应,如慢网络、断网重连情况。

  5. 多用户并发与同步:

    • 多个用户同时进行相同或相关操作,测试数据同步与并发控制。

    • 模拟高负载情况,检查系统处理能力和稳定性。

  6. 国际化与本地化:

    • 测试不同语言环境下界面显示和文本翻译的准确性。

    • 输入非英文字符,测试对多语言字符的支持。

  7. 安全性测试:

    • 尝试SQL注入、跨站脚本(XSS)等常见安全漏洞。

    • 测试未授权访问限制,尝试绕过认证机制。

  8. 基于场景的探索:

    • 重现用户报告的问题场景,寻找复现路径。

    • 模拟真实用户使用路径,包括正常与异常流程。

  9. 性能与压力测试:

    • 逐步增加用户负载,观察系统响应时间和资源使用情况。

    • 在高并发场景下,测试系统的稳定性和恢复能力。

每个场景都鼓励测试者利用自己的判断和创造力,灵活地探索应用的各个方面,以发现可能被标准测试遗漏的问题。

网上了解一下,这几篇文章感觉不错,值得浏览:

探索性测试01什么是探索性测试:

https://blog.csdn.net/wxt_hillwill/article/details/115910345

什么是探索性测试?探索性测试有哪些方法?

https://mp.weixin.qq.com/s/vgxQHmdKUTq1xRvzZ19IpQ

2023 年 20 种最佳探索性测试工具

https://mp.weixin.qq.com/s/jfZLUeq5X79fme3Z4E3_mA

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/856552.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机房布线新方案:数字化运维如何助力企业高效腾飞

随着信息量的激增,传统的机房布线管理方式已经难以满足现代化企业的需求,存在着“视觉混乱、记录不准”等严重问题,这不仅影响了机房运维的效率,更对企业的数据安全构成了潜在威胁。然而,随着耐威迪数字化运维管理方案…

工业AIoT竞赛

模块一:工业物联环境构建 # 查看节点状态 kubectl get nodes # 查看所有 pods 状态 kubectl get pods --all-namespaces cd /data/script/ ls | grep install_openyurt_manager # ./install_openyurt_manager_v5.sh是搜索到的脚本文件 ./install_openyurt_manager_v…

校园疫情防控健康打卡系统

摘 要 自疫情出现以来,全世界人民的生命安全和健康都面临着严重威胁。高校是我国培养人才的重要基地,其安全和稳定影响着社会的发展和进步。因此,各高校高度重视疫情防控工作,并在校园疫情防控中引入了健康打卡系统。本论文主要研…

RISC_CPU模块的调试

代码: cpu.v include "clk_gen.v" include "accum.v" include "adr.v" include "alu.v" include "machine.v" include "counter.v" include "machinectl.v" include "register.v&quo…

小兔鲜02

elementplus自动按需引入 elementplus主题色定制 安装sass npm install sass -D要替换的主题色内容: /* 只需要重写你需要的即可 */ forward element-plus/theme-chalk/src/common/var.scss with ($colors: (primary: (// 主色base: #27ba9b,),success: (// 成功…

【前端项目笔记】4 权限管理

权限管理 效果展示: (1)权限列表 (2)角色列表 其中的分配权限功能 权限列表功能开发 新功能模块,需要创建新分支 git branch 查看所有分支(*表示当前分支) git checkout -b ri…

审稿人:拜托,请把模型时间序列去趋势!!

大侠幸会,在下全网同名「算法金」 0 基础转 AI 上岸,多个算法赛 Top 「日更万日,让更多人享受智能乐趣」 时间序列分析是数据科学中一个重要的领域。通过对时间序列数据的分析,我们可以从数据中发现规律、预测未来趋势以及做出决策…

web中间件漏洞-Resin漏洞-密码爆破、上传war

web中间件漏洞-Resin漏洞-密码爆破、上传webshell 使用爆破结果resin/resin进入后台,选择deploy。想部署webshell,得使用SSL方式请求,访问https://192.168.1.2:8443/resin-admin/index.php?qdeploy&s0(注:如果使用最新的火狐浏览器或者谷…

[论文笔记]Are Large Language Models All You Need for Task-Oriented Dialogue?

引言 今天带来论文Are Large Language Models All You Need for Task-Oriented Dialogue?的笔记。 主要评估了LLM在完成多轮对话任务以及同外部数据库进行交互的能力。在明确的信念状态跟踪方面,LLMs的表现不及专门的任务特定模型。然而,如果为它们提…

C语言中字符串处理函数

目录 前言 1. strlen 测字符串长度函数 2.字符串拷贝函数 2.1strcpy 2.2 strncpy 3.strcat字符串追加函数 4. strcmp/strncmp 比较函数 5.字符查找函数 5.1 strchr 5.2 strrchr 6.atoi/atol/atof字符串转换数值 总结 前言 从0开始记录我的学习历程,我会尽…

一小时搞定JavaScript(1)——JS基础

前言,本篇文章是依据bilibili博主(波波酱老师)的学习笔记,波波酱老师讲的很好,很适合速成!!! 本篇文章会与java进行对比学习,因为JS中很多语法和java是相同的,所以大家最好熟悉Java语言后再来进行学习,效果更佳,见效更快. 文章目录 1.基本语法1.1 JS语言的特点1.2 创建一个JS文…

开发一个软件自动运行工具不可缺少的源代码分享!

在软件开发领域,自动运行工具扮演着至关重要的角色,它们能够简化软件部署、提升运行效率,并在很大程度上降低人为操作失误的可能性。 而一个高效的自动运行工具的背后,往往是经过精心设计与实现的源代码在默默支撑,本…

如何解决资源管理器被结束任务后的问题,怎么重启或新建资源管理器任务?

服务器上运行的东西太多,修改个文件夹的名字导致卡死。结束任务后导致系统页面空白。(关闭了windows资源管理器) 按CtrlShiftDelete没有反应。 按CtrlShiftEsc没有反应。 按CtrlShiftEnd没有反应。 按CtrlALTEnd有反应。 (win2012) 输入…

贝锐蒲公英异地组网方案:实现制药设备远程监控、远程运维

公司业务涉及放射性药品的生产与销售,在全国各地拥有20多个分公司。由于药品的特殊性,在日常生产过程中,需要符合药品监管规范要求,对各个分部的气相、液相设备及打印机等进行监管,了解其运行数据及工作情况。 为满足这…

QT截图程序三-截取自定义多边形

上一篇文章QT截图程序,可多屏幕截图二,增加调整截图区域功能-CSDN博客描述了如何截取,具备调整边缘功能后已经方便使用了,但是与系统自带的程序相比,似乎没有什么特别,只能截取矩形区域。 如果可以按照自己…

conda创建虚拟环境报错解决

1.报错截图 2.解决办法 查看当前所有虚拟环境 conda env list 解决办法 解决方法 bash conda config --add channels conda-forge conda config --set channel_priority strict conda config --set channel_priority flexible

GitLab项目组相关操作(创建项目组Group、创建项目组的项目、为项目添加成员并赋予权限)

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 ——《将…

视频监控平台功能:国外的硬盘录像机NVR通过ISUP协议(原ehome协议)接入AS-V1000视频平台

目录 一、背景说明 二、ISUP协议介绍 1、海康ISUP协议概述 2、ISUP协议支持主码流和子码流切换 (1)灵活配置和个性化 (2)适应不同网络带宽,提高使用体验 3、海康ehome相关文章 三、ISUP协议接入说明 1、平台侧…

【Day01】0基础微信小程序入门-学习笔记

文章目录 今日学习目标小程序简介1. 小程序和普通网页开发的区别2. 体验小程序 第一个小程序1.第一个小程序-注册2.第一个小程序-安装开发者工具3.第一个小程序-创建小程序项目 小程序代码构成1.小程序代码构成-项目结构2. 小程序代码构成-JSON文件3. 小程序代码构成-WXML模板4…

【DKN: Deep Knowledge-Aware Network for News Recommendation】

DKN: Deep Knowledge-Aware Network for News Recommendation 摘要 在线新闻推荐系统旨在解决新闻信息爆炸的问题,为用户进行个性化推荐。 总体而言,新闻语言高度凝练,充满知识实体和常识。 然而,现有的方法并没有意识到这些外部…