热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

单元测试,集成测试,系统测试,确认测试的区别

从系统上来说,软件测试的方法主要包括单元测试,集成测试,系统测试,确认测试。(重点说单元测试和集成测试)单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明

从系统上来说,软件测试的方法主要包括单元测试,集成测试,系统测试,确认测试。(重点说单元测试和集成测试)

单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。单元测试的目的: 在于发现各模块内部可能存在的各种错误,主要是基于白盒测试。 a) 验证代码是与设计相符合的; b) 发现设计和需求中存在的错误; c) 发现在编码过程中引入的错误。

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

1) 孤立的测试策略: 
· 方法:不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和驱动模块。每个模块进行独立的单元测试。 
  · 优点:该方法是最简单,最容易操作的。可以达到高的结构覆盖率。该方法是纯粹的单元测试。 
   · 缺点:桩函数和驱动函数工作量很大,效率低。

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

· 方法:先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。其次对第二层进行测试,使用上面已测试的单元做驱动模块。如此类推直到测试完所有模块。 
· 优点:可以节省驱动函数的开发工作量,测试效率较高。 
   · 缺点:随着被测单元一个一个被加入,测试过程将变得越来越复杂,并且开发和维护的成本将增加。

3) 自底向上的单元测试策略: 
· 方法:先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模 块的模块做驱动模块。然后再对上面一层做单元测试,用下面已被 测试过的模块做桩模块。以此类推,直到测试完所有模块。 
· 优点:可以节省桩函数的开发工作量,测试效率较高。 缺点:不是纯粹的单元测试,底层函数的测试质量对上层函数的测试将产 生很大的影响。

单元测试是由程序员自己来完成,最终受益的也是程序员自己。可以这么说,程序员有责任编写功能代码,同时也就有责任为自己的代码编写单元测试。执行单元测试,就是为了证明这段代码的行为和我们期望的一致。


集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。集成测试主要目的是针对详细设计中可能存在的问题,尤其是检查各单元与其它程序部分之间的接口上可能存在的错误。
集成测试策略: 
1) 大爆炸集成 2) 自顶向下集成 3) 自底向上集成 4) 三明治(混合式)集成 5) 基干集成 6) 分层集成 7) 基于功能的集成 8) 基于消息的集成 9) 基于进度的集成 10) 基于风险的集成


系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。系统测试主要针对概要设计,检查了系统作为一个整体是否有效地得到运行,例如在产品设置中是否达到了预期的高性能。


验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能如同用户所合理期待的那样。


 



推荐阅读
author-avatar
xxyy
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有