分层测试实施总结与思考

从10年开始实践分层测试理论,再到开始在企业培训《分层测试精要》课程也有七八年了,这段时间很多同仁也在不断探索和实践,在各个企业中也有了很多实践和总结。前段时间在参加某公司面试时提到这个课题,感觉还是有很多内容可以分享和总结,本文结合面试交流内容(有删改省略部分内容),从分层测试概念、策略与应用、以及实施建议三个方向聊一下笔者本人的思考与总结。
- 1 - 

分层测试几个概念

提起分层测试,先简单的看下工作中会遇到的那些关于分层的词:分层测试框架,App业务分层测试,金字塔模型等等都是测试中关于分层的一些概念。那么他们到底有什么不同呢?

e42b4a8ca76144c2978b4fe5d633627c.png

分层测试框架属于技术层次的分层测试框架,一种应对变化而进行的一种封装;目的是减少变化而引起代码的大量改动。分层测试框架是可以实现业务、数据、技术的解耦,降低测试人员使用的门槛。

业务分层测试实际上是将日常工作中App业务对象拆分为:技术组件、业务组件和业务流程。技术组件:指APP应用的基础技术,如RN、H5、小程序等。业务组件:指业务中的通用功能如弹窗、消息、Xview、分享、搜索等功能。业务流程:指与业务相关的业务规则、流程等业务属性信息。详细可参考《基于业务分层的测试策略》。

策略层次的分层测试,是思考如何使用不同类型的测试,在成本、进度、质量之前寻求一个平衡的投资组合的方式。而我们今天和大家所讨论的分层测试就是基于策略层次的分层测试。

分层测试是一种测试策略,思考如何使用不同类型的测试来创建平衡的投资组合的方式,通过组合不同测试类型实现分层测试,降低测试总成本;分层测试能够持续快速反馈,而不是都等到最后才反馈,所以才能够被广泛使用和推广

- 2 - 

分层测试常见策略与应用

分层测试是一种测试策略,通过组合不同测试类型实现分层测试,降低测试总成本。

提起分层测试,我们首先想到的是测试金字塔,其实除了金字塔模型还有倒金字塔模型(或者冰激淋模型)、橄榄球模型等以及其他模型,本文重点和大家聊下金字塔模型、倒金字塔模型(或者冰激淋模型)和橄榄球模型。

1)金字塔模型

金字塔模型也称之为测试金字塔,由MikeCohn在 2009年出版的《Succeeding with Agile 》书中进行了描述;测试金字塔是分层测试的一种最佳实践;

测试金字塔是基于这样的假设,在软件开发流程中,越底层的测试,缺陷修复成本越低、测试速度越快、越稳定。这个理论大部分时候是正确的,也是被广泛认可和传播。所以金字塔模型在整个测试行业也是被大为推崇。

171438f9d45582ed1b523754ce844863.png

大概在10年前飞信分层测试主要采用金字塔模型,主要是在UI层、服务接口层和单元测试进行重点实施,后来逐演变为上图所描述的在UI层进行UI测试和针对webbar客户端进行JS层的测试;在接口层主要是进行场景级功能测试和单接口测试,以及单元测试。具体如下:

在UI主要通过自动化的方式,实现对基础功能和核心功能测试,进行客户端基础功能验证、标准兼容性测试。

接口测试主要是进行业务场景级的全场景覆盖测试验证测试,以及单功能级别的功能测试以及异常数据验证;同时兼顾安全测试、性能测试等多种形式的测试。

单元测试:单元测试主要分为两类,针对基础能力和关键组件,需要达到一定覆盖的单元测试;针对其他业务,需要通过其单功能异常数据验证测试,实现其对单功能测试。

2)倒金字塔模型(冰激淋模型)

随着客户端技术的发展,数字化运营平台、组件技术的发展和积累;以及灰度及ABtest的广泛应用,客户端各页面和频道可以快速通过后台搭建和配置,可以灵活的进行根据所需进行灰度发布和ABTest进行测试。依据在软件开发流程中,越底层的测试,缺陷修复成本越低、测试速度越快、越稳定。如果高级测试快速、可靠且修改成本低——那么就不需要低级测试。加之京东金融移动端是负责各业务线总集成,与各方集成主要通过SDK方式或者运营平台统一纳管,本身接口也不过二三十个,很难按照金字塔模型来构建测试策略,根据两年左右的实践与探索,逐渐摸索出一套基于倒金字塔模型搭建移动端测试测试策略,具体如下:

1203498b99d48e2cf2bd319dcd83a228.png

通过黄金流程UI自动化,基于UI稳定性测试(自动遍历、Monkey测试)、客户端性能测试、客户端标准兼容性、渠道包验证等在UI层进行测试。

涉及到APP所有接口和App核心模版数据验证Mock实现全部覆盖。

针对APP基础组件能力编写功能和非功能相关的测试用例,对核心组件自动化覆盖率不低于80%。

开发对核心组件及黄金流程涉及到的功能,必须完成单元测试代码编写及评审。

3)橄榄球模型

2021年转岗架构师,期间不断有架构师同事和实施同事和我一起讨论在某银行实施PAAS项目测试策略,结合客户实施现场问题、客户的需求以及之前对中间件及PAAS产品质量保障的理解,和实施的同事共同设计一套基于当时项目适用的测试策略,在项目实施后,在交付速度和交付质量,对项目整体交付有很大改善和改进。其中主要是应用了橄榄球模型,PaaS和中间件能力层主要是通过接口测试来保障,应用能力主要demo进行进程功能验证和测试,同时需要重点关注安全和非功能测试;针对互联网公司在产品化能力和配置管理方面的薄弱,有针对性的设置了配置测试。

d7ba3842891f5bf7d875ae2568257ca8.png

从用户应用的角度设计测试用例,确保系统的易用性和可用性。

针对硬件、网络、数据库、paas、中间件等测试对象,重点关注稳定性、性能、安全、可伸缩性、可移植性等测试类型,构建测试脚本及测试策略。

从业务能力和业务应用两个维度设计全覆盖的接口测试用例,从业务开发、测试、运维监控、线上运营四个维度评价测试覆盖度。

从系统可移植性、兼容性等角度进行测试,确保交付实施效率的提升。

开发人员对核心和基础功能,完成单元测试代码编写及评审。

- 3 - 

分层测试实施与建议

分层测试测试实施中,不是简简单单有一个分层测试策略就可以了,需要基础能力建设、团队融合以及实施策略上有充分的比较充分的准备和沉淀。如:完善流程保障、工具支持以及相应的人员能力等;同时在实施过程中需要各角色、各成员之间配合、融合才能够真正的达产达效。同时在实施策略上需要循序渐进。

cd210d089c623bde78ba99edf861b8f3.png

总之,分层测试体系的建设是一个长期的过程,短期应该根据系统特点,确定主要风险点,根据高风险优先原则,稳扎稳打,逐步建立分层测试体系,必须要避免短期冒进,未来推倒重来的建设方式。

f1b36be4e60c19b38dc44a001cf77973.jpeg文章来源:土司阿哈,致力于提供最具价值的测试及测试管理领域原创文章。包括测试技术、测试方法、测试思想、测试管理等。​​

· 推 荐 阅 读 ·

RECOMMENDATION

京东金融云测平台方案

基于风险的测试策略

基于业务分层的测试策略

UI自动化应该实施哪些内容?

全面的质量保障体系之发现缺陷

全面的质量保障体系之回归测试策略

全面的质量保障体系之测试用例分级

每个模型都有组合方式|测试金字塔的思考与总结

技术人员必须具备的四种能力|关于技术对话与思考

给产品赋予价值和意义|一个优秀的解决方案是什么样子?

三招实现个人能力转换为组织能力|团队如何进行个人经验萃取?

你所恐惧的中年危机,可能是人生的转机|最近工作三个思考

五步搞定需求分析与设计|再谈测试需求分析与设计

四步搞定移动端性能测试|京东金融移动端测试实践

服务端性能问题排查及优化---CPU高问题分析

京东金融App端链路服务端全链路压测策略

高效教练培训员工的十六字箴言

互联网企业转型ToB的三座大山

一次服务端性能问题排查过程

京东金融移动端测试实践

接口测试经验与实践

四步教你搞定写作

你点的每个“在看”,我都认真当成了点的每个“在看”,我都认真当成了喜

你点的每个“在看”,我都认真当成了喜欢

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值