单元测试、集成测试、系统测试基础知识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单元测试

1、单元的基本属性:

1)明确的功能

2)可定义的规格

3)与其他单元接口的清晰划分

2、单元测试的目的:

在于发现各模块内部可能存在的各种错误,主要是基于白盒测试。

a)验证代码是与设计相符合的;

b)发现设计和需求中存在的错误;

c)发现在编码过程中引入的错误。(和设计不相符或和设计相符,但是由于

编码疏漏引起)

3、单元测试关注的重点:

出错处理、单元接口、局部数据结构、独立路径、边界条件

4、单元测试的主要关注点:

1)参数的属性、顺序、个数是否与LLD一致

2)不能修改只做输入用的形参,否则可能导致数据的错误修改

3)约束条件是否通过形参来传送

4、驱动和桩的功能:

1)驱动单元:被测函数的主函数,能接受输入数据,输出实际测试结果

2)桩单元:用来代替所测单元调用的子单元

5、单元测试策略:

孤立的测试策略、自顶向下、自底向上的单元测试策略

1) 孤立的测试策略:

·方法:不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和驱动

模块。每个模块进行独立的单元测试。

·优点:该方法是最简单,最容易操作的。可以达到高的结构覆盖率。该方法是纯粹的单元测试。

·缺点:桩函数和驱动函数工作量很大,效率低。

2) 自顶向下的单元测试策略:

·方法:先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。其次对

第二层进行测试,使用上面已测试的单元做驱动模块。如此类推直到测试完所有

模块。

·优点:可以节省驱动函数的开发工作量,测试效率较高。

·缺点:随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且开发和维护的成本将增加。

3) 自底向上的单元测试策略:

·方法:先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模

块的模块做驱动模块。然后再对上面一层做单元测试,用下面已被

测试过的模块做桩模块。以此类推,直到测试完所有模块。

·优点:可以节省桩函数的开发工作量,测试效率较高。

·缺点:不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产

生很大的影响。

5、单元测试的四个阶段:·测试计划:完成单元测试计划;

·测试设计:完成单元测试方案;

·测试实现:完成单元测试用例、单元测试规程、单元测

试脚本及数据文件;

·测试执行:执行单元测试用例,修改发现的问题并进行

回归测试,提交单元测试报告。

集成测试

1.集成测试的目的:确保各组件组合在一起后能够按照既定意图写作运行,并确保增

量的行为正确(属于灰盒测试)

1)验证接口是否与设计相符

2)发现设计和需求中存在的错误

2.集成测试关注的重点:单元间的接口、集成后的功能

3.集成测试的层次:模块内集成、子系统内集成、子系统间集成

4.集成测试策略:

1)大爆炸集成

2)自顶向下集成

3)自底向上集成

4)三明治(混合式)集成

5)基干集成

6)分层集成

7)基于功能的集成

8)基于消息的集成

9)基于进度的集成

10)基于风险的集成

5.各种集成测试策略的优缺点:

优点缺点适用范围

大爆炸集成 1.只要极少数的驱动和桩

2.可并行工作,人力、物力

资源利用率较高1.一次运行成功的可能性不

2.定位和修改错误比较困难

3.会有很多接口错误进入到

系统测试

1.维护型项目(增强型)

2.每个函数都经过了充

分单元测试的小规模系

统(特别是接口函数)

自顶向下 1.较早验证了主要的控制

点和判断点

2.选用按深度方向组装的

方式,可首先实现和验证一

个完整的软件功能

3.功能可行性较早得到证

实(带来信心)

4.最多只需一个驱动,减少

驱动开发费用1.桩的开发和维护成本大

2.底层组件行为的验证被推

迟了

3.底层组件的测试不充分

1.产品控制结构比较清

晰和稳定

2.产品高层接口变化较

3.产品底层接口未定义

或经常可能被修改

4.产品控制组件具有较

大的技术风险,需要尽早

被验证

5.支持故障隔离 5.希望尽早看到产品的

系统功能行为

自底向上 1.允许对底层组件行为的

早期验证

2.工作初期可以并行进行

集成

3.减少了桩的工作量

4.支持故障隔离1.驱动的开发和维护成本高

2.对高层的验证被推迟到了

最后,设计上的错误不能被及

时发现

1.底层接口比较稳定、变

动较少的产品

2.高层接口变化较频繁

的产品

3.底层组件较早被完成

的产品

三明治集成集合了自顶向下和自底向

上策略的优点中间层在被集成前测试不充

大部分软件开发项目

基干集成具有三明治集成的优点 1.必须对系统的结构和相互

依存性进行仔细分析

2.必须开发驱动和桩

3.有些接口可能测试不充分

大型复杂项目

基于功能集成/基于消息集成1.可尽快看到关键功能的

实现,并验证正确性

2.进度上要短

3.可减少驱动的开发

1.对有些接口测试不充分,会

丢失许多接口错误

2.可能会有较大的冗余测试

基于进度集成1.具有比较高的并行度

2.能有效缩短项目开发的

进度

1.许多接口要到后期才能验

证,无法发现有效的接口问题

2.桩和驱动开发工作量大

3.由于进度,组件很不稳定且

会不断变动,导致测试的重复

和浪费

进度优先级高于质量的

项目

基于风险集成最具有风险的组件最早进

行验证,有助于系统的快速

稳定

需要对各组件的风险有一个

清晰的分析

相关文档
最新文档