02 MDTD

news/2024/12/5 3:22:25/

Complexity of Testing Software

  • the term correctness has no meaning
  • Instead considering reliability, safety, maintainability, security, and efficiency

关于正确性

  • 更多是用来描述古典科学

    • 数学模型正确
    • 。。。。
  • Better viewpoint: a relative term — program P is correct with respect to specification S.(软件测试的对于正确的描述)

  • Bottom Line: Do the specification and the program meet the customer/user’s expectations?

程序的行为空间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Y1uP1y93-1583717773051)(F:\WHU\大三(下)\我\软件测试技术\课件\chapter2\image-20200224081833403.png)]

说明中有的,但是程序中 未实现叫作缺陷故障,程序实现的,但是并不在预期范围的,叫作过失故障

我们需要测试正确性的部分,是S和P相交的部分,我们希望S和P的交集越大越好

规定行为、实现行为和测试行为:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ty7HQy1B-1583717773052)(F:\WHU\大三(下)\我\软件测试技术\课件\chapter2\image-20200224082037206.png)]

目标范围是1的范围,程序说明中说明了,程序也实现了,测试时也测试了1,我们需要尽量扩大1的范围

左为基于规格说明的测试,右为基于代码的测试

基于规格说明的测试:

基于规格说明不需要知道它的具体实现,只考虑是否实现了预期目标。(黑盒测试)

经典测试类型:

  • Boundary Value Testing(基于边界值的测试)
  • Equivalence Class Testing(基于等价类的测试)
  • Decision Table-based Testing(决策表的测试)

优点:

  • 测试与具体实现方法无关(更改实现方法后,测试用例依然可以用)
  • 测试与开发并行

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N7JZ0ouf-1583717773053)(F:\WHU\大三(下)\我\软件测试技术\课件\chapter2\image-20200224082631352.png)]

A对于1的测试范围更大,但是冗余范围更大?(猜测)

附:从图中可以看出,基于规格说明的测试方法只会在规格说明的范围内,不会超出这个范围

基于代码的测试(Code-based testing)

也叫做结构化测试、白盒测试、玻璃盒测试

包括:

  • 基于图的测试
  • 基于数据流的测试
优点:
  • 有很强的理论基础
  • 允许定义和使用测试覆盖指标
  • 能够明确地表示 软件被测试程度

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Vr6bblE3-1583717773053)(F:\WHU\大三(下)\我\软件测试技术\课件\chapter2\image-20200224083055228.png)]

测试方法A更好。

附:基于代码的测试方法只会在代码范围内,而不会超出范围,因为压根不知道规格说明是什么

两种测试方法的比较

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k1162PDK-1583717773053)(F:\WHU\大三(下)\我\软件测试技术\课件\chapter2\image-20200224083205270.png)]

黑盒测试是建立可信度,白盒测试则是为了寻找代码故障

如果程序做了不该做的事情,spec-based无法测试出来。

如果有些行为规定了,但是没有实现,黑盒测试没法测出来

要将两种测试方法结合起来

软件测试基础

测试只能找到失效的存在,如果测试通过,不能说明没有失效

Testing & Debugging

  • 测试:通过观察软件的执行以评估软件
  • Test Failure 测试失效: 执行测试用例后导致软件 失效
  • 调试:在软件失效的情况下,寻找软件故障的过程

故障与失效模型(RIPR)

Four conditions necessary for a failure to be observed

  • Reachability 可达 测试用例必须要到达故障相应的代码(测试用例跑不到故障代码)
  • Infection 影响 故障执行以后必须导致一个不正确的状态
  • Propagation 传播 导致的不正确的状态必须要传到output这里来
  • Reveal 揭示 必须要被观察到(比如观察的值是a, b, c,但是出错的值是d,则此时无法观察到)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L0Csbn21-1583717773054)(F:\WHU\大三(下)\我\软件测试技术\课件\chapter2\image-20200309090152534.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-no2HiLE5-1583717773054)(F:\WHU\大三(下)\我\软件测试技术\课件\chapter2\image-20200309091126939.png)]

经典:执行故障:代码运行到错误的地方

​ 产生错误状态:与原来运行的状态不一样(中间变量值不同等等)

Traditional Testing Levels:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Aut9YqcD-1583717773055)(F:\WHU\大三(下)\我\软件测试技术\课件\chapter2\image-20200224092059246.png)]

  • unit testing 每个方法测试清楚
  • Module testing 将每个模块(C的文件 java的类)测试清楚
  • Integration testing 集成测试 每个单元之间的交互、通信、调用的测试清楚
  • System testing 系统测试
  • Acceptance testing 验收测试

Object-Oriented Testing Levels:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A0Dtqf35-1583717773055)(F:\WHU\大三(下)\我\软件测试技术\课件\chapter2\image-20200224092648868.png)]

Coverage Criteria 覆盖准则

即便是一个很小很小的程序,它也具有太多种输入方式才能够完全测试到

比如对于一个算均值的函数,有三个输入值A,B,C,对于A,B,C有很多很多的值,几乎无法穷尽

覆盖准则的作用

  1. 使用最少的输入发现最多的问题
  2. 给了测试者一种结构化可实现的方式去
    1. 完全搜索输入域
    2. 判断在测试中没有更多的情况

覆盖准则的优点

测试需求和准则

  • 测试需求:测试用例必须满足或覆盖的软件工件的指定元素
  • 覆盖准则:一条或一组生成测试需求的原则

覆盖准则就是指:测试需要以什么样的原则去覆盖(覆盖每个语句?每个路径?每个需求?)

而测试需求就是指:在这个原则下,需要覆盖的那些对象

  1. 完全搜索输入域
  2. 判断在测试中没有更多的情况

覆盖准则的优点

测试需求和准则

  • 测试需求:测试用例必须满足或覆盖的软件工件的指定元素
  • 覆盖准则:一条或一组生成测试需求的原则

覆盖准则就是指:测试需要以什么样的原则去覆盖(覆盖每个语句?每个路径?每个需求?)

而测试需求就是指:在这个原则下,需要覆盖的那些对象


http://www.ppmy.cn/news/188815.html

相关文章

【STL】stack、queue基本使用和模拟实现

目录 前言 stack 接口介绍 模拟实现 queue 接口介绍 模拟实现 没有迭代器 deque介绍 前言 stack 和 queue 本质上是一种容器配接器,就像我们平时充电时使用的电源适配器,能够将电压转换成设备能够接受的程度。 其通过封装特定容器作为其底层…

基于springboot框架的电脑商城项目(五)

🎁🎁静态资源及sql文件分享 链接:https://pan.baidu.com/s/1X-yjmQcPD3PqS21x0HplNA?pwd23gr 提取码:23gr 收货地址列表展示功能及设置默认收货地址功能的实现 收货地址列表展示(一)收货地址列表展示&…

机器人布里茨哪个皮肤好看_LOL全英雄皮肤盘点推荐D32:蒸汽机器人布里茨 苹果机器人...

LOL全英雄皮肤盘点推荐今天带来蒸汽机器人布里茨的苹果机器人。经常在节日半价的皮肤,q技能诡异的弹道让人非常难躲,模型很精致,而其他特效皮肤,轮椅使用率最高,不过特效上不如苹果。此外电玩的脑子感觉勾到人有一种让…

MacOS Big Sur 11.2.3 (20D91) with Clover 5131 and OC 0.6.7 and PE 三EFI分区原版DMG黑苹果镜像

MacOS Big Sur 11.2.3 (20D91) 原版 DMG 黑苹果镜像,基于 OpenCore-0.6.7 and Clover 5131制作。 2021 年 3 月 8 日苹果推送了macOS Big Sur 11.2.3,作为生产力工具,系统更新如此频繁,着实让然头大。这几次补充更新都是问题修复&…

D3 pie

https://github.com/d3/d3/blob/master/API.md#pies <script>svg d3.select(body).append(svg).attr("width",300).attr(height,300)data[["女生",43],["男生",57]]//设置pie布局转换器var pie d3.layout.pie().value((d)>d[1])//将数…

2D 23.2.23

2023.2.21 2D 平移属性&#xff1a;transform:translate(x,y)&#xff1b; 变换属性&#xff1a; transform:translate(x,y)&#xff1b;沿着x轴和y轴移动 transform:translateX(x)&#xff1b;沿着x轴移动 transform:translateY()&#xff1b;沿着y轴移动 取值&#xf…

dagre-d3 基于d3.js v4版本以上

dagre-d3 github 上没有文档介绍 看dagre.js的吧 基于d3.js v4以上 dagre.js github https://github.com/dagrejs/dagre/wiki dagre-d3 github https://github.com/dagrejs/dagre-d3/wiki 基于d3 v3 和 v4 的变化 https://github.com/dagrejs/dagre-d3/commit/ebbb84f03b…

macOS 12 Monterey Beta 3版

Mac 操作系统的下一版本将被称为 macOS Monterey。这里为您带来macOS Monterey测试版尝鲜下载&#xff01; 升级可以参考下方教程&#xff01; macOS 12 Monterey免费下载及升级安装教程 macOS Big Sur 12 安装教程 下载完成后打开&#xff0c;双击.pkg安装包运行即可检测到最…