论用例健壮性的重要

Posted 凤凤的笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论用例健壮性的重要相关的知识,希望对你有一定的参考价值。

最近出了2个类似问题,此处写下,以作为警醒

问题1:

背景:电商类网站,为了增加用户回流,增加用户购买力度,做了一个和用户等级相关活动

需求:用户等级为g0 -g5,现在有一批代金券有等级领取限制。用户等级和代金券等级相同时,用户可领取到这张代金券;否则代金券显示“等级不符不可领取”。

于是我设计用例时这样的:

代金券领取等级: 代金券1(领取等级0),g1(领取等级1)

用户等级:user1(用户等级go) , user2(用户等级g1)

即可以实现以下场景:

user1 --> 代金券1 ,等级相同,可以领取

user1  -->代金券2,等级不同,不能领取

user2  --> 代金券1,等级不同,不可领取

user2  -->代金券2,等级相同,可以领取

实际测试时,按上诉用例进行覆盖是没问题的,但是在实际测试过程中,我有一个g5的用户,在使用g5这个用户进行用户覆盖的时候却出了问题,开发由于xxxx原因在处理g5等级用户时存在问题

然后我尝试使用g4的用户去覆盖用例没问题,当时庆幸有这样一个g5的用户让我发现了问题。


问题2:

做接口测试,里面有很多逻辑判断

其中一条判断规则: 必须要有A。A直接从数据库读取对应字段

这个A在数据库的定义:int(11)

我一看int(11),这明显就指A的个数嘛

设计用例时,针对A,我就设计了两个数,0和1

实际验证时,也与预期结果一致。

联想到上次没有考虑健壮性,可能存在的问题,针对A用例改成 0,1,2

预期:2应该和1结果保持一致

实际:2和0的结果保持一致

询问开发后,A这个字段含义:0表示 没有A,1表示有A(并不是指A的个数)

 


虽然问题都在测试阶段等到验证并解决,但问题仍值得反思:

1、对于有范围值的需要按边界值设计用例,另外还需要考虑用例的健壮性!

2、不要太自以为是!

 

以上是关于论用例健壮性的重要的主要内容,如果未能解决你的问题,请参考以下文章

自动化测试用例的原子性#yyds干货盘点#

关于Java健壮性的一些思考与实践

测试用例的编写原则

在软件工程中“用例”和“用例图”有啥区别是啥?

软件测试复习总结

论测试用例的重要性