第7章 软件测试(3)

一晃3天没有学习了,昨天的阅读量创立了一个新高,内心还是很欢喜的。

7.4.2黑盒技术

黑盒技术着重测试软件功能,需重点研究需求说明和总体设计中有关程序功能输入、输出之间的关系等信息,从而与测试后的结果进行分析比较。

用黑盒技术设计测试用例有:等价类划分、边界值分析、错误推测和因果图4种方法,但4种方法没有一种能提高一组完整的测试用例来检查程序的全部功能,应结合各种方法使用。

1、等价类划分法

是把所有可能输入数据或有效的和无效的划分成若干个等价类,测试每个等价类的代表值就等于对该类其他值得测试。

在划分等价类时,可以将其划分为两类

(1)有效等价类:指完全满足程序输入的规范说明,合理的有意义的输入数据所构成的集合,可以检验程序是否满足规范说明书所规定的功能和性能。

(2)无效等价类:指完全不满足程序输入的规范说明。不合理、无意义的输入数据的集合,可以检验程序容错性能。

划分等价类是一个比较复杂的问题,可以使用以下的几条原则

(1)如果某个输入条件规定了取值范围输入数据的个数,则可以划分出一个有效等价类和两个无效等价类。

(2)如果输入条件规定了输入数据的一组值,而程序对不同输入值做不同处理,则每个允许输入值是一个有效等价类,此处还有一个无效等价类(任何一个不允许的输入值)

(3)如果规定了输入数据必须遵循的规则,则可以划分出一个有效等价(符号规则)和若干个无效等价类(各种不同角度违法规则)

(4)如规定了输入数据为整数,则可以划分为正整数、零、负整数3个有效等价类,其他为无效等价类。

(5)如果在划分的等价类中各元素在程序中的处理方法不同,则应再将该等价类进一步划分为更小的等价类。

等价类划分好之后,按以下步骤设计测试用例

(1)为一个等价类规定一个唯一的编号

(2)设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被测试用例覆盖为止,即将有效等价类分割到最小。

(3)设计一个新的测试用例,使它覆盖一个而且只能覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有无效等价类都被覆盖为止。

注意:设计一个测试用例,只能覆盖一个无效等价类,因为程序中的某些错误检查往往会屏蔽对其他输入错误的检测,因此必须针对每一个无效等价类分别设计测试用例。

  2、边界值的分析法

程序在处理边界值情况时最容易发生错误,在测试过程中,可能会忽略边界值的条件大量的错误是发生在输入或输出范围的边界上,使得边界值分析方法设计测试用例,一般与等价类划分方法结合起来,通常把测试输入等价类和输出等价类的边界情况作为重点目标,应该选取刚好等于、小于、大于边界值的数据进行测试,常选择临界值测试它。

用边界值分析测试用例时提供以下一些设计原则供参考。

(1)如输入条件规定了值得范围,则选择刚好等于边界值的数据,同时也要选择刚好超过边界值的数据作为不合理测试用例,如果输入值的范围是(1.10)可选取0、1、10、11等值作为测试数据。

(2)如输入条件规定了输入值的个数,则按最大个数、最小个数,比最大个数多1、比最小个数少1等情况分别设计测试用例

(3)对每个输入条件分别按上述两条原则确定输出值得边界情况(考虑设计不合理输出等价类)

(4)如程序的输入或输出范围是有序集合,则应该选取集合的第一元素和最后一个元素作为测试用例。

3、错误推测法

其基本思想是:列举出程序中可能出现的错误和容易发现错误的症状,根据这些症状来选择设计测试用例。

对于一个排序程序,可以根据以下几项特别测试的情况来设计测试用例。

(1)输入表中所有的元素均相同

(2)输入表中元素以排好序

(3)输入表中只包含了一个元素

(4)输入表为空表

根据具体情况分析,在应用软件容易出错的环节,例如:c++软件的内存分配、内在泄露、Web程序的session 失效问题等常见的普遍问题选择性地设计测试用例。

4、因果图法

等价类划分法和边界值都只是孤立地考虑各个输入数据的测试功能,而没有考虑多个输入数据的组合引起的错误,因果图法能有效的检测输入条件的各种组合可能引起的错误基本原理:是通过画图、把因果图转换为判定表,然后为制定表的每一列设计一个测试用例。

在实际测试中,经常联合使用各种测试方法:通常是选用黑盒法设计基本的测试用例,在用白盒来补充一些必要的测试用例。

7、软件测试过程

软件产品在交付使用之前一般要经过单元测试、集成测试和系统测试4个阶段,图7.3描述了整个测试过程

在软件测试过程中需要3类信息

(1)软件配置:指需求说明书、设计说明书和源程序等。

(2)测试配置:指测试方案,测试用例和测试驱动程序

(3)测试工具:指计算机辅助测试的有关工具。

单元测试:是对软件基本组成单元进行的测试,检查每个独立模块是否正确地实现了规定的功能,单元测试所发现的往往是编码和详细设计中的错误。

集成测试:是将已分别通过测试的单元按设计要求组合起来再进行测试,以检查这些单元之间的接口是否存在问题,同时检查与设计相关的软件体系结构的有关问题,在这个阶段发现的往往是软件设计中的错误,也可能发现需求中的错误。

确定测试:是检查所有开发的软件是否满足需求规格说明书中所确定的功能和性能的需求,在这个测试阶段发现的是需求分析的错误。

详细介绍单元测试、集成测试和确认测试的具体任务和方法

7.5.1单元测试

对象是软件设计的最小单元,以模块一个最小的单元应该具有明确的功能、性能定义、接口定义、可以清晰地与其他单元区分开,一个菜单一个窗口现实界面都可以是一个单元

单元测试总是用白盒测试法,而且多个模块可以平行地独立进行单元测试。

1、单元测试的任务

有:模块接口测试、模块局部数据结构测试、模块出错处理通路测试,模块中重要的执行路径测试和模块边界条件测试

(1)模块接口测试

进行测试之前,必须测试通过模块接口的数据流,重点是检查调用和被调用模块之间的参数个数次序,属性等是否一致,当模块通过文件进行输入,输出要检查文件的具体描述,包括文件的定义、记录的描述、文件的处理方式是否正确,全局变量的定义和用法在各模块中是否一致。

(2)模块局部数据结构测试

检查局部数据结构是为了保证临时存储在模块内的数据,在程序执行过程中完整、正确、局部数据往往是错误的根源,仔细设计测试用例,用来检查以下几个方面的错误:不正确或不相容的类型说明,错误的初始化或缺省值;变量无初值;不正确的变量各出现上溢和地址错误等。

(3)模块出错处理通路测试

即主要测试程序对错误处理的能力,应着重检查这样一些可能发生的错误。

①输出的出错信息难以理解,记录的错误与实际遇到的错误不相符。

②在错误处理之前,系统已进行干预。

③对错误的处理不正确

④错误的描述中未能提供足够的确定出错数目的的原因等。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值