- 1、本文档共31页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]第11讲 软件测试技术-白盒测试
一 单元测试 单元测试集中检测软件设计的 最小单元——模块。通常,单元测试和编码属于软件过程的同一个阶段。 在编写出源程序代码并通过了编译程序的语法检查之后,就可以用详细设计描述作指南,对 重要的执行通路进行测试,以便发现模块内部的错误。 可以应用人工测试和计算机测试这样两种不同类型的测试方法,完成单元测试工作。这两种测试方法各有所 长,互相补充。通常,单元测试主要使用白盒测试技术,而且对多个模块的测试可以并行地进行。 单元测试重点 1. 模块接口 首先应该对通过模块接口的数据流进行测试,如果数据不能正确地进出,所有其他测试都是不切实际的。在对模块接口进行测试时主要检查下述几个方面: 参数的数 目、次序、属性或单位与变元是否一致; 是否修改了只作输入用的变元; 全局变量的定义和用法在各个模块中是否一致。 单元测试重点 2. 局部数据结构 应该仔细设计测试方案,以便发现局部数据说明、初始化、默认值等方面的错误。 3. 重要的执行通路 由于通常不可能进行穷尽测试,因此,在单元测试期间选择最有代表性、最可能发现错误的执行通路进行测试就是十分关键的。应该设计测试方案用来发现由于错误的计算、不正确的比较或不适当的控制流而造成的错误。 单元测试重点 4. 出错处理通路 好的设计应该能预见出现错误的条件,并且设置适当的处理错误的通路,以便在真的出现错误时执行相应的出错处理通路或干净地结束处理。不仅应该在程序中包含出错处理通路,而且应该认真测试这种通路。当评价出错处理通路时,应该着重测试下述一些可能发生的错误: (1) 对错误的描述是难以理解的; (2) 记下的错误与实际遇到的错误不同; (3) 在对错误进行处理之前,错误条件已经引起系统干预; (4) 对错误的处理不正确; (5) 描述错误的信息不足以帮助确定造成错误的位置。 代码审查 人工测试源程序可以先由编写者本人非正式地进行,然后由审查小组正式进行。后者称为代码审查,它是 一种非常有效的程序验证技术,对于典型的程序来说,可以查出 30% ~ 70% 的逻辑设计错误和编码错误。 代码审查 审查小组最好由下述4人组成: (1) 组长,应该是一个很有能力的程序员,而且没有直接参与这项工程; (2) 程序的设计者; (3) 程序的编写者; (4) 程序的测试者。 (5) 其他人员 代码审查 审查之前,小组成员应该先研究设计说明书,力求理解这个设计。为了帮助理解,可以先由设计者扼要地介绍他的设计。 在审查会上由程序的编写者解释他是怎样用 程序代码实现这个设计的,通常是逐个语句地讲述程序的逻辑,小组其他成员仔细倾听他的讲解,并力图发现其中的错误。 审查会上进行的另外一项工作,是对照类 似于上一小节中介绍的程序设计常见错 误清单,分析审查这个程序。当发现错误时由组长记录下,审查会继续进行( 审查小组的任务是发现错误而不是改正错误 ) 。 运行测试 模块并不是一个独立的程序,因此必须为每个单元测试开发”驱动模块”和 ( 或 ) “桩模块”( 存根模块)。 通常驱动程序也就是 一个 “ 主程序 ” ,它接收测试数据,把这些数据传送给 被测试的模块,并且印出有关的结果。 存根程序代替被测试的模块所调用的模块。因此存根程序也可以称 为 “ 虚拟子程序 ” 。它使用被它代替的模块的接口,可 能做最少量的数据操作,印出对入口的检验或操作结 果,并且把控制归还给调用它的模。 Ⅱ . TEST DRIVER(* 测试正文编辑模块用的驱动程序 *) 说明长度为2500个字符的一个缓冲区; 把 CFUNCT 置为希望测试的状态; 输入字符串; 调用正文编辑模块 停止或再次初启; END TEST DRIVER Ⅰ . TEST STUB(* 测试正文编辑模块用的存根程序 *) 初始化; 输出信息 “ 进入了正文编辑程序 ” ; 输出 “ 输入的控制信息是 ” CFUNCT ; 输出缓冲区中的字符串; IF CFUNCT=CHANGETHEN把缓冲区中第二个字改为 ***ELSE在缓冲区的尾部加 ??? END IF ;输出缓冲区中的新字符串; END TEST STUB 二 集成测试 集成测试是测试和组装软件的系统化技术. 例如,数据穿过接口时可能丢失;一个模块对另一个模块可能由于疏忽而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看来 是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有问题等等。不幸的是,可能发生的接口问题多得不胜枚举。 集成测试 由模块组装成程序时有两种方法。一种方法是先分别测试每个模块,再把所有模块按设计要求放在一起结合成所要的程序,这种方法称为非渐增式测试方法; 另一种 方法是把下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完以
文档评论(0)