电子科技大学软件工程期末复习笔记(六):软件测试

news2024/11/15 11:16:08

目录

前言

重点一览

软件测试

基本原则

目标

测试用例

软件缺陷

调试与测试

测试与质量保证

软件测试的评估准则

黑盒测试

定义

等价类划分

边界值分析

状态测试

白盒测试

定义

逻辑覆盖测试

控制流图覆盖测试

基本路径测试

灰盒测试

静态测试

含义

范围

目的

基本思想

三种评审类型


前言

本复习笔记基于王玉林老师的课堂PPT与复习大纲,供自己期末复习与学弟学妹参考用。


重点一览


软件测试

基本原则

  • 穷尽测试是不可能的:决定哪些更重要
  • 测试无法显示潜在的软件缺陷:不能保证没有错误
  • 测试活动应该尽早进行:越早发现修改成本越低
  • 软件缺陷具有群聚性:一个问题出错导致多个错误现象出现
  • 注意杀虫剂现象:用异样的测试用例是不可取的(可能是少数能通过的特例)
  • 应尽量由独立的测试团队进行测试:自己测试自己是不可取的(想不到特殊情况)

目标

  • 确认系统满足其预期的使用和用户的需要
  • 确认解决了所需解决的问题
  • 为测试的过程建立责任和可解释性
  • 便于及早发现软件和系统的异常
  • 及早提供软件和系统的性能评估
  • 为管理提供真实信息,以决定在当前状态下发布产品在商业上的风险
  • 鉴别出程序在功能等方面的异常聚集之处

测试用例

定义:是测试输入、执行条件,以及预期结果的集合

目的:为特定目的开发,如执行特定的程序路径或验证与指定的需求相符合

软件缺陷

满足下面条件之一即发生软件缺陷:

  • 未完成:软件未实现产品说明书要求的功能。
  • 有错误:软件出现了产品说明书指明不能出现的错误。
  • 画蛇添足:软件实现了产品说明书未提到的功能
  • 隐含需求未实现:软件未实现产品说明书虽未明确提及但应该实现的目标。
  • 不好用:软件难以理解、不易使用、运行缓慢

调试与测试

相同点:都包含处理软件缺陷和查看代码的过程

不同点:测试的目标时发现软件缺陷的存在;调试的目标是定位与修复缺陷

测试与质量保证

  • 软件测试人员的目标:尽早找出软件缺陷并确保缺陷得以修复
  • 软件质量保证人员的主要职责:创建和执行改进软件开发过程并防止软件缺陷发生的标准和方法 

软件测试的评估准则

覆盖率:测试集合T/测试需求集合TB

故障插入:测试前有意地插入一些故障到程序中,发现率=发现的插入错误数/总错误数

变异分值:程序进行多次变异,用同样的测试用例进行测试,评估这些测试用例探测程序变异间差异的能力,如错误的标识符或运算符等。


黑盒测试

定义

黑盒测试指忽略系统或组件的内部机制,仅关注于那些特定输入响应及相应执行条件的输出测试,也称功能性测试。

把测试对象看做一个黑盒子,测试人员完全不考虑程序内部逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明

分类

等价类划分

含义:等价类划分方法把所有可能的输入数据,即程序的输入域划分成若干部分,然后从每一部分中选取少许有代表性的数据作为测试用例

步骤:对输入域进行建模、对参数进行等价类划分、对参数进行恰当的组合。

边界值分析

边界:对输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。

边界选取:应当选取正好等于、刚刚大于、或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。

状态测试

必要性:黑盒测试阶段,程序内部的逻辑结构无从得知,因此只能通过状态测试间接验证。

含义:一种基于模型的测试,是指用状态图来描述时间序列/用例场景,由此产生测试用例

步骤:建立状态转换图、设计测试用例。


白盒测试

定义

白盒测试指考虑系统或组件内部机制的测试(如分支测试、路径测试、语句测试等),也称结构性测试

把测试对象看作一个透明的盒子,它允许测试人员利用程序的内部逻辑结构及有关信息设计或选择测试用例,对程序的所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致

逻辑覆盖测试

含义:以程序内部的逻辑结构为基础的设计测试用例的技术,属于白盒测试。

分类:

语句覆盖:每条可执行语句至少执行一次

条件覆盖:每个条件的可能取值至少执行一次

分支覆盖:每个判断的取真分支和取假分支都经历一次

条件组合覆盖:每个判断所有可能取值条件的组合都经历一次

控制流图覆盖测试

含义:把代码转换为控制流图,基于其进行测试,属于白盒测试。

注意:

  • 在选择或多分支结构中,分支的汇聚处应有一个汇聚结点
  • 边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域
  • 如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的复合条件表达式,则需要改为一系列只有单个条件的嵌套的判断

节点覆盖:等价于语句覆盖

边覆盖:包含节点覆盖且也可以实现分支覆盖

路径覆盖:覆盖程序中所有可能的路径(基本路径测试)

基本路径测试

  • 计算程序环路复杂性:
    • ①V(G)=e-n+2,e:图中边的数目;n:节点数目;
    • ②区域数目
  • 确定线性独立性的基本集合:
    • 从入口走到出口作为基线,回溯基线路径,当出度大于等于2时选择不同的边,重复直到路径数目等于V(G)
  • 为每条基本路径导出测试用例:
    • 确保基本路径集中的每一条路径的执行,用逻辑覆盖方法保证某条路径可被测试到,最后执行测试用例与预期结果比较

灰盒测试

黑盒和白盒测试混合方法。

 

介于白盒测试和黑盒测试之间的一种测试,多用于集成测试阶段,不仅关注输入输出的正确性,同时也关注程序内部的情况。


静态测试

含义

不实际运行程序,通过检查和阅读等手段发现错误、评估代码质量的软件测试技术。

范围

代码检查、静态结构分析、代码质量度量

目的

提高代码可靠性、尽早发现缺陷、审核定位易出错模块

基本思想

评审

三种评审类型

同事审查:非正式评审,初次审查

走查:开发组内部进行,开发者讲解、回答问题、记录

审查:会议形式,制定目标流程规则结果报告等

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

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

相关文章

产品分析|虎扑APP

不同于传统的体育新闻门户网站,虎扑以篮球社区起家,在经历了从体育论坛到体育新闻网站的发展后,又逐渐回归社区发展。 目前,虎扑汇聚了大量的男性用户,俨然成为了“互联网直男的自留地”。特立独行的发展方向使得虎扑不断发展壮大,同时也使得虎扑逐渐触碰到了行业天花板。…

大数据算法自检

1 大数据亚线性空间算法 1.1 流模型的计数问题 问题定义?用什么算法?算法步骤?(提示:三层递进) 切比雪夫不等式?怎么证明?期望,方差,空间复杂度? 极其有限的空间存储极…

【音视频开发】 ffmpeg解码API

1.版本迭代ffmpeg解码API经过了好几个版本的迭代,上一个版本的API是解码视频:avcodec_decode_video2解码音频:avcodec_decode_audio4我们现在能看到的很多解码例子用的都是这两个,不过现在ffmpeg更推荐用新一代的API向解码器输送数…

04 中间件-提高框架的可拓展性

到目前为止我们已经完成了 Web 框架的基础部分,使用 net/http 启动了一个 Web 服务,并且定义了自己的 Context,可以控制请求超时。 在前面的controller.go中有一个超时控制逻辑: func FooControllerHandler(c *framework.Context…

【Ap AutoSAR入门与实战开发04】:服务的需求定义以及如何在arxml中定义服务

总目录链接==>> AutoSAR入门和实战系列总目录 文章目录 1 服务的需求定义2 服务的arxml定义2.1 事件中的数据类型定义我们在「【Ap AutoSAR入门与实战开发03】-【Ap_s2s模块02】:到底什么是基于信号,什么是基于服务,两者的主要区别是什么?」的文章中讲到了讲到了服…

如何在ONLYOFFICE v7.3中使用 WRAPROWS、WRAPCOLS公式

在ONLYOFFICE7.3版本更新以来,每次给大家都分享几种函数公式的运用方式,今天在给大家分享两种,分别是;WRAPROWS、WRAPCOLS。 ONLYOFFICE ONLYOFFICE文档是一款免费开源在线办公软件,可以打开阅读并编辑文档、表格和幻…

1247. 交换字符使得字符串相同

1247. 交换字符使得字符串相同 难度中等162收藏分享切换为英文接收动态反馈 有两个长度相同的字符串 s1 和 s2,且它们其中 只含有 字符 "x" 和 "y",你需要通过「交换字符」的方式使这两个字符串相同。 每次「交换字符」的时候&am…

轻松入门H3C无线AC上线AP【入门篇】

我们知道华三的最新模拟器支持了无线AC的配置,今天就浅浅的出个无线AC的教程,你上也会的那种。今天我们模拟的是二层环境下,笔者准备了2个AP,以此展示AP上线到AC的教程,并且用手机测试WiFi连接正常,且客户端…

7、nodejs安装

前言:工具下载地址阿里云盘:nodejs:https://www.aliyundrive.com/s/hLAKBgjNUqr提取码: p9q9一、介绍Node.js发布于2009年5月,由Ryan Dahl开发,是一个基于Chrome V8引擎的JavaScript运行环境,使用了一个事件…

【VUE】二 vue指令

目录 一、插值表达式 二、v-bind指令(对标签中的属性进行操作) 三、v-model指令(input、select、textarea等。【双向绑定】) 四、v-for循环指令 五、v-on(事件指令) 六、v-if条件判断 七、v-show(条件显示或隐藏) 八、案例…

模型解释性:PFI、PDP、ICE等包的用法

本篇主要介绍几种其他较常用的模型解释性方法。 1. Permutation Feature Importance(PFI) 1.1 算法原理 置换特征重要性(Permutation Feature Importance)的概念很简单,其衡量特征重要性的方法如下:计算特征改变后模型预测误差的增加。如果打乱该特征的…

HCIP-5距离矢量路由协议RIP学习笔记

前言 路由信息协议RIP(Routing Information Protocol)的简称,它是一种基于距离矢量(Distance-Vector)算法的协议,使用跳数作为度量来衡量到达目的网络的距离。RIP主要应用于规模较小的网络中。Rip是第一个动…

如何创建“杀手级”SaaS 产品文档?

SaaS 产品的文档至关重要,尽管在 SaaS 初创公司的旋风中,它可能在您的列表中并不重要。它不仅仅是为客户支持节省成本。您可能已经在发布一些文档时做了一些尝试,但现在是时候将您的文档提升到一个新的水平了。由于 SaaS 公司采用订阅模式运营…

【Git】Git使用(保姆级讲解)

1、第一次安装使用 git下载地址:https://git-scm.com/download 1.1 配置用户名、邮箱 ​ 这是非常重要的,因为每次Git提交都会使用该用户信息。 设置 ​ 在 git bash 输入以下命令。 git config --global user.name "" git config --glo…

CV学习笔记-ResNet

ResNet 文章目录ResNet1. ResNet概述1.1 常见卷积神经网络1.2 ResNet提出背景2. ResNet网络结构2.1 Residual net2.2 残差神经单元2.3 Shortcut2.4 ResNet50网络结构3. 代码实现3.1 Identity Block3.2 Conv Block3.3 ResNet网络定义3.4 整体代码测试1. ResNet概述 1.1 常见卷积…

【三维几何学习】MeshCNN: A Network with an Edge

MeshCNN引言一、方法简述1.1 输入1.2 卷积1.3 池化二、实验分析三、改进以及应用引言 MeshCNN是第一个将网格简化引入到池化操作中的网络:合并顶点降低网格分辨率,类似图像中的平均池化。 主页1:https://ranahanocka.github.io/MeshCNN/ 比较详细的讲解…

Java 练习题:输出纯素数

文章目录纯素数简介任务要求思路解析源码奉上运行效果总结纯素数简介 所谓纯素数就是该数本身不仅是素数,并且该数的每一位都是素数。 例如:23,37是纯素数,但13,29不是。 任务要求 输出55555内所有的纯素数,按每行20个的格式化…

JVM 学习(2)—简单理解Java 四大引用(强、软、弱、虚)

一、Java 引用概述 Java 中出现四种引用是为了更加灵活地管理对象的生命周期,以便在不同场景下灵活地处理对象的回收问题。不同类型的引用在垃圾回收时的处理方式不同,可以用来实现不同的垃圾回收策略。Java 目前将其分成四类,类图如下&…

彻底搞懂inner join,left join,right join

1.inner join A inner join B where 条件, 对于A表中的每一行都会去B表的所有行去查找,去匹配,符合条件的就将这两行连接起来 下面用一个例子来帮助实际理解这句话: 创建下面两个表,customers表orders表 输入以下s…

银行软件测试面试题目总结,希望可以帮到你

目录 一、根据题目要求写出具体LINUX操作命令 二、JMETER题目 三、根据题目要求写出具体SQL语句 总结感谢每一个认真阅读我文章的人!!! 重点:配套学习资料和视频教学 一、根据题目要求写出具体LINUX操作命令 1、分别写出一种…