zoukankan      html  css  js  c++  java
  • 如何提高测试设计的覆盖面

    引用的原文:https://blog.csdn.net/alice_tl/article/details/79601697

    对于一些测试新人来讲,很容易存在一个误区,看懂需求,弄透彻需求,就能够用例覆盖100%了。

    事实并非这样。需求固然很重要,测试用例确实主要来源于产品需求,但也应该要考虑开发的实现原理,这样才能够测试的更彻底,更全面,更精准。

    结合一个工作中的实例,来源于实习生负责的一个小功能,来分析如何根据开发原理进行测试设计。

    功能:在APP的首页有一个广告图片,称之为banner,实现了banner缓存的功能。

    增加缓存的目的:1、避免出现无网情况进来APP,首页出现空白的情况;2、避免每次进首页都重新加载,消耗用户大量流量。

    对于只关注需求的同学来讲,测试设计主要就围绕网络情况,以及广告图片是否能够显示出来就够了,会忽略里面潜在的很多风险。

    开发实现原理图:

    综上:会发现功能需求上虽然都是要有缓存机制,但是Android和iOS的实现是有差异的。

    ios设备每次访问服务器后,不管服务器是否有新数据,都会直接下载新数据,而Android当发现服务器并无新数据时,就直接显示本地缓存了,不再下载新数据。原因是ios用户对于流量并不是特别在意,Android用户会更加在意流量。

    为了测试设计的更全面,可以将整个流程划分为如下阶段:

    1、客户端:即通常所说的前端。服务端,即通常所说的后端。

    通常情况下,一旦一个需求,涉及到前端和后端的交互,需要获取服务器的数据时,第一反应就是,除了测试前端以外,后端是否有一个可视化的交互界面,进行数据配置。

    这里是有的,因此测试用例设计和覆盖,需要覆盖到APP以及可视化的web后台网站。

    当然,因为web后台网站是对内主要供运营人员使用,不需要对外用户开放的,因此只需要保证功能的准确和稳定性即可,不需要关注用户体验,以及UI的美观度如何。

     2、启动程序

    一旦涉及到启动程序,首要考虑热启动、冷启动。

    热启动:程序的activity已经存在,只是暂时在不活跃状态。

    冷启动:程序的activity不存在,首次启动。

    程序安装后首次启动,非首次启动,home键回桌面再启动分别对应的是冷启动还是热启动呢?

    • 另外如果是任何情况下的启动都会触发访问服务器,那么思考一下是否是在首页才触发?
    • 假设我是点击通知栏或者其他活动链接跳转,万一进入程序一开始呈现给用户并不是首页呢?
    • 另外如果每次启动进入首页会触发访问,那么切换tab的方式回到一级页面呢?或者是二级页面返回到页面呢?

    3、联网

    网络类型:wifi、手机网络、无网、弱网,是否都是同样的规则?合理吗?

    当本地没缓存的时候,又没有网络的情况下,首次进入程序会怎样?不显示banner区域吗,显示banner区域但内容空白吗?有一个本地默认的图片可能是大多数APP的选择。

     4、访问服务器

    后端提供了哪些接口,每个接口发送的请求参数、返回的数据类型。(就是我们所看到的后台)

    后端可视化平台部署哪些内容?通常涉及图片时,肯定有图片的格式?图片的大小?banner的时间有效期?

    另外后端部署了无效不合法网址?前端对于后端传的异常如何处理?后端部署的内容为空或者没有按规范来时,前端是什么表现?

    5、 缓存数据比对

    比对的规则是怎样的?以什么为准判断是否一致或者为最新?后台部署提交的时间戳?

     6、存至本地

    缓存存储到本地时,存到什么路径?android通用的路径都是/sdcard/android/data/包名/,还可能是另外创建的目录

    缓存是明文还是加密??我们测试的项目里,缓存是一个md5码,并且md5码作为唯一标识去比对。

    另外每次的缓存内容是覆盖替换的,还是累加的?如果是累加的,是否会有清理机制?否则会导致程序占据大量手机存储空间。

    容错处理的角度考虑的话,还要考虑缓存内容被修改了不合法或者清理工具把目录给清掉了呢,程序会异常吗?

    了解这些,我们再看看,当遇到后端部署了,前端测试展示并没有更新,可以怎么定位和分析?

    1、后端部署的准确吗?

    2、前端APP上我的操作有时机触发刷新吗?

    2、如果确实行了触发刷新的操作,但是刷新之后还是显示旧的?那么服务端返回给我的数据是不是新数据了呢?

    3、服务端没有返回新数据?那是否前端的请求有问题?缺失了部分必传参数?

    服务端有返回新数据?那么肯定是前端APP的问题。

  • 相关阅读:
    Mybatis Plus3.4.0打印SQL至控制台
    234 saltstack安装配置与使用
    CentOS7.9二进制方式安装mysql5.7
    查锁杀锁
    Oracle搭建DG
    MySQL 恢复
    数据库克隆(克隆的主机只需要安装软件不需要安装实例)
    MySQL单表恢复
    Properties实现文件存储
    大易之磁盘操作
  • 原文地址:https://www.cnblogs.com/liuyanerfly/p/9474389.html
Copyright © 2011-2022 走看看