目录

1、什么是单元测试?

2、什么是集成测试?

3、简述单元测试与集成测试的区别。

4、什么是静态测试?

5、什么是动态测试?简述动态测试的步骤。

6、简述驱动模块和桩模块在实际中的应用以及设计原则。

7、单元测试模块检查的内容有哪些?

8、常用的集成测试方案有哪些?各有什么优缺点?


1、什么是单元测试?

单元测试(Unit Testing),是指对软件中的最小可测试单元或基本组成单元进行检查和验证。该测试依据为软件详细设计。目的是检查每个软件单元能否正确地实现设计说明中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种差错。

2、什么是集成测试?

①集成测试(Integrated Testing),也叫组装测试或联合测试。②是在单元测试的基础上,将所有已通过单元测试的模块按照概要设计的要求组装为子系统或系统,并进行测试的过程。③目的是确保各单元模块组合在一起后能够按既定意图协作运行,并确保增量的行为正确。

3、简述单元测试与集成测试的区别。

从对象上看,单元测试为软件的基本单元(如函数);集成测试为(多个)模块、(多个)子系统。依据不同,单元测试为软件详细设计;集成测试为概要设计。

空间不同,单元测试为函数或类的内部实现逻辑;集成测试为接口层面的。

技术不同,单元测试为以白盒测试为主、黑盒测试为辅;而集成测试为以黑盒测试为主,白盒测试为辅。

时序不同,单元测试优先,集成测试为后。主体不同,单元测试为程序作者;集成测试为开发人员或专业测试人员。

从测试内容和测试方法两方面看,单元测试和集成测试之间有什么不同?(相关习题)

(1)测试内容不同:

1)单元测试集中于单个模块的功能和结构检验,其测试内容主要包括模块接口、局部数据结构、重要的执行路径、错误处理和边界测试;

2)集成测试集中于模块组合的功能和软件结构检验,其测试内容主要包括模块组装中可能出现的问题,即数据穿过接口可能丢失、一个模块可能破坏另一个模块的内容、子功能组装可能不等于主功能、全程数据结构问题、误差累积问题;

(2)测试的方法不同:

1)单元测试较多地使用白盒测试法,为被测模块设计驱动模块和桩模块;

2)集成测试使用渐增式测试和非渐增式测试,渐增式测试又有分为自顶向下结合法和自底向上结合法;

4、什么是静态测试?

①静态测试先于动态测试;主要是通过走查、审查等会议方式,依据模块的详细设计,将代码与缺陷检查表进行对照,查看代码是否符合标准和规范。

静态测试内容:检查算法的逻辑正确性。检查模块接口的正确性。检查调用其他模块接口的正确性。检查表达式、语句的正确性。检查常量或全局变量使用的正确性。检查输入参数是否有合法性检查。检查代码执行效率是否可以优化。检查编程风格的规范性。

5、什么是动态测试?简述动态测试的步骤。

动态测试方法是指通过运行被測程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。

动态测试的基本步骤为:

(1)选取程序输人定义域的有效值,或选取定义域外的无效值。

(2)决定已选输入值的预期结构。

(3)用选取的输入值执行程序。

(4)比较执行结构和预期结果。

6、简述驱动模块和桩模块在实际中的应用以及设计原则。

在单元测试中进行的测试工作主要从五个方面对被测模块进行检查。

(1)模块接口测试:对通过被测模块的数据流进行测试。为此,对模块接口,包括参数表、调用子模块的参数、全程数据、文件输入/输出操作都必须检查。

(2)局部数据结构测试:设计测试用例检查数据类型说明、初始化、缺省值等方面的问题,还要査清全程数据对模块的影响。

(3)路径测试:选择适当的测试用例,对模块中重要的执行路径进行测试。对基本执行路径和循环进行测试可以发现大量路径错误。

(4)错误处理测试:检査模块的错误处理功能是否包含有错误或缺陷。例如,是否拒绝不合理的输入;出错的描述是否难以理解、是否对错误定位有误、是否出错原因报告有误、是否对错误条件的处理不正确;在对错误处理之前错误条件是否已经引起系统的干预等。

(5)边界测试:要特别注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。此外,如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。这类信息对进行性能评价是十分有用的。

设计原则:

  • 当需要测试被测代码的功能时,不能构造桩模块;
  • 使用桩模块,不能影响或约束被测代码的编译条件,即被测代码的编译和执行与桩模块的使用无关;
  • 驱动模块对测试数据的使用要可重用,尽量避免对用例执行顺序的依赖。

7、单元测试模块检查的内容有哪些?

模块接口测试

局部数据结构测试

重要执行路径测试

错误处理测试

边界条件测试

8、常用的集成测试方案有哪些?各有什么优缺点?

常用的集成测试方案有:自顶向下的集成测试、自底向上的集成测试、三明治集成测试。

自顶向下的集成测试的优点:

1、优先从根节点开始测试,有助于早期实现并验证系统主要功能,给开发团队和用户带来成功的信心,也便于早期验证主要的控制和判断,避免主控程序的缺陷,确保开发进度

2、单个测试用例包含多个模块,可从整体上降低测试用例规模

3、采用递增方式展开测试,每个新的测试用例一般仅加入一个新的模块,便于缺陷定位

缺点:

1、桩模块的开发和维护工作量较大

2、难以早期发现底层模块中复杂算法的缺陷,且随着测试的进行,系统越来越复杂,底层模块的测试很难保证充分性

3、不利于测试的并行,难以充分展开人力

自底向上的集成测试的优点:

1、优先从叶子节点开始测试,有助于早期发现底层模块中复杂算法的缺陷,且驱动模块的开发有利于规范和约束系统上层模块的设计,在一定程度上增加系统可测试性

2、单个测试用例包含多个模块,可从整体上降低测试用例规模

3、多个集成测试可并行展开,确保测试工作进度

缺点:

1、驱动模块的开发和维护工作量较大

2、难以早期发现上层模块中有关逻辑和控制方面的缺陷

3、直至加入最后一个模块才能看到整个系统框架,难以早期发现时序问题和资源竞争问题

三明治集成测试的优点:结合了自顶向下和自底向上的集成的优势

缺点:1、中间的目标层可能得不到充分的测试

2、需要同时开发桩和驱动模块,这部分工作量可能是相当惊人的

3、需在子树上进行大爆炸集成,一旦发现缺陷,涉及的接口数量较多,增加了缺陷定位难度

软件测试技术课后习题:第6章单元测试与集成测试-广东高等教育出版社,主编杨胜利相关推荐

  1. 软件测试技术课后习题:第2章软件测试基本概念-广东高等教育出版社,主编杨胜利

    目录 1.为什么说软件测试是软件开发中不可缺少的重要一环,但不是软件质量保证的安全网? 2.软件测试的目的是什么?为什么把软件测试的目的定义为只是发现错误? 3.软件测试应当遵循什么原则?为什么要遵循 ...

  2. 软件测试技术课后习题:第7章系统测试-广东高等教育出版社,主编杨胜利

    目录 1.什么是系统测试?系统测试和集成测试有什么区别? 2.功能测试的主要工作内容有哪些?如何选择测试用例设计方法? 3.什么是回归测试?回归测试有什么特征? 4.测试用例的维护主要包括哪些内容? ...

  3. 软件测试技术课后习题:第8章测试过程管理-广东高等教育出版社,主编杨胜利

    目录 1.针对V模型.W模型.H模型和X模型,进行对比分析,然后讨论各自的特点. 2.闸述测试用例在测试过程中所起的作用.标准的测试用例有哪几个组成部分? 3.如何有效地描述软件缺陷?软件缺陷报告包括 ...

  4. 软件测试技术课后习题:第3章黑盒测试-广东高等教育出版社,主编杨胜利

    目录 1.采用边界值分析法设计三角形类型的测试用例. 2.某城市电话号码由三部分组成,分别是地区码:空白或三位数字;前缀:非"0"非"1"开头的三位数字;后缀: ...

  5. 软件测试技术课后习题:第5章测试技术案例-广东高等教育出版社,主编杨胜利

    1.三角形问题:输入三个整数a.b.c分别作为三边的边长构成三角形,通过程序判断所构成的三角形的类型.用黑盒测试方法和白盒测试方法为该程序进行测试用例设计(三角形问题的复杂之处在于输入与输出之间的关系 ...

  6. 单片机微型计算机原理及接口技术陈,单片机微型计算机原理及接口技术课后习题答案第4章(5页)-原创力文档...

    单片机微型计算机原理及接口技术课后习题答案第4章 4-1 分别指出下列指令中的源操作数和目的操作数的寻址方式 源操作数寻址方式 目的操作数寻址方式 (1)MOV P1,20H 直接寻址 直接寻址 (2 ...

  7. 软件测试黑马程序员课后答案_软件测试技术课后答案

    软件测试技术课后答案 [篇一:软件测试习题答案] 测试的目的是 ( ). a) 试验性运行软件 b) 发现软件错误 c) 证明软件正确 d) 找出软件中全 部错误 2. 软件测试中白盒法是通过分析程序 ...

  8. 清华计算机接口原理,微机原理与接口技术课后习题答案清华大学

    微机原理与接口技术课后习题答案清华大学 微机原理与接口技术课后部分习题参考答案 第一章 2. 第 3项任务,根据状态标志位的状态决定转移方向. 3. 程序存储是将要执行的程序的全部指令存储到存储器中, ...

  9. java中北大学ppt总结+课后习题第四章(小宇特详解)

    java中北大学ppt总结+课后习题第四章(小宇特详解) 继承 子类与父类 继承是根据现有类创建新的类的机制,由继承而得到的新类称为子类(subclass)或派生类(derived class),被继 ...

最新文章

  1. c++Primer再学习-练习Todo
  2. 《转》四本与携程相关的书
  3. python基本使用-Python time库基本使用方法分析
  4. linux星期六字符,linux shell系列10 判断某个月中的星期六和星期天
  5. 《Java编程思想》《Think in Java》笔记
  6. centos7中安装JDK8-281版本
  7. 解决 LLVM 错误 cannot specify -o when generating multiple output files
  8. java.lang.OutOfMemoryError: GC overhead limit exceeded
  9. POJ_1088 滑雪(记忆型DP+DFS)
  10. anaconda新建python2环境安装不了jupyterlab_python/conda/jupyter-lab虚拟环境管理
  11. 模拟退火算法- 最短路径问题
  12. spring AOP(二) 相关类或接口
  13. videojs-dynamic-watermark: video.js 视频添加文字水印
  14. 淘宝直播数据丨食品行业研究报告2021年第一季度
  15. 哪家的云游戏服务器好?如何选择云游戏服务器?
  16. 网站logo服务器更换显示以前,网站更换logo
  17. 【MATLAB】— xlsread和xlswrite函数
  18. Fuzzing及Sulley简介
  19. 测鬼记(上)——回岗(十)
  20. TemporalType

热门文章

  1. linux 中的case结构,linux命令:case选择结构语句
  2. Spring-Springmvc-Mybatis框架整合
  3. [附源码]java+ssm计算机毕业设计红色旅游信息项目管理58lsu(源码+程序+数据库+部署)
  4. revit橄榄山插件出图有管道“翻弯标记”吗?
  5. 微信小程序的动画效果@keyframes
  6. 响铃:金融科技开始“强者恒强”,百度系的度小满能成为头部玩家吗?
  7. 【校招Verilog进阶挑战】 时序逻辑篇:VL15 自动贩售机2
  8. IBM人工智能驱动的隐形恶意软件工具DeepLo​​cker
  9. Springboot整合Mybatis报错大集合(保姆式排错)
  10. Linux ftrace 1.5、syscall event