在當今高速發展的移動互聯網+雲優先的時代,到處都有不可預知的變化,有的來自客戶需求的變化,有的來自市場環境的變化,這些變化給企業的市場、渠道、產品、服務等各方面都帶來了一繫列新的挑戰,每個成功的企業都在培養和打造快速適應這種變化的能力。對於企業的產品研發部門來說,面對著愈發不確定的客戶需求,快速並高質量地完成開發工作,早日上線,盡早收集市場反饋,優化產品和服務,是研發響應市場變化的基本原則。但在追求產品快速交付上線的同時,質量底線是每一個成功的產品都必須要堅守的,這意味著研發團隊在提高產品交付效率的同時要保證產品質量,而要實現這一目標,引入自動化測試是一種行之有效的手段。
準備寫本書之前,其實我的內心還是挺糾結和矛盾的,畢竟最近兩年一直從事研發管理的工作,對技術的鑽研已經無法全身心投入了。最近幾年感受到越來越明顯的一個行業不良現狀:“測試人員能力的兩極分化太過於嚴重。”一類是行業小白,這裡說的小白,並不一定指的就是剛畢業或剛跨入這個行業的同學,更多的是指測試思維和測試技術一直處於小白狀態的人。即便是有些工作了很多年的同學,仍然有很多人一直處於手工測試“點點點”的工作狀態,他們不主動或者不願意去理解業務架構、技術架構,甚至根本沒有想過通過提升自己來改變這種工作狀態。我面試過很多人,這類不求變或者說不求突破的做純手工功能測試的人不在少數。另外一類則是行業大師,這類人是極為稀缺的,也是軟件行業最搶手的一類人。這類人無論從知識的廣度還是深度來說,都可以媲美開發架構師,甚至有些還會超過開發架構師的水平,因為測試工程師作為一個“高危職業”,需要比產品經理(或需求分析師)想得更全面,比開發人員更懂需求,能讀懂甚至能修改開發人員的代碼。這個觀點和《Google測試之道》一書中提到的一條理念很相似,Google對測試工程師的定位是這樣的:“如果一個測試人員的業務能力不比產品經理強,編碼能力沒有研發工程師牛,你怎麼能發現他們的問題呢?”這也足以說明,產品的質量保障和測試工作,絕對不是隨隨便便就能做好或者誰都可以勝任的。
寫作本書的目的並不是簡單地告訴讀者如何使用一個自動化測試工具,我希望讀者在學習完本書的內容後能提高綜合的技術水平(高度與寬度),從而擺脫簡單的手工測試,成為一名新時代的優秀測試工程師。如今移動互聯網的技術和知識迭代都是非常快的,技術棧也比較廣,建議讀者在學習本書內容的同時要自己學會搜索相關技術的官方文檔,構建一個屬於自己的知識體繫,從而繫統、全面地理解它,千萬不要指望在書中找到所有答案,這在移動互聯網時代是不現實的。
正所謂:“授人以魚,不如授人以漁。”互聯網行業的工程師就好比運動員,要想在競技場上獲勝,需要在訓練場裡長期刻苦地練習技巧,想要成為一個不被時代拋棄的技術人,就需要不斷地更新迭代自己的知識體繫。加油,讀者們,共勉!
本書的目標讀者——我適合讀這本書嗎?
本書適合的人群很廣,基本上對測試技術感興趣或者正在從事測試工作的同學(不限於手工測試、自動化測試、測試開發、測試管理等)都可以閱讀。本書從對測試行業現狀及未來幾年趨勢的分析開始,呼吁大家在時不我待的當今社會中,找準定位並建立自身的職場核心競爭力。然後圍繞自動化測試技術應用結合多端(後端、Web端、Android端、iOS端、H5端、小程序端)實例來引導讀者快速上手。本書涵蓋了絕大部分自動化測試知識,不但內容充實、邏輯嚴密,且圖文並茂、語言生動。對Robot Framework使用者來說,本書更是一部難得的工具寶典。
本書的內容組織——這本書講了什麼內容?
全書以自動化測試技術為主線,以Robot Framework框架作為切入點,共分成4部分。
第1部分入門篇
第1章:從測試行業發展歷程開始,分析了作者近幾年感受到的測試行業的現狀及問題,以及在移動互聯網快速發展和AI、大數據、IoT的衝擊下,測試行業未來幾年可能的發展趨勢。繫統性地介紹了測試工程師的核心競爭力的三項基本功和七大核心力,並列舉了測試工程師能力發展圖譜和推薦閱讀書單。
第2章:從團隊開展自動化測試的必要性,到開展自動化測試過程中常見的誤區,以及什麼樣的項目或團隊適合開展自動化測試、在什麼時機引入。最後分享了開展自動化測試需要具備哪些能力、自動化測試常用的工具有哪些及自動化測試接下來幾年還有哪些機遇和挑戰。
第2部分基礎學習篇
第3章:主要介紹Robot Framework框架,包括Robot Framework框架在各個不同的操作繫統(Windows、Mac、Linux)上如何進行安裝,以及RIDE 1.7.3的一些新特性。
第4章:通過對Python編碼規範、Python版本選擇、Python快速入門學習、Python編程常用技巧等一繫列知識點的介紹,讓讀者在短時間內快速掌握Python編程基礎,也為本書後面Robot Framework自動化測試實戰(基於Python)打好編程語言基礎。
第5章:主要是對Robot Framework框架基本功能使用的學習,從RIDE編輯器的功能介紹開始,到Robot Framework常用編程器推薦。最後介紹了一繫列Robot Framework常用技巧,包括如何合理運用標簽策略、如何通過Pybot命令行來靈活控制執行測試用例、如何使用Jybot來運行Robot Framework測試用例等。
第6章:介紹Robot Framework中常用的一些函數庫,包含內置的標準庫、第三方擴展庫,涉及針對變量的操作、類型轉換的素集合的操作、條件語句的操作及斷言校驗的操作等。
第3部分 項目實戰篇
第7章:從接口測試的基本概念開始介紹,到如何從多維度來對接口測試進行用例設計,接著介紹接口測試項目在設計過程需要注意的事項,以及推薦的最佳工程實踐約定。最後結合具體的實戰案例介紹不同類型接口如何開展測試,並在章節的末尾分享了一繫列接口測試的實戰技巧,包括如何開發繫統關鍵字、如何與GitLab和Jenkins CI集成管理。
第8章:主要介紹基於Robot Framework + Selenium框架如何開展Web UI自動化測試,在整個章節中,從Selenium是什麼、Robot Framework與Selenium之間的關繫說起,到開展Web UI自動化測試常用的關鍵字、素定位方法,以及Web UI多瀏覽器兼容。最後通過具體的項目實戰介紹了如何基於Robot Framework框架來設計Web UI自動化測試項目。
第9章:主要介紹基於Robot Framework+Appium框架如何開展移動端App自動化測試,在整個章節中,從Appium是什麼及它的常見概念和工作原理說起,到自動化測試所需環境的搭建,包括Appium相關環境、Android相關環境、iOS相關環境。最後通過具體的實戰案例,分別介紹Android(模擬器、真機)、iOS(模擬器、真機)、H5、小程序等自動化測試實踐。
第4部分 擴展篇
第10章:對Robot Framework框架的部分源碼和目錄結構進行剖析,首先分析整個Robot Framework源碼結構、各目錄對應的職責功能,然後通過源碼跟蹤分析來梳理Robot Framework框架執行測試用例的過程,最後通過二次開發增加監聽器的形式來擴展命令行實時顯示日志。
本書的特色——這本書能帶來什麼價值?
1. 這本書主要講了什麼內容?
全書以自動化測試技術為主線,循序漸進地介紹了自動化測試所涉及的知識體繫,通過不同端的實戰項目,綜合運用了所介紹的技術,旨在提高測試人員的綜合技術能力和擴展知識體繫。
2. 通過這本書能學到什麼?
為了幫助讀者提高測試技術水平,本書不僅介紹了測試方面的知識和自動化測試實戰,還介紹了Python編程與應用、持續集成,以及Android、iOS、H5、小程序等相關知識。
3. 這本書有什麼特色?
不僅是一本工具書,更是一本測試知識體繫的參考書籍。
涵蓋多端自動化測試應用,包括後端、Web端、Android端、iOS端、H5端、小程序端等。
實戰性強,各端知識介紹均從點到面逐層遞進展開,並用大量的實戰案例來說明自動化測試的最佳實踐與分層設計原則。