软件测试(纯概念篇之测试用例)

测试用例

测试用例(Test Case,TC),在测试执行前设计一套详细的测试方案,包括测试环境,测试步骤,测试数据和预期结果。

编写测试用例的唯一标准是用户需求,具体的参考资料是《需求规格说明书》

测试用例包括:

  1. 测试用例编号
  2. 测试用例名称
  3. 测试用例设计者
  4. 软件版本号
  5. 测试目的
  6. 参考信息
  7. 测试条件
  8. 测试环境
  9. 输入数据
  10. 操作步骤
  11. 预期结果

测试用例设计步骤

黑盒测试的测试用例编写

黑盒测试又称数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求。

由于黑盒测试不需要了解程序内部结构,所以许多高层测试,如确认测试、系统测试、验收测试都采用黑盒测试。

黑盒测试能发现以下几类错误:

  • 功能不对或功能遗漏
  • 界面错误。
  • 数据结构或数据库访问错误。
  • 性能问题。
  • 初始化和终止错误。

黑盒测试方法:

  • 等价类划分
  • 边界值划分
  • 错误推测法
  • 因果图法
  • 正交表试验法
  • 场景法
  • 功能图

1.等价类划分

等价类划分的步骤

  • 先考虑输入数据的数据类型(合法和非法的)
  • 再考虑数据范围(合法类型中的合法区间和非法区间)
  • 画出示意图,区分等价类
  • 为每一个等价类编号
  • 从一个等价类中选择一个测试数据构造测试用例

例子:计算两个1~100之间整数的和

如果要进行完全测试,一共要设计多少个测试用例呢?

加数1 有1~100共计100个取值,加数2 也有1~100共计100个取值,所以他们之间的组合就有100*100=10000种组合可能,但这只是测试了正常范围内的取值。如果用户输入的数据不在1~100之间呢?因为测试量太庞大了,穷举测试肯定不可能,由此引入了等价类划分思想。

等价类:是指某个输入域的子集合。

等价类划分为:

  1. 有效等价类:符合《需求规格说明书》,输入合理的数据集合
  2. 无效等价类:不符合《需求规格说明书》,输入不合理的数据集合

我们将输入域分成了一个有效等价类(1~100)和两个无效等价类(<1,>100),并为每一个等价类进行编号,然后我们就可以从每一个等价类中选取一个代表性的数据来测试,设计如下表所示
的测试用例:

编号 所属等价类 加数1 加数2
1 2(有效等价类) 3 40 43
2 1(无效等价类) 0 -1 提示“请输入1~100之间的整数”
3 3(无效等价类) 110 101 提示“请输入1~100之间的整数”

到这里我们的工作似乎结東了,还需要设计其他测试用例吗?

刚刚输入的数据都是整数,如果输入小数,甚至字母怎么办?

这说明刚才的等价类还不完善,我们只考虑了输入数据的范围,没有考虑输入数据的类型(我们认为只输入数据,可是最终用户输入什么都有可能)。综合考虑输入数据的类型和范围划分等价类,如下图所示:

所以,等价类划分的测试用例(扩展)

编号 所属等价类 加数1 加数2
1 2(有效等价类) 3 40 43
2 1(无效等价类) 0 -1 提示“请输入1~100之间的整数”
3 3(无效等价类) 110 101 提示“请输入1~100之间的整数”
4 4(无效等价类) 1.2 1.2 提示“请输入1~100之间的整数”
5 5(无效等价类) A B 提示“请输入1~100之间的整数”
6 6(无效等价类) 提示“请输入1~100之间的整数”
7 7(无效等价类) 空格 空格 提示“请输入1~100之间的整数”
8 8(无效等价类) 提示“请输入1~100之间的整数”

2.边界值划分

程序的很多错误发生在输入或输出范围的边界上,因此针对各种边界情况设置测试用例,可以发现不少程序缺陷。

设计方法:

  • 确定边界情况(输入或输出等价类的边界)
  • 选取正好等于,刚刚大于或刚刚小于边界值作为测试数据

我们还以等价类中讲的例子来讲解边界值的思想。

输入要求是1~100间的整数。因此自然产生了1和100两个边界,我们在设计测试用例的时候,要重点考虑这两个边界问题。

根据边界值方法,测试用例修改如下:

编号 所属等价类 加数1 加数2
1 2(有效等价类) 1 1 2
2 2(有效等价类) 100 100 200
3 1(无效等价类) 0 -1 提示“请输入1~100之间的整数”
4 3(无效等价类) 110 101 提示“请输入1~100之间的整数”
5 4(无效等价类) 1.2 1.2 提示“请输入1~100之间的整数”
6 5(无效等价类) A B 提示“请输入1~100之间的整数”
7 6(无效等价类) 提示“请输入1~100之间的整数”
8 7(无效等价类) 空格 空格 提示“请输入1~100之间的整数”
9 8(无效等价类) 提示“请输入1~100之间的整数”

3.错误推测法

基本思想:
利用直觉和经验猜测出出错的可能类型,列举出程度中所有可能的错误和容易发生错误的情况,基本思想是列举出可能犯的错误或错误易发生的清单,然后根据清单编写测试用例;

这种方法很大程度上是凭经验进行的,即凭人们对过去所作测试结果的分析,对所揭示缺陷的规律性作直觉的推测来发现缺陷。

4.因果图法

因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。

利用因果图导出测试用例需要经过以下几个步骤:

  • 分析程度规格说明的描述中,哪些是原因哪些是结果。原因常常是输入条件或输入条件的等价类,而结果是输出条件。
  • 分析程度规格说明的描述中语义内容,并将其表示成连接各个原因与各个结果的“因果图”。
  • 标明约束条件。由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的
  • 把因果图转换成判定表
  • 为判定表中的每一列表示的情况设计测试用例。

基本图形符号:

  • 恒等:若原因出现,则结果出现;若原因不出现,则结果不出现。
  • 非(~):若原因出现,则结果不出现;若原因不出现,则结果出现。
  • 或(V):若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现。
  • 与(^):若几个原因都出现,结果才出现;若其中有一个原因不出现,则结果不出现。

约束符号:

  • E(互斥):表示两个原因不会同时成立,两个中最多有一个可能成立
  • I(包含):表示三个原因中至少有一个必须成立
  • O(惟一):表示两个原因中必须有一个,且仅有一个成立
  • R(要求):表示两个原因,a出现时,b也必须出现,a出现时,b不可能不出现
  • M(屏蔽):两个结果,a为1时,b必须是0,当a为0时,b值不定

例子
有一个处理单价为 2.5 元的盒装饮料的自动售货机软件。若投入2.5元硬币。按 “可乐",“啤酒”,或“奶茶”按钮。相应的饮料就送出来。若投入的是3元硬币。在送出饮料的同时退还5角硬币。

分析:

原因(输入):
①投入2.5元硬币
②投入3元;
③按“可乐”按钮;
④按“啤酒”按钮
⑤按“奶茶”按钮。

中间状态:
①已投币
②已按钮

结果(输出):
①退还5角硬币;
②送出“可乐”饮料;
③送出“啤酒”饮料;
④送出“奶茶”饮料

根据原因和结果,我们可以设计这样一个因果图:

因果图转换为判定表:

根据判定表设计测试用例:


5.正交表试验法

正交试验设计法,是一种成对测试交互的系统的统计方法。它提供了一种能对所有变量对的组合进行典型覆盖(均匀分布)的方法。可以从大量的试验点中挑出适量的、有代表性的点,利用“正交表”,合理的安排试验的一种科学的试验设计方法。

正交表的构成:(行数(水平数因素数)如:I8(27))

  • 行数:正交表中的行的个数,即试验的次数,也是我们通过正交实验法设计的测试用例的个数。
  • 因素数:正交表中列的个数,即要测试的功能点。
  • 水平数:任何单个因素能够取得的值的最大个数,即要测试功能点的取值个数。

例子

根据 Powerpoint的打印功能的描述设测试用例。功能描述如下:
打印范围分:全部,当前幻灯片,给定范围
打印内容分:幻灯片,讲义,备注页,大纲视图
打印颜色/灰度分:颜色,灰度黑白
打印效果分:幻灯片加框,幻灯片不加框

分析:
根据以上提到的功能说明,构造因子状态表,得到因子状态
编号|所属等价类|加数1|加数2|和

状态/因素 A打印范围 B打印内容 C打印颜色/灰度 D打印效果
0 全部 幻灯片 颜色 幻灯片加框
1 当前幻灯片 讲义 灰度 幻灯片不加框
2 给定范围 备注页 黑白
3 大纲视图

将中文字转换成字母的因子状态表:

状态/因素 A B C D
0 A1 B1 C1 D1
1 A2 B2 C2 D2
2 A3 B3 C3
3 B4

选择正交表的分析:
1、表中的因素数 >= 4
2、表中至少有4个因素数的水平数 >= 2;
3、行数取最少的一个。
4、从正交表公式中开始查找,结果为:L16(45)

注;此案例中有四个被测对象,每个被测对象的状态都不一样。

用字母代替的正交表为:

得到的测试用例如下:


在实际测试过程中,我们往往需要综合各种测试技术。

全部评论

相关推荐

1.第一种人呢以92和计算机强双非(四邮四电)偏多,这种人呢,喜欢把自己的学校称为“大专”,极力在交流时贬低自己的学历,放大自己学历的缺点(如牛客经典贴,双非秋招oc美团,点开发现是985硕士🤣🤣🤣),说的自己学校好像比双非认可度还低,好像这样才能突出自己多么牛逼,克服了多少困难,技术有多强,但你要是说想双非考研去他们学校,他们又要狠狠打压你,告诉考他们学校多难了🤣🤣🤣。从92到大厂明明是证明自己一直优秀的一条路,你不走,你非要故意恶心自己也恶心别人,何必呢?2.第二种人以像我一样的双非同学偏多,大多学历比较低,可能又带有中大厂实习。他们会在你交流的时候,十分刻意的强调自己是弱双非或者学院本,再不经意透露自己在某某大厂实习。等着群聊里响起“原来是xx(大厂名字)✌🏻啊,给你跪了😭”,他们便心满意足了。不用反驳,因为我之前也是这种人,现在也有这种倾向😆😆😆。3.第三种人更是神人,跟这种人交流时,你会觉得对方已经被美国植入芯片控制了,张嘴闭嘴只有膜膜膜,羡慕羡慕羡慕。上到拿到大厂offer,下到喝一杯奶茶,他们都说羡慕。不知道他们的生活过得有多么悲惨,连喝杯饮料都到了羡慕的地步🤣🤣🤣。天天就是在群里面互相吹捧,互相羡慕,不知道交流起来有什么意思。4.第四种人则是第一种人的对立面,我有时候觉得是第四种人太多才会导致第一种人的出现。这种人天生带着对92的恨。仿佛学计算机没有拿到offer全是92导致的。他们是小说里被陷害的白莲花女主,92则是夺走他们人生的恶毒女配。在他们的眼中,他们的技术要比92好一百倍,但是所有企业都识别不了他们这匹千里马。实际自己从来没想过,在ai与辅导课程普及的当日,所谓的计算机,早已经没有了任何的技术壁垒,否则也不会有那么人转码了😂。这是那天回家路上发抖音的,讨论不少,有赞同有不赞同的,其实有时候也在想自己言论是否偏激。今天遇到朋友问我好久没更新牛客了,就搬了上去。其实很简单,加了交流群之后,发现交流的质量参差不齐,有些实在言之无物,想了想自己也会有这样的问题。自己也在建交流群,希望能避免这样的现象吧
wu970:交流群不就是一群人互相装逼和加装谦虚吗
如何排解工作中的焦虑
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务