分层测试几个概念
提起分层测试,先简单的看下工作中会遇到的那些关于分层的词:分层测试框架,App业务分层测试,金字塔模型等等都是测试中关于分层的一些概念。那么他们到底有什么不同呢?
分层测试框架属于技术层次的分层测试框架,一种应对变化而进行的一种封装;目的是减少变化而引起代码的大量改动。分层测试框架是可以实现业务、数据、技术的解耦,降低测试人员使用的门槛。
业务分层测试实际上是将日常工作中App业务对象拆分为:技术组件、业务组件和业务流程。技术组件:指APP应用的基础技术,如RN、H5、小程序等。业务组件:指业务中的通用功能如弹窗、消息、Xview、分享、搜索等功能。业务流程:指与业务相关的业务规则、流程等业务属性信息。详细可参考《基于业务分层的测试策略》。
策略层次的分层测试,是思考如何使用不同类型的测试,在成本、进度、质量之前寻求一个平衡的投资组合的方式。而我们今天和大家所讨论的分层测试就是基于策略层次的分层测试。
分层测试是一种测试策略,思考如何使用不同类型的测试来创建平衡的投资组合的方式,通过组合不同测试类型实现分层测试,降低测试总成本;分层测试能够持续快速反馈,而不是都等到最后才反馈,所以才能够被广泛使用和推广。
分层测试常见策略与应用
分层测试是一种测试策略,通过组合不同测试类型实现分层测试,降低测试总成本。
提起分层测试,我们首先想到的是测试金字塔,其实除了金字塔模型还有倒金字塔模型(或者冰激淋模型)、橄榄球模型等以及其他模型,本文重点和大家聊下金字塔模型、倒金字塔模型(或者冰激淋模型)和橄榄球模型。
1)金字塔模型
金字塔模型也称之为测试金字塔,由MikeCohn在 2009年出版的《Succeeding with Agile 》书中进行了描述;测试金字塔是分层测试的一种最佳实践;
测试金字塔是基于这样的假设,在软件开发流程中,越底层的测试,缺陷修复成本越低、测试速度越快、越稳定。这个理论大部分时候是正确的,也是被广泛认可和传播。所以金字塔模型在整个测试行业也是被大为推崇。
大概在10年前飞信分层测试主要采用金字塔模型,主要是在UI层、服务接口层和单元测试进行重点实施,后来逐演变为上图所描述的在UI层进行UI测试和针对webbar客户端进行JS层的测试;在接口层主要是进行场景级功能测试和单接口测试,以及单元测试。具体如下:
在UI主要通过自动化的方式,实现对基础功能和核心功能测试,进行客户端基础功能验证、标准兼容性测试。
接口测试主要是进行业务场景级的全场景覆盖测试验证测试,以及单功能级别的功能测试以及异常数据验证;同时兼顾安全测试、性能测试等多种形式的测试。
单元测试:单元测试主要分为两类,针对基础能力和关键组件,需要达到一定覆盖的单元测试;针对其他业务,需要通过其单功能异常数据验证测试,实现其对单功能测试。
2)倒金字塔模型(冰激淋模型)
随着客户端技术的发展,数字化运营平台、组件技术的发展和积累;以及灰度及ABtest的广泛应用,客户端各页面和频道可以快速通过后台搭建和配置,可以灵活的进行根据所需进行灰度发布和ABTest进行测试。依据在软件开发流程中,越底层的测试,缺陷修复成本越低、测试速度越快、越稳定。如果高级测试快速、可靠且修改成本低——那么就不需要低级测试。加之京东金融移动端是负责各业务线总集成,与各方集成主要通过SDK方式或者运营平台统一纳管,本身接口也不过二三十个,很难按照金字塔模型来构建测试策略,根据两年左右的实践与探索,逐渐摸索出一套基于倒金字塔模型搭建移动端测试测试策略,具体如下:
通过黄金流程UI自动化,基于UI稳定性测试(自动遍历、Monkey测试)、客户端性能测试、客户端标准兼容性、渠道包验证等在UI层进行测试。
涉及到APP所有接口和App核心模版数据验证Mock实现全部覆盖。
针对APP基础组件能力编写功能和非功能相关的测试用例,对核心组件自动化覆盖率不低于80%。
开发对核心组件及黄金流程涉及到的功能,必须完成单元测试代码编写及评审。
3)橄榄球模型
2021年转岗架构师,期间不断有架构师同事和实施同事和我一起讨论在某银行实施PAAS项目测试策略,结合客户实施现场问题、客户的需求以及之前对中间件及PAAS产品质量保障的理解,和实施的同事共同设计一套基于当时项目适用的测试策略,在项目实施后,在交付速度和交付质量,对项目整体交付有很大改善和改进。其中主要是应用了橄榄球模型,PaaS和中间件能力层主要是通过接口测试来保障,应用能力主要demo进行进程功能验证和测试,同时需要重点关注安全和非功能测试;针对互联网公司在产品化能力和配置管理方面的薄弱,有针对性的设置了配置测试。
从用户应用的角度设计测试用例,确保系统的易用性和可用性。
针对硬件、网络、数据库、paas、中间件等测试对象,重点关注稳定性、性能、安全、可伸缩性、可移植性等测试类型,构建测试脚本及测试策略。
从业务能力和业务应用两个维度设计全覆盖的接口测试用例,从业务开发、测试、运维监控、线上运营四个维度评价测试覆盖度。
从系统可移植性、兼容性等角度进行测试,确保交付实施效率的提升。
开发人员对核心和基础功能,完成单元测试代码编写及评审。
分层测试实施与建议
分层测试测试实施中,不是简简单单有一个分层测试策略就可以了,需要基础能力建设、团队融合以及实施策略上有充分的比较充分的准备和沉淀。如:完善流程保障、工具支持以及相应的人员能力等;同时在实施过程中需要各角色、各成员之间配合、融合才能够真正的达产达效。同时在实施策略上需要循序渐进。
总之,分层测试体系的建设是一个长期的过程,短期应该根据系统特点,确定主要风险点,根据高风险优先原则,稳扎稳打,逐步建立分层测试体系,必须要避免短期冒进,未来推倒重来的建设方式。
文章来源:土司阿哈,致力于提供最具价值的测试及测试管理领域原创文章。包括测试技术、测试方法、测试思想、测试管理等。
· 推 荐 阅 读 ·
RECOMMENDATION
京东金融云测平台方案
基于风险的测试策略
基于业务分层的测试策略
UI自动化应该实施哪些内容?
全面的质量保障体系之发现缺陷
全面的质量保障体系之回归测试策略
全面的质量保障体系之测试用例分级
每个模型都有组合方式|测试金字塔的思考与总结
技术人员必须具备的四种能力|关于技术对话与思考
给产品赋予价值和意义|一个优秀的解决方案是什么样子?
三招实现个人能力转换为组织能力|团队如何进行个人经验萃取?
你所恐惧的中年危机,可能是人生的转机|最近工作三个思考
五步搞定需求分析与设计|再谈测试需求分析与设计
四步搞定移动端性能测试|京东金融移动端测试实践
服务端性能问题排查及优化---CPU高问题分析
京东金融App端链路服务端全链路压测策略
高效教练培训员工的十六字箴言
互联网企业转型ToB的三座大山
一次服务端性能问题排查过程
京东金融移动端测试实践
接口测试经验与实践
四步教你搞定写作
你点的每个“在看”,我都认真当成了点的每个“在看”,我都认真当成了喜
你点的每个“在看”,我都认真当成了喜欢