单元测试( 二 )


出错处理通路:好的设计应该能遇见出现错误的条件,并且设置适当的处理错误的通路,以便在真的出现错误时执行相应的出错通路或干净的结束处理 。
边界条件:软件时常会在边界上失败,边界测试运用边界值分析技术对边界值及其左右设计测试用例,可以帮助发现错误 。
集成测试 简介
集成测试(也叫组装测试,联合测试)是单元测试的逻辑扩展 。它最简单的形式是:把两个已经测试过的单元组合成一个组件,测试它们之间的接口 。从这一层意义上讲,组件是指多个单元的集成聚合 。在现实方案中,许多单元组合成组件,而这些组件又聚合为程序的更大部分 。方法是测试片段的组合,并最终扩展成进程,将模块与其他组的模块一起测试 。最后,将构成进程的所有模块一起测试 。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程 。
集成测试测试组合单元时出现的问题 。通过使用要求在组合单元前测试每个单元并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关 。这种方法将可能发生的情况数量减少到更简单的分析级别 。一个有效的集成测试有助于解决相关的软件与其它系统的兼容性和可操作性的问题 。
集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动 。也就是说,在集成测试之前,单元测试应该已经完成,集成测试中所使用的对象应该是已经经过单元测试的软件单元 。这一点很重要,因为如果不经过单元测试,那么集成测试的效果将会受到很大影响,并且会大幅增加软件单元代码纠错的代价 。
目标
集成测试的目标是按照设计要求使用那些通过单元测试的构件来构造程序结构 。单个模块具有高质量但不足以保证整个系统的质量 。有许多隐蔽的失效是高质量模块间发生非预期交互而产生的 。以下两种测试技术是用于集成测试:
1)功能性测试 。使用黑盒测试技术针对被测模块的接口规格说明进行测试 。
2)非功能性测试 。对模块的性能或可靠性进行测试 。
另外,集成测试的必要性还在于一些模块虽然能够单独地工作,但并不能保证连接起来也能正常工作 。程序在某些局部反映不出来的问题,有可能在全局上会暴露出来,影响功能的实现 。此外,在某些开发模式中,如迭代式开发,设计和实现是迭代进行的 。在这种情况下,集成测试的意义还在于它能间接地验证概要设计是否具有可行性 。
集成测试是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确 。它所测试的内容包括单元间的接口以及集成后的功能 。使用黑盒测试方法测试集成的功能 。并且对以前的集成进行回归测试 。
实施
集成测试是一种正规测试过程,必须精心计划,并与单元测试的完成时间协调起来 。在制定测试计划时,应考虑如下因素:
1、是采用何种系统组装方法来进行组装测试;
2、组装测试过程中连接各个模块的顺序;
3、模块代码编制和测试进度是否与组装测试的顺序一致
4、测试过程中是否需要专门的硬件设备;
解决了上述问题之后,就可以列出各个模块的编制、测试计划表,标明每个模块单元测试完成的日期、首次集成测试的日期、集成测试全部完成的日期、以及需要的测试用例和所期望的测试结果 。
在缺少软件测试所需要的硬件设备时,应检查该硬件的交付日期是否与集成测试计划一致 。例如,若测试需要数字化仪和绘图仪,则相应测试应安排在这些设备能够投入使用之时,并需要为硬件的安装和交付使用保留一段时间,以留下时间余量 。此外,在测试计划中需要考虑测试所需软件(驱动模块、桩模块、测试用例、生成程序等)的准备情况 。