zoukankan      html  css  js  c++  java
  • bug:论用例健壮性的重要

    最近出了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、不要太自以为是!

    学好python自动化,工作效率顶呱呱
  • 相关阅读:
    JDK内置工具使用(jps、jstack、jmap、jstat)
    解决mybatis嵌套查询使用PageHelper分页不准确
    MySQL变量的使用
    java lambda求和最值
    解决ROS中PLUGINLIB_DECLARE_CLASS错误
    由crt和key文件生成keystore文件
    转载从java进程里dump出类的class文件的小工具--dumpclass
    oracle数据库创建实例
    广告 Spring Boot整合Jasypt增强应用安全
    PostgreSQL10基础(4)插件安装(转载)
  • 原文地址:https://www.cnblogs.com/fenglovellx/p/7116109.html
Copyright © 2011-2022 走看看