科技>计算机>计算机科学
京东系统质量保障技术实战

京东系统质量保障技术实战"

作者:商城研发POP平台
ISBN:9787121324321
定价:¥69.0
字数:246千字
页数:224
出版时间:2017-10
开本:16开
版次:01-01
装帧:
出版社:电子工业出版社
简介

在互联网飞速发展的今天,系统的复杂度及迭代速度都在不断提升,这对质量保障工作提出巨大挑战。那么如何在快速迭代发布下保障系统质量呢?阅读本书或许会找到一些答案。本书由京东商城研发 POP 平台—测试与质量管理团队倾力打造,开篇从基础业务测试、测试过程管理及 SOA 架构下的软件测试等基本质量保障内容入手,逐步展开讨论了自动化测试、测试环境管理等提升质量保障效能的实践内容,实现将质量保障从手工测试推向自动化的进阶。 本书中间篇章聚焦于持续集成及静态代码扫描实战经验的总结和质量保障提效工具的开发实践。此外, 本书还介绍了大量安全测试的实战经验。本书内容的最后部分深入描述了如何有效管理质量团队,从质量保障流程的制定到推行再到优化,从打造靠谱团队到团队成长等方面来向读者分享管理团队过程中这些必须面对的问题。本书内容涉猎广泛以实战为主线, 是近年来质量保障领域不可多得的图书, 适合关心互联网质量保障领域技术及发展的各类读者。

前言

序言1 打造京东业务快速迭代下的质量保障体系 京东集团高级副总裁 马松 质量之于系统犹如健康之于生命,其重要性不需多言。尤其是对于京东这样庞大的技术驱动型电商平台而言,更是工作中重要的一环。京东平台的发展经历了十多年的架构变迁,已经远远超越当初的模样,自营和开放平台并存、系统的多样化使得京东在竞争日趋激烈的电商生态中璀璨绽放。随着京东的高速发展,系统的复杂度也在不断提升,大量项目和需求的快速迭代,对质量保障工作提出巨大挑战。如何在快速迭代发布下保障系统质量是每一个京东质量人要共同思考的问题。面对这一挑战,京东质量人建立了一套完整的质量保障体系,使得京东系统能够在快速迭代下保持日常运营及大促期间的稳定,向用户提供优质的体验及服务。每年618期间的大促,京东平台的各个系统都坚强地挺住了一次又一次的订单洪峰,这份荣耀,是对质量人最好的礼赞。“质量保障”贯穿本书始终,也是本书的灵魂之所在。本书从完善的业务质量保障流程制定,到前后端自动化测试框架的搭建,从代码扫描使质量保障前置,到持续集成的逐步落地,从测试环境的集中化管理,到安全测试理论及安全工具的使用,从数据化的精细团队管理到以人为本的团队提升策略应用,都是本书所关注的内容。本书的另一个亮点在于其实战性,每一个章节都会以真实的案例作为佐证,这些案例都是京东质量人在日常工作中的点滴积累,其中,“持续代码扫描的演进之路”最佳实践入选全球软件案例研究峰会2016年度TOP 100经典案例。 质量保障是品牌价值的基石, 我们为之付出了巨大努力。 质量保障之路漫长而深远,伴随着大数据、AI等新技术的不断出现,我们的质量保障工作还会在技术广度及深度等多方面不断向前探索。相信不久的将来,我们会在这一领域呈现给大家更多的精彩。 序言2 质效合一,构建全程质量保障机制 商城研发 POP 平台负责人 王彪 京东十三年,风华正茂。刚刚过去的618大促,已经由京东的生日演变成了一个全民购物狂欢节。“技术引领、正道成功”是2017年618的主题,更是未来京东长期坚持的战略。随着业务的高速发展,京东的系统越来越多,架构也越来越复杂。如何在业务高速增长的过程中做好系统的质量保障工作,是我们需要解决的难题。正是京东人不断拼搏的精神一直鼓舞着我们去不断尝试与探索,逐渐在系统研发过程中实现了质量与效率的双重保障。 在传统的系统研发过程中需要投入大量的测试资源,并且经过较长的时间才能够完成质量保障工作。而互联网企业要求快速的响应变化,那就必须缩短交付周期。这时候持续集成和自动测试就能够很好地发挥其作用。通过质量过程的前置,在软件开发阶段就能够通过自动代码扫描来尽早发现代码中的缺陷,从而保障开发阶段的系统质量。到了提交测试阶段,又可以通过持续的自动化测试来极大节省手工测试的时间成本,并且能够及时反馈结果,从而让研发团队成员在第一时间了解到系统的质量情况,并不断优化调整。系统部署上线后,还可以通过自动化的核心功能验证来确保交付给用户使用的系统是一个高质量的系统。经过这样全流程的系统质量保证过程,不但实现了快速交付,而且很好地保障了系统质量。 整套质量保障体系的形成,是质量团队在成熟的理论基础上结合工作中系统不断快速迭代的特征,并通过大量的实践与总结,最终建立起来的。当然,所有的体系和方法都不是一成不变的,要随着业务和技术复杂度的变化而不断去调整和优化,期望本书中介绍的一些关于质量保障的实践和方法能够给广大读者提供一些思路和启发。 前言 背景 本书成书之时,正值京东 618 年中大促之际,一场红色的备战浪潮牵动着线上线下的每一个京东人。六月的经海路(京东集团总部所在地),即使在凌晨依旧车水马龙,热闹非凡,每一盏亮起的明灯都在述说着京东人奋斗的故事,每一个在此奋斗的兄弟姐妹都承载着为大促保障的荣耀使命。笔者所在质量保障团队已经不知经历了多少次这样紧张刺激的奋战,此时用户的每一次点击都牵动着质量保障人员的心,保障系统稳定地为客户提供服务是我们始终不移的追求。 全面 质量保障体系的搭建,是一个复杂且长久的过程,是在千百次实践中不断打磨并积累出来的。因此本书着重体现“实战”性,向读者展示真实电商系统保障技术的实践经验,内容涵盖了 POP 测试与质量管理团队工作的各个方面:主要包含业务质量保障介绍、 SOA 架构下的软件质量保障、 自动化测试实战、 测试环境管理实战、持续集成及持续代码扫描工程实践实战、质量保障工具开发实战、 Web 安全测试技术实战及质量团队管理实战等。笔者列举大量详实的案例从质量保障的各个维度进行了深入介绍,相信不论读者身处质量保障团队的何种角色,都能够在本书中找到对自己有益的知识或经验。 致谢 本书从选题到定稿都得到了公司领导及编委会成员的大力支持,大家在工作之余将各自在质量保障实践中最具代表性的案例选取出来并经过编委会评审后作为本书的实战案例向大家分享,感谢编委会成员的辛勤付出,同时感谢所有参与本书创作的人员。本书的精彩源于你们辛勤的付出与智慧的结晶。 商城研发 POP 平台

目录

目录 第1章 业务质量保障介绍 ...................................................................................1 1.1 电商行业项目的特点 ..................................................................................... 2 1.2 测试流程中的重点工作 ................................................................................. 3 1.2.1 测试前的工作..................................................................................... 3 1.2.2 测试中的工作..................................................................................... 6 1.2.3 上线后的工作................................................................................... 10 1.3 小结 ............................................................................................................... 10 第 2 章 SOA 架构下的软件质量保障................................................................. 11 2.1 功能模块测试 ............................................................................................... 12 2.1.1 接口测试 .......................................................................................... 12 2.1.2 接口自动化测试............................................................................... 14 2.1.3 UI 测试 ............................................................................................. 15 2.1.4 UI 自动化测试 ................................................................................. 16 2.2 联调测试 ....................................................................................................... 17 2.2.1 联调测试的意义............................................................................... 17 2.2.2 如何开展联调测试........................................................................... 17 2.3 小结 ............................................................................................................... 19 第 3 章 自动化测试实战 .................................................................................... 20 3.1 WebUI 实战................................................................................................... 21 3.1.1 Selenium ........................................................................................... 21 第2章 3.1.2 PageFactory ...................................................................................... 26 3.1.3 构建一款基于 Selenium 的易用 WebUI 框架 ................................ 30 3.2 接口测试实战 ............................................................................................... 32 3.2.1 HTTP 接口实战................................................................................ 32 3.2.2 自研 RPC 接口实战 ......................................................................... 34 3.2.3 一款简单易用的接口测试框架....................................................... 35 3.3 Mock 实战..................................................................................................... 39 3.3.1 对象 Mock 实战 ............................................................................... 39 3.3.2 接口 Mock 实战 ............................................................................... 40 3.4 分层测试的思考 ........................................................................................... 42 3.4.1 分层测试的理解............................................................................... 42 3.4.2 京东怎么做分层测试....................................................................... 43 3.4.3 收益可视化 ...................................................................................... 44 3.5 小结 ............................................................................................................... 45 第 4 章 测试环境管理........................................................................................ 46 4.1 软件构建工具介绍及使用............................................................................ 47 4.1.1 Ant .................................................................................................... 47 4.1.2 Maven ............................................................................................... 49 4.1.3 Gradle ................................................................................................ 52 4.1.4 Jenkins .............................................................................................. 54 4.2 互联网系统运行环境及软件介绍................................................................ 55 4.2.1 Nginx ................................................................................................ 55 4.2.2 Docker ............................................................................................... 56 4.3 测试环境分层 ............................................................................................... 57 4.4 测试环境搭建 ............................................................................................... 59 4.5 测试环境自动化运维 ................................................................................... 62 4.5.1 测试环境管理平台........................................................................... 62 4.5.2 测试服务器管理............................................................................... 65 4.5.3 稳定环境每日自动部署................................................................... 65 4.5.4 日常测试自动部署........................................................................... 67 4.6 小结 ............................................................................................................... 69 第 5 章 持续集成实践.........................................................................................70 5.1 持续集成介绍 ............................................................................................... 71 5.1.1 持续集成的起源与发展................................................................... 71 5.1.2 持续集成常用工具........................................................................... 73 5.2 为什么要做持续集成 ................................................................................... 73 5.2.1 避免集成地狱................................................................................... 74 5.2.2 如何做到快速交付........................................................................... 74 5.3 如何实施持续集成 ....................................................................................... 75 5.3.1 从零开始构建持续集成................................................................... 76 5.3.2 持续集成演进................................................................................... 77 5.3.3 工程师文化的重要性....................................................................... 80 5.3.4 持续集成流程优化........................................................................... 80 5.3.5 小团队的成功因素........................................................................... 81 5.3.6 规模化实施持续集成的一些困境................................................... 81 5.3.7 分步骤实现持续集成....................................................................... 82 5.4 小结 ............................................................................................................... 82 第 6 章 持续代码扫描实践 ................................................................................ 83 6.1 如何构建高质量的软件系统........................................................................ 84 6.1.1 质量是测试出来的吗....................................................................... 84 6.1.2 关注开发质量................................................................................... 85 6.1.3 测试人员如何参与代码评审........................................................... 86 6.1.4 常见代码扫描工具介绍................................................................... 87 6.2 从 0 到 1 实现持续代码扫描........................................................................ 89 6.2.1 SonarQube 的应用............................................................................ 89 6.2.2 从最简单的维度开始关注代码质量............................................... 92 6.2.3 测试人员的职责扩展....................................................................... 94 6.2.4 小团队的优秀案例........................................................................... 94 6.3 基于 SonarQube 的持续代码扫描方案演进................................................ 95 6.3.1 大规模应用代码扫描遇到的一些瓶颈........................................... 95 6.3.2 由人工驱动向技术驱动的转变....................................................... 96 6.3.3 由目标驱动向以服务研发为主的转变........................................... 97 6.3.4 由统一化向多样化的转变............................................................... 97 6.3.5 规模化持续代码扫描的成功案例................................................... 98 6.4 小结 ............................................................................................................... 98 第 7 章 质量保障工具开发实战 ......................................................................... 99 7.1 质量保障工具开发技术栈.......................................................................... 100 7.1.1 建站(Spring+SpringMVC+MyBatis+Velocity+JQuery+ Bootstrap) ..................................................................................... 100 7.1.2 Spring .............................................................................................. 100 7.1.3 Spring MVC .................................................................................... 103 7.1.4 MyBatis ........................................................................................... 107 7.1.5 前端技术 ........................................................................................ 112 7.1.6 框架搭建 ........................................................................................ 119 7.2 如何快速构建一个质量保障工具.............................................................. 124 7.2.1 需求调研 ........................................................................................ 124 7.2.2 设计 ................................................................................................ 127 7.2.3 任务管理 ........................................................................................ 131 7.2.4 效果度量 ........................................................................................ 135 7.3 小结 ............................................................................................................. 136 第 8 章 Web 安全测试技术实战 ...................................................................... 138 8.1 Web 安全概述 ............................................................................................. 139 8.2 客户端绕过实战 ......................................................................................... 139 8.2.1 HTML 绕过 .................................................................................... 139 8.2.2 URL 参数绕过................................................................................ 141 8.2.3 Http-Cookie 绕过............................................................................ 142 8.2.4 隐藏表单绕过................................................................................. 143 8.3 SQL 注入(SQL Injection)实战 .............................................................. 144 8.3.1 注入原理剖析................................................................................. 144 8.3.2 注入产生条件................................................................................. 147 8.3.3 注入方法实战................................................................................. 148 8.3.4 Java+JDBC 代码注入检测............................................................. 149 8.3.5 MyBatis 框架代码注入检测.......................................................... 151 8.3.6 手工注入实战渗透......................................................................... 151 8.3.7 工具注入实战渗透......................................................................... 159 8.3.8 注入预防措施................................................................................. 163 8.4 文件上传实战 ............................................................................................. 165 8.4.1 解析漏洞 ........................................................................................ 165 8.4.2 上传渗透实战................................................................................. 167 8.5 跨站脚本攻击(XSS) .............................................................................. 170 8.5.1 XSS 概述 ........................................................................................ 170 8.5.2 XSS 原理分析 ................................................................................ 170 8.5.3 XSS 类型分类 ................................................................................ 172 8.5.4 探测方法实战................................................................................. 172 8.5.5 工具实战演练................................................................................. 176 8.5.6 BEEF 平台实战攻击利用.............................................................. 177 8.5.7 XSS 防御措施 ................................................................................ 180 8.6 跨站请求伪造(CSRF) ............................................................................ 183 8.6.1 CSRF 原理分析.............................................................................. 183 8.6.2 CSRF 预防...................................................................................... 183 8.7 小结 ............................................................................................................. 184 第 9 章 测试团队管理实战 ...............................................................................185 9.1 测试流程制定与效率提升......................................................................... 186 9.1.1 测试流程的制定............................................................................. 186 9.1.2 工作流程的推行............................................................................. 187 9.1.3 流程优化与提效............................................................................. 188 9.2 打造一支靠谱的团队................................................................................. 188 9.2.1 时刻让团队清楚目标..................................................................... 189 9.2.2 目标的衡量 .................................................................................... 190 9.2.3 目标达成的核心所在..................................................................... 191 9.2.4 言行合一,数据说话..................................................................... 192 9.2.5 互信合作,分享共赢..................................................................... 193 9.2.6 团队文化与正能量打造................................................................. 194 9.3 团队成长..................................................................................................... 195 9.3.1 改变团队的行为习惯..................................................................... 195 9.3.2 建立团队技能模型......................................................................... 197 9.3.3 建立团队分享机制......................................................................... 200 9.3.4 业务能力提升................................................................................. 201 9.3.5 技术能力提升................................................................................. 202 9.3.6 有效利用绩效这把利剑................................................................. 202 9.4 团队管理漫谈............................................................................................. 203 9.4.1 团队管理要“千人千法” ............................................................. 204 9.4.2 承认不足,方能更近一步............................................................. 205 9.4.3 关于问责 ........................................................................................ 206 9.5 小结............................................................................................................. 208

作者简介

商城研发POP平台部专注于POP开放平台的系统建设,致力于为京东第三方商家提供丰富的合作模式、优秀的电商系统和工具,打造健康开放的智慧生态。团队有店铺运营、市场营销、数据产品经理等方面的资深专家。他们熟悉京东开放平台营销工具,有丰富的电商运营经验,致力于运用全平台营销的方法和理念指导店铺运营,提高运营效率,提升店铺业绩和服务水平。

编辑推荐

作者寄语

电子资料

www.luweidong.cn

下一个