上一模块,我详细讲解了微服务架构下的分层测试策略,它可以确保系统的所有层次都被覆盖到,更多体现在测试活动本身的全面性和有效性方面。但要想将质量保障内化为企业的组织能力,就需要对质量保障进行体系化的建设。那么从今天开始,我将讲解微服务质量保障体系的相关内容,本课时主要介绍质量保障体系的全景概览。
不知道你有没有注意到一个现象:虽然不同的业务之间有非常多的差异性,但当它们在质量保障方面建设得比较完备和完善时,其质量保障体系框架大同小异。
为什么会出现这种情况呢?这需要回归到“质量保障”和“体系”的定义上来。
通常情况下,对业务发展来说,质量保障体系是企业内部系统的技术和管理手段,是有计划的、系统的企业活动,目的是满足业务发展需要,生产出满足质量目标的产品。
对应到微服务架构下,说得更接地气一点就是为了共同的目标,一群人在一块儿做事。总结如下:
所以,质量保障体系是通过一定的流程规范、测试技术和方法,借助于持续集成/持续交付等技术把质量保障活动有效组合,进而形成系统化、标准化和规范化的保障体系。同时,还需要相应的度量、运营手段以及组织能力的保障。
体系:泛指若干有关事物或某些意识按照一定的秩序和内部联系组合而成的整体,是不同系统组成的系统。
听起来比较抽象,以项目管理知识体系 PMBOK 做个类比,我们都知道管理一个项目是比较复杂的,如果没有类似的经历经验,或者相关的知识和技能,你甚至都不知道应该从哪里入手、应该关注哪些方面、每个方面应该怎样推进,等等。而 PMBOK 对项目管理所需的知识、技能和工具进行的概括性描述,即项目管理的五大过程组和十大知识领域,掌握了这些体系知识,你就具备了管理任何项目所需的知识基础。
PMBOK 是 Project Management Body Of Knowledge 的缩写, 指项目管理知识体系的意思,具体是美国项目管理协会(PMI)对项目管理所需的知识、技能和工具进行的概括性描述。它涵盖了五大过程组和十大知识领域,其中,五大过程组是启动过程、规划过程、执行过程、监控过程、收尾过程;十大知识领域是整合管理、范围管理、时间管理、成本管理、质量管理、人力资源管理、沟通管理、风险管理、采购管理、干系人管理。
可见,当一个体系进行了比较合理的抽象和概括后,它能够把一系列的活动拆解成不同的方面,这些方面又相互协同形成一个有机的整体,做到以不变应万变。我想,这也是质量保障体系对每个测试从业者个人职业发展来讲最有价值的地方,因此一定要尽早建立质量保障体系的意识,从全局视角理解所在业务中的质量保障体系。
可能你会疑问,既然质量保障体系都大同小异,那我们照着它做不就可以了吗?其实不然。这里需要先对齐一下认知:
质量保障体系,不能为了建设而建设,一定要结合业务特点和所处阶段,它是为解决特定问题而逐渐形成的体系。
质量保障建设的终点都一样,但业务特点和阶段不同,各个环节建设的优先顺序大不相同。实际在进行质量保障建设时,通常会从业务特点和阶段、业务目标和质量挑战两个方面去切入。
业务特点和阶段决定了业务最核心的关注点,也影响了质量保障工作的侧重点,举例来说:
另外,在业务的不同阶段(初创期、探索期、成长期、稳定期),对产品迭代和质量的要求也有所不同,这些都需要综合考虑。
不同的业务特点对应的业务目标也有所差异,但共性都是确保产品质量高、生产过程高效,从而实现业务价值,这体现出对质量、效率、价值三个维度的要求。伴随着微服务架构下带来的各种质量挑战,满足这三个业务目标将更具难度,因此在进行质量保障建设时,要尽可能地做到如下效果:
基于上述分析,通用的微服务质量保障体系如下:
如下是质量保障体系的关键方面,后续课程也将按如下内容展开讲解。
本节课我讲解了质量保障体系的内涵,它将质量保障内化为企业的组织能力,其基本框架可以以不变应万变。无论对业务还是对测试人员自身来说都至关重要。
紧接着我讲解了微服务架构下的质量保障体系的切入点,列举了搜索引擎、金融产品、用车场景等业务的常见特点,从业务特点和阶段、业务目标和质量挑战等方面切入,从而影响质量保障建设的侧重点和子方向的落地优先级。
最后我给出了质量保障体系全景概览图,它包括项目管理和流程规范、微服务测试技术、持续集成与持续交付、度量与运营、组织保障等几个重要组成部分,并介绍了各部分的内容,它们相互协同为质量保障体系添砖加瓦。
你所负责的项目或业务,是否是微服务架构?如果是,它的质量保障体系是怎样的,在这其中,你自己的掌握情况如何,请写在留言区。同时欢迎你能把这篇文章分享给你的同学、朋友和同事,大家一起来探讨。
相关链接: https://winderresearch.com/how-to-test-in-a-microservices-architecture/ https://www.gocd.org/2018/05/08/continuous-delivery-microservices-test-strategy/ https://www.softwarecertifications.org/software-testing-body-of-knowledge/ https://developer.51cto.com/art/201911/606778.htm