专栏首页搜狗测试如何测试Android组件化

如何测试Android组件化

Android组件化调研——知己知彼

基于倒推的思路,要评估测试策略,本质上我们需要了解测试回归范围,而测试回归范围依托于开发改动的影响范围,但若要与开发沟通改动和影响范围,我们最好先了解下Android组件化。 提到“Android组件化”这一名词,第一时间可能会想到以下这些问题:什么是Android组件化?为什么要进行Android组件化?Android组件化有什么好处?想要了解Android组件化,我们需要进行调研学习。

  • Android组件化

1、Android组件化概念 组件化大致可分为功能组件化和业务组件化。功能组件化,常见的是将一些底层的公共功能模块进行独立化,如网络请求模块、登录注册模块等。业务组件化,即为业务模块独立化,彼此无关联,由一个项目工程拆分成若干个业务模块,由App主工程提供统一的入口,每个业务独立的模块共享项目的依赖库。

2、为什么要进行组件化 在Android项目组件化之前的单一工程,代码的耦合严重,每修改一处代码后就会到处报错,且都要重新编译打包测试,非常耗时,增加了项目的维护成本,很难进行多人协作开发。另外,在单一工程中很难进行单元测试。 当前APP版本迭代的频率越来越高,新功能的不断增加,业务也会变的越来越复杂,单一工程已经很难适应当前的项目业务需求环境。 3、Android组件化的优点 1)各个业务模块组件独立化,降低业务耦合,更适用于快速的业务迭代; 2)稳定的公共模块采用依赖库方式,提供给各个业务线使用,减少重复开发和维护工作量; 3)加快编译速度,提高开发效率; 4)自由选择开发框架; 5)方便做单元测试; 6)代码架构更加清晰,降低项目的维护难度; 7)适合于团队开发,各业务研发可以互不干扰、提升协作效率。 4、Android组件化常见问题及需关注点 1)共享数据资源/方法调用问题; 2)组件之间的调用和通信问题; 3)组件之间的资源名冲突问题;

Android组件化回归范围确定——谋定后动

在对Android组件化的基本概念和关注点有了初步调研后,接下来,是与开发沟通开发实现方案,进而从实际工程角度了解改动影响范围和建议回归范围。 将调研的有效信息与沟通后的信息进行整合,整理出最终的Android组件化改动范围和影响范围。 举个栗子,比如搜狗手机浏览器积分中心需求中的积分任务: 1、测试角度评估回归范围 首先,我们根据调研了解到的Android组件化的特点及关注点,从测试角度评估初步的影响范围和回归范围,这具体包含:积分任务的主路径功能、各个积分任务与其他模块的交叉功能点(例如搜索任务,涉及到积分中心模块与搜索模块的功能交叉)、积分任务的各个网络请求等公共库调用的正确性等; 2、了解工程角度改动范围及建议回归范围 然后,在与开发的实际沟通中,我们了解到,开发给出的改动影响范围与我们的调研结果基本吻合,建议回归范围为:该模块的主路径功能及与模块交叉点的主路径功能; 3、确定最终回归范围 最终,我们整合第1步和第2步中的改动影响范围及回归范围,确定积分任务的最终的影响范围及回归范围: 1)影响范围:不涉及到具体模块功能逻辑,需要关注主路径功能及与其他模块间的交叉功能。 2)回归范围:积分任务主路径功能:积分任务主路径功能,及各个积分任务与其他模块的交叉功能点(冒烟级别粒度)。

Android组件化测试策略制定——运筹帷幄

在做好一切准备工作之后,接下来就是制定测试策略。首先,是制定各个模块的测试策略,进而站在全局角度,确定整体的项目测试策略。 模块的测试策略的制定,这里我们仍以上面的积分任务为例,在确定最终的回归范围后,我们分析回归范围对应的case级别,得出该功能的测试策略结论,即为执行冒烟级别的回归测试。 确定了各个模块的测试策略后,考虑到本次Android组件化的特点,从全局角度出发我们制定了整体的测试策略,如下所示: 1、整体各个模块进行冒烟/二轮粒度的测试; 2、在测试过程中,根据实际bug情况实时调整测试策略; 3、提高随机测试的安排次数。 至此,已完成了Android组件化这一工程优化需求的测试策略评估,接下来就是开始正式的测试阶段。

本文分享自微信公众号 - 搜狗测试(SogouQA),作者:圈圈

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-02-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Fiddler的深入应用

    以上这些操作都需要针对该功能的明文请求进行操作,但客户端发出来的加密请求,我们无法解密,阻碍了测试进行,怎么办呢?

    用户5521279
  • 新一代UI框架-Flutter的单元测试方法

    Flutter是谷歌的移动UI框架,运用Dart语言,可以快速在iOS和Android上构建高质量的原生用户界面。通俗地来讲,Flutter是一款移动应用程序S...

    用户5521279
  • Cypress实践记录

    前一段时间,在前端开发同学的推荐下,了解到一个前端自动化测试工具Cypress,趁着这个机会,将自己的调研记录以及在项目上的实践进行总结。如果想了解...

    用户5521279
  • CSDI2018广州关于《Nginx》的分享(附文字速录与PPT)

    应百林哲笑含的邀请,于2018.6.9号至7.1号前往广州白云国际会议中心参加《CSDI Summit 中国软件研发管理行业技术峰会》。会上认识了很多互联网一线...

    陶辉
  • 腾讯开源框架TarsCpp-rpc设计分析-client(二)

    设置解析协议、选择服务端节点、建立连接、管理连接,如何发送请求、接收结果,这些细节都封装在了ObjectProxy中。

    路小饭
  • whmcs对接ep插件

    本模块为对接EasyPanel根据EP面板设置的套餐id开通虚拟主机的EP对接模块

    Inkedus
  • C#中datagirdview表头变换

    dataGridView1.CurrentRow.Selected = false;

    Dabelv
  • 微信小程序底层机制:小程序基础库主要包括什么内容?

    小程序基础库采用双线程架构,一个是视图层线程,一个是逻辑层线程,两个线程协同工作,共同向上层提供了基础库能力。

    李艺
  • Typescript配合React实践

    使用ts写React代码写了将近三个月,从刚开始觉得特别垃圾到现在觉得没有ts不行的一些实践以及思考。如果按部就班的写React就体会不到使用ts的乐趣,如果多...

    前端迷
  • 微信自带浏览器get请求缓存问题

    所有版本上的微信页面返回数据不更新是因为发生Ajax缓存。在微信开发者工具上查看发现:

    似水的流年

扫码关注云+社区

领取腾讯云代金券