zoukankan      html  css  js  c++  java
  • 论测试用例完整性的重要性

    今天,遇到了这样一个问题。这个问题经历了两轮测试并没有被发现。

    背景

    这次测试的内容是一个活动页面,需求的情景是从app内访问链接并进入到这个活动页面,伴随着自动登陆(不需要用户输入用户名和密码,对app的用户登录状态进行获取并进行自动登录)。

    问题

    只有第一次访问活动页面时会返回50x,之后再进入活动页面都不会再返回50x,一切正常。

    没能发现问题的原因

    因为每天的测试工作要大量的切换hosts,所以很容易出现由于浏览器或app缓存所导致的问题。一般通过刷新、清理缓存能够解决的问题,我们大多数情况认为是环境导致的,不属于开发的代码问题。恰恰是这样的想法,配合上这个问题逻辑上也只会出现一次的隐蔽性,导致了之后都没能再发现这个问题。归根结底,是由于测试用例的设计没有贯穿整个测试需求流程逻辑的始终。

    反思

    想要发现这样的bug,首先要对接口返回的数据非常敏感。如果不通过配合Fiddler进行实时抓包跟踪的黑盒测试,我们很难由表及里的发现这个问题。换而言之,想要发现这个问题,从单纯的黑盒测试上来讲,有两种办法:

    1. 大量的用户试验;(无针对性,盲目不可取)

    2. 保证测试流程的始终性和测试用例设计的完整性。(有针对性,可取)

    总结

    想要避免这种问题的发生,排除知道代码逻辑的情况(单元测试能够发现的问题),另一种就是从表及里(黑盒测试的手段)发现这个问题。

    由于问题很隐蔽,我们必须从逻辑上下手,那就是保证测试流程的始终性和测试用例设计的完整性。以“登陆”为始,以“退出登录”为终——所有的测试用例必须由始至终进行设计,才算完整。如果不保持流程的始终性和完整性,我们很难发现两端衔接处存在的问题(比如涉及到自动登陆的问题,第一次访问失败,但登陆状态可能将被记住,第二次访问将一切正常,所以如果用例设计不包括登陆操作和退出登录操作的话,将很难发现这个自动登陆上存在的问题)。如果用例只在排除了始端和终端外的中端部分进行测试,测试结果将很容易建立在已经存在的bug的基础上。

  • 相关阅读:
    Spire.Barcode好用的条码生在组件
    jQuery、js操作页面
    设计模式---简介
    设计模式---策略设计模式
    POI生成Excel文件:Excel,工具类,背景色,边框,居中,合并单元格
    设计模式---模板设计模式(java)
    maven打包不打lib目录里面的jar包解决办法
    MySQL库表操作
    Linux环境根据data目录文件恢复MySQL数据
    Linux 安装 mysql 与 mysql在Linux环境本地使用,但windows远程连不了问题处理
  • 原文地址:https://www.cnblogs.com/LanTianYou/p/5392303.html
Copyright © 2011-2022 走看看