産品特色
內容簡介
著重講解Web測試中可能遇到的各種問題以及思考和解決思路。第1~4章,重點介紹瞭Web測試中為關鍵的功能測試,並從開發和測試技術、測試覆蓋率、測試實踐和業務需求4個方麵分析瞭功能測試中Bug産生的原因及其解決思路。第5、6章詳細介紹在Web測試中安全和性能測試實踐,從思維和實踐兩個維度講解。第7章詳細介紹在進行Web自動化測試過程中你可能遇到的各種問題,以及應對策略。第8章詳細介紹移動Web測試需要進行的實踐與測試思路調整。第9章介紹瞭非功能性的其他測試。第10章通過介紹在需求澄清、測試環境管理和運維中的測試實踐,闡述如何通過這幾方麵的測試活動提升産品質量。
作者簡介
黃勇,現任ThoughtWorks中國區QA Lead。2006年天津大學計算機科學與技術專業本科畢業,畢業後先後任職於博彥科技,普華永道GTS和ThoughtWorks; 始終關注於新的技術和業界趨勢,不停汲取新的知識和實踐,同時熱衷於分享。曾齣版《移動App測試的22條軍規》(人民郵電齣版社)。閤作組織和創辦瞭北京軟件質量大會BQConf,作為主演嘉賓參加瞭第1、2、13和17屆BQConf。作為演講嘉賓參與2015移動無綫測試技術大會。作為質量分析師,先後工作在Oracle,微軟,普華永道,澳洲電信等多傢公司的大型項目上。積纍瞭豐富的實戰經驗和團隊管理經驗。
目錄
序一
序二
序三
前言
第1章 功能測試:技術篇 ┆1
1.1 輸入框中輸入超過最大允許值造成頁麵跳轉溢齣 ┆2
1.2 索引值計算錯誤使資源縮略圖顯示和大圖展現不一緻 ┆5
1.3 測試Web Service能否正常提供JSON數據 ┆8
1.4 利用JavaScript加載的漏洞提前購買搶購商品 ┆11
1.5 過長的控件名稱造成其他元素顯示錯位 ┆14
1.6 多次操作本該禁用的頁麵組件造成服務器齣錯 ┆17
1.7 頁麵跳轉後齣現HTTP 400錯誤 ┆19
1.8 使用沒有添加時間戳的緩存使用戶看到過期數據 ┆21
1.9 代理服務器過度緩存文件導緻讀取錯誤的賬號信息 ┆24
1.10 多餘的空格造成服務器被刪除 ┆25
1.11 IE 9不支持占位符導緻搜索行為異常 ┆27
1.12 小結 ┆29
第2章 功能測試:測試覆蓋篇 ┆30
2.1 設計測試時對需求分析不透徹導緻給予用戶錯誤的摺扣 ┆30
2.2 頁麵字段依賴導緻錶單提交時齣錯 ┆36
2.3 修改産品代碼時忽視瞭對遺留數據的處理 ┆38
2.4 基礎代碼的改動影響到瞭其他相關産品,造成程序齣錯 ┆41
2.5 異常場景處理不全麵導緻功能缺陷 ┆43
2.6 時區不一緻造成郵件發送異常 ┆47
2.7 多入口功能的特殊處理造成的Bug ┆50
2.8 小結 ┆52
第3章 功能測試:測試實踐篇 ┆53
3.1 修改充值金額範圍遺漏的産品Bug ┆53
3.2 針對UI設計稿的測試思路 ┆56
3.3 前後颱分離測試時需要注意測試隔離 ┆59
3.4 賬號關聯過的手機號會一直收到短信驗證碼 ┆64
3.5 提高測試效率的一個捷徑 ┆67
3.6 缺陷VS功能 ┆70
3.7 關於一次缺陷大掃除的結果分析 ┆73
3.8 小結 ┆75
第4章 功能測試:業務需求篇 ┆76
4.1 圖片輪播的自動播放和手動播放衝突 ┆77
4.2 刪除賬號造成購買記錄中齣現空白記錄 ┆79
4.3 産品使用本機時間造成用戶不用付費 ┆80
4.4 注冊和登錄功能限製輸入不一緻導緻功能錯誤 ┆82
4.5 復製圖片可以繞過對添加圖片大小、數量、格式的限製 ┆84
4.6 小結 ┆86
第5章 安全性測試 ┆87
5.1 鏈接格式暴露安全隱患 ┆87
5.2 細剖如何用OWASP TOP 10補“洞” ┆90
5.3 前颱修改JavaScript可以輸入超限字符 ┆99
5.4 頁麵沒有屏蔽用戶執行JavaScript代碼導緻XSS攻擊 ┆101
5.5 過度暴露服務器信息也會造成安全問題 ┆103
5.6 日誌中的信息泄露 ┆105
5.7 打開陌生網頁後,我在網站上存儲的信息丟失瞭 ┆108
5.8 包含在受限PDF裏的縮略圖權限不受限製 ┆110
5.9 小結 ┆111
第6章 性能測試 ┆112
6.1 性能測試腳本無法使用瞭 ┆112
6.2 錯誤的HTTP狀態碼增加瞭服務器的負擔 ┆117
6.3 不需要模擬用戶的操作步驟進行性能測試 ┆118
6.4 服務器端沒有考慮分頁而導緻的性能問題 ┆120
6.5 服務器端壓力測試 ┆122
6.6 前端性能測試的思考點和兩個工具 ┆128
6.7 小結 ┆132
第7章 自動化測試 ┆133
7.1 自動化新手入坑,測試數據管理 ┆134
7.2 本地環境正常運行,在測試環境執行就齣問題瞭 ┆137
7.3 編寫自動化測試時需要考慮投入産齣比 ┆140
7.4 測試框架和工具選型也需要考慮Debug ┆144
7.5 自動化測試框架選型調研需要使用復雜場景 ┆147
7.6 使用Mock導緻漏測很多真實環境的場景 ┆149
7.7 開發UI自動化測試技巧錦集 ┆151
7.8 小結 ┆158
第8章 移動Web測試 ┆159
8.1 測試多選框 ┆159
8.2 移動網頁的左右鏇轉不一緻 ┆163
8.3 移動設備碎片化使移動端網頁測試更加睏難 ┆165
8.4 測試關鍵字輸入框 ┆168
8.5 移動網頁上過長的下拉菜單 ┆172
8.6 字符集不同導緻顯示亂碼 ┆174
8.7 重現一個讓手機App崩潰的綫上Bug ┆177
8.8 小結 ┆179
第9章 非功能性測試 ┆180
9.1 搜索結果為單數時仍顯示復數名詞 ┆181
9.2 輔助功能引發的法律風險 ┆182
9.3 輔助功能和鍵盤用戶的衝突:快捷鍵的順序問題 ┆185
9.4 網站國際化和本地化測試中碰到的問題 ┆186
9.5 過度本地化快捷鍵 ┆189
9.6 小結 ┆192
第10章 其他類型的測試 ┆193
10.1 意料之外的用戶操作 ┆194
10.2 數據元素應該支持增刪改查 ┆197
10.3 為什麼要關注測試環境之間的差異 ┆198
10.4 産品環境和測試環境之間基礎設施的差異造成的問題 ┆201
10.5 大小寫造成的部署齣錯 ┆203
10.6 集成和係統測試時使用真實手機號 ┆206
10.7 一個由A/B測試引齣的Bug ┆207
10.8 隱身的特殊字符 ┆209
10.9 郵件發送不齣去瞭 ┆213
10.10 廣告條在三種瀏覽器上崩潰瞭 ┆216
10.11 小結 ┆218
附錄A 敏捷測試中的Web測試優秀實踐 ┆219
附錄B 測試人員職業發展之路 ┆224
前言/序言
為什麼要寫這本書1)人不能像走獸那樣活著,應該追求知識和美德。——但丁2)助人為樂,人生一美德。
我們4個作者加起來年齡過百,而且有著年超半百的工作經驗,算起來也是測試領域的老鳥瞭。
根據上麵的1)和2),我們得齣一個很重要的結論:
經過這麼多年在工作中不斷總結經驗,時不時與Bug鬥智鬥勇,最後提煉齣來的經驗,我們希望能分享給更多的人,更重要的是能拋磚引玉,引發對更優秀的工作方式和實踐的思考。
為什麼需要看這本書怎樣判斷你是否需要這本書?以下場景,如果8條以內你都似曾相識,那麼請看這本書吧!
1)測試過程中,某個功能的測試除瞭依據需求文檔編寫測試用例,好像找不到彆的測試點瞭。
2)按需求文檔編寫的測試用例,執行過後測試都通過瞭,但自己還是沒有信心,總覺得還有沒測到的地方。就像都齣門瞭,還在懷疑自己究竟是否鎖門瞭。
3)産品上綫瞭,Bug齣來瞭。為什麼老是遺漏?4)當前測試的功能怎麼和之前項目的很相似,當時還發現瞭一個很有意思、很難發現的問題,可現在居然想不起來瞭。接著,又重新慢慢摸索。要是有記錄可以翻查多好!
5)發現一個Bug,提交請求修復時,卻被要求提供更多信息。更多信息?怎麼提供,不知道,找不著,沒頭緒。
6)團隊其他測試人員遇到技術問題,我卻隻能抓耳撓腮,無法提供更多幫助,怎麼辦?7)分析測試進度和風險時,文檔是寫瞭,內容卻無關痛癢。問題的實質在哪裏?貌似離我有點遠。
8)開發過程中,不知道自己編寫的代碼質量怎樣,哪些Bug會變身為“大笑話”。
你符閤哪一條或者哪幾條?這本書到底寫瞭些什麼歸根結底:總結工作中發現、解決Bug的經驗,並通過一個個活生生的故事描述齣來,能讓你開拓思維、喚起記憶、深入知識、學以緻用,把這些經驗積纍的精華舉一反三地運用到自己的項目中。
本書特色以大型購物網站Web測試為背景場景,以初入測試領域的小蔡為主人公,以功能測試、性能測試、安全性測試、自動化測試、移動Web測試、非功能性測試以及其他類型的測試為主綫,嚮大傢展示不同測試場景下,如何發現、分析並解決問題。
本書通過對故事的分析,引齣缺陷齣現的規律和模式,並通過對缺陷模式的總結和抽象化,提示大傢在以後的測試中如何更高效地捕捉類似缺陷。
本書並沒有詳細描述如何通過對Bug的分析發現開發人員的開發模式,以避免缺陷。所以,如何預防開發人員編寫存在缺陷的代碼,幫助他們瞭解自己的弱點,使之有針對性地提高,就需要讀者們從這一個個小故事中“悟”。
讀者對象測試工程師測試經理業務分析師産品經理係統架構師其他對測試技術感興趣的人員如何閱讀本書本書著重講解Web測試中可能遇到的各種問題以及思考和解決思路,包括以下10章內容。
第1~4章 這4章重點介紹瞭Web測試中最為關鍵的功能測試,並從開發和測試技術、測試覆蓋率、測試實踐及業務需求4個方麵分析瞭功能測試中Bug産生的原因及其解決思路。
第5、6章 詳細介紹在Web測試中安全和性能測試要怎麼做,作為一個非專業安全/性能測試的人員,從思維和實踐上如何進行安全和性能測試。
第7章 詳細介紹在進行Web自動化測試過程中你可能遇到的各種“坑”,以及如何應對和預防。
第8章 詳細介紹瞭在移動應用迅猛發展的浪潮下 ,針對移動Web測試我們需要進行什麼樣的調整。
第9章 介紹瞭非功能性的其他測試,例如可用性測試及本地化和全球化測試是如何運用在項目中,保證産品質量的。
第10章 通過介紹在需求澄清、測試環境管理和運維中的測試實踐,闡述如何通過這幾方麵的測試活動提升産品質量。
附錄A介紹瞭可以移植到更多項目中的Web測試優秀實踐,附錄B為廣大測試人員展現瞭可以大展宏圖的職業路徑。
希望讀者在開始閱讀本書之前,已具備基礎的測試理論知識。在閱讀中,希望讀者能在閱讀完每一個故事後,留給自己一點時間重新審視故事的內容,想一想故事中的場景與自己工作中的相似之處,觸類旁通地解決類似的問題或者運用相應的實踐進行質量提升。
勘誤和支持由於筆者的水平有限,編寫時間倉促,書中難免會齣現一些錯誤或者不準確的地方,懇請讀者批評指正。如果你有更多的寶貴意見,歡迎通過郵箱bug_big_bang_in_web_testing@outlook.com聯係我們,期待能夠得到你的真摯反饋,在技術之路上互勉共進。
緻謝我們要特彆感謝師潔以及ThoughtWorks中國區的QA們,也要感謝機械工業齣版社華章公司的策劃編輯高婧雅在寫作上的支持與鼓勵。
謹以此書獻給我們最親愛的傢人,沒有你們的鼓勵和支持,我們就不會這麼全身心地投入到本書的創作。
最後感謝購買和閱讀本書、熱愛測試技術的朋友們!
黃勇 雷輝 徐瀟 楊雪敏
Preface?序 一幾個月前,機械工業齣版社華章公司的高婧雅找我,扔給我一個章節,說是黃勇團隊的新書,讓我幫忙看看。我當時是一口氣看完,還意猶未盡地問高姐,還有沒有其他的。我是有驚喜到的。這行文的風格讓我想起瞭另外一本書——《Ruby元編程》,一本非常有趣的技術書。當時我就想等到黃勇的書問世,會又多瞭一本類似的書。
我看的技術書不多,軟件測試相關的書籍就更少瞭,主要的原因是過於枯燥,要麼是長篇的理論,要麼就是不入流的翻譯,更多的是工具書,通常會在用到的時候纔去翻一翻。而對於黃勇這本書,我感覺我會願意帶在身邊,在地鐵上翻翻,在咖啡間讀讀。能把軟件測試的理論實踐寫成瞭一個個軟件測試工程師親身經曆的故事,黃勇應該是首創,其生動有趣又不乏思考。
在那之後,我常常會問高姐這本書的進度,因為我非常想把這本書分享給我們 TesterHome 的成員們。上個禮拜,黃勇在微信上找我,我想這書成瞭。黃勇給我4個章節,這次我沒有一下看完,而是一篇篇仔細研讀。小故事(實際案例)提取齣“核心知識點”,再延伸到“拓展知識點”,給人一種身臨其境的感覺,好像在做這項測試的就是讀者自己。作者在案例的選擇上非常用心,典型又不失新意,淺顯又不乏深意。提煉齣來的核心知識點簡約嚴謹,針對性強,不拖泥帶水。“拓展知識點”類似語文課本裏的課後閱讀。
粗略看瞭下目錄,該書涉及瞭網頁應用的功能、安全、性能、自動化等測試內容,也涉獵瞭移動端相關的實踐。從我看的內容來看,非常適閤有一兩年軟件測試經驗的讀者閱讀,在此也歡迎大傢來 TesterHome 社區多寫書評。(“無恥”的廣告,真想拉黃勇做一波贈書的活動。)軟件測試圈裏不缺各種嚴肅的學院派書籍,也不缺各種實乾派的工具書,前者還好,後者往往是從事軟件測試的IT人員寫的,這種書普遍有個特點就是文筆不好,行文生硬刻闆,讀起來毫無趣味。我一直非常固執地認為,書一定是要有筆力的人寫齣來纔好,我看過黃勇的博客,這次再看到這些章節,我認為從文筆上來說,這是本閤格的書。
讀書容易寫書難,一字一句費思量,希望軟件測試工作者能好好珍惜這本書。
——張立華(恒溫),TesterHome社區發起人,阿裏口碑高級測試工程師Preface?序 二2006年開始軟件測試的生涯,記得當時講軟件測試的書並不多,有幾本比較好的書也是從國外引進翻譯來的。十多年過去瞭,從一開始做PC端的應用程序的功能測試,到後來做Web係統的自動化測試,目前在互聯網公司負責電商業務後颱係統的持續集成方案。期間經曆瞭軟件測試行業的不斷發展,測試工程師的職責和作用也在不斷發生著變化,對測試工程師的要求也越來越高。
想要成為一名閤格的測試工程師,入門首先需要具備基本的軟件測試理論基礎;要能開展工作,就必須要瞭解所在行業的業務背景知識;要想更多地發現缺陷和更準確地定位缺陷,還要學習Web係統或移動應用相關技術知識;想更進一步,全麵提升軟件質量,就需要從代碼、功能、安全、性能和易用性多個層麵去著手。本書是一本難得的涉及以上所有這些知識和技能的著作,通過案例教學的方式生動地再現瞭真實的工作場景,從實際案例場景引發讀者思考,又由思考激發讀者對相關知識和技能的學習興趣,通過這樣一個又一個的學習鏇轉式上升,引導讀者逐層深入,逐步窺探到做一名閤格軟件測試工程師所需的知識與技能圖譜。
現在很多的互聯網企業裏,大都會有軟件測試工程師和測試開發工程師兩種角色。那麼他們都是為軟件質量負責的嗎,區彆又在哪裏呢?軟件測試工程師更加偏重於測試,比如功能測試、性能測試、安全測試,等等;而測試開發工程師更加偏重於開發,包含自動化測試框架開發、性能測試工具開發、安全測試工具開發與其他質量與效率的工具開發等。産生這兩種分工的原因在於互聯網企業對速度的追求,要達到快速交付、快速收集與反饋、快速進入下一個迭代,那麼就需要在提升效率上下一番工夫,這時候就可以通過應用一些開源工具或者自研工具來提升測試階段乃至整個研發階段的效率。瞭解到這兩種角色的職責和作用,那麼我們軟件測試從業者在自己的職業發展生涯中就能夠找準自己的方嚮,不斷提升自己的技術能力和業務能力。
黃勇老師目前所在的ThoughtWorks公司是把敏捷思想引入中國的先驅,在敏捷軟件開發和敏捷測試理論的落地方麵處於行業領先地位。敏捷軟件開發思想進一步拓展瞭作為軟件測試工程師的職責範圍,敏捷思想鼓勵職責模糊,整個團隊都要為質量負責,而不隻是軟件測試工程師;鼓勵團隊成員在軟件開發全過程中參與軟件質量的保證,而不隻是等開發階段完成以後再開始關注質量;提倡持續交付和自動化測試,通過整個軟件開發流程的自動化來提升軟件交付效率。那麼在這樣的一種思想指導下,軟件測試工程師就可以做更多的工作,比如參與到需求階段,通過實例化需求和BDD(行為驅動開發)的方式來使需求對技術人員而言更易懂、自動化和友好;也可以參與到軟件開發階段,通過構建持續代碼掃描機製來提升代碼的質量;還可以參與到運維發布階段,通過構建持續交付的流水綫來實現産品的快速發布。
隨著IT行業的發展,軟件測試也跟著從一開始的PC端應用程序測試,到Web應用程序測試,再到移動互聯網測試。這樣對軟件測試工程師的要求也不同瞭,本書通過案例的形式講解瞭在Web應用程序測試和移動互聯網測試中遇到的一些問題與處理方法。我看完本書以後,問黃勇老師“這些案例都是真實的嗎?”黃勇老師說都是真實的案例。通過在日常軟件測試工作中發現的一些有意思的缺陷的收集,進一步分析産生該缺陷的前因後果,並且給齣發現該缺陷所用到的關鍵技能和知識。這種趣味性和知識性兼備的方式,吸引著我一口氣看完瞭全書,看到一些似曾相識的案例時,也不由得會心一笑。非常希望我們軟件測試行業能有更多這樣的好書。
——熊誌男,測試窩測試社區創始人,京東商城高級測試開發工程師Preface序 三隨著中國軟件行業的發展,在IT和互聯網技術的廣泛應用、用戶對産品質量有瞭更高追求的推動下,中國的軟件測試行業在最近幾年也有瞭飛速的發展。與第一代軟件測試人員是從經驗豐富的程序員直接轉崗不同,從各大高校的軟件工程、計算機相關專業招聘軟件測試工程師(即校招)已經變成瞭各大公司的主要途徑。由於大多數學校裏並沒有成體係的軟件測試的課程,很多同學對軟件測試這個崗位也並不是十分的瞭解,甚至有時候選擇軟件測試的原因是工作相對輕鬆或者其代碼能力達不到程序員的要求等。
大量的新手進入軟件測試行業後,中小公司內部相對比較缺乏專業技術培訓和正確的引導,頻繁且重復的黑盒測試執行工作使很多測試新人覺得軟件測試是一個沒有技術含量也沒有前途的工作。然而,軟件測試其實是一個很依賴於經驗的崗位,有豐富産品測試經驗和對産品實現有深入理解的測試工程師就像一位大師,往往能在短時間內發現和定位一個問題並提齣建議的解決方案。對有誌於投身軟件測試領域和仍然處在入門階段的初學者來說,市麵上多數的書籍偏理論化,閱讀起來枯燥乏味,在實際項目中又無法落地,更談不上進階為高手瞭。就像《後會無期》裏的那句話,“聽過很多道理,卻依然過不好這一生。”
黃勇是行業內資深的質量分析師,擁有多年軟件測試背景,他善於分析歸納和總結經驗,並且總會用通俗、輕鬆的語言來講述枯燥的技術知識。上一次他的《移動App測試的22條軍規》一書通過22條來自於測試實戰中的最佳實踐展示瞭移動App測試中心思想,這次他總結瞭Web測試過程中常見的測試類型和常見問題,把Web測試的核心知識點、擴展知識點與實際的測試任務結閤起來,通過測試新人小蔡遇到的一個個真實的場景和案例,讓讀者學有所得,並引發思考。
很高興黃勇願意用一本書來分享他在Web測試領域的心得,這是一本用心寫就的書,也希望每一位讀者用心去學習、去思考、去實踐,藉鑒前輩們的經驗快速地成長,享受學習帶來的快樂。
——陳永康,網龍網絡公司軟件測試總監
Web測試囧事 下載 mobi epub pdf txt 電子書