(软件工程复习核心重点)第六章实现和测试-第三节:单元测试
文章目录
- 一:概述
- 二:测试重点(了解)
- (1)模块结构
- (2)局部数据结构
- (3)重要的执行通路
- (4)出错处理通路(了解)
- (5)边界条件
- 三:测试方法
- (1)代码审查
- A:定义(了解)
- B:流程
- C:优点(了解)
- D:与计算机测试的关系
- (2)计算机测试(了解)
一:概述
单元测试集中检测软件设计的最小单元一模块,它和编码属于软件过程的同一个阶段。在编写出源程序代码并通过了编译程序的语法检查之后,就可以用详细设计描述作指南,对重要的执行通路进行测试,以便发现模块内部的错误。单元测试主要使用白盒测试技术,而且对多个模块的测试可以并行地进行,包括人工测试和计算机测试两种
- 测试依据:详细设计文档
- 测试技术:白盒测试技术
- 测试方法:人工测试和计算机测试
二:测试重点(了解)
(1)模块结构
- 模块接口的数据流是否能正常进出
- 参数的数目、次序、属性或单位系统与变元是否一致
- 是否修改了只作输入用的变元
- 全局变量的定义和用法在各个模块中是否一致
(2)局部数据结构
对于模块来说,局部数据结构是常见的错误来源。应该仔细设计测试方案,以便发现局部数据说明、初始化、默认值等方面的错误。
(3)重要的执行通路
- 选择最有代表性、最可能发现错误的执行通路进行测试
- 设计测试方案来发现由于错误计算、不正确的比较或不适当的控制流而造成的错误
(4)出错处理通路(了解)
当评价出错处理通路时,应着重测试可能发生的错误为:
- 对错误的描述是难以理解的
- 记下的错误与实际遇到的错误不同
- 在对错误进行处理之前,错误条件已经引起系统干预
- 对错误的处理不正确
- 描述错误的信息不足以帮助确定造成错误的位置
(5)边界条件
边界测试是单元测试中最重要的任务。软件常常在它的边界上失效,例如,处理n元数组的第n个元素时,或做到1次循环中的第1次重复时,往往会发生错误。使用刚好小于、刚好等于和刚好大于最大值或最小值的数据结构、控制量和数据值的测试方案,非常可能发现软件中的错误。
三:测试方法
(1)代码审查
A:定义(了解)
人工测试源程序可以由程序的编写者本人非正式地进行,也可以由审查小组正式进行。后者称为代码审查是一种非常有效的程序验证技术。
B:流程
- 组建审查小组
- 审查会议
C:优点(了解)
- 一次审查会上可以发现许多错误
- 不需要每次发现一个错误就进行验证,减少了系统验证的总工作量
D:与计算机测试的关系
对于查找某些类型的错误来说,人工测试比计算机测试更有效;对于其他类型的错误来说则刚好相反。因此,人工测试和计算机测试是互相补充,相辅相成的,缺少其一都会使查找错误的效率降低。
(2)计算机测试(了解)
模块并不是一个独立的程序,因此必须要为每个单元测试开发驱动软件和(或)存根软件,具体如下:
- 驱动程序:接收测试数据,把这些数据传送给被测试的模块,并且印出有关的结果
- 存根程序:代替被测试的模块所调用的模块,它使用被它代替的模块的接口,做最少量的数据操作,印出对入口的检验或操作结果,并且把控制归还给调用它的模块
(软件工程复习核心重点)第六章实现和测试-第三节:单元测试相关推荐
- (软件工程复习核心重点)第一章软件工程概论习题
这一章题目主要以简答和名词解释为主 文章目录 一:选择题 二:填空题 三:名词解释 (1)必考 (2)了解 四:简答题 (1)必考 1.关于软件危机 2.关于软件工程 3. 关于软件生命周期 4.关于 ...
- (软件工程复习核心重点)第一章软件工程概论-第四节:软件过程及相关模型
文章目录 一:软件过程概念 (1)定义 (2)构成 二:主要模型 (1)瀑布模型 A:定义 B:特点 C:优缺点 D::适用范围 E:实际的瀑布模型 (2)快速原型模型 A:定义 B:原理 C:优缺点 ...
- (软件工程复习核心重点)第九章软件项目管理
文章目录 一:估算软件规模 (1)代码行技术 (2)功能点技术 二:工作量估算 三:进度计划 (1)甘特图(Cantt图) (2)工程网络 四:人员组织 五:质量保证 六:软件配置管理 七:能力成熟度 ...
- (软件工程复习核心重点)第一章软件工程概论-第二节:软件工程
文章目录 一:软件工程 (1)软件工程的定义 (2)软件工程的本质特征 (3)软件工程基本原理 二:软件工程方法学 (1)概念 (2)分类 一:软件工程 (1)软件工程的定义 软件工程:采用工程的概念 ...
- (软件工程复习核心重点)第一章软件工程概论-第一节:软件和软件危机
文章目录 一:软件的概念.特点与发展 (1)软件发展的三个阶段 (2)软件的概念 (3)软件的特点 二:软件危机 (1)软件危机的概念 (2)软件危机的表现 (3)软件危机产生的原因 A:主观原因 B ...
- (软件工程复习核心重点)第九章面向对象分析-第二节:面向对象分析之建立对象模型
文章目录 一: 基本概念 (1)对象模型 (2)先建立对象模型的原因 (3)信息来源 (4)典型的建模步骤 二:确定类与对象 (1)找出候选的类与对象 A:客观事物分类 B:非正式分析 C:提取隐含的 ...
- (软件工程复习核心重点)第二章可行性研究习题
文章目录 一:选择题 二:填空题 三:名词解释 (1)必考 四:简答题 (1)必考 1. 关于可行性研究 2. 关于数据流图 3. 关于数据字典 (2)了解 五:应用题/画图题 一:选择题 二:填空题 ...
- (软件工程复习核心重点)第九章面向对象分析-第三节:面向对象分析之建立动态模型和功能模型
文章目录 一:建立动态模型 (1)概念 A:适用性 B:步骤 (2)编写脚本 A:定义 B:目的 C:内容 D:方法 (3)设想用户界面 A:重要性 B:目的 C:方法 (4)画事件跟踪图 A:必要性 ...
- (软件工程复习核心重点)第二章可行性研究-第三节:数据流图
文章目录 一:数据流图的定义(DFD) 二:数据流图的特点 三:数据流图的符号 (1)符号 (2)注意(了解) 四:数据流图示例 (1)示例1 A:首先从题目中提取四种成分 B:画数据流图 (2)示例 ...
- (软件工程复习核心重点)第二章可行性研究-第四节:数据字典
文章目录 一:相关概念 (1)定义 (2)作用 (3)意义(了解) 二:内容 三:定义数据的方法 (1)数据元素组成数据的方式 (2)符号表示 四:数据字典示例 五:用途 一:相关概念 (1)定义 数 ...
最新文章
- 汇总python三种数据结构list,set,dict的常见操作
- CSS 7:网页布局(传统布局,flex布局,布局套路)
- python用户登录_python用户登录系统
- java三个取最大值、菜单新增修改、猜数字大小
- 财务造假10年!贾跃亭被罚2.41亿
- 希尔和归并排序的异同
- [UE4]增加观察者
- HDU-4310 Hero 贪心Or动态规划
- Java调用Javascript、Python算法总结
- python最短路径例子_[python]dijkstra 算法的 加权的最短路径 案例
- Java开发手册(嵩山版)
- grub4dos 加载 MEMTEST+86
- Qt开发笔记:OpenSSL库介绍、windows上mingw32版本的OpenSSL编译模块化
- R语言线性混合效应模型实战案例
- vue2.0 axios封装
- (CVPR-2022)具有密集 3D 表示和基准的野外步态识别
- 集成preempt-rt patch后发生panic的调试过程
- Nginx代理规则总结
- 登录显示服务器端校验不通过,SMTP服务器需要安全连接或客户端未通过身份验证。服务器响应是:5.7.57 SMTP;...
- Jackson荧光染料丨艾美捷Jackson Alexa Fluor®荧光染料
热门文章
- qt自带静态代码检测工具_两款静态代码检测工具的对比
- 大数据之Spark教程
- OpenCV中的Sobel算子
- 《细胞》重磅成果!任兵课题组绘制迄今最大规模人类单细胞染色质可及性图谱...
- 重磅!这个生信神器助你文章秒出图——miRNA与基因互作数据库
- linux 内核 核心代码,8分钟掌握Linux内核分析的核心科技
- QT Core | 信号槽01 - GUI上按钮触发应用程序里某个类的函数
- c 读取mysql另一个窗体中显示出来_二级ACCESS数据库4窗体的笔试题考点分析
- php怎么引入外部css文件,js如何引入css外部文件
- Qt笔记-QProcess带管道符号运行及获取进程启动时间(Linux)