软件测试用例设计案例 下载本文

内容发布更新时间 : 2025/2/22 20:14:12星期一 下面是文章的全部内容请认真阅读。

精品文档 你我共享

软件测试用例设计案例

等价类型划分法等价类划分是一种典型的黑盒测试方法用这一方法设计测试用例完全不考虑程序的内部结构只根据对程序的需求和说明即需求规格说明书。

由于穷举测试工作量太大以至于无法实际完成促使我们在大量的可能数据中选取其中的一部分作为测试用例。

例如在不了解等价分配技术的前提下我们做计算器程序的加法测试时测试了11121314之后还有必须测试15和16吗能否放心的认为它们时正确的我们感觉15和16与前面的1112都是类似的简单加法。

等价类划分法是把程序的输入域划分成若干部分然后从每个部分中选取少数代表性数据当作测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值也就是说如果某一类中的一个例子发现了错误这一等价类中的其他例子也能发现同样的错误反之如果某一类中的一个例子没有发现错误则这一类中的其他例子也不会查出错误。使用这一方法设计测试用例首先必须在分析需求规格说明的基础上划分等价类列出等价类表。

1.划分等价类和列出等价类表。 等价类是指某个输入域的子集合。在该子集合中各个输入数据对于揭露程序中的错误都是等效的。并合理地假定测试某等价类的代表值就等于对这一类其他值的测试。

因此可以把全部输入数据合理划分为若干等价类在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测试数据取得较好的测试结果。等价类划分有两种不同的情况有效等价类和无效等价类。

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

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

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

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

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

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

软件工程规范、实践与案例分析2⑤在规定了输入数据必须遵守的规则的情况下可确立一个有效等价类符合规则和若干个无效等价类从不同角度违反规则。

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

在确立了等价类之后建立等价类表列出所有划分出的等价类如表5-1。 表5-1等价类表示例输入条件有效等价类无效等价类………………2.确定测试用例根据已列出的等价类表按以下步骤确定测试用例①为每个等价类规定

AAAAAA

精品文档 你我共享

一个唯一的编号②设计一个新的测试用例使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步最后使得所有有效等价类均被测试用例所覆盖③设计一个新的测试用例使其只覆盖一个无效等价类。重复这一步使所有无效等价类均被覆盖。

在寻找等价区间时想办法把软件的相似输入、输出、操作分成组。这些组就是等价区间。请看下面这个例子。

个人所得税计算。

个人取得的工资、薪金所得是指个人因任职或者受雇而取得的工资、薪金、奖金、年终加薪、劳动分红、津贴、补贴以及与任职或受雇有关的其他所得。

工资、薪金所得项目税率表级数全月应纳税所得额税率速算扣除法元1不超过500元的502超过500元至2000元的部分1025第7章软件测试33超过2000元至5000元的部分151254超过5000元至20000元的部分203755超过20000元至40000元的部分2513756超过40000元至60000元的部分3033757超过60000元至80000元的部分3563758超过80000元至100000元的部分40103759超过100000元的部分4515375工资、薪金所得按以下步骤计算缴纳个人所得税每月取得工资收入后先减去个人承担的基本养老保险金、医疗保险金、失业保险金以及按省级政府规定标准缴纳的住房公积金再减去费用扣除额1600元/月来源于境外的所得以及外籍人员、华侨和香港、澳门、台湾同胞在中国境内的所得每月还可附加减除费用3200元为应纳税所得额按5至45的九级超额累进税率计算缴纳个人所得税。

计算公式是应纳个人所得税税额应纳税所得额×适用税率-速算扣除数例王某当月取得工资收入9000元当月个人承担住房公积金、基本养老保险金、医疗保险金、失业保险金共计1000元费用扣除额为1600元则王某当月应纳税所得额9000-1000-16006400元。应纳个人所得税税额6400×20-375905元。

以A代表应纳税所得额。 列出等价类表如表5-2所示。

表5-2等价类表输入条件有效等价类无效等价类是否是合法的薪酬数据Agt01Alt02软件工程规范、实践与案例分析4不超过500元0ltAlt5003500元至2000元500ltAlt200042000元至5000元2000ltAlt500055000元至20000元5000ltAlt20000620000元至40000元20000ltAlt40000740000元至60000元40000ltAlt60000860000元至80000元60000ltAlt80000980000元至100000元80000ltAlt10000010100000元以上100000ltA11设计测试用例输入顺序是【ABC】如表5-3所示表5-3测试用例第7章软件测试5序号A覆盖等价类输出130013152-102提示“应纳税额不能是负数”36001、435430001、53255100001、616256300001、761257500001、8116258700001、9181259900001、1025625101200001、1138625请记住等价分配的目标是把可能的测试用例组合缩减到仍然足以满足软件测试需求为止。因为选择了不完全测试就要冒一定的风险所以必须仔细选择分类。

关于等价分配最后要讲的一点是这样做有可能不客观。科学有时也是一门艺术。测试同一个复杂程序的两个软件测试员可能会制定出两组不同的等价区间。只有审查等价区间的人都认为它们足以覆盖测试对象就可以了。

2边界分析法依据经验输入或输出范围的边界上往往是错误的多发地带因此针对各种边界情况设计测试用例是必要的。

AAAAAA

精品文档 你我共享

例如在计算个人所得税时税率是分段计算的每段的边界是需要重点关注的。 假定开发者在编写程序计算应纳税额在2000到5000区间的所得税代码如下…ifAgt500ampAlt2000taxA0.1–25ifAgt2000ampAlt5000taxA0.15–125软件工程规范、实践与案例分析6由于开发人员的疏忽导致边界值2000对应的所得税没有计算。

如果软件中有诸如数值、速度、字符、地址、位置、尺寸、数量等数据类型那么进行边界分析时可以考虑这些类型的下述特征:

第一个/最后一个最小值/最大值开始/完成超过/在内空/满最短/最长最慢/最快最早/最迟最大/最小最高/最低相邻/最远除了边界值还需要测试边界值附近的取值。

例如:

第一个减1/最后一个加1开始减1/完成加1空了再减/满了再加慢上加慢/快上加快最大数加1/最小数减1最小值减1/最大值加1刚好超过/刚好在内短了再短/长了再长早了更早/晚了更晚最高加1/最低减1另一些该注意的输入:默认空白空值零值和无非法错误不正确和垃圾数据.3场景法第7章软件测试7场景法的基本原理是依据用例中定义的事件流定义测试用例。

以下是RUP中对场景测试的说明。

用于功能性测试的测试用例来源于测试目标的用例。应该为每个用例场景编制测试用例。用例场景要通过描述流经用例的路径来确定这个流经过程要从用例开始到结束遍历其中所有基本流和备选流。

例如下图中经过用例的每条不同路径都反映了基本流和备选流都用箭头来表示。基本流用直黑线来表示是经过用例的最简单的路径。每个备选流自基本流开始之后备选流会在某个特定条件下执行。备选流可能会重新加入基本流中备选流1和3还可能起源于另一个备选流备选流2或者终止用例而不再重新加入某个流备选流2和4。

用例的事件流示例遵循上图中每个经过用例的可能路径可以确定不同的用例场景。从基本流开始再将基本流和备选流结合起来可以确定以下用例场景场景1基本流软件工程规范、实践与案例分析8场景2基本流备选流1场景3基本流备选流1备选流2场景4基本流备选流3场景5基本流备选流3备选流1场景6基本流备选流3备选流1备选流2场景7基本流备选流4场景8基本流备选流3备选流4注为方便起见场景5、6和8只描述了备选流3指示的循环执行一次的情况。

生成每个场景的测试用例是通过确定某个特定条件来完成的这个特定条件将导致特定用例场景的执行。

例如假定上图描述的用例对备选流3规定如下“如果在上述步骤2?6?7输入提款金额?6?8中输入的美元量超出当前帐户余额则出现此事件流。系统将显示一则警告消息之后重新加入基本流再次执行上述步骤2?6?7输入提款金额?6?8此时银行客户可以输入新的提款金额。”据此可以开始确定需要用来执行备选流3的测试用例测试用例ID场景条件预期结果TCx场景4步骤2-提款金额gt帐户余额在步骤2处重新加入基本流TCy场景4步骤2-提款金额lt帐户余额不执行备选流3执行基本流TCz场景4步骤2-提款金额帐户余额不执行备选流3执行基本流第7章软件测试9注由于没有提供其他信息以上显示的测试用例都非常简单。测试用例很少如此简单。

AAAAAA