(软件工程复习核心重点)第六章实现和测试-第四节:集成测试
文章目录
- 一:概念
- (1)方法分类
- (2)非渐增测试的缺点(了解)
- (3)渐增测试的优点(了解)
- 二:渐增式测试策略
- (1)自顶向下集成
- A:定义
- B:步骤(了解)
- C:结合策略(了解)
- ①:深度优先
- ②:宽度优先
- D:优缺点
- (2)自底向上集成
- A:定义
- B:步骤(了解)
- C:案例
- D:优缺点
- 三:回归测试
- (1)定义
- (2)方法(了解)
- (3)回归测试集(了解)
一:概念
(1)方法分类
非渐增测试: 先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序
渐增测试: 把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以后再把下一个应该测试的模块结合进来测试,每次增加一个模块。渐增式测试同时完成单元测试和集成测试
(2)非渐增测试的缺点(了解)
- 把所有模块放在一起,测试者面对的情况十分复杂
- 在庞大的程序中诊断定位一个错误非常困难
- 一旦改正一个错误之后,又会遇到新的错误,没有穷尽
(3)渐增测试的优点(了解)
- 把程序划分成小段来构造和测试,比较容易定位和改正错误
- 对接口可以进行更彻底的测试
- 可以使用系统化的测试方法
二:渐增式测试策略
(1)自顶向下集成
A:定义
从主控制模块开始,沿着程序的控制层次向下移动,逐渐把各个模块结合起来。在把附属于主控制模块的模块组装到程序结构中时,使用深度优先的策略或宽度优先的策略
B:步骤(了解)
- 对主控制模块进行测试,测试时用存根程序代替所有直接附属于主控制模块的模块
- 根据选的结合策略(深度优先或宽度优先),每次用一个实际模块代换一个存根程序
- 在结合进一个模块的同时进行测试
- 为了保证加入模块没有引进新的错误,可能需要进行回归测试
C:结合策略(了解)
①:深度优先
深度优先的结合方法先组装在软件结构的一条主控制通路上的所有模块。步骤如下:
- 第一,选择一条主控制通路取决于应用的特点(如,选取左通路)
- 第二,结合模块M1M_{1}M1、M2M_{2}M2、M5M_{5}M5
- 第三,把M8M_{8}M8或M6M_{6}M6结合进来
- 第四,构造中央的和右侧的控制通路
②:宽度优先
宽度优先的结合方法是沿软件结构水平地移动,把处于同一个控制层次上的所有模块组装起来。步骤如下
- 第一,结合模块M2M_{2}M2、M3M_{3}M3、M4M_{4}M4
- 第二,结合下一个控制层次中的模块M5M_{5}M5、M6M_{6}M6、M7M_{7}M7
- 第三,继续进行下去,直到所有模块都被结合进来为止
D:优缺点
优点
- 不需要测试驱动程序
- 能够在测试阶段的早期实现并验证系统的主要功能
- 能在早期发现上层模块的接口错误
缺点
- 需要存根程序,可能遇到与此相联系的测试困难
- 低层关键模块中的错误发现较晚
- 在早期不能充分展开人力
(2)自底向上集成
A:定义
自底向上测试从软件结构最低层的模块开始组装和测试。因为是从底部向上结合模块,总能得到所需的下层模块处理功能,所以不需要存根程序
B:步骤(了解)
- 把低层模块组合成实现某个特定的软件子功能的族
- 写一个用于测试的控制程序,协调测试数据的输入和输出
- 对由模块组成的子功能族进行测试
- 去掉驱动程序,沿软件结构自下向上移动,把子功能族组合起来形成大的子功能族
C:案例
- 把模块组合成族1、族2和族3
- 使用驱动程序(图中虚线方框)对每个子功能族进行测试
- 族1和族2中的模块属于模块MaM_{a}Ma,去掉驱动程序D1D_{1}D1和D2D_{2}D2,把这两个族直接同MaM_{a}Ma连接起来。同样在和模块MbM_{b}Mb结合之前去掉族3的驱动程序D3D_{3}D3
- MaM_{a}Ma和MbM_{b}Mb这两个模块都与模块McM_{c}Mc结合起来
D:优缺点
优点
- 不需要存根程序,不会遇到与此相联系的测试困难
- 能较早发现低层关键模块中的错误
- 在早期能充分展开人力
缺点
- 需要测试驱动程序
- 不能够在测试阶段的早期实现并验证系统的主要功能
- 不能在早期发现上层模块的接口错误
三:回归测试
(1)定义
回归测试是指重新执行已经做过的测试的某个子集,以保证上述这些变化没有带来非预期的副作用。它可以用于保证由于调试或其他原因引起的变化,不会导致非预期的软件行为或额外错误的测试活动
(2)方法(了解)
- 通过重新执行全部测试用例的一个子集人工地进行
- 利用捕获回放工具,捕获测试用例和实际运行结果,然后回放,并比较运行结果
(3)回归测试集(了解)
回归测试集(已执行过的测试用例的子集)包括下述3类不同的测试用例:
- 检测软件全部功能的代表性测试用例
- 专门针对可能受修改影响的软件功能的附加测试
- 针对被修改过的软件成分的测试
(软件工程复习核心重点)第六章实现和测试-第四节:集成测试相关推荐
- (软件工程复习核心重点)第一章软件工程概论习题
这一章题目主要以简答和名词解释为主 文章目录 一:选择题 二:填空题 三:名词解释 (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)示例 ...
最新文章
- Java查询spark中生成的文件_java+spark-sql查询excel
- git 工作常用命令
- Java基础-流程控制
- dos与ddos攻击原理
- 强转类型,flash声音,父与子的交互
- android 新的布局,Android新布局方式ConstraintLayout快速入门教程
- Redis 3.0.2集群搭建以及相关问题汇总
- 常问 3: 谈谈MySQL共享锁与排他锁
- lstm模型java实现_如何在Keras中构建LSTM分类器模型
- QLabel绘制滚动文本
- Windows两台服务器之间实现文件共享
- 搭建mysql 主从复制The slave I/O thread stops because master and slave have equal MySQL server UUIDs
- 前端 vue + element + vux
- mybatis配置文件 .dtd头部约束 出错报红 【亲测实用,可供参考】
- 新版ideal2021配置Tomcat
- 作为硬件开发,你一定要知道开发板是个什么东西?陈老师带你了解
- 知识产权保护怎么申请以及怎样保护
- 计算机应用基础3阶段在线作业,《计算机应用基础》第四阶段在线作业(自测)
- PKUWC2019垫底记
- K8S系列:Deployment更新、锁定、解锁、回滚版本