用例覆盖率低?看这儿,帮你提高!

点击

“搜狗测试”

可关注我们!

一、前言

Hello,小伙伴们,相信小伙伴们所在项目产品中都有涉及同步逻辑的相关模块,小编最近在进行某个同步需求的测试,包括设置项同步(全量)和历史记录同步(增量)。小编认为,优化我们的测试方案,可以很好的提高测试覆盖度,由此针对两种同步方式,总结了一些测试手段。

参照测试流程,需求评审->开发方案评审->测试方案制定->测试执行,今天,小编和大家聊一聊:“同步逻辑”测试方案的制定。

二、全量同步

全量同步,顾名思义,上传和下载都是全量,这样测试手段就明确了,上行和下行接口,需保证各个参数都有覆盖,且须保证数据同步后,本地和服务端是同一份一致数据。

1、测试方案制定

(1). 需了解同步选项的协议(客户端&服务端开发制定);

(2). 了解客户端、服务端的开发代码实现;

(3). 了解服务端接口协议、数据库相关表;

(4). 服务端接口测试用例&接口测试;

(5). 客户端&服务端集成测试测试用例&执行;

2、同步项协议

同步项的协议,是需要准确了解的。

示例:(设置项同步)

(1). 共7大类,40个设置项在本次测试范围内;

(2). 协议相关,每个设置项,5个字段,设置项的描述状态有2~12种;(有详细的定义说明)

3、同步时机

同步的上行、下行时机,需要准确理解;

结合产品需求,还可以在代码中,准确找到设置同步方法的调用时机。

示例:

同步策略,可以给出一定测试建议;

例如:未登录、登录两状态的常见问题处理:未登录->登录,用户服务端数据是否覆盖本地;登录->退出登录,本地数据是否清空等。

(1). 下行时机syncSettingDownload()

登录;(帐号、第三方等)

开启应用;

(2). 上行时机syncSettingUpload()

退出设置页面;

退出导航页面;

首页弹框消失;

退出登录会同步一次;

4、测试方案&手段

关于测试手段,小编暂时用到的可行、有效的手段如下:

(1). 抓取请求串,上行&下行;

Charles、Fiddler、Logcat工具结合使用。

例如登录发起请求

(2). 下行,观察比对客户端拉取vs服务端数据库数据;

(3). 上行,观察比对客户端本地vs服务端update后数据库数据;

(4). 上行&下行,比对version版本号;

(5). 添加日志,上行和下行发起时,相应的log以及对应位置;

示例

5、数据对比工具

同步测试,数据对比是一个大任务,为了能快速的测试并发现定位问题,可以使用工具。

例如本次测试任务:设置项有40项,对比json串:格式化json串(HiJson),利用beyond compare工具对比。逐步对比每个版本所修改的设置项的开关状态值、以及设置项的生效性。

Version1(默认)VS Version4(示例)

Version5 VS Version 6(示例)

三、增量同步

增量同步测试,相比全量同步,要复杂些。上行和下行,数据同步后,本地和服务端数据库中是同一数据。

a)新增数据同步

上行,需要保证新增数据上行成功,能准确区分需上传的数据,不遗漏;

下行,需保证本地已有的数据,无需再更新,下拉的数据全部是新数据,无冗余;

b)删除数据同步

上行,需要保证客户端本地和数据库该数据均被删除成功,不会有数据遗留;

下行,保证数据库下拉的数据均有效数据;

c)修改(更新)数据同步

上行,同步需要保证,本地修改后数据生效,且同步后可以覆盖数据库中的同一数据,数据库无数据重复;

下行,数据库下拉的增量数据中,本地数据可以更新,本地无数据重复;

d)全量数据下载

1、测试方案制定

(1). 需了解同步选项的协议(客户端、服务端开发协定);

(2). 了解客户端实现;(准确的了解开发实现,对测试发难的制定有很多帮助)

(3). 了解服务端接口协议、数据库相关表;

(4). 服务端接口测试用例&接口测试;

(5). 客户端&服务端集成测试测试用例&执行;

2、同步项协议

(1). 了解数据协议,示例:RecordSyncMessage.proto

(2). 理解同步数据类型,示例:common、line、subway、navi

(3). 客户端字段与数据库的对应等;

3、开发实现-同步时机

了解开发实现以及理解同步策略。

示例:小编测试任务,开发实现:对比版本号,增量同步(上传&下载),同一个Version的数据,指的同一批上传的;客户端根据数据是否具有cloudid,判断是否进行上行;

(1). 下行时机Download()

(2). 上行时机Upload()

4、测试方案&手段

(1). 抓取请求串,上行&下行;

Tips:连接android studio测试,查看logcat,是个不错的选择哦~~

示例:未登录,打开应用发起checkversion请求

(2). 下行,观察比对客户端拉取vs服务端数据库数据;

(3). 上行,观察比对客户端本地vs服务端update后数据库数据;

(4). 上行&下行,比对datatype、dataname、datadetail、dataorder、dataversion、create和updatetime;

(5). 开发代码相关log;

示例:

5、数据对比

数据对比,sql数据库查询,例如:按照某个datatype排序,便于对数据进行比对;

(1).新增数据同步

搜索历史记录common类型测试示例

客户端产生新增记录,发起upload,上行成功;(客户端抓请求串&logcat)

数据库中,应对应新增一条记录;

其他设备,可同步download,有新增数据下行成功;

(2).删除数据同步

上行,需要保证客户端本地和数据库该数据均被删除成功,不会有数据遗留;

下行,保证数据库下拉的数据均有效数据;

客户端删除历史记录,发起upload,上行成功;(客户端抓请求串&logcat)

数据库,同步删除该条数据;

其他设备同步download,可同步删除成功;

(3). 修改(更新)数据同步

客户端本地修改后,数据上行,并生效;

同步后,可以覆盖数据库中的同一数据,数据库无数据重复;

其他设备同步download,本地数据可以更新,本地无数据重复;

(4). 全量数据下载

数据下行,download,本地数据可全部下载,排序如有规则,须符合需求;

结束语

以上是小编在测试过程中累积了一些测试心得,分享给大家,希望对大家有所帮助。欢迎小伙伴留言,共同探讨测试手段。祝大家2018年,测试手段&技能up up up!

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180109B08WDN00?refer=cp_1026

同媒体快讯

  • 这个工具很实用

    2018-10-17

相关快讯

扫码关注云+社区