测试从零开始-No.6-测试用例设计方法(等价类+边界值)「建议收藏」

测试从零开始-No.6-测试用例设计方法(等价类+边界值)「建议收藏」问题:有时候用selenium操作浏览器,打开多个页面后,在不用的时候,需要关掉,切换页面需要切换句柄,关掉页面后,也需要重新切换句柄,否则页面接着操作元素会出问题解决方法:

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

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

常见的用例设计方法

  • 等价类划分法(适用于输入项少,输入项的属性或者特性相同) 

  • 边界值分析法(适用于有范围约束的情况)

  • 判定表法(适用于有明显的条件及其对应的动作的情况)

  • 因果图法

  • 状态迁移图法(适用于状态随事件而改变的情况)

  • 场景分析法(适合于由事件触发而形成的使用场景,同一事件不同的触发逻辑形成不同的场景,从而形成不同的业务流程(路径),根据覆盖不同的路径来设计测试用例)

  • 正交实验法(适用于多条件或多输入情况)

  • 异常分析法(适用于大多数软件,从经验上判断容易出现错误或缺陷的地方设计用例)

  • 错误猜测法

等价类划分法

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

  • 有效等价类:有效等价类是程序规格说明有意义,合法的输入数据

  • 无效等价类:无效等价类是程序规格说明无意义,不合法的输入数据。

等价类法设计测试用例的步骤:

1、为每个输入划分等价类,得到等价类表,为每个等价类规定一个唯一编号

2、设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类。重  复这一步骤,使得有效等价类均被测试用例所覆盖

3、设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤使得所有无效等价类均被覆盖

等价类划分的原则

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

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

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

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

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

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

等价类表可以参考下图所示:

图片

等价类划分法用例设计实战

根据下面给出的规格说明,进行测试用例的设计。

一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。程序输出:说明这个三角形是普通的、是等腰的、还是等边的。

等价类划分如下:

3条边分别为A,B,C。满足:A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B;

等腰需满足A=B,或B=C,或A=C ;

等边需满足A=B,且B=C,且A=C ;

图片

最终输出的场景如下:

图片

边界值分析法

边值分析方法的理论基础,是假定大多数的错误是发生在各种输入条件的边界上,如果在边界附近的取值不会导致程序出错,那么其它的取值导致程序错误的可能性也很小。

边界值分析使用条件

输入条件明确了一个值的取值范围,或是规定了值的个数

边值点的定义

上点:边界上的点,不区分开闭区间。

离点:就是离上点最近的一个点,如果域的边界是封闭的,离点就在域范围外,如果域的边界是开放的,离点就在域范围内

内点:顾名思义,就是在域范围内的任意一个点 

可通过下面这张图更形象的理解:

图片

再举个案例:

  • 正整数值域[66,88]:

上点就是66,88,并且都是在域内。内点就是域内得任意点,离点是65,89。

  • 正整数值域(66,88]

这种情况上点是66,88,其中一个是域内,一个是域外,内点就是域内的任意点,离点是:67,89。

  • 正整数值域(66,88)

这样的情况上点还是66,88,只是都是在域外,内点还是域内的任意点,离点此时为:67,87。

边界值分析的原则

1、如果输入(输出)条件规定了取值范围,或是规定了值的个数,则应该以该范围的边界内及边界附近的值作为测试用例

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

3、如果程序规格说明中提到的输入或输出是一个有序的集合,应该注意选取有序集合的第一个和最后一个元素作为测试用例

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

    边界值分析方法是对等价类划分方法的补充。长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。

小伙伴看到这,是不是觉得这样写用例写起来很麻烦呢?每次还要画很多的图表之类的,画图表只是一个分析的过程,等熟练之后,在实际工作中,可以根据自己的实际情况忽略某些步骤,只要在最终的测试点中能将这些测试点都考虑进去就行。详细的编写过程只是在初级测试找工作的时候,可能会在笔试题中考到,对相关的概念有个简单的了解就行。

关注公众号【小博测试成长之路】,下期带你了解其他的用例设计方法,后续会以项目实战的方式带大家熟悉。

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

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

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


相关推荐

  • 自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码[通俗易懂]

    自动化测试po模式是什么?自动化测试po分层如何实现?-附详细源码[通俗易懂]一、什么是PO模式全称:pageobjectmodel简称POMPO模式最核心的思想是分层,实现松耦合!实现脚本重复使用,实现脚本易维护性!主要分三层:1.基础层BasePage:封装一些最基础的selenium的原生的api方法,元素定位,框架跳转等。2.PO层:元素定位、获得元素对象,页面动作3.测试用例层:业务逻辑,数据驱动!三者的关系:PO层继承继承层,测试用例层调用PO层!二、非PO模式和PO模式优缺点对比笔者来自公众号:软测之家 非PO模式 PO模式.

    2022年5月27日
    92
  • 16天记住7000单词_百度网盘7天

    16天记住7000单词_百度网盘7天16天7000(第一天)必备 1.WithmyownearsIclearlyheardtheheartbeatofthenuclearbomb. 我亲耳清楚地听到原子弹的心脏的跳动。 2.Nextyearthebeardedbearwillbearadearbabyintherear. 明年,长胡子的熊将在后方产一头可爱的小崽. 3.Earl…

    2022年8月24日
    8
  • vim怎么高亮显示_vim配置教程

    vim怎么高亮显示_vim配置教程经常使用SecureCRT在linux下修改一些配置文件,使用vi打开总是一个颜色,找起来比较头大。因为vi不支持高亮,所以需要使用vim。安装vim:yuminstall-yvim(ubuntu使用apt-get)全局(所有用户)vim配置文件路径:/etc/vimrc当前用户vim配置文件路径:~/.vimrc如果存在该文件,则备份一下,以免以后找不到。在vimrc文件中输入:synta…

    2022年9月29日
    2
  • 深入理解Java类加载器(ClassLoader)[通俗易懂]

    深入理解Java类加载器(ClassLoader)[通俗易懂]【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权)http://blog.csdn.net/javazejian/article/details/73413292出自【zejian的博客】关联文章:深入理解Java类型信息(Class对象)与反射机制深入理解Java枚举类型(enum)深入理解Java注解类型(@Annotation)深入理解

    2025年9月22日
    5
  • 三分钟学习Java泛型中T、E、K、V、?的含义

    点击上方☝Java编程技术乐园,轻松关注!及时获取有趣有料的技术文章做一个积极的人编码、改bug、提升自己我有一个乐园,面向编程,春暖花开!泛型是Java中一个非常重要的内容,对于Jav…

    2022年2月28日
    67
  • python进阶(3)json文件与python字典的转化[通俗易懂]

    python进阶(3)json文件与python字典的转化[通俗易懂]序列化与反序列化按照某种规则,把内存中的数据保存到文件中,文件是一个字节序列,所以必须要把内存数据转换成为字节序列,输出到文件,这就是序列化;反之,从文件的字节恢复到内存,就是反序列化;pytho

    2022年7月31日
    5

发表回复

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

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