黑盒测试的测试用例设计方法

等价类划分

  是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例.该方法是一种重要的,常用的黑盒测试用例设计方法.

   1) 划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.

  有效等价类:是指对于程序的规格说明来说是合理的,有意义的输入数据构成的集合.利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能.

  无效等价类:与有效等价类的定义恰巧相反.

  设计测试用例时,要同时考虑这两种等价类.因为,软件不仅要能接收合理的数据,也要能经受意外的考验.这样的测试才能确保软件具有更高的可靠性. 

  2)划分等价类的方法:下面给出六条确定等价类的原则.

  ①在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类.

  ②在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类.

  ③在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类.

  ④在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类.

  ⑤在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则).

  ⑥在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类.

  3)设计测试用例:在确立了等价类后,可建立等价类表,列出所有划分出的等价类:

   输入条件 有效等价类 无效等价类
  ... ... ...
  ... ... ...

   然后从划分出的等价类中按以下三个原则设计测试用例:

  ①为每一个等价类规定一个唯一的编号.

  ②设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步.直到所有的有效等价类都被覆盖为止.

  ③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步.直到所有的无效等价类都被覆盖为止.

边界值分析法

  边界值分析方法是对等价类划分方法的补充.

(1)边界值分析方法的考虑:

  长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.

  使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.

(2)基于边界值分析方法选择测试用例的原则:

  1)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据.

  2)如果输入条件规定了值的个数,则用最大个数,最小个数,比最小个数少一,比最大个数多一的数作为测试数据.

  3)根据规格说明的每个输出条件,使用前面的原则1).

  4)根据规格说明的每个输出条件,应用前面的原则2).

  5)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例.

  6)如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例.

 7)分析规格说明,找出其它可能的边界条件.

错误推测法

  基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.

  错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.

因果图方法

  前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 
  因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况. 

  利用因果图生成测试用例的基本步骤: 

  (1) 分析软件规格说明描述中, 那些是原因(即输入条件或输入条件的等价类),那些是结果(即输出条件), 并给每个原因和结果赋予一个标识符. 

  (2) 分析软件规格说明描述中的语义.找出原因与结果之间, 原因与原因之间对应的关系. 根据这些关系,画出因果图.

  (3) 由于语法或环境限制, 有些原因与原因之间,原因与结果之间的组合情况不不可能出现. 为表明这些特殊情况, 在因果图上用一些记号表明约束或限制条件.

  (4) 把因果图转换为判定表.

  (5) 把判定表的每一列拿出来作为依据,设计测试用例.

  从因果图生成的测试用例(局部,组合关系下的)包括了所有输入数据的取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加.

  前面因果图方法中已经用到了判定表.判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的情况下的工具.在程序设计发展的初期,判定表就已被当作编写程序的辅助工具了.由于它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确.

  判定表通常由四个部分组成.

  条件桩(Condition Stub):列出了问题得所有条件.通常认为列出得条件的次序无关紧要.

  动作桩(Action Stub):列出了问题规定可能采取的操作.这些操作的排列顺序没有约束.

  条件项(Condition Entry):列出针对它左列条件的取值.在所有可能情况下的真假值.

  动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作.

  规则:任何一个条件组合的特定取值及其相应要执行的操作.在判定表中贯穿条件项和动作项的一列就是一条规则.显然,判定表中列出多少组条件取值,也就有多少条规则,既条件项和动作项有多少列.

  判定表的建立步骤:(根据软件规格说明)

  ①确定规则的个数.假如有n个条件.每个条件有两个取值(0,1),故有 种规则. 

  ②列出所有的条件桩和动作桩.

  ③填入条件项.

  ④填入动作项.等到初始判定表.

  ⑤简化.合并相似规则(相同动作).

  B. Beizer 指出了适合使用判定表设计测试用例的条件:

  ①规格说明以判定表形式给出,或很容易转换成判定表.

  ②条件的排列顺序不会也不影响执行哪些操作.

  ③规则的排列顺序不会也不影响执行哪些操作.

  ④每当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则.

  ⑤如果某一规则得到满足要执行多个操作,这些操作的执行顺序无关紧要.

有价无货,网络工程师
日前,在国内举办的几次大型招聘会上,记者了解到,多家企业纷纷打出各类高薪招聘软件测试人员的海报,出人意料的是收到的简历尚不足招聘岗位数的 50%,而合格的竟不足30%。记者还了解到,目前像微软、爱立信、用友等著名IT企业,因为招聘不到合适的人才,而不得已着手培养自己的软件测试人才。 
     【关键词】缺口大
    合格应聘者几乎没有
  据国内知名招聘网站前程无忧最新才市数据显示,软件测试工程师将成为 2006年最紧缺的人才,该类职位的需求主要集中在沿海发达城市,其中北京、上海、深圳的需求量分别占去33%、29和24%。同一时间,中华英才网发布 了最新一期的IT职场人气排行榜。根据统计,IT人才仍是企业需求量最大的人群,其中软件测试工程师、高级程序员、产品项目经理等高级职位进入前三名,成 为IT就业市场最新风向标。 一方面,企业对软件测试人才有大量需求,但苦于招不到合适的人。而另一方面,很多应聘者却因为缺乏相关技能而被用人单位拒之门外,软件测试人才职场正面临 着尴尬局面。国家信息产业部发布的最新报告显示,我国目前软件从业人才缺口高达40万人。即使按照软件开发工程师与测试工程师1∶1的岗位比例计算,我国 对于软件测试工程师的需求便有数十万之众,而目前,我国软件开发工程师与测试工程师岗位比例为6∶1。预计在未来5至10年中,我国社会对软件测试人才的 需求还将继续增大。
    【关键词】薪资状况
    起薪每月至少3000元
  前程无忧2006年的薪酬报告显示,软件测试 工程师在IT行业中越来越受到重视,其薪资也节节高升。测试工程师的起薪从3000至5000元/月不等,若有三年工作经验的话,薪资可达8000元/ 月,具体视不同地域、不同性质企业、测试工程师的不同能力而定。以3年左右从业工作经验的软件测试工程师的各地薪资情况来看:北京地区该职位的平均年薪逾 5.8万元;上海地区软件测试工程师的平均年薪为6.3万元;深圳地区该职位的平均年薪约为7.8万元. 
  【关键词】职业培训
    职业培训凸显优势
   日前,记者从各大高校了解到,目前我国高校除为数不多的几所有软件测试的专业外,大部分的高校没有设置相关专业。计算机专业毕业的学生并未接受专业的测 试培训。从而导致人才供需之间存在着巨大的缺口。对此,业内专家表示,软件测试行业已显现出实际需求与人力资源之间的尖锐矛盾。通过职业培训来获得软件测 试技术已经成为进入这一行业的捷径。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值