在互聯(lián)網(wǎng)飛速發(fā)展的今天,系統(tǒng)的復(fù)雜度及迭代速度都在不斷提升,這對質(zhì)量保障工作提出巨大挑戰(zhàn)。那么如何在快速迭布下保障系統(tǒng)質(zhì)量呢?閱讀本書或許會找到一些答案。本書由商城研發(fā) POP 平臺—測試與質(zhì)量管理團隊傾力打造,開篇從基礎(chǔ)業(yè)務(wù)測試、測試過程管理及 SOA 架構(gòu)下的軟件測試等基本質(zhì)量保障內(nèi)容入手,逐步展開討論了自動化測試、測試環(huán)境管理等提升質(zhì)量保障效能的實踐內(nèi)容,實現(xiàn)將質(zhì)量保障從手工測試推向自動化的進階。 本書中間篇章聚焦于持續(xù)集成及靜態(tài)代碼掃描實戰(zhàn)經(jīng)驗的總結(jié)和質(zhì)量保障提效工具的開發(fā)實踐。此外, 本書還介紹了大量安全測試的實戰(zhàn)經(jīng)驗。本書內(nèi)容的后部分深入描述了如何有效管理質(zhì)量團隊,從質(zhì)量保障流程的制定到推行再到優(yōu)化,從打造靠譜團隊到團隊成長等方面來向讀者分享管理團隊過程中這些必須面對的問題。本書內(nèi)容涉獵廣泛以實戰(zhàn)為主線, 是近年來質(zhì)量保障領(lǐng)域不可多得的圖書, 適合關(guān)心互聯(lián)網(wǎng)質(zhì)量保障領(lǐng)域技術(shù)及發(fā)展的各類讀者。
“質(zhì)量保障”貫穿本書始終,也是本書的靈魂之所在。本書從完善的業(yè)務(wù)質(zhì)量保障流程制定,到前后端自動化測試框架的搭建,從代碼掃描使質(zhì)量保障前置,到持續(xù)集成的逐步落地,從測試環(huán)境的集中化管理,到安全測試?yán)碚摷鞍踩ぞ叩氖褂茫瑥臄?shù)據(jù)化的精細團隊管理到以人為本的團隊提升策略應(yīng)用,都是本書所關(guān)注的內(nèi)容。
商城研發(fā)POP平臺部專注于POP開放平臺的系統(tǒng)建設(shè),致力于為京東第三方商家提供豐富的合作模式、的電商系統(tǒng)和工具,打造健康開放的智慧生態(tài)。團隊有店鋪運營、市場營銷、數(shù)據(jù)產(chǎn)品經(jīng)理等方面的博學(xué)專家。他們熟悉京東開放平臺營銷工具,有豐富的電商運營經(jīng)驗,致力于運用全平臺營銷的方法和理念指導(dǎo)店鋪運營,提高運營效率,提升店鋪業(yè)績和服務(wù)水平。
目錄
第1章 業(yè)務(wù)質(zhì)量保障介紹 ...................................................................................1
1.1 電商行業(yè)項目的特點 ..................................................................................... 2
1.2 測試流程中的重點工作 ................................................................................. 3
1.2.1 測試前的工作..................................................................................... 3
1.2.2 測試中的工作..................................................................................... 6
1.2.3 上線后的工作................................................................................... 10
1.3 小結(jié) ............................................................................................................... 10
第 2 章 SOA 架構(gòu)下的軟件質(zhì)量保障................................................................. 11
2.1 功能模塊測試 ............................................................................................... 12
2.1.1 接口測試 .......................................................................................... 12
2.1.2 接口自動化測試............................................................................... 14
2.1.3 UI 測試 ............................................................................................. 15
2.1.4 UI 自動化測試 ................................................................................. 16
2.2 聯(lián)調(diào)測試 ....................................................................................................... 17
2.2.1 聯(lián)調(diào)測試的意義............................................................................... 17
2.2.2 如何開展聯(lián)調(diào)測試........................................................................... 17
2.3 小結(jié) ............................................................................................................... 19
第 3 章 自動化測試實戰(zhàn) .................................................................................... 20
3.1 WebUI 實戰(zhàn)................................................................................................... 21
3.1.1 Selenium ........................................................................................... 21
第2章 3.1.2 PageFactory ...................................................................................... 26
3.1.3 構(gòu)建一款基于 Selenium 的易用 WebUI 框架 ................................ 30
3.2 接口測試實戰(zhàn) ............................................................................................... 32
3.2.1 HTTP 接口實戰(zhàn)................................................................................ 32
3.2.2 自研 RPC 接口實戰(zhàn) ......................................................................... 34
3.2.3 一款簡單易用的接口測試框架....................................................... 35
3.3 Mock 實戰(zhàn)..................................................................................................... 39
3.3.1 對象 Mock 實戰(zhàn) ............................................................................... 39
3.3.2 接口 Mock 實戰(zhàn) ............................................................................... 40
3.4 分層測試的思考 ........................................................................................... 42
3.4.1 分層測試的理解............................................................................... 42
3.4.2 京東怎么做分層測試....................................................................... 43
3.4.3 收益可視化 ...................................................................................... 44
3.5 小結(jié) ............................................................................................................... 45
第 4 章 測試環(huán)境管理........................................................................................ 46
4.1 軟件構(gòu)建工具介紹及使用............................................................................ 47
4.1.1 Ant .................................................................................................... 47
4.1.2 Maven ............................................................................................... 49
4.1.3 Gradle ................................................................................................ 52
4.1.4 Jenkins .............................................................................................. 54
4.2 互聯(lián)網(wǎng)系統(tǒng)運行環(huán)境及軟件介紹................................................................ 55
4.2.1 Nginx ................................................................................................ 55
4.2.2 Docker ............................................................................................... 56
4.3 測試環(huán)境分層 ............................................................................................... 57
4.4 測試環(huán)境搭建 ............................................................................................... 59
4.5 測試環(huán)境自動化運維 ................................................................................... 62
4.5.1 測試環(huán)境管理平臺........................................................................... 62
4.5.2 測試服務(wù)器管理............................................................................... 65
4.5.3 穩(wěn)定環(huán)境每日自動部署................................................................... 65
4.5.4 日常測試自動部署........................................................................... 67
4.6 小結(jié) ............................................................................................................... 69
第 5 章 持續(xù)集成實踐.........................................................................................70
5.1 持續(xù)集成介紹 ............................................................................................... 71
5.1.1 持續(xù)集成的起源與發(fā)展................................................................... 71
5.1.2 持續(xù)集成常用工具........................................................................... 73
5.2 為什么要做持續(xù)集成 ................................................................................... 73
5.2.1 避免集成地獄................................................................................... 74
5.2.2 如何做到快速交付........................................................................... 74
5.3 如何實施持續(xù)集成 ....................................................................................... 75
5.3.1 從零開始構(gòu)建持續(xù)集成................................................................... 76
5.3.2 持續(xù)集成演進................................................................................... 77
5.3.3 工程師文化的重要性....................................................................... 80
5.3.4 持續(xù)集成流程優(yōu)化........................................................................... 80
5.3.5 小團隊的成功因素........................................................................... 81
5.3.6 規(guī)模化實施持續(xù)集成的一些困境................................................... 81
5.3.7 分步驟實現(xiàn)持續(xù)集成....................................................................... 82
5.4 小結(jié) ............................................................................................................... 82
第 6 章 持續(xù)代碼掃描實踐 ................................................................................ 83
6.1 如何構(gòu)建高質(zhì)量的軟件系統(tǒng)........................................................................ 84
6.1.1 質(zhì)量是測試出來的嗎....................................................................... 84
6.1.2 關(guān)注開發(fā)質(zhì)量................................................................................... 85
6.1.3 測試人員如何參與代碼評審........................................................... 86
6.1.4 常見代碼掃描工具介紹..............................
1.1 電商行業(yè)項目的特點
近年來,中國電子商務(wù)蓬勃發(fā)展,電子商務(wù)與日常百姓生活關(guān)系越來越密切,購物消費、上門服務(wù)、訂購機票、預(yù)訂酒店、旅游門票、手機充值等覆蓋了生活的方方面面。筆者一直在電子商務(wù)類公司做軟件質(zhì)量團隊的相關(guān)管理工作,參與了不少電商項目的測試。下面筆者根據(jù)觀察到的一些現(xiàn)象,站在測試的角度對電商行業(yè)項目的特點進行如下總結(jié)。
(1)注重易用性
電子商務(wù)作為市場熱門行業(yè),激烈的市場競爭是必須面對的事實。大家都想吸引更多的用戶,對于用戶而言方便易用的軟件更受歡迎。軟件的易用性是軟件質(zhì)量中重要的特性,簡單地說就是用戶在使用過程中是否感覺方便舒適。在 2003 年頒布的 GB/T16260-2003(ISO 9126-2001)《軟件工程產(chǎn)品質(zhì)量》質(zhì)量模型中,提出易用性包含易理解性、易學(xué)習(xí)性和易操作性。關(guān)于易用性,在具體的項目測試中我們通常首先要關(guān)注 UI(用戶界面, User Interface)。用戶在接觸軟件時首先看到的就是UI,為了給用戶留下良好的及時印象,重要系統(tǒng)都有自己的 UI 規(guī)范,其定義了界面細致的標(biāo)準(zhǔn),如導(dǎo)航、表單、表格、標(biāo)簽、按鈕、翻頁、進度條、文字錯誤提示等。除了符合規(guī)范,我們還要關(guān)注是否舒適直觀、潔凈、不唐突。易用性方面還要關(guān)注產(chǎn)品功能是否容易理解,操作是否簡單不繁雜等。在實際項目中,這些內(nèi)容往往是產(chǎn)品部門的同事做的工作比較多,但是作為測試工程師在測試過程中要有這方面的意識。
(2)注重安全性
據(jù)統(tǒng)計,電商企業(yè)在營銷過程中,有 90%的客戶會因為缺乏安全感和對網(wǎng)絡(luò)信任度低而流失,安全問題是電子商務(wù)的核心問題。據(jù) 2016 年京東財報顯示,京東年度活躍用戶數(shù)已經(jīng)達到 2.266 億,如此龐大的用戶量如果安全沒有保障,則將帶來巨大的損失。京東有專門的網(wǎng)絡(luò)安全團隊,對重要系統(tǒng)上線前都會進行安全掃描,也會定期對線上運行的系統(tǒng)進行安全檢查。如果發(fā)現(xiàn)有安全漏洞,則會及時時間聯(lián)系對應(yīng)系統(tǒng)負(fù)責(zé)人解決處理。但是京東的系統(tǒng)和業(yè)務(wù)數(shù)量非常龐大,有些業(yè)務(wù)上的業(yè)務(wù)質(zhì)量保障介紹安全問題全部依靠有限的安全部門同事檢查并不夠。所以在各系統(tǒng)功能測試階段,測試工程師需要首先進行一輪安全測試。
(3)項目周期短,需求變化快
在傳統(tǒng)的軟件項目中,需求一般是十分確定的,交付時只要與需求一致即可,往往采用瀑布模式,項目周期相對較長。電子商務(wù)行業(yè)作為市場熱門行業(yè),激烈的市場競爭是必須面對的事實。電子商務(wù)項目相比傳統(tǒng)項目需求變化快,當(dāng)一個需求提出后,如果項目周期太長,那么交付時可能已經(jīng)不適用當(dāng)前的環(huán)境了。所以一個需求或項目從提出到上線交付根據(jù)功能復(fù)雜程度一般周期為幾天到幾個月。作為測試工程師在保障軟件質(zhì)量的同時應(yīng)盡力通過技術(shù)和工作方法提高效率,縮短測試時間從而縮短整個項目的周期。
當(dāng)軟件研發(fā)處在快速迭代、持續(xù)交付的時代,只有質(zhì)量保障體系成為堅強后盾,才能助研發(fā)一臂之力,而不是讓質(zhì)量成為瓶頸。POP 平臺質(zhì)量團隊給我們呈現(xiàn)的《系統(tǒng)質(zhì)量保障技術(shù)實戰(zhàn)》一書乃雪中送炭。本書不僅在自動化測試、CI、持續(xù)靜態(tài)分析、安全性測試等各個方面分享團隊的實戰(zhàn)經(jīng)驗和實踐,而且強調(diào)全過程的質(zhì)量保障和團隊協(xié)作,理順測試流程,突出基于接口的測試和分層測試,將需求管理、開發(fā)、測試、環(huán)境維護等融為一體,相信這是一本難得的好書。
同濟大學(xué)軟件學(xué)院教授 知名軟件質(zhì)量專家 朱少民
這本書來自測試人的實踐、思考與創(chuàng)新。我在閱讀此書時,感覺像是有多位博學(xué)“老司機”帶路,他們帶我領(lǐng)略電商測試之博大精深。在電商測試領(lǐng)域中,他們不斷摸索、沉淀、反思,并把效的精華集結(jié)成書。這本書能夠幫助工程師提升Devops 意識,幫助公司建立質(zhì)量文化,是近年來測試領(lǐng)域難得的實踐派之佳作。
品友互動CTO 歐陽辰
本書作者以親身經(jīng)歷的電商行業(yè)項目為例,介紹了項目各個階段質(zhì)量保障的實戰(zhàn)經(jīng)驗,不僅有詳盡的軟件測試和持續(xù)交付相關(guān)技術(shù),還有團隊管理方面的內(nèi)容,是一套非常的項目質(zhì)量保障方案,值得軟件質(zhì)量保障人員借鑒和學(xué)習(xí)。
ThoughtWorks 中國QA Lead BQConf 負(fù)責(zé)人 林冰玉