软件测试


网站首页 | 软件测试论坛 | 软件测试培训 | 软件测试博客 | 软件测试杂志 | 软件测试沙龙 | 软件测试下载 | 软件测试顾问
业界新闻 | 软件测试人才 | 软件测试技术 | 软件测试工具 | 行业软件测试 | 软件测试管理 | 软件质量专栏 | 软件开发专栏
当前位置:首页>>软件测试技术>>其他相关>>正文
联合测试
文章出处:wuyouschool 作者:不详 发布时间:2005-12-22

  考核要求:

  识记:渐增式与非渐增式联调的概念。

  领会:渐增式与非渐增式联调的特点与区别;两种渐增方式。

  渐增式和非渐增式联调

  将若干个模块连接成一个可运行的系统通常有两种方式:一种是“非渐增式”,即先独立地测试每一模块,然后将所有这些模块连接到一起运行;另一种是“渐增式”,即在已测试过的N个模块的基础上再增加一个模块,再对N十1个模块进行测试。

  下面以图6.11为例讨论这两种方式的差别。

  非渐增式是先分别测试6个模块A、B、C、D、E、F,然后将 6个模块连接到一起再进行测试。

  若用这种方式,在测试某个模块X时,需要为它设计一个驱动模块和若干个桩模块(图 6.12)。驱动模块的作用是模拟X的调用模块,桩模块的作用是模拟X的下层模块。例如测试图 6.11的模块B时,要为它设计一个驱动模块,其作用是将测试数据传送给模块B,并显示B产生的结果,另外,由于模块B要调用模块E,所以还需设计一个名字为E的模块,它将接受B的控制并模拟E的功能。

  另一种方式是渐增式,它不是分别测试每个模块,而是逐步将要测试的模块同已测试的模块连接起来。若用渐增方式,模块测试和联合测试这两步是结合起来进行的。

  渐增式又有“由顶向下”、“由底向上”等多种。对图6.11的程序若采用“由底向上”的方式,则是先顺序地或并行地 测试模块 E、C、F,此时需为每个模块准备一个驱动模块,但不必准备桩模块,然后为B准备一个驱动模块将B与E连接起来测试,又为D准备一个驱动模块将D和F连接起来测试,这过程将继续至测试最后一个模块A。

  渐增式与非渐增式的比较

  1) 非渐增式需要较多的人工,以图 6.11为例,采用非渐增式共需准备5个驱动模块和5个桩模块(假定A不需要驱动模块, C,E,F不需要桩模块)。而用渐增式,如果是“由顶向下”则可利用前面已测试过的模块,而不必另外准备驱动模块,如果是“由底向上”,也可利用已测式过的模块,不必再准备桩模块。对图 6.11来说,如用“由顶向下”方式则只需要5个桩模块而不要驱动模块,如用“由底向上”方式则只要5个驱动模块而不需要桩模块。

  2) 渐增式可以较早地发现模块界面之间的错误,非渐增式则要到最后将所有模块连接起来时才能发现这类错误。

  3) 渐增式有利于排错。如果模块界面间有错,如果用非渐增式,这类错误要到最后联合测试时才能发现,此时很难判断错误发生在程序的哪一部分,但如果用渐增式,这类错误就较容易定位,它通常与最新加上去的那个模块有关。

  4) 渐增式比较彻底。对图6.14的例子采用渐增式测试,在测试模块B时,模块A(由顶向下方式)或模块E(由底向上方式)也要再次执行,虽然A或E前面已测试过,但与模块B连接起来也许又会产生一个新的条件,而这个条件在分别测试 A或 E时可能是被遗漏的。换句话说,渐增式以前面测试过的模块作为驱动模块或桩模块,所以这些模块将得到进一步的检查。

  5) 渐增式需要较多的机器时间。以 图 6.11 为例.如用由底向上渐增式,在测试模块A时,模块B、C、D、E、F也要执行,若用非渐增式,在测试模块A时,只需执行模拟B、C、D的桩模块。类似地,如用由顶向下渐增式,在测试模块F时,模块A、B、C、D、E可能都要执行,而用非渐增式,则只需执行模块F本身以及它的驱动模块。所以整个测试过程中,渐增式所需的机器时间比非渐增式多。

  6) 使用非渐增方式,在开始时允许几个测试人员并行工作,这对大型系统来说,是很有意义的。

  第 1)~4)点是渐增式的长处,第 5) ~6)点是它的短处。

  由顶向下和由底向上渐增式

  有两种主要的渐增方式:“由顶向下”和“由底向上”。

  由顶向下

  由顶向下渐增式首先测试顶模块(主模块),下一步再测试哪个模块则有多种选择,唯一

  的限制是:该模块的调用模块中至少有一个已测试过了。

  决定测试顺序的基本原则是:

  1)尽早测试关键的模块。所谓关键的模块是指较复杂、较可能出错或含有新的算法的模

块。

  2)尽早测试包含输入输出操作的模块。因为这些模块被测试后,向程序送入测试数据以

  及检查输出结果就方便了。

  由底向上

  由底向上与由顶向下的测试顺序正好相反,它首先测试最底层的模块,下一步再测试哪个模块则有多种选择,唯一的限制是:该模块的所有下层模块都已测试过了。

  同由顶向下一样,由底向上的测试顺序也与程序中的关健部分有关。

  用由底向上方式测试时,需要为每个模块准备一个驱动模块,它的作用是调用被测试的

  模块,包括设置输入参数、显示输出结果(或将实际输出与预期的输出作比较)。一般说来、驱动模块的作用是比较标准的,编写驱动模块比编写桩模块容易,可以用工具来实现。

  由于驱动模块直接与被测试模块联系,所以不必担心有其他模块介入的问题。

  由底向上方式不能像由顶向下方式那样,是在测试中途获得一个程序框架,因为由底向上方式的程序框架要到测试最后一个模块(顶模块)时才能形成,它实际上就是整个程序了。

  本节的结论是:由顶向下和由底向上渐增式各有优缺点,测试人员可根据程序的具体特点和测试工具的情况决定选用哪一种方式。


站内搜索
相关文章
◎高可靠性软件测试方案探讨
◎QA活动的理解与实施
◎从六个角度分析流程建模
◎故障硬盘数据拯救全攻略
◎测试版本大全
◎程序员修身养性的十大原则
◎建模过程的盲点:软件集成中的软知识
◎ASP+SQL Server构建网页防火墙
◎基于嵌入式DSP的流媒体编解码器
◎软件开发全过程检测及测试自动化
◎PDCA循环小知识
◎想编写出优秀技术文档,先学学这四招
◎Tcl脚本的历史
◎Alpha和Beta测试简介
◎测试人员的挑战
◎测试要点总结
◎本地化测试寻找软件缺陷的方法
◎软件本地化测试类型解析与测试要领
◎全景记录:软件测试工程师的一天
◎破解软件外包人才匮乏困局
◎外包测试:雷声大 雨点急
◎URL欺骗的惯用招式
◎网络最经典命令行
◎近10年最强的50本计算机图书,您读过几本?
◎提高团队与个人的尽职度
◎从程序员到测试工程师
◎软件测试组织与方法
◎编写优秀Bug报告的艺术
◎基于模块化设计的嵌入式软件测试方法
◎一个初级测试工程师的工作总结
◎创建移动Web应用程序
◎Web服务器上防范基于ASP程序的木马
◎ASP网站漏洞解析及黑客入侵防范方法
◎防范ASP木马的十大基本原则
◎V模型问题分析
◎测试人员面试三步曲
◎软件测试的误区
◎谁背上了猴子-时间管理
◎开放源码有利于系统安全
◎软件测试的心理学问题
◎嵌入式软件测试策略
◎如何实施SQA
◎软件测试入门书籍(2)
◎制定项目的测试策略
◎软件测试的人际关系
◎测试实践:Eclipse 之 JUnit
◎测试经验交流
◎软件测试常用术语表
热门文章
◎软件测试工程师面试问题选登
◎一个初级测试工程师的工作总结
◎软件测试常用术语表
◎测试人员面试三步曲
◎DOS命令大全
◎什么样的测试人员是好的测试人员
◎软件测试基本方法
◎好的测试工程师应具备的素质
◎软件测试入门书籍(2)
◎我在软件公司成长的三年
◎面试官最爱问的问题背后真相
◎软件测试工程师面试题
◎应届毕业生少走弯路的十条忠告
◎有关软件测试的术语定义集锦
◎微软的软件测试方法(一)
◎我的测试经历(1)
◎全景记录:软件测试工程师的一天
◎软件测试步骤
◎谈谈对测试职业的看法
◎漫谈软件测试工程师的角色定位
◎测试需要掌握什么
◎软件测试员自身素质培养
◎测试小技巧集锦之一黑盒测试
◎近10年最强的50本计算机图书,您读过几本?
◎软件测试人员职业发展助手
◎测试要点总结
◎如何制定成功的测试计划
◎测试的主要评测方法(1)
◎什么是ERP,通俗版解释
◎测试经验交流
◎软件测试及其支持工具
◎编写优秀Bug报告的艺术
◎软件产品测试标准
◎从程序员到测试工程师
◎微软的软件测试方法(二)
◎软件测试应遵循的八条原则
◎测试版本大全
◎我的测试经历(2)
◎测试人员的挑战
◎网管和黑客都必须知道的命令
◎QA活动的理解与实施
◎Alpha和Beta测试简介
◎网络最经典命令行
◎想编写出优秀技术文档,先学学这四招
◎个人职业生涯规划发展
◎你适合做测试吗?
◎软件测试的误区
◎我的测试经历(3)
◎软件测试的心理学问题
◎软件测试组织与方法

Google提供的广告