软件测试用例的设计方法_设计测试用例的依据

软件测试用例的设计方法_设计测试用例的依据测试用例设计方法,等价类划分法,边界值分析法,错误推测法,因果图法,判定表驱动法,三角形问题用例设计

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

软件测试用例设计之等价类划分法

一、等价类划分法的定义

把程序的输入域和输出域划分成若干部分,然后从各个部分中选取若干代表性数据作为测试用例。这些数据在测试中的作用等价于其所属部分的其他值。

二、等价类划分法的术语

等价类:输入域的各个子集,该子集中所有数据在测试中的作用都是等效的。从等价类中选取个别数据用于测试的效果和该子集中所有数据用于测试的效果一样。
有效等价类:对于程序的规格说明来说合理的,有意义的输入数据集合,有效等价类可检验程序是否实现了规格说明书中所规定的功能和性能。
无效等价类:对于程序的规格说明来说不合理的,没有意义的输入数据集合。

三、等价类划分原则

  1. 确定了输入条件取值范围或值的个数,可以划分出1个有效等价类和2个无效等价类。
    例如:输入学生成绩,输入域为[0,100],有效等价类为[0,100],无效等价类为(-∞,0)和(100,+∞)
  2. 输入条件规定了输入值的集合,例如条件中规定了“必须如何”的绝对条件,可以确定1个有效等价类和1个对立无效等价类。
    例如:规定输入为正整数,有效等价类为所有正整数,无效等价类为所有非正整数
  3. 输入条件的数据类型为布尔类型,可以确定1个有效等价类和1个无效等价类,有效等价类为true,无效等价类为false。
  4. 规定了输入数据的一组值,假定n个,程序要对这n组值分别处理,可以划分出n个有效等价类和1个无效等价类。
    例如:规定输入数据只能为中文,英文或阿拉伯文,则这三种分别为3个有效等价类,除这3种以外的任何字符集合为1个无效等价类
  5. 在规定了输入数据必须遵守规则的情况下,可划分出1个遵守规则的有效等价类和若干个从不同角度违反规则的无效等价类。
  6. 若已划分出的等价类中各元素在程序中的处理方式不同,则应再将该等价类进一步划分为更小的等价类。

四、实例演示(三角形问题和档案管理系统问题)

实例一:某程序规定,输入三个整数a,b,c分别作为三边的边长构成三角形,通过程序判定所构成的三角形的类型,例如,三角形为一般三角形,等腰三角形,等边三角形。
首先通过分析输入域和输出域,划分出等价类。
有效等价类:
根据输入数据得出条件:①三个数②整数③正数④非0数
根据输出数据得出条件:⑤等边⑥等腰⑦两边之和大于第三边
在这里插入图片描述
在这里插入图片描述

实例二:假设有一个档案管理系统,要求用户输入以年月表示的日期,假定日期限定1990年1月~2049年12月,并确定日期由6位数字字符组成,前4位表示年,后2位表示月,用等价类划分法设计测试用例,测试日期检查功能。
有效等价类:①6位数字字符②年范围[1990,2049]③月范围[1,12]
在这里插入图片描述

软件测试用例之边界值分析法

一、边界值分析法定义

边界值分析法通常作为对等价类划分法的补充,其测试数据来自于等价类的边界。边界值分析法是对输入或输出的边界值进行测试的黑盒测试方法。

二、等价类划分法和边界值分析法的区别

1.边界值分析法首先确定边界,然后选取大于,刚好等于,小于边界值的数据进行测试。而不是选取等价类中的典型值或随机值进行测试。
2.边界值分析法不止要考虑输入的边界,也要考虑输出的边界。

三、内部边界值

在设计测试用例过程中,某些边界值不需要呈现给客户,或者客户很难注意到,但是确实属于检验范畴,称为内部边界值条件或者子边界值条件。
内部边界值条件主要有以下几种:数值的边界值检验,字符的边界值检验和其他。

四、设计测试用例的原则

1. 如果输入条件规定了边界值,就应该取刚达到这个范围的值和刚超过这个范围的值作为边界值测试数据。
例如:某程序规格说明中规定:“重量在10公斤到50公斤范围内的邮件,其邮费计算公式为…”,这里应该取重量为10和50,还应该取9.99,10.01,49.99,50.01作为边界值测试数据。
2. 如果输入条件规定了值的个数,就应该取比最大个数多1,最大个数,最小个数,比最小个数少1作为边界值测试数据。
例如:某程序规格说明书中规定:“一个输入文件应包括1~255个记录”,这里应该取0,1,255,256作为边界值测试数据。
3. 应设计测试用例使输出达到边界值及其左右的值。
例如某程序规定:“每次最少显示1条,最多显示4条”,就应该取使输出达到0条,1条,4条,5条作为边界值测试数据。
4. 如果程序规格说明书给出的输出域或者输入域是一个有序集合,则应该选取该集合的第一个数据和最后一个数据作为边界值测试数据。
5. 如果程序中使用了一个内部数据结构,则应该选择这个内部数据结构边界上的值作为边界值测试数据。
6. 分析规格说明书,找可能的边界值测试条件。

五、边界值分析法实例(三角形问题)

假设规定输入a,b,c三条边的数值范围为[50,100]
则边界值分析法得出补充测试用例如下
在这里插入图片描述

软件测试用例设计之错误推测法

一、错误推测法定义

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

二、错误推测法基本思想

列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据这些设计测试用例。
例如输入数据和输出数据为0的情况,输入空格的情况,输入只有1行的情况。可根据这些设计测试用例。

三、错误推测法实例

  • 实例之在日历上添加提醒

测试点:
(1)提交操作时限
(2)未到达的日期是否可以选择
(3)前后时间限制
(4)系统时间的调整

  • 实例之登录页面密码安全性问题

测试点:
(1)复制黏贴密码,密码是否明文显示
(2)复制密码的时候能不能复制出来
(3)配置文件中能否看到密码

  • 实例之输入数组进行排序

测试点:
(1)输入空数组
(2)输入含1个元素的数组
(3)输入的数组中已按顺序排序
(4)输入的数组中已按逆序排序
(5)输入数组中的部分或全部元素相同

  • 实例之手机通话功能

测试点:
(1)无SIM卡时进行呼叫(紧急呼叫除外)
(2)插入已经欠费的SIM卡进行呼叫
(3)射频器件损坏或信号区域外插入有效SIM卡进行呼出
(4)网络正常,插入SIM卡也正常,呼出无效号码
(5)网络正常,插入有效SIM卡,使用快速拨号功能呼出设置无效号码的数字

四、错误推测法的优势和不足

优点:测试人员能够快速且容易地切入,体会到程序的易用程度
缺点:覆盖面不广,丢失大量测试点,该测试行为带有一定主观性,如果外部特性本身设计有问题或者规格说明错误,该方法无法发现
错误推测法只能作为一种辅助的手段,不是系统的测试方法。

软件测试用例设计之判定表驱动法

一、判定表的定义

判定表适用于多逻辑条件下执行多操作的情况。在所有的黑盒测试方法中,判定表驱动法是最严格,最具有逻辑性的测试方法。

二、判定表的组成部分

条件桩:根据题目列出的所有条件。(通常认为条件的次序无关紧要)
动作桩:根据题目列出的所有操作。(通常认为条件的次序无关紧要)
条件项:对各个条件桩的取值
动作项:对各个动作桩的取值
规则:每一组条件项和动作项组合形成一条规则。
合并:对比多条动作项相同,条件项相似的规则,如果发现这些规则里某个条件桩或者某几个条件桩不管取什么值都不影响结果,则这些规则就可以合并。
如下面的例子,初始判定表的规则3,5,6,7就可以合并成最终判定表的规则2,即表示不管条件桩①②满不满足,只要条件桩③满足,动作桩④就满足。最终判定表的规则1和规则2也可以通过读题直接得出。
在判定表中用“-”表示结果与该条件桩的取值无关。

三、判定表驱动法设计步骤

  • 根据软件规格说明书,列出所有条件桩和动作桩
  • 确定规则的个数,如果有n个条件桩,每个条件桩有2个取值(0,1),那么初始判定表中就有2的n次方条规则。
  • 填入条件项。
  • 填入动作项,得到初始判定表。
  • 合并相似规则或相同动作。

四、实例

对于功率大于50马力的机器且维修记录不全或者已运行10年以上的机器,应给与优先维修处理,请建立判定表。
列出条件桩:
①功率大于50马力
②维修记录不全
③已运行10年以上
列出动作桩:
④优先维修处理
⑤正常维修处理
初始判定表:
在这里插入图片描述
最终判定表:
在这里插入图片描述

五、因果图和判定表的区别

判定表和因果图都适用于多逻辑条件下多动作的测试对象,但判定表并非因果图的辅助,因果图用于逻辑比较复杂的测试对象,可以先画出因果图,然后得出判定表。对于逻辑比较简单的测试对象,可以直接画出判定表。

六、判定表驱动法的使用条件

  • 规格说明以判定表形式给出,或者很容易得出判定表。
  • 条件的排列顺序不影响执行哪些操作。
  • 规则的排列顺序不影响执行哪些操作。
  • 每当某一规则的条件已经满足,并确定要执行的操作后,不必检验其他规则。
  • 如果某一规则的得到满足需执行多个操作,这些操作的执行顺序无关紧要。

注:这5个条件的目的是为了使操作的执行完全依赖于条件的组合,就算不满足这些条件,也可以使用判定表驱动法,只不过需要补充用例。

七、判定表驱动法的优点

  • 全面地列出所有可能性,避免遗漏
  • 是最具有逻辑性最严格的测试用例设计方法,适用于复杂逻辑下多输入输出的情况。

八、判定表驱动法的缺点

不能表达重复执行的动作,例如循环结构。

软件测试用例设计之因果图法

一、因果图法定义

因果图法是利用图解法分析多个输入条件组合情况,考虑输入条件之间的约束关系,从而设计测试用例的方法。

二、因果图常用符号

Ci:原因
Ei:结果

注:其中i取0表示状态不出现,i取1表示状态出现,若有多状态可取大于1的值。

三、因果图的四种关系

恒等关系,若C1发生,则E1发生,否则E1不发生。
在这里插入图片描述
非,若C1发生,则E1不发生。
在这里插入图片描述
或,若C1,C2,C3有1个发生,则E1发生,只有一个都不发生,则E1不发生。
在这里插入图片描述
且,若C1,C2,C3都发生,则E1发生,只要有1个不发生,E1都不发生。
在这里插入图片描述

四、因果图约束条件

输入条件互相之间的约束:

  • E互斥:a,b不会同时发生,最多有1个发生,比如性别为男和女,只能选1个
  • I包含:a,b,c中至少有1个发生
  • O唯一:a,b中有且仅有1个发生,比如性别为男和女,只能选一个
  • R要求:a,b中当a出现时,b也必须出现。

输出条件互相之间的约束:

  • M强制:a发生时,b不可能发生,a不发生时,b随意。

五、因果图法设计步骤

(1)提取因果关系,赋予标志符:从软件规格说明书上找出所有输入条件和输出结果,并用CI和EI分别表示。
(2)提取因果关系,表示因果图:分析软件规格说明书中的逻辑,找出原因与结果之间,原因与原因之间的关系,并画出因果图。
(3)标明约束条件:由于环境关系,有些原因和原因,原因和结果之间的组合情况不可能出现,用一些记号标明约束条件。
(4)把因果图转换成判定表。
(5)根据判定表设计测试用例。

六、实例

某软件规格说明书包含这样的要求:输入的第一个字符必须是#或*,第二个字符必须是一个数字,在此情况下进行文件修改。若第一个字符不是#或*,给出信息N,若第二个字符不是数字,给出信息M。
输入条件:
C1:第一个字符是#
C2:第一个字符是*
C3:第二个字符是一个数字
输出条件:
E1:给出信息N
E2:允许修改
E3:给出信息M
画出因果图,图中⑩表示一种中间状态,即表示C1和C2形成的一种结果(输入的第一个字符是#或*)
在这里插入图片描述
判定表:
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/183400.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 安全帽识别系统-智慧工地的守护者

    安全帽识别系统-智慧工地的守护者安全帽识别系统能够实时对未佩戴安全帽的行为发出警告,及时提醒监理人员处理,为作业人员筑起一道人工智能的安全防火墙。鹰眸安全帽识别系统面世之后,在业界引起了不小的震动,相关企业不但积极推广,还提出了许多建设性的意见,毕竟将人工智能的深度学习应用于视频分析还是很新的事物,那么鹰眸安全帽识别系统能做什么,在此与大家一起分享,希望起到抛砖引玉的作用。一、鹰眸安全帽识别系统通过视频实时分析工作区域,如…

    2022年5月15日
    47
  • squirrel校园二手交易平台

    squirrel校园二手交易平台squirrel校园二手交易平台(适合寻找SSM项目练手的你。)项目起源:  期末的课程设计,三人一组,我和两个舍友,一时起兴,决定做一个校园二手交易平台,一开始兴致与激情满满,可是后期时间上的冲突,让我们三个人对于这个项目有点累。  这个项目刚定题两天,BezosLee由于通过了360的网上在线笔试,收到了360公司的免费培训邀请,要去北京的360总部进行培训一周,值得庆…

    2022年6月15日
    26
  • 页面优化——重绘和回流[通俗易懂]

    页面优化——重绘和回流[通俗易懂]一、写在前面页面优化在面试的过程中经常遇到的问题,今天就来总计一下重绘和回流的问题。二、重绘和回流是什么我们都知道一个页面从加载到完成,首先是构建DOM树,然后根据DOM节点进行几何布局形成render树(渲染树),当渲染树构建完成后,页面就根据DOM树开始布局,渲染树也根据设置的样式渲染这些节点。在这一过程中,比如我们删除DOM节点,修改一个元素的宽高,页面布局发生变化,DOM树也发生变化,那么肯定要重新构建DOm树,而DOM树和渲染树紧密相连,DOM树渲染完了,渲染树也会随之进行渲染,这个过程就

    2025年7月9日
    4
  • 要想混得好,必须认识21个人!

    要想混得好,必须认识21个人!

    2022年1月18日
    66
  • Django(15)外键和表关系[通俗易懂]

    Django(15)外键和表关系[通俗易懂]外键删除操作如果一个模型使用了外键。那么在对方那个模型被删掉后,该进行什么样的操作。可以通过on_delete来指定。可以指定的类型如下:CASCADE:级联操作。如果外键对应的那条数据被删除了,

    2022年7月28日
    5
  • 谷歌地球(google earth)手机版_谷歌地球官网下载

    谷歌地球(google earth)手机版_谷歌地球官网下载点击下载来源:谷歌地球(GoogleEarth)7.3.2.5776谷歌地球(GoogleEarth)是一款Google公司开发的虚拟地球仪软件,它把卫星图像、地图、百科全书和飞行模拟器整合在一起,布置在一个地球的三维模型上。通过它我们可以找到你想找到的地方,当你定位到一个具体的地方的时候,再点击的时候,你都能看清那个地方的建筑,特别真实,有种身临其境的感觉。当你打开谷歌地球(Googl…

    2026年1月23日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号