关于测试用例

上一篇 / 下一篇  2022-07-21 11:43:14 / 个人分类:测试

一.测试用例的基本要素

1.什么是测试用例

这个在前面其实已经说过了,具体可以看软件测试的基本概念 这篇博客,这里就简单介绍一下:测试用例是向被测试系统发起的一组集合,包括测试环境,测试步骤,测试数据,预期结果!

2.为什么软件测试人员要写测试用例?

这里有如下几个原因:

  • 测试用例是测试执行的依据;

  • 测试用例可以复用,在进行回归测试的时候就不用再重新编写了;

  • 测试用例可以衡量需求的覆盖率;

  • 后人可以借鉴;

  • 手工测试用例是自动化测试的依据

二.测试用例的设计方法

1.基于需求设计测试用例

需求是测试人员进行测试的依据,测试人员分析需求,验证需求的合理性和正确性,无二义性,从需求当中提取出测试项,根据测试项进行进一步的细分,提取出测试点,来编写测试用例,可以有以下方面的考虑:

  • 从界面开始进行测试(符合UI设计稿);

  • 验证软件的功能,把业务相关的功能穿起来进行测试(有相关性的功能),而不能只关注某一个孤立的功能;

  • 一个功能的不同的输入和相应的不同的输出;

  • 功能之间的交互性(同一个系统不同角色之间的交互类似于卖家和买家);

  • 异常功能的测试;

  • 功能用到的算法的验证(这个就需要去看代码层面了);

  • 从易用性,兼容性性能等几个方面去考虑.

  • 非功能性测试:非功能测试就是测试在软件本身有的功能之上做一些限制,非功能测试主要有易用性,兼容性,性能,安全性,可移植性,可靠性,可维护性;另外不同应用的软件对于这些非功能性的要求还是不太一样的:

假设是面向客户端的软件,类似于Word,对于性能,安全性要求一般都不太高,而对于兼容性,可移植性,稳定性就会比较高;

假设是面向企业内部的软件,类似于飞书,其对兼容性,性能要求就不是很高,但是对于功能性,可靠性要求就会很高;

假设是大型商用软件,类似于微信,QQ,其对性能,兼容性,可靠性,可移植性,安全性要求就会很高!

因此针对不同的软件,其非功能性上也是不一样的!

2.具体设计测试用例的方法

2.1.等价类

我们可以根据输入(特殊情况下才考虑输出),把输入划分成若干个等价类,然后从每一个等价类中选择一个或多个测试用例来进行测试,如果这个测试用例通过,我们就说这个测试用例代表的等价类测试通过!通过这样的方法,我们就可以解决测试用例无法穷举的情况!

另外等价类也可以分成有效等价类(符合用户需求数据规格说明的数据集合)和无效等价类(不符合用户需求数据规格说明的数据集合),而如果进行测试的话,有效等价类和无效等价类都是需要进行测试的,保证"万无一失"!

做一个简单的练习:假设一个用户名是必填的6-15个其字符类型为A-Z不区分大小写:
有效等价类:6~15个大写字符,6 ~15个小写字母.6 ~ 15个大小写混合
无效等价类:小于6个字符,大于15个字符,6 ~ 15个其他字符,数字+字母,数字+特殊字符,特殊字符+字母

2.2.边界值

针对输入和输出的边界进行测试用例的设计,假设是6 ~ 15位,5不合格,6,7合格,14,15合格,16不合格;因此边界值不仅要区边界上的值,而且要取边界两边的值,看另外边界值和等价类是结合在一起进行测试用的设计的!

2.3.错误猜测法

这个方法主要是根据测试人员的经验,以及知识的积累,猜测某一块功能是否存在问题,有针对性的进行测试用例的编写,这是一个探测性测试,针对性比较强,比较依赖测试人员的个人水平,例如搜索框中的空格问题,就需要测试人员来进行猜测测试!

2.4. 场景法

很多软件不同的场景,是基于不同的事件的触发,不同事件的触发,导致场景走向不同的事件流,而不同的功能点串起来形成一个场景,不同的功能点又有不同的输出,不同的输出导致不同的测试场景,这里可以模拟一个ATM的取款场景: 插卡 – 输入密码 – 输入取款钱数 – 取款 – 退卡,然后根据每一个功能就可以有很多的测试用例:

  • 插卡:插错卡(各种其他的卡,非银行卡),卡插反了,非本银行的银行卡,银行卡的磁条无法识别,卡损坏了,卡号冻结,账户锁死了,网络不好,无法识别…

  • 输入密码:不输密码直接确认,输入错误的密码,输入错误的密码,密码输入错误超过三次,账户锁定,密码输入框是否支持删除输入操作,测试密码是否**…

  • 输入取款钱数:输入小于卡余额的钱数,输入大于卡余额的钱数,输入等于卡余额的钱数,不输入取钱按钮是否可以执行…

  • 取款:输入小于等于卡余额的钱数取款成功,输入大于卡余额的钱数取款失败并显示余额不足,超过每日取款余额的上限,超过每日取款次数的上限…

  • 退卡:取钱后正常退卡,操作超时吞卡…

  • ATM机:ATM一切正常,ATM机出现异常(ATM余额不足,ATM机断电,断网,硬件故障,软件系统崩溃)无法执行上面功能,发生异常情况ATM机是否支持事务回滚…

上面都只是一些简单的测试点,不是具体的测试用例,如果测试用例的话,需要更加具体,而这个就是场景法的具体用处!

2.5.因果图法

因果图法是一种逻辑图,恒等,与,或,非,用因果图来设计测试用例,叫做因果图法,其的使用场景:当我们有很多输入,不同的输入或者不同的输入组合针对有不同的输出,此时我们就可以用因果图法来进行测试用例的设计,下面来看一下各种因果图:

恒等:

1.png

与:多个不同的输入为真的时候,输出才为真(类似于有车有房->结婚其他情况都是不可以的,但是其他的情况也需要考虑到):

2.png

或:多个输入其中一个为真,输出为真(类似于有车有房其中一个为真就能结婚,但是其他的情况也需要考虑)

3.png

非:

4.png

而因果图设计测试用例的步骤:

  1. 分析出所有的输入和输出;

  2. 找出输入和输出之间的关系;

  3. 根据关系图画出因果图;

  4. 根据因果图画出判定图;

  5. 根据判定图写出测试用例~

2.6.正交法

根据正交法来设计测试用例,就是从大量的试验数据(测试数据)来根据正交原则取出最优的数据的组合,根据最优的数据组合试验的结果,来分析整个测试的结果,这个使用的不多,因此就不过多介绍了!


TAG:

 

评分:0

我来说两句

Open Toolbar