編輯推薦
國內互聯網公司測試實戰經驗總結,阿裏、騰訊、京東、攜程、百度等公司多位測試專傢聯袂推薦。
從移動互聯網産品測試的準備工作到産品發布後的質量管理方法,涉及移動産品的整個研發流程,是移動App開發與測試人員的必備參考。
內容簡介
在移動互聯網高速發展的今天,打造上韆萬乃至上億用戶的移動App是每個開發者的夢想。為瞭支持這樣量級的用戶並持續運營和發展,App的高質量非常重要。而作為質量保證的重要手段,測試技術的重要性是不言而喻的,可以說每一個成功App背後都有一支強大的測試隊伍。本書作者在騰訊、京東、阿裏等大型互聯網公司有多年豐富的測試研發和測試管理經驗,為我們揭開瞭移動App測試的神秘麵紗。本書結閤大量的實戰經驗,對移動互聯網測試在功能測試、自動化測試、專項測試、QA等方麵做瞭全麵而詳細的講解,幫助測試從業者快速、係統地瞭解和學習移動互聯網測試架構,無論是對初級測試員、專業測試員還是測試管理者都會有一些很好的啓發和幫助作用。
《移動App測試實戰:互聯網企業軟件測試和質量提升實踐》主要內容:
移動互聯網産品的常見研發流程,以及自動化測試的高效方法。
性能測試,包括Web前端、App端、後颱服務器等性能測試。
專項測試,包括App兼容性測試、內存問題測試和分析、流量和電量測試、弱網絡和穩定性測試、環境相關的測試等。
輔助測試,包括代碼的靜態掃描、代碼覆蓋率、接口mock方法以及AOP測試方法等。
移動App發布過程中的質量管理,包括持續集成、發布環節的質量把控點、內測的利與弊、灰度方法的技巧等。
産品發布之後的質量管理方法,包括交叉測試、綫上監控、問題收集與反饋機製等。
作者簡介
邱鵬,螞蟻金服高級測試專傢,負責電商係統的前後颱及無綫App測試,以及團隊管理工作。畢業於華中科技大學計算機學院,曾擔任京東無綫測試部負責人、騰訊高級測試工程師、趨勢科技中國研發中心高級技術經理,完整參與瞭多個大型企業級安全産品的測試工作。在自動化測試、性能測試、測試整體技術規劃以及團隊管理方麵有比較豐富的經驗。
陳吉,畢業於上海交通大學計算機係,曾在微軟全球技術支持中心從事開發技術支持工作,對微軟係開發技術底層有較深入的瞭解,擅長代碼調試和疑難問題診斷。2013年以後先後加入易迅和京東無綫部門從事軟件測試開發工作,主攻Android係統的測試,期間負責京東外網接口端對端的監控係統研發、測試工具開發、測試技術的探索和推廣等工作。
潘曉明,從事軟件測試行業8年,在黑盒測試、自動化測試、性能測試和專項測試方麵有著豐富的經驗。他很早就開始參與移動App測試,在WebOS、Android和iOS等平颱上都有豐富的測試經驗。曾就職於惠普和騰訊科技,目前效力於京東,負責測試工具的開發、iOS測試技術研究以及iOS的性能專項測試等。
目錄
序言
前言
第1章 産品功能測試概述
1.1 互聯網産品常見的研發流程
1.2 測試用例設計和評審
1.3 測試進度管理
1.3.1 測試進度報告
1.3.2 測試完成報告
1.3.3 係統化的方法
1.4 本章小結
第2章 功能測試自動化
2.1 輕量接口自動化測試
2.1.1 JMeter關於自動化方麵的特性介紹
2.1.2 基於JMeter的輕量接口自動化實踐
2.2 App UI層麵的自動化
2.2.1 Android的UI自動化技術
2.2.2 iOS的UI自動化技術
2.3 本章小結
第3章 性能測試
3.1 Web前端性能測試
3.1.1 HTTP性能相關的技術要點
3.1.2 Web前端性能測試方法
3.2 App端性能測試
3.2.1 Android內存問題分析
3.2.2 iOS內存問題分析
3.2.3 App內嵌Web組件的性能分析
3.3 後颱服務性能測試
3.3.1 壓力場景的建模
3.3.2 測試工具
3.3.3 測試數據的收集
3.3.4 分析和報告
3.4 本章小結
第4章 專 項 測 試
4.1 兼容性測試
4.1.1 兼容性測試的準備和手工測試
4.1.2 基於UI自動化腳本的雲測試方案
4.2 流量測試
4.2.1 Android App特有的流量測試方法
4.2.2 iOS App特有的流量測試方法
4.2.3 通用的流量測試方法
4.2.4 常見的流量節省方法
4.3 電量測試
4.3.1 Android電量測試方法
4.3.2 iOS電量測試方法
4.4 弱網絡測試
4.4.1 藉助手機自帶的網絡狀況模擬工具
4.4.2 基於代理的弱網絡的模擬
4.5 穩定性測試
4.5.1 基於Monkey的穩定性測試
4.5.2 Android 的ANR
4.5.3 基於模糊測試思路的穩定性測試方法探索
4.6 安全測試
4.6.1 安裝包測試
4.6.2 敏感信息測試
4.6.3 軟鍵盤劫持
4.6.4 賬戶安全
4.6.5 數據通信安全
4.6.6 組件安全測試
4.6.7 服務端接口測試
4.7 環境相關的測試
4.7.1 乾擾測試
4.7.2 權限測試
4.7.3 邊界情況
4.7.4 Android定位測試
4.8 本章小結
第5章 輔助測試方法
5.1 代碼靜態掃描
5.1.1 針對Android的靜態代碼掃描
5.1.2 針對iOS的靜態代碼掃描和分析
5.2 代碼覆蓋率分析
5.2.1 Android代碼覆蓋率技術方案
5.2.2 iOS代碼覆蓋率技術方案
5.2.3 代碼覆蓋率的應用實踐
5.3 接口Mock方法
5.3.1 常見的接口異常模擬方法
5.3.2 使用Fiddler作為Mock Server
5.3.3 基於FiddlerCore二次開發的Mock工具
5.4 AOP測試方法
5.4.1 Android AOP測試實踐
5.4.2 iOS AOP測試實踐
5.5 本章小結
第6章 發布過程中的質量管理
6.1 持續集成
6.1.1 持續集成簡介
6.1.2 持續集成實踐
6.2 發布環節的質量把控
6.2.1 後颱服務的發布
6.2.2 App的發布
6.3 內測
6.3.1 內測的範圍
6.3.2 內測的實施
6.4 灰度
6.4.1 Android App的灰度方法
6.4.2 iOS App的灰度方法
6.5 本章小結
第7章 質量的度量和推動
7.1 質量的度量和推動概念
7.1.1 質量數據的度量
7.1.2 質量推動的活動
7.2 QA的角色
7.3 跨團隊的質量推動
7.3.1 開發自測
7.3.2 設計走查
7.3.3 産品走查
7.4 本章小結
第8章 發布之後的質量管理
8.1 發布後的交叉測試
8.2 綫上監控
8.2.1 監控類型介紹
8.2.2 接口自動化監控
8.3 外部用戶問題反饋的收集和跟進
8.4 本章小結
第9章 關於軟件測試和測試團隊
9.1 測試是否必需
9.2 專職測試人員的價值
9.3 測試團隊和發展
9.4 本章小結
參考文獻
前言/序言
Preface現在已經是移動互聯網的時代,藉助手機等移動設備,人們可以完成資訊的獲取、社交、遊戲,以及日常生活的各種應用,甚至很多工作的開展。有很多新興的移動互聯網公司在崛起,也有很多傳統的IT公司在轉型,更有大量傳統行業的企業在藉助移動互聯網拓展自己的業務。對IT技術人員而言,這是一個非常好的時代,有大量的工作機會,因為有大量的移動互聯網相關係統的研發需求。當然,這也意味著有很多新的技術和方法要去學習。有很多的研發人員快速轉型到移動互聯網領域,有大量的移動互聯網産品被開發齣來。在這個過程中,也會麵臨一個問題,那就是産品質量的參差不齊。在某種程度上,因為移動設備的特點,比如屏幕相比PC較小、電量有限、移動網絡狀況復雜,以及設備性能的問題,移動互聯網産品對質量的要求其實更高。有過相關研發經驗的人應該能體會,快速開發一個可用的移動App並不難,但是做一個高質量的App其實是一件非常有挑戰的事情。
這本書寫作的初衷就是希望給移動互聯網産品的研發團隊,包括測試團隊,一個基於大量一綫實踐的比較係統性的參考。
我們畢業後工作的幾傢公司都比較重視産品質量,對測試的投入都比較大,對人員的要求也比較高,使得我們有機會比較係統地實踐專業的測試工作。另一方麵,近幾年我們接觸瞭很多規模較小的軟件研發組織,甚至是一些創業公司,他們的團隊和業務在快速發展,有非常強烈的意願去深入瞭解體係化的測試和質量提升工作是如何開展的,但常常會感到一些迷茫。之前我們寫過一些博客文章和培訓材料,並參加瞭一些業界的技術交流,得到瞭非常多的正麵反饋,讓我們覺得這件事有價值,對同行們可能也有一些幫助。一兩次的技術交流和零散的討論總覺得不夠係統,說不清楚。那不如寫一本書吧,正好這些都是我們自己做過的事情,有過一些實踐經驗,也踩過一些坑。
本書的內容組織基於以上的齣發點,我們希望比較係統地介紹整個移動App的測試,其實廣泛一點來講是質量保證的工作,因為這本書裏介紹的不少實踐已經超齣瞭單純的測試的範疇。
首先我們會介紹一下典型的互聯網産品的研發流程。就我們工作過的幾傢公司,每傢都有一些不同,但是核心的做法其實非常類似。並不是簡單地套用敏捷等流程方法,而是經過不斷實踐的摸索和調整,各傢都找到一些適閤産品特定以及互聯網快速迭代要求的流程做法。這些也是後麵討論一些質量實踐的基礎。在第1章的第二部分我們介紹瞭功能測試中的一些實踐,包括測試用例的設計和評審,以及測試進度的管理。
第2章介紹瞭自動化的方法,包括接口層麵的自動化,這裏我們重點介紹瞭一種實踐過的輕量級方案,以及App UI層麵的自動化,分布介紹瞭Android和iOS用到的一些技術方案。
第3章介紹瞭性能測試的方法,包括Web前端的性能,為瞭介紹這部分的性能問題,也介紹HTTP協議相關的知識,以及常用的測試方法。第二部分是App端的性能,包括Android和iOS內存相關的問題,以及內嵌Web組件的性能分析。最後介紹瞭後颱服務的性能測試,包括瞭壓力場景的建模、測試工具的介紹以及測試數據的收集和分析。
第4章重點介紹瞭幾個針對App的測試方法,包括兼容性測試、流量測試、電量測試、弱網絡測試、穩定性測試、安全測試和環境相關測試。這些方法,由於都是針對某個特殊方麵或者問題的,所以我們統稱為專項測試。
第5章介紹瞭代碼靜態掃描、代碼覆蓋率分析、接口Mock方法和AOP測試方法,這些是測試方法中非常有效的補充,我們稱之為輔助測試方法。
第6章介紹瞭發布過程中的質量保證活動,包括持續集成的實踐,以及發布環境的質量包括,包括發布係統的介紹。另外還專門討論瞭內測和灰度這兩個互聯網産品比較常用的方法。
第7章介紹瞭質量的度量和推動方法。包括我們常用的一些質量分析的維度,QA的角色和所做的工作,並專門討論跨團隊的質量推動。
第8章介紹瞭一些發布之後的質量管理工作,包括繼續進行一些模塊之間的交叉測試,發現一些之前沒有發現的問題。另外,介紹瞭互聯網産品的一些常見的監控維度,並重點介紹瞭適閤測試團隊開展的接口方麵的自動化監控的實踐做法。最後,討論瞭關於外部用戶問題反饋的收集和跟進的一些常見的做法。
第9章,最後,作為在軟件測試領域工作多年的專業人員,我們也想藉這個機會討論一些我們對於軟件測試、測試人員以及團隊的看法和思考。因為前麵介紹的所有實踐,都是這些人做齣來的。
關於內容本身,如果隻用一個詞來形容其特點,我想那就是實戰。除瞭個彆知識點補充瞭一點點介紹性材料,這本書幾乎所有的內容都是我們在真實的項目中實踐過的,有很多材料都是直接來自真實的項目(當然做瞭一些敏感信息的過濾)。我們的原則是寜願不全麵,也不想誤導。因為工作久瞭,我們發現有很多的理論似是而非,怎麼說都有道理,比如憑空討論一個企業應該專注一個領域還是應該多元化經營?這樣的討論可能會一直繞圈子,給不瞭真正有價值的參考;還不如介紹幾個真實的企業是做什麼的,處於什麼樣的狀況,有什麼優勢,遇到什麼實際問題,是怎麼處理的。軟件測試,甚至整個軟件研發,都屬於工程實踐的範疇,最終是要有實際的産齣,不是憑空的理論,所以我們覺得也應該用實踐的態度來對待知識經驗的分享。
誰適閤閱讀本書說實話,在給這本書起名的時候我們有一些糾結,因為內容是圍繞著一個移動App測試的各個方麵來講解的,但是有經驗的讀者會發現,這裏介紹的測試技術和質量流程對於其他互聯網産品同樣適用。比如一些自動化和性能測試的方法,以及代碼靜態分析和覆蓋率等技術手段,還有質量度量和推動的實踐,都不局限於移動互聯網方麵,我們甚至覺得並不局限在互聯網方麵。就我們個人的經曆而言,我們曾經參與過大型電信係統的開發,企業級服務器軟件的測試,以及PC客戶端的産品,後來轉型到互聯網領域,有很多在之前領域裏好的實踐可以被藉鑒和應用,隻不過要考慮實際産品和項目的特點來調整,我想反之也是一樣。所以請大傢不要被互聯網或者所謂的互聯網思維束縛,不是觸瞭網就立即如何。我們仍然需要理解每一個技術的原理和優缺點,對於每一個質量提升的實踐也是一樣,然後結閤自己所在項目的實踐,優化和調整,這樣會更加有效果。
基於本書的內容組織,這本書可能適閤下麵這些人:
希望將測試做得更加深入的一綫測試人員,特彆是互聯網和移動互聯網的測試人員,可以更加係統地瞭解相關的測試技術和方法。
希望提高代碼質量的一綫開發人員。本書有很多質量提升做法也可以用於開發,比如靜態掃描和內存分析,在很多的團隊中也確實如此應用。
測試團隊的leader,特彆是一些接手互聯網或者移動互聯網測試團隊時間不長的,可以比較係統地瞭解測試和質量管理工作的規劃和思路。
希望提高産品質量和研發效率的研發團隊負責人,可以作為對全流程質量提升的一些參考。
在校的大學生,瞭解到現在很多學校有測試相關的專業瞭,希望大傢在校園裏就可以瞭解到一些業界的實踐做法。
其他任何關注移動互聯網産品研發和質量提升的人員。
這是一本很全麵的關於測試的書嗎嗯……我們很想說是,但很遺憾它可能還差很遠。
一個人知道得越多,就知道自己不知道的越多,最近這幾年工作的經曆讓我們深感如此。在工作中,我們不斷遇到新的問題和挑戰,新的技術和方法也在不斷湧現齣來。另外,我們在工作中接觸瞭大量優秀的測試人員和各種深入的測試技術實踐,也接觸瞭許多業界同行,因此深知測試領域的博大精深。不過可能因為大傢工作節奏都比較快,鮮有人係統化來做分享,所以本書也算是拋磚引玉,希望更多資深的業界同行把自己在一綫的實戰經驗分享齣來,共同推動國內的測試做得更加係統和深入,更加的有價值。也正是這樣的想法激勵著我們花費大量的業餘時間,希望比較直接和鮮活地把我們在一綫的實踐分享齣來。
本書閱讀建議對於移動App測試經驗比較少的人,我們建議比較完整地閱讀本書。對於有一定經驗的人,請隨手翻到你感興趣的章節,因為本書的很多內容都有一定的獨立性。本書的很多內容都結閤瞭具體的實例講解,因此我們也建議大傢在看到相關的章節時動手實踐。
關於作者本書由三位作者:邱鵬(Ricky)、陳吉(Allen)、潘曉明(Shawn)共同完成,我們曾經在一個團隊中長時間一起工作,對産品質量的持續提升和新的測試技術研究都一直懷有共同的熱情。同時,我們背後有好幾十位業務測試、測試開發和質量管理的同事都貢獻瞭具體的項目實踐和很多好的建議。本書具體內容的分工如下:
Ricky規劃瞭整本書的內容,並編寫瞭接口自動化、Web前端性能測試、後颱服務性能測試、兼容性測試、部分流量測試內容、部分電量測試內容、弱網絡測試、App穩定性測試主要內容和接口Mock的部分內容,以及第1章、第6章、第7章、第8章、第9章。
Allen作為資深的Android測試開發專傢,編寫瞭其中主要的Android相關內容,包括Android UI自動化、Android內存測試和WebView性能、Android代碼靜態掃描、Android流量自動化部分、Android的ANR、安全測試、App環境相關測試、Android代碼覆蓋率、Mock Server、Android AOP方法。
Shawn作為資深的iOS測試開發專傢,編寫瞭其中主要的iOS相關章節,包括iOS UI自動化、iOS內存和WebView性能分析、iOS代碼靜態掃描、iOS流量和電量的部分內容、iOS代碼覆蓋率,iOS AOP方法,以及持續集成中的iOS覆蓋率案例。
分工協作是這本書得以完成的基礎,不隻是內容本身,也因為一個人無法承擔繁忙的工作之餘如此巨大的工作量,因為除瞭文字編寫,每個案例都需要實踐。協作本身就是一種精神力量,也是愉快的經曆。
緻謝以下是一些我們共同想感謝的人:
首先我們想感謝曾經一起努力工作的騰訊、易迅和京東的同事們,他們對我們的測試工作給瞭非常多的支持和建議,促進我們不斷提高。
我們也想特彆感謝我們的編輯,機械工業齣版社的吳怡編輯,她是推動這個寫作計劃變成現實的人,包括選題、內容的組織以及細節的文字方麵都給瞭我們很多的幫助,是她的鼓勵和肯定讓這本書得以完成。我們也想感謝在寫作本書的過程中,那些得知我們在進行這個長跑並給予支持和鼓勵的人。
以下是幾位作者分彆想感謝的人:
Ricky緻謝:
首先我想感謝騰訊的吳凱華(Jeremy)先生,是他帶我進入互聯網測試領域,並給予非常多的指導,另外他還抽齣寶貴的時間為這本書作序。為瞭這篇序,他嚮我仔細瞭解瞭內容組織背後的考慮,並閱讀瞭本書的絕大部分內容,他這種認真負責的精神是一貫的,一直以來都令我非常敬佩,使人見賢思齊。這篇序本身也融入瞭他對於軟件測試和個人發展的深入思考,非常值得一讀。也特彆感謝李俊(Jasper)先生,另一位在騰訊期間我的老闆,也是非常的卓越、認真和正直,從他那裏得到很多關於做好事情、帶好團隊的具體指導,至今受用。
感謝曾經在騰訊電商上海測試團隊,以及京東無綫測試部的每一位同事,這本書的內容是大傢一起實踐的一個小結,非常高興能和大傢一起共事,也為每個人取得的進步感到驕傲。謹以此書,緻以:曹計昌先生、Joe Chen、Yun Zhang、John Li、Jicheng Wang、Tao Qian、Allen Wang、Enoch Huangfu、Fei Zou、付學寶、徐奇琛、彭曉虹、馬弘燁、Scott Li、Step Tian、袁蓉蓉、黨傑、硃永敏、幸銳、姚醒、王孝滿、江川、蓋美紅、王宇、李鬆峰、陳保安、李偉奇、譚丁強、李大鵬、Nina Luo、Jessica、Shelly Hu、Victor Wan、Eddie Liu、Rocken Meng、Frank Xia、Allen Fang、Lampard Chen、Haison Tang、Allan Zhou等老師和朋友,在此錶示深深感激。限於篇幅無法一一列舉,但內心中對於所以給予過支持、建議和批評的人們深懷感激。
也藉此機會感謝螞蟻金服的同事們,感謝給予我新的機會讓我可以迎接新的挑戰。這本書包含瞭之前一些工作內容的沉澱,希望可以在新的領域有更多新的收獲。
最後我想感謝我的傢人,感謝他們對於我工作的理解,這本書的寫作在工作之外又額外占去瞭一些本該陪他們的時間。兒童節快到瞭,把這本書獻給我的女兒甜甜。
Allen緻謝:
首先感謝Ricky在Android專項測試工作中給予的支持和建議,此外感謝我的同事硃瑋在Android代碼覆蓋率工作中的
移動App測試實戰:互聯網企業軟件測試和質量提升實踐 下載 mobi epub pdf txt 電子書 格式