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

发表于:2018-3-02 10:38

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:baiyang 搜狗测试    来源:51Testing软件测试网采编

  一、前言
  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!


上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号