- 1、本文档共62页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件测试等级-单元集成 本部分课程目标 单元测试 集成测试 单元测试 单元测试时对软件基本组成单元进行的测试,这里的基本单元不一定是指一个具体的函数或一个类的方法。 单元具有一些基本属性,如:明确的功能、规格定义,与其他部分明确的接口定义等,可以清晰地与同一程序的其他部分单元划分开来。 单元测试的目的 验证代码是与设计相符合的; 跟踪需求和设计的实现; 发现设计和需求中存在的错误; 发现在编码过程中引入的错误。 对单元测试的错误认识 单元测试浪费了太多的时间; 单元测试仅仅是证明这些代码做了什么; 很棒的编程人员的工作不需要单元测试; 不管怎样,集成测试将会抓住所有的bug; 单元测试的成本效率不高。 单元测试环境 单元测试分析的角度 单元测试应坚持的原则 对全新的代码或修改过的代码进行单元测试; 对被测试单元需达到的一定的代码覆盖率要求; 当程序进行了修改,要进行回归测试。 集成测试 也叫做组装测试、联合测试、子系统测试和部件测试。 是在单元测试的基础上,将所有模块按照概要设计要求组装成为子系统或系统,进行集成测试。 集成测试关注的重点 在把各个模块连接起来时,穿越模块接口的数据是否会丢失。 各个子功能组合起来,能否达到预期要求的父功能。 一个模块的功能是否会对另一个模块的功能产生不利的影响。 全局数据结构是否有问题,会不会被异常修改。 单个模块的误差积累起来,是否会放大,从而达到不可以接受的程度。 集成测试策略 功能分解法 调用图法 MM路径法 集成测试 基于功能分解的集成测试: 自顶向下集成 自底向上集成 三明治集成 大爆炸集成 自顶向下集成 自顶向下集成从主程序(树根)开始。所有被主程序调用的下层单元都作为“桩”出现,桩就是模拟被调用单元的一次性代码。 自顶向下集成 以SATM系统为例,我们要执行自顶向下集成测试,第一步就应该是为被主程序调用的所有单元。(见主程序) 自顶向下集成 我们需要开发一下单元的桩:WatchCardSlot(检查ATM卡槽)、ContorlCardRoller(控制ATM卡传送器) 、ScreenDriver(屏幕驱动器)、 ValidateCard(检验ATM卡)、 ValidatePIN (检验PIN)、ManageTransaction (管理事务处理)和NewTransactionRequest(新事务处理请求)。 自顶向下集成 自顶向下集成 自顶向下集成 自底向上集成 自底向上集成是自顶向下顺序的“镜像”,不同的是,桩由模拟功能分解树上一层单元的驱动器模块替代。需要编写驱动器。 自底向上集成 自底向上集成 自底向上集成 三明治集成 三明治是自顶向下和自底向上集成的组合。 桩和驱动器的开发工作都比较小,不过代价是有大爆炸的后果。 三明治集成 大爆炸集成 这种方法最容易:这种集成将所有单元在一起编译并进行一次性测试。这种方法的缺点是,当发现缺陷时,没有多少线索能够用来帮助确定缺陷位置。 基于分解的测试优点 比较清晰 容易发现问题地点 基于分解的测试缺点 功能分解是基于人工和管理需要的。 桩和驱动器的开发工作量。 自顶向下集成,需要开发(节点-1个)桩。 自底向上集成,需要开发(节点-叶个)驱动。 基于调用图的集成 基于调用图的集成可以将集成测试向结构性测试方向发展。 由于调用图示一种有向图,我们可以使用调用图来进行成对集成和相邻集成。 成对集成 相邻集成 SATM调用图 SATM邻居 相邻集成 内部节点=节点-(源节点+汇节点) 邻居=内部节点+源节点 邻居=节点-汇节点 基于调用图的集成优点 偏离了纯结构基础,转向行为基础。 免除了桩/驱动器开发工作量 邻居序列可以用于定义构件 基于调用图的集成缺点 缺陷的隔离问题,尤其是对有大量邻居的情况。 如果在多邻居的多个节点中发现缺陷会出现什么情况? 缺陷修改后的回归测试量很大。 基于路径(消息)的集成测试 集成测试的修订目标: 不仅是测试单独开发并通过测试的单元之间的测试接口,而还是将注意力集中在这些单元的交互上。 接口是结构性的;而交互是行为性的。 测试策略 1 从系统的外部看,分析系统可能输入的消息集; 2 选择一条消息,分析其穿越的模块; 3 集成这些模块进行消息接口测试; 4 选取下一条消息,重复步骤2和3 ,直到所有模块都被集成到系统中。 消息选取方法 消息的重要性;尽早验证重要的消息路径; 消息路径的长度;为了能有效验证接口的完整性和正确性,尽可能选取路径较短的消息; 新的消息的选择是否能够使得新的模块被加入到系统中。 基于路径(消息)的集成测试 定义 程序中的源节点是程序执行开始或重复开始处的语句片断。 单元中的第一个可执行语句显然是源节点。 源节点还会出现在紧接转移控制到其他单元节点之后。 基于
文档评论(0)