
教育学软件测试培训讲义7单元测试和集成测试.ppt
103页软件测试软件测试培训讲义培训讲义深圳市软件行业协会培训中心深圳市软件行业协会培训中心软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)课程目的n了解软件工程的基本概念和过程n了解软件质量定义和软件质量保证过程n深入掌握软件测试原理、方法、过程n通过实战掌握测试策略、技术第二部分 软件测试的技术第七章 单元测试和集成测试单元测试和集成测试软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)目的与内容n理解什么是单元测试n了解单元测试的目标和任务n了解单元测试技术n了解软件的调试和评估n理解什么是集成测试n了解集成测试的目标和任务n了解集成测试技术第二部分:软件测试的技术第七章:单元测试和集成测试单元测试和集成测试什么是单元测试什么是单元测试软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)单元测试单元测试单元测试完成对最小的软件设计单元——模块的验证工作使用过程设计描述作为指南,对重要的控制路径进行测试以发现模块内的错误测试的相关复杂度和发现的错误是由单元测试的约束范围来限定的单元测试通常情况下是面向白盒的,而且这个步骤可以针对多个模块并行进行 软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)单元测试单元测试n对于结构化的编程语言,程序单元指程序中定义的函数或子程序。
单元测试是指对函数或子程序所进行的测试n对于面向对象的编程语言,程序单元指特定的二个具体的类或相关的多个类单元测试主要是指对类方法的测试软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)单元测试单元测试n在二种传统的结构化编程语言中,比如C,要进行测试的单元二般是函数或子过程在象C++这样的面向对象的语言中, 要进行测试的基本单元是类对Ada语言来说,开发人员可以选择是在独立的过程和函数,还是在Ada包的级别上进行单元测试单元测试的原则同样被扩展到第四代语言(4GL)的开发中,在这里基本单元被典型地划分为二个菜单或显示界面软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)单元测试单元测试n单元测试不仅仅是作为无错编码二种辅助手段在二次性的开发过程中使用,单元测试必须是可重复的,无论是在软件修改,或是移植到新的运行环境的过程中因此,所有的测试都必须在整个软件系统的生命周期中进行维护第二部分:软件测试的技术第七章:单元测试和集成测试单元测试和集成测试单元测试目的和任单元测试目的和任务务软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)单元测试目的单元测试目的n对软件单元进行测试,确实保证它作为二个单元能正常地工作n单元测试的目的是验证单元满足功能、性能和接口等的要求n单元测试采用的技术:静态分析、代码审查、白盒动态测试n测试的充分性由各种测试覆盖率来度量软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)单元静态测试的内容n单元测试包括静态的代码审查和动态测试两个阶段。
n代码审查是按照《代码审查单》中的条项对单元模块进行逐项检查,并填写《单元测试Bug 清单》n《代码审查单》的格式见例子软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)单元动态测试的内容n主要针对下列模块的五个基本特性进行:n模块接口n局部数据结构n重要的执行路径n出错处理路径n影响以上各点的边界条件第二部分:软件测试的技术第七章:单元测试和集成测试单元测试和集成测试单元测试策略和方单元测试策略和方法法软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)静态白盒测试 静态白盒测试是在不执行的条件下有条理地仔细审查软件设计、体系结构和代码,从而找出软件缺陷的过程好处:n尽早发现软件缺陷 n为黑盒测试员提供思路软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)静态白盒测试审查是正式、严格、具有深度的技术评审,以便尽可能准确地确定问题之所在审查过程的目的:n在软件开发过程中尽可能早地发现问题n确保对需要重做部分达成一致意见n验证任何重做部分满足预先定义的准则软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)静态白盒测试一次审查一般需要5人至7人,这些角色是:主审员:协调本次审查并主持讨论。
责任人:负责被审查的产品讲解员:在审查会上讲解被审查的产品审查员:审查产品记录员:记录在审查会议上讨论的问题经理:责任人的管理者软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)静态白盒测试选择要审查的代码模块的准则:n对于正确操作产品起关键作用的模块n复杂度较高的模块n与过去发生错误率较高的模块功能类似的模块n相对较新的或缺乏经验的软件程序师编写的模块软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)静态白盒测试为什么要坚持编码标准和规范?为什么要坚持编码标准和规范?n可靠性n可读性/维护性n移植性 软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)静态白盒测试大多数计算机语言和信息技术的国家和国际标大多数计算机语言和信息技术的国家和国际标准可以通过以下途径获得:准可以通过以下途径获得:国际工程协议(IEC):国际标准化组织(ISO):信息技术标准国家委员会(NCITS):计算机械联合会(ACM):电子电气工程学会(IEEE):软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)静态白盒测试通用代码审查清单通用代码审查清单数据引用错误;数据声明错误;计算错误;比较错误;控制流程错误;子程序参数错误;输入/输出错误;其他检查。
软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)静态白盒测试同行审查同行审查 仅在编写代码的程序员和充当审查者的其他一两个程序员和测试员之间进行保证审查的高效率,注意审查的4个关键要素:确定问题;遵守规则;审查准备;编写报告软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)静态白盒测试的小结n代码评审n同行审查n检查单软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)动态白盒测试n 动态白盒测试是指利用查看代码功能和实现方式得到的信息来确定哪些要测试,哪些不要测试,如何开展测试n 动态白盒测试的另一个常用名称是结构测试,因为软件测试员可以查看并使用代码的内部结构,从而设计和执行测试软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)动态白盒测试——路径测试n 结构性测试方法的突出特点,是它们都基于被测程序的源代码,而不是基于定义n 由于这种绝对化的基础,结构性测试方法支持严格定义、数据分析和精确度量软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)动态白盒测试——程序图n定义 给定一个采用命令式程序设计语言编写的程序,其程序图是一种有向图,其中: 节点是程序语句,边表示控制流。
从节点i到节点j有一条边,当且仅当对应节点j的语句可以立即在节点i对应的语句之后执行软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)结构性测试覆盖指标n语句覆盖:选择足够的测试用例是程序中每个可执行语句至少执行一次 n判定覆盖(分枝覆盖) :选择足够的测试用例,使得程序中每个判定至少都获得一次“真”值和“假”值n条件覆盖:设计若干测试用例,执行被测程序后是每个判定中每个条件的可能值至少满足一次软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)语句覆盖1 PRINT “Hello you”2 PRINT “The date is:”;Date&3 PRINT “The time is:”;Time&4 END软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)判断覆盖(分枝覆盖)1 PRINT “Hello you”2 IF Date=“01-01-2000”THEN3 PRINT “Happy New Year”4 END IF5 PRINT “The date is:”;Date6 PRINT “The time is:”;Time7 END软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)条件覆盖1 PRINT “Hello you”2 IF Date=“01-01-2000”AND Time=“00:00:00”THEN3 PRINT “Happy New Year”4 END IF5 PRINT “The date is:”;Date6 PRINT “The time is:”;Time7 END软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)结构性测试覆盖指标n判定/条件覆盖:判定/条件覆盖要求设计足够的测试用例,使得判定中的每个条件的所有可能(真/假)至少出现一次并且每个判定本身的结果(真/假)也至少出现一次n条件组合覆盖:执行足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次,显然满足条件组合覆盖的测试用例一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”n路径覆盖:设计足够的测试用例要求覆盖程序中所有可能的路径软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)动态白盒测试——循环测试简单循环n其循环的最大次数为nn测试:n跳过整个循环n只循环一次n循环两次n循环m次其中m n因此,一组基向量在一定程度上可表示整个向量空间的本质:空间中的一切都可以用基表示,并且如果一个基元素被删除了,则这种覆盖特性也会丢失软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)动态白盒测试—基路径测试基对测试的潜在意义是:基对测试的潜在意义是: 如果可以把程序看做是一种向量空间,则这种空间的基就是要测试的非常有意义的元素集合如果基没有问题,则可以希望能够用基表达的一切都是没有问题的软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)动态白盒测试—数据流测试早期的数据流分析常常集中于现在叫做定义/引用异常的缺陷:n变量被定义,但是从来没有使用n所使用的变量没有被定义n变量在使用之前被定义两次软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)动态白盒测试-基于程序片的测试 程序片是确定或影响某个变量在程序某个点上的取值的一组程序语句软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)单元测试结束的条件n1、当时间用光时n2、当继续测试没有产生新失效时。 n3、当继续测试没有发现新缺陷时n4、当无法考虑新测试用例时n5、当回报很小时n6、当达到所要求的覆盖时n7、当所有缺陷都已经清除时软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)小结n静态黑盒测试是指检查产品描述,并在投入软件编写之前查找问题n动态黑盒测试是指在不了解软件如何工作的前提下进行测试n静态白盒测试是指通过正式审查和检验检查代码的细节n动态白盒测试是指在看到软件的工作方式时,根据获得的信息对软件进行测试第二部分:软件测试的技术第七章:单元测试和集成测试单元测试和集成测试软件的调试和评估软件的调试和评估软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)调试n调试的任务:诊断和改正程序中的错误n调试的步骤:n根据迹象确定错误的正确位置n仔细分析研究以确定问题的原因并进行改正n确定错误位置占调试95%的工作量n错误改正后要进行回归测试n修改程序可能带来新的错误软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)错误的特征和调试的困难n症状和原因可能是相隔很远的n症状可能在另二个错误被纠正后消失或暂时性消失n症状可能实际上并不是由“错误”引起的(如舍入误差)n症状可能是由不太容易跟踪的人工错误引起的n症状可能是和时间有关的,而不是处理问题n很难重新产生完全二样的输入条件(如实时应用)n症状可能时时有时无的n症状可能是由分布在许多不同任务中的原因引起的软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)调试技术n输出存储器内容n打印中间结果n自动工具(自动插装)软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)调试策略n试探法n回溯法n对分查找法n归纳法n演绎法软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)试探法n分析错误征兆n猜想故障的大致位置n采用某些调试技术获得程序中被怀疑地方附近的信息n试探法通常是缓慢而低效的软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)回溯法n检查错误征兆,确定最先发现“症状”的地方n用人工沿程序的控制流往回追踪源程序代码,直到找出错误根源或确定故障范围为止n另二种形式是正向追踪,使用输出语句检查二系列中间结果,以确定最先出现错误的地方n回溯法比较适用于小程序,大规模程序使彻底回溯不可能软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)对分查找法n如果已经知道每个变量在程序内若干关键点的正确值,则可以用赋值语句或输入语句在程序中点附近“注入”这些变量的正确值,然后检查程序的输出n如果输出结果正确,故障在程序的前半部分;反之在程序的后半部分n重复使用直到定位或范围小到容易诊断软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)归纳法n从个别推断二般,从线索出发,通过分析线索关系找出故障n四个步骤:n收集有关的数据:列出已经知道的关于程序哪些事做得对哪些事做得不对的二切数据n组织数据:整理数据,发现规律,发现矛盾,即在什么条件下出现错误,什么条件下不出现错误n导出假设:分析线索之间的关系,提出故障的假设n证明假设:解释所有原始的测试结果软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)演绎法n从二般原理和前提出发,经过推导的出结论n从所有可能的原因和假设出发,二二排除而得到结果n四个步骤:n设想可能的原因n用已有的数据排除不正确的假设n精化余下的假设:具体化和定位n证明余下的假设软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)修改的问题n在改错时回答以下问题:n这个错误在程序的其它地方也会产生吗?举二反三n将要进行的修改可能会引发的“下二个错误”是什么?消除影响n为了防止这个错误,首先应当做什么?缺陷预防第二部分:软件测试的技术第七章:单元测试和集成测试单元测试和集成测试什么是集成测试什么是集成测试软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)集成测试n依据软件设计确定的软件结构,按照软件集成“工序”,把各个软件单元逐步集成为完整的软件系统,并不断发现和排除错误,以保证联接、集成的正确性。 第二部分:软件测试的技术第七章:单元测试和集成测试单元测试和集成测试集成测试目的和任集成测试目的和任务务软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义) 集成测试的内容集成测试的内容1)软件单元的接口测试;2)软件部件的功能、性能测试;3)全面数据结构测试;4)必要的运行时间、存贮空间、计算精度测试;5)边界条件和非法输入的测试 软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)集成测试的要求集成测试的要求1)必须对有调用关系的软件单元之间的所有调用进行测试,验证每个调用接口的完整性和一致性;2)应对软件进行正确处理的能力的经受错误影响的能力进行测试;3)应测试在各种外部输入下,从外部接口采集和(或)发送数据的能力,包括对正确数据及状态的处理,对接口错误、数据错误、协议错误的识别及处理 软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)集成测试的通过准则集成测试的通过准则1)软件单元无错误地连接;2)满足各项功能、性能要求;3)对错误的输入有正确处理的能力;4)对测试中的异常有合理解释;5)人机界面、对外接口正确无误;第二部分:软件测试的技术第七章:单元测试和集成测试单元测试和集成测试集成测试策略和方集成测试策略和方法法软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)软件集成策略1)非增量方式n先测试好每一个软件单元,然后一次组装在一起再测试整个程序。 2)增量方式n逐步把下一个要被组装的软件单元或部件,同已测好的软件部件结合起来测试n增量方式主要包括自顶向下、自底向上、自顶向下与自底向上相结合等方法软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)集成方式集成方式n非增量方式n Big Bangn增量方式(基于功能分解)n自顶向下方法自顶向下方法n自底向上方法自底向上方法n“三明治三明治”方法方法软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)增量和非增量方式的优缺点n增量方式的优点:a.增量方式占用人工较少b.增量方式可以较早地发现模块接口错误c.增量方式容易排错d.增量方式测试效果好,比较彻底n非增量方式的优点:a.非增量方式占用机器时间较少b.非增量方式有利于并行开发软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)非增量方式非增量方式n有一种很直接、原始的组装方式,它把所有通过单元测试的模块一古脑儿地全部集成在一起,直接组装成软件系统,并对它进行测试n这种被贬义地称作大爆炸(Big Bang)的组装方式,目前仍在许多场合使用n 人们期望它可以带来方便、快捷的组装效果。 n这种方法遭到广大测试专家的批评,普遍认为它会引起混乱,且难以确定错误源的位置软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)功能分解n使用功能抽象的方法把程序分解为功能单元n使用数据抽象的方法产生测试每个功能单元的数据n注意测试功能序列组合和输入数据组合软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)集成测试方法基于功能分解的集成测试:基于功能分解的集成测试:n自顶向下集成n自底向上集成n三明治集成n大爆炸集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)自顶向下集成 自顶向下集成从主程序(树根)开始所有被主程序调用的下层单元都作为“桩”出现,桩就是模拟被调用单元的一次性代码软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)自顶向下集成 以SATM系统为例,我们要执行自顶向下集成测试,第一步就应该是为被主程序调用的所有单元见主程序)软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)自顶向下集成 我们需要开发一下单元的桩:WatchCardSlot(检查ATM卡槽)、ContorlCardRoller(控制ATM卡传送器) 、ScreenDriver(屏幕驱动器)、 ValidateCard(检验ATM卡)、 ValidatePIN (检验PIN)、ManageTransaction (管理事务处理)和NewTransactionRequest(新事务处理请求)。 软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)自顶向下集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)自顶向下集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)自顶向下集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)自底向上集成n自底向上集成是自顶向下顺序的“镜像”,不同的是,桩由模拟功能分解树上一层单元的驱动器模块替代需要编写驱动器软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)自底向上集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)自底向上集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)自底向上集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)三明治集成n三明治是自顶向下和自底向上集成的组合n桩和驱动器的开发工作都比较小,不过代价是有大爆炸的后果软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)三明治集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)大爆炸集成 这种方法最容易:这种集成将所有单元在一起编译并进行一次性测试。 这种方法的缺点是,当发现缺陷时,没有多少线索能够用来帮助确定缺陷位置软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于功能分解的测试优点n比较清晰n容易发现问题地点软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于功能分解的测试缺点n功能分解是基于人工和管理需要的n桩和驱动器的开发工作量n自顶向下集成,需要开发(节点-1个)桩n自底向下集成,需要开发(节点-叶个)驱动软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于调用图的集成n基于调用图的集成可以将集成测试向结构性测试方向发展n由于调用图示一种有向图,我们可以使用调用图来进行成对集成和相邻集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)成对集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)相邻集成软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)SATM调用图软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)SATM邻居软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于调用图的集成优点n偏离了纯结构基础,转向行为基础。 n免除了桩/驱动器开发工作量n邻居序列可以用于定义构建软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于调用图的集成缺点n缺陷的隔离问题,尤其是对有大量邻居的情况n如果在多邻居的多个节点中发现缺陷会出现什么情况?n缺陷修改后的回归测试量很大软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于路径的集成测试集成测试的修订目标集成测试的修订目标:n不仅是测试单独开发并通过测试的单元之间的测试接口,而还是将注意力集中在这些单元的交互上n接口是结构性的;而交互是行为性的软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于路径的集成测试-新概念定义定义n程序中的源节点是程序执行开始或重复开始处的语句片断n单元中的第一个可执行语句显然是源节点n源节点还会出现在紧接转移控制到其他单元节点之后软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于路径的集成测试-新概念定义定义n汇节点是程序执行结束处的语句片断n程序中的最后一个可执行语句显然是汇节点,转移控制到其他单元的节点也是汇节点。 软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于路径的集成测试-新概念定义定义n 模块执行路径是以源节点开始、以汇节点结束的一系列语句,中间没有插入汇节点n 现在的定义中,程序图有多个源节点和汇节点软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于路径的集成测试-新概念定义定义n消息是一种程序设计语言,通过这种机制一个单元将控制转移给另一个单元n消息可以被解释为子程序调用、过程调用和函数引用n我们约定接受信息的单元总是最总将控制返回给消息源n消息可以向其他单元传递数据软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于路径的集成测试-新概念定义定义nMM-路径是穿插出现模块执行路径和消息的序列n对于传统(过程)软件,MM-路径永远从主程序中开始,在主程序中结束软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于路径的集成测试-新概念软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)七条模块执行路径MEP(A,1)=<1,2,3,6>MEP(A,2)=<1,2,4> MEP(A,3)=<5,6>MEP(B,1)=<1,2>MEP(B,2)=<3,4> MEP(C,1)=<1,2,4,5> MEP(C,2)=<1,3,4,5>软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于路径的集成测试-新概念定义定义 给定一组单元,其MM-路径图是一种有向图,其中的节点表示模块执行路径,边表示消息和单元之间的返回。 软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)MM-路径图软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)基于MM-路径集成测试的优缺点nMM-路径是功能性测试和结构性测试的一种混合n它与实际系统行为密切匹配,而不是靠基于分解和调用图集成的结构性路径n缺点:需要更多的工作量标识MM-路径软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)集成测试小结n基于功能分解图的集成测试n基于调用图的集成测试n基于MM-路径的集成测试软件测试培训讲义(讲师:余涛、段孝义)软件测试培训讲义(讲师:余涛、段孝义)谢谢大家!谢谢大家!。
