第18章 基于经验的测试技术

一、错误猜想法

(一)概念

  • 错误推算法
  • 基于测试人员对以往测试项目中一些经验测试程序中的错误
  • 测试程序时,人们可根据经验或直觉推测程序中可能存在的各种错误,然后有针对性地编写检查这些错误的测试用例的方法

(二)软件错误类型

1、软件需求错误

  • 软件需求不合理
  • 软件需求不全面、不明确
  • 需求中包含逻辑错误
  • 需求分析的文档有误

2、功能和性能错误

  • 需求规格说明中规定的功能实现不正确、存在未实现或冗余的情况
  • 性能未满足规定的要求
  • 为用户提供的信息不准确
  • 异常情况处理有误

3、软件结构错误

  • 程序控制流或控制顺序有误
  • 处理过程有误

4、数据错误

  • 数据定义或数据结构有误
  • 数据存取或数据操作有误

5、软件实现和编码错误

  • 编码错误或按键错误
  • 违反编码要求和标准(语法错误、数据名错误、程序逻辑有误)

6、软件集成错误

  • 软件的内部接口或外部接口有误
  • 软件各相关部分在时间配合、数据吞吐量等方面不协调

(三)估算错误数量的方法

1、Seeding模型估算法

在这里插入图片描述

  • N:未知错误数
  • Nt:人为向程序中添加的错误数
  • n:经t个月的排错工作以后,排错程序中原有的错误的数量
  • nt:经t个月的排错工作以后,排错人工插入的错误数量
  • 问题:由于排错人员无法确定程序中出现错误的数量和内容,导致新添加的错误与原有错误重复,导致结果不一定准确
  • 主要应用于软件的测试阶段

2、Hyman估算法

在这里插入图片描述

  • 设置A、B两个测试人员相互独立地对某个软件进行测试
  • A组:发现错误数为i
  • B组:发现错误数为j
  • A、B两组共同测试出的错误数为k

3、Shooman模型估算法

在这里插入图片描述

  • 一种通过估算错误产生的频度来保证软件的可靠性的方法(主要体现为MTTF)
  • K:为经验常数
  • ET:是测试之前程序中的原有故障总数
  • It:是程序长度(机器指令条数或简单汇编语句条数)
  • t:是测试(包括排错)的时间
  • EC(t):是在0-t期间内检出并排除的故障总数
  • 公式中的K及ET可通过两次以上不同的相互独立的功能测试进行估算得到
  • 估算ET值和K较为困难,可能导致实验数据存在误差
  • 主要应用于软件的开发阶段

二、探索性测试

(一)概念

  • 基于创造性、经验的测试方法。测试人员基于现有相关知识、测试项、前期探索及相关软件行为和故障类型的启发,自发设计和执行测试的测试方法。
  • 强调测试设计和测试执行的同时性
  • 最大特色是学习、运用
  • 适用于被测对象复杂且难以理解的情况

(二)目的

  • 帮助测试人员更好理解需求,并针对功能进行快速评估。

(三)分类

  • 自由式探索性测试
  • 基于场景的探索性测试
  • 基于策略的探索性测试
  • 基于反馈的探索性测试
  • 基于会话的探索性测试

(四)探索性测试风格

  • 预感
  • 模型
  • 示例
  • 不变性
  • 干扰
  • 错误处理
  • 故障排除
  • 小组洞察
  • 规范

(五)探索性测试的相关方法

1、局部探索性测试法

辅助测试人员针对测试中出现的细节问题做出及时性的决定。

  • 5个部分
    • 输入、状态、代码路径、用户数据、执行环境
  • 不能应用测试用例的整体设计过程

2、全局探索式测试法

助测试人员在实际开始测试前建立起一个全局目标,确定对软件进行探索性测试的整体方向,以便系统组织测试工作,从而尽量覆盖软件的复杂程度及特性。

  • 决定了总体探索策略和产品特性的测试方法
  • 用于指导整体的测试过程,帮助测试人员设计整体的测试策略

(六)优势和局限

1、优势

  • 在测试设计不充分的情况下,探索性测试可以基于之前类似的测试和结果进行测试
  • 在早期需求模糊或系统不稳定时,探索性测试可以不受限制地在短时间内对产品质量进行反馈
  • 当发现缺陷时,探索性测试可以快速向开发人员提供针对缺陷的严重程度、涉及范围和变化的反馈
  • 探索性测试可以作为脚本测试的一个重要补充,以检测出脚本测试不能监测到的缺陷

2、局限

  • 探索性测试无法对被测对象进行全面性测试,测试结果一般不易度量,不能确保发现最重要的软件缺陷
  • 脚本测试可以在需求收集阶段编制测试用例,根据用例的执行来发现缺陷,而探索性测试缺少预防缺陷的能力
  • 对于已经确定了测试类型和执行顺序的测试来说,直接编写测试脚本并执行比进行探索性测试更有意义
  • 依赖测试人员的领域知识和测试技术,探索性测试不容易协调及调整,导致测试效率低下,缺乏条理

三、基于检查表的测试

(一)概念

  • 通过设计对应的检查点,便于去检查软件对于该检查点的情况来验证软件的一种测试方法。

(二)构建检查表

  • 基于经验
  • 对用户重要内容的了解
  • 对软件错误的原因和方式的理解
  • 检查项源于以往的经验总结且有效、可测试量

(三)支持测试类型

  • 各种测试类型

四、基于代码检查表的测试

(一)主要检查点

1、格式规范性

  • 嵌套的IF语句是否正确地缩进
  • 注释是否准确并有意义
  • 使用的标号是否有意义
  • 代码与开始时的模块模式是否一致
  • 整体上是否遵循全套的编程标准

2、入口和出口的连接

  • 初始入口和最终出口是否正确
  • 跨模块调用时,是否完整地传递所需的参数
  • 是否正确地设置了被传送的参数值
  • 是否对关键的被调用模块的意外情况进行处理

3、程序语言的使用

  • 使用的动词是否合适
  • 模块中是否使用完整定义的语言的有限子集
  • 跳转语句是否适当

4、存储器使用

  • 首次使用域之前是否经过正确的初始化
  • 规定的域是否正确
  • 每个域是否有正确的变量类型声明

5、判断和转移

  • 正确的条件是否经判断
  • 用于判断的是否是正确的变量
  • 转移目标是否正确并能够被至少执行一次

6、性能

  • 每个逻辑是否实现了最佳编码
  • 是否提供正式的错误/例外子程序

7、可维护性

  • 清单格式是否有助于提高可读性
  • 标号和子程序是否符合代码的逻辑意义

8、逻辑性

  • 全部设计是否都已实现
  • 代码实现是否与设计一致
  • 循环语句是否能够执行其设定的次数

9、可靠性

  • 是否确认外部接口采集的数据
  • 是否遵循可靠性编程要求

五、基于文档检查表的测试

1、可用性

  • 是否提供纸质或电子介质的文档

2、内容

  • 功能是否可被测试或验证

3、标识和标示

  • 文档的封面、页眉/页脚或其他地方应具有唯一性标识
  • 文档中应包含名称、版本及发布日期的软件产品标识
  • 文档中应包含供方的名称和地址信息

4、完备性

  • 文档是否包含使用软件必需的信息
  • 文档是否清晰陈述软件产品所有功能及用户能调用的所有功能
  • 文档是否对软件运行过程中的差错和缺陷进行说明
  • 文档是否包括执行应用管理智能所有必要的信息

5、正确性

  • 文档中包含的信息是否恰当且适合目标用户阅读使用
  • 文档中包含的信息是否正确,没有歧义

6、一致性

  • 文档中的表述不应自相矛盾

7、易理解性

  • 文档中出现的术语可以被理解
  • 文档是否包含清晰的组成文档清单或覆盖范围说明

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

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

相关文章

使用MATLAB/Simulink点亮STM32开发板LED灯

使用MATLAB/Simulink点亮STM32开发板LED灯-笔记 一、STM32CubeMX新建工程二、Simulink 新建工程三、MDK导入生成的代码 一、STM32CubeMX新建工程 1. 打开 STM32CubeMX 软件,点击“新建工程”,选择中对应的型号 2. RCC 设置,选择 HSE(外部高…

LeetCode 69—— x 的平方根

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 二分查找法,对于整数 i ∈ [ 0 , x ] i \in [0,x] i∈[0,x],我们判断 i 2 i^2 i2 和 x x x 的关系,然后找到最后一个平方小于等于 x x x …

【 书生·浦语大模型实战营】作业(六):Lagent AgentLego 智能体应用搭建

【 书生浦语大模型实战营】作业(六):Lagent & AgentLego 智能体应用搭建 🎉AI学习星球推荐: GoAI的学习社区 知识星球是一个致力于提供《机器学习 | 深度学习 | CV | NLP | 大模型 | 多模态 | AIGC 》各个最新AI方…

35.Docker-数据卷,目录挂载

注意:在容器内修改文件是不推荐的。 1.修改不方便,比如vi命令都无法使用。 2.容器内修改,没有日志记录的。 问题:那应该如何修改容器中的文件呢? 数据卷 volume是一个虚拟目录,指向宿主机文件系统中的…

如何把学浪的视频保存到手机

你是不是还在为无法将学浪的视频保存到手机而烦恼?别担心,接下来我将为大家分享一个非常实用的方法,让你轻松实现这一目标! 下载学浪的工具我已经打包好了,有需要的自己下载一下 学浪下载工具打包链接:百…

一加12/11/10/Ace2/Ace3手机上锁回锁BL无限重启黑屏9008模式救砖

一加12/11/10/Ace2/Ace3手机官方都支持解锁BL,搞机的用户也比较多,相对于其他品牌来说,并没有做出限制,这也可能是搞机党最后的救命稻草。而厌倦了root搞机的用户,就习惯性回锁BL,希望彻底变回官方原来的样…

研究论文的蓝图:精通论文大纲的编写技巧

研究论文大纲是一个补充文件,描述了按计划顺序纳入论文的所有主题,通常按段落分割。正常的研究论文大纲包括额外的细节,例如子主题和证据来源,以帮助作者保持结构。本文讨论了研究论文大纲的内容以及如何撰写。 研究论文大纲的含…

C#语言入门

一、基础知识 1. 程序语言是什么 用于人和计算机进行交流,通过程序语言让计算机能够响应我们发出的指令 2. 开发环境 IDE,集成开发环境。它就是一类用于程序开发的软件,这一类软件一般包括了代码编辑、编译器、调试器、图形用户界面等等工…

STM32独立看门狗,实现单片机自动重启

今天学习了一下独立看门狗,看门狗的主要作用就是防止程序中有死循环或是不知道的bug,而造成在while循环中没有及时喂狗,程序就会控制单片机重启复位,从而不至于影响程序一直不能正常工作。 其实看门狗的应用也不是很复杂&#xf…

1020. 【USACO题库】2.1.1 The Castle城堡

题目描述 以一个几乎超乎想像的运气,农民约翰在他的生日收到了一张爱尔兰博彩的奖券。 这一张奖券成为了唯一中奖的奖券。 农民约翰嬴得爱尔兰的乡下地方的一个传说中的城堡。 吹牛在他们威斯康辛州不算什么,农民约翰想告诉他的牛所有有关城堡的事。 他想知道城堡有多少房间…

光伏光热一体化技术PVT

1、PVT集热器简介 太阳能光伏光热一体化组件主要由光伏与光热两个部分组成。光伏部分采用技术成熟的太阳能光伏面板,通过控制系统为建筑提供所需电能,主要包括光伏电池、蓄电池、逆变器和控制器等构件。光热部分主要为集热器,将太阳能转换为热…

力扣例题(接雨水)

链接: . - 力扣(LeetCode) 题目描述: 思路: 判断一块地方是否可以接到雨水,只需要判断他是否有左右边界使他可以接到水 左右边界分别为此处左侧的最高点和右侧的最高点 同时此处可接雨水的高度为左右两…

基于Pytorch深度学习——GPU安装/使用

本文章来源于对李沐动手深度学习代码以及原理的理解,并且由于李沐老师的代码能力很强,以及视频中讲解代码的部分较少,所以这里将代码进行尽量逐行详细解释 并且由于pytorch的语法有些小伙伴可能并不熟悉,所以我们会采用逐行解释小…

《QT实用小工具·四十九》QT开发的轮播图

1、概述 源码放在文章末尾 该项目实现了界面轮播图的效果,包含如下特点: 左右轮播 鼠标悬浮切换,无需点击 自动定时轮播 自动裁剪和缩放不同尺寸图片 任意添加、插入、删除 单击事件,支持索引和自定义文本 界面美观,圆…

开源免费的网盘项目Cloudreve,基于Go云存储个人网盘系统源码(七牛、阿里云 OSS、腾讯云 COS、又拍云、OneDrive)

项目简介: 在现今的网盘服务中,用户经常遭遇限速和价格上涨的问题,这无疑增加了使用上的困扰。 为此,我今天要介绍一款开源且免费的网盘项目——Cloudreve。 这个项目是基于Go语言开发的云存储个人网盘系统,支持多种…

[笔试训练](十二)

目录 034:删除公共字符串 035:两个链表的第一个公共节点 036:mari和shiny 034:删除公共字符串 删除公共字符_牛客题霸_牛客网 (nowcoder.com) 题解: 用哈希记录好第二个字符串中的字符,再遍历一遍第一个字符串,只将没有记录的字符加在结果字符串上。…

[C++][数据结构]哈希1:哈希函数的介绍与线性探测的实现

前言 学完了二叉树,我们要学当前阶段数据结构的最后一个内容了:哈希!! 引入 先来介绍两个用哈希封装的两个容器:unordered_map unordered_set 与map和set的不同: map/set是双向迭代器,而另…

【已解决】VSCode 连接远程 Ubuntu :检测到 #include 错误。请更新 includePath。

文章目录 1. 环境声明2. 解决过程 1. 环境声明 即使是同一个报错,在不同的环境中,报错原因、解决方法都是不同的,本文只能解决跟我类似的问题,如果你发现你跟我遇到的问题不太一样,建议寻找其他解法。 必须要吐槽的是…

STD10A230XCB电源模块STD05A230XCB整流模块介绍

STD10A230XCB电源模块STD05A230XCB整流模块介绍,直流屏电源模块STD05A230XCB,整流模块STD10A115XCB,STD20A115XCB,STD10A230X,STD05A230X,直流屏充电模块的关键词: 电力智能高频开关充电模块STD20A230XCB,高…

【科研技术】华为为什么不给微信特权?

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…