饿了么质量体系搭建实战
从技术、方法、经验等多个维度全面讲解饿了么软件质量体系的搭建与演进,既有可借鉴的方法论和案例成果,又给出了团队解决问题的思考过程
基本信息

【插图】

编辑推荐
饿了么企业订餐团队官方出品,
饿了么联合创始人、CTO等近20位专家联袂推荐!
从技术、方法、经验等多个维度全面讲解饿了么软件质量体系的搭建与演进,
既有可借鉴的方法论和案例成果,又给出了团队解决问题的思考过程
内容简介
计算机书籍
内容简介
本书是饿了么企业订餐团队在软件质量保障方面的经验总结。它通过讲解该团队如何从0到1构建软件质量体系以及该体系如何逐步演进,分享了饿了么在软件质量保障方面的技术积累、实战经验、解决问题的思考过程,以及质量保障团队的建设与发展。
全书一共18章,分为六篇,具体内容如下。
第一篇 规划(第1章)
介绍了饿了么企业订餐业务的背景、团队背景、面临的挑战以及团队在制定技术规划时是如何考虑的。
第二篇 基础(第2~5章)
总结了QA团队在功能测试、安全测试、兼容性测试、线上问题治理等方面的技术见解和经验积累。
第三篇 提效(第6~9章)
介绍在团队人员与业务稳定之后,QA团队应如何提高测试和研发的效率。包括API测试框架、自动生成框架代码技术、框架代码场景化改造、FSM场景化代码动态组合技术等。
第四篇 赋能(第10~13章)
从持续集成、代码质量、Story QA等技术角度介绍了企业订餐QA团队是如何赋能研发人员以提高软件质量的。
第五篇 探索(第14~16章)
介绍了团队在契约测试、探索性测试、流量测试等方面的经验。
第六篇 管理(第17~18章)
分享了如何打造有实力、有格局和有凝聚力的团队,以及项目管理的关键问题和解决问题的思路。
作译者
张丙振
高级测试专家、企业订餐质量负责人,9年工作经验。擅长自动化测试、测试框架搭建、质量交付团队管理等。2017年入职饿了么中后台研发部,负责商家开放平台,多次参与公司S级别跨团队合作项目并担任测试总owner,曾担任上海站技术沙龙测试讲师。2019年转入阿里巴巴本地生活企业订餐团队,目前专注于QA团队建设、基础设施建设及质量交付。
檀飞翔
测试专家,从事测试行业7年,擅长测试框架开发、CI集成、自动化测试、功能测试以及大型项目测试管理。2016年加入饿了么,主要负责饿了么商家配送、商户订单、商家商品以及企业订餐等业务领域的QA工作,多次参与和负责公司级别项目,目前负责阿里巴巴本地生活企业订餐供给交易领域的QA工作,专注于测试提效和赋能工作。
侯佳刚
测试专家,一直积极探索正确的质量保障之道。从事质量工作多年,擅长测试自动化及测试工具开发。先后研发多个测试工具和质量平台,并将其应用在产品研发过程中。目前主要负责企业订餐质量平台研发及推广工作。
伍菊红
资深测试开发工程师,有较丰富的测试经验。曾参与多个公司级项目的业务测试,如企餐新零售入淘、覆盖率工具开发等,擅长自动化测试、工具开发。目前专注于测试前沿知识探索,如精准测试、流量回放等。
李京蓉
资深测试工程师,从事软件测试工作5年。2018年入职饿了么,负责饿了么商户端交易业务测试,转入企业订餐团队后负责供给交易领域的业务测试以及整个事业部的安全测试。
张晏婷
资深测试工程师。先后从事订单、财务等领域测试工作,功能测试、自动化测试经验丰富,参与多个提效工具、测试平台开发工作。
蔡辉
目录
序
前言
第一篇 规 划
第1章 技术保障规划2
1.1 业务特点2
1.2 面临的挑战3
1.3 测试进程的演进4
1.4 绘制战略图5
1.5 本章小结7
第二篇 基 础
第2章 功能测试10
2.1 业务梳理10
2.1.1 接手新业务的痛点11
2.1.2 业务梳理的构想11
2.1.3 过程实战13
2.2 用例设计16
2.2.1 用例设计面临的问题17
2.2.2 解决思路17
2.2.3 用例设计原则确立18
前言
我们曾经思考过这样一个问题,如何才能将自己积累的技术和知识进行抽象总结,将逐步解决问题的过程立体化、可视化地展现给大家,而不只是简单地介绍一个结果。我们技术团队之所以决定写这本书,就是希望通过介绍我们的实战经验和解决问题的思路,帮助大家在“质量与效率”的提升上打开新的思路。
“质量与效率”一直是我们关注的焦点。相对于软件开发,软件测试起步较晚,缺乏拥有专业知识的人才。即便是大学开设的软件工程专业,针对软件测试的介绍也只是涉及少量的概念和设计测试用例的方法。专业的测试并不是简单地翻译需求。目前有很多测试人员只是在简单地执行需求翻译的工作,没有结合业务实现、质量模型和测试用例,没有用科学的方法设计测试场景,这就导致测试用例质量低下,只能应用于单个特定点的测试场景。
有些人认为功能测试很低端(从效率、技术含量和市场反馈的价值综合得出如此结论),甚至有相当一部分测试人员也认为,功能测试意义不大,希望从事测试工具的开发工作,因为那样看上去更高端,更具有挑战性。
其实,功能测试、自动化测试、性能测试、安全测试、测试框架开发、平台研发等工作都是为了提高软件测试的质量,没有高低贵贱之分,都是必要的辅助手段。可以将软件测试类比为一个兵团,上述这些工作是不同的兵种,在面对一场战役的时候,我们需要考虑的是如何排兵布阵,以赢得战役,而不是排列兵种的等级。
不同的时代对测试人员有不同的要求。
起初是“保姆时代”,以发现Bug为荣,对测试人员的基本要求是具备良好的测试思维,测试人员主要利用系统测试方法进行测试。业内关注的焦点是黑盒测试,白盒测试和灰盒测试偏少,效率偏低。由于黑盒测试大部分是通过人工在系统界面中手动进行的,从而导致业界普遍认为测试就是“点点点”。
随着软件复杂度的不断提高,交付质量变得越来越重要,我们急需提升测试的效率,压力测试和安全测试等各种专项测试以及各种测试平台和工具随之出现。
时代的进一步发展对测试提出了更高的要求,从产品研发后期寻找Bug转变为提前预防Bug。
小步迭代、快速上线的敏捷开发时代,再次对测试提出了更高的要求,持续集成、快速验证、全方位监控线上质量,需要测试人员更早地介入产品研发的整个过程,以便更好、更全面地了解产品。测试左移到开发阶段进行代码评审、单元测试,右移到运维阶段进行持续部署、线上监控,从而可以更加立体地保障软件的质量。
如今是一个输出测试能力的时代,测试人员不仅要提升自己的效率,而且要赋能研发人员,帮助他们提升自己的自测水平。
本书主要内容
第一篇:规划
本篇简要介绍了我们的业务背景、团队背景、测试的一般规律,以及我们团队在制定技术规划时是如何考虑的。
第二篇:基础
当团队从零开始的时候,QA(Quality Assurance,质量保证)基础设施落后、资源有限、技术改造频繁,应快速形成战斗力,以业务为先,保证产品的质量,此时QA团队的主要任务是发现产品中的Bug。本篇主要介绍了QA团队在功能测试、安全测试、兼容性测试等不同阶段的特点及不同之处。
第三篇:提效
当团队人员与业务基本稳定,而且功能迭代基本可以正常运行之后,我们就开始思考如何提高测试和研发的效率,例如,如何构建可用于提升效率的小工具和平台,如何实现API自动化,以及框架的搭建、分层思想、性能测试、环境的部署、CI(Continuous Integration,持续集成)流程的建立等,从而使得QA人员能够从大量的手工劳动中解放出来,提高工作效率,将更多的时间和精力投入到测试分析、发现Bug、预防Bug的工作中。
第四篇:赋能
在提效之后,我们开始思考,软件质量是“构建”出来的,是由软件开发整个过程的质量所决定的。所以,QA人员的工作不能总是停留在最后一个环节,在敏捷开发的大环境下,开发人员也要开始注重自测质量,作为QA人员,我们需要考虑如何赋能开发人员,使其能够对自己开发的产品进行自测。本篇主要从技术的角度(比如,可视化度量、自动化用例开放、工具开发,以及如何在流程上使用story_QA来使项目过程数据可视化)介绍了企业订餐业务的QA人员是如何赋能开发人员以提高软件质量的。
媒体评论
——汪渊 饿了么联合创始人
企业订餐系统复杂度很高,质量团队不仅要面对传统ToC、ToB的大部分业务挑战和技术挑战,还要面对新时代ToB场景中更高复杂度的综合挑战。既要高度抽象,又要个性化;要测试速度,更要测试质量,这对整个质量团队的挑战巨大。希望本书可以给相关企业、团队带来一定参考价值。
——张雪峰 饿了么CTO
B端业务的强定制化特性决定了B端软件系统的代码复杂度难以控制,对应的软件测试工作因为逻辑分支的增多变得复杂。本书以极度抽象的测试理念,辅以高效的测试手段,结合自研的测试工具,将复杂问题简单化,解决了产品质量保障的难点和痛点,值得B端软件从业者一读。
——许红涛 饿了么企业版技术负责人
测试环节作为上线前的重要关卡,值得大家慎重、严谨、用心地对待,每个人都应该为软件交付质量保驾护航。本书结合业务规划、研发项目管理流程详细讲解了企业订餐质量体系的搭建过程,发现问题、解决问题并沉淀方法,值得大家细细品读。
——吴凡 饿了么PMO 高级总监