- 軟件自動(dòng)化測(cè)試實(shí)戰(zhàn)解析:基于Python3編程語(yǔ)言
- 徐西寧編著
- 2175字
- 2021-07-23 16:17:27
前言
對(duì)于任何一支軟件工程團(tuán)隊(duì)來(lái)說(shuō),軟件測(cè)試都是必須認(rèn)真對(duì)待的環(huán)節(jié)。自動(dòng)化測(cè)試由于能夠減少重復(fù)人工勞動(dòng)、提高測(cè)試執(zhí)行效率、加快軟件發(fā)布速度,成為軟件工程團(tuán)隊(duì)努力追求的目標(biāo)。
Python是一種強(qiáng)大而簡(jiǎn)潔的編程語(yǔ)言。因?yàn)楣δ軓?qiáng)大、適用面廣,它在眾多領(lǐng)域得到了廣泛的應(yīng)用;因?yàn)檎Z(yǔ)法簡(jiǎn)潔、容易上手,它受到了許多人的青睞,其中就包括軟件測(cè)試工程師。
在實(shí)際工作中,有很多測(cè)試工程師會(huì)做簡(jiǎn)單的Web UI測(cè)試,會(huì)用Python寫(xiě)腳本把一些重復(fù)的操作自動(dòng)化,會(huì)用PyTest測(cè)試框架的基本功能來(lái)寫(xiě)測(cè)試用例,這些都在一定程度上減少了手工重復(fù)勞動(dòng),這是值得肯定的。但是作為工程師,我們追求的是更高效,而不是更熟練,我們需要不斷學(xué)習(xí)和思考如何更好地實(shí)施自動(dòng)化測(cè)試。本書(shū)用Python3作為演示語(yǔ)言,講解如何實(shí)施系統(tǒng)、高效、可靠、易于理解和管理的軟件自動(dòng)化測(cè)試。
本書(shū)的內(nèi)容分為三個(gè)大的板塊。
第一個(gè)板塊,從最基礎(chǔ)的部分講起,讓基礎(chǔ)薄弱的工程師對(duì)測(cè)試和編程語(yǔ)言有基本的認(rèn)識(shí),可以用Python把一些常見(jiàn)的編程需求實(shí)現(xiàn)出來(lái)。在此基礎(chǔ)上,我們開(kāi)始了解PyTest測(cè)試框架的基礎(chǔ)用法,以及如何用Selenium來(lái)做簡(jiǎn)單的Web UI自動(dòng)化測(cè)試。通過(guò)這個(gè)板塊的學(xué)習(xí),測(cè)試工程師有能力把一些簡(jiǎn)單的測(cè)試工作用代碼來(lái)實(shí)現(xiàn),減少手工重復(fù)勞動(dòng)的比重,做到一定程度的測(cè)試自動(dòng)化,這是對(duì)自動(dòng)化測(cè)試工程師的入門(mén)要求。
第二個(gè)板塊,夯實(shí)Python語(yǔ)言基礎(chǔ),講解更深入的PyTest和Selenium特性,演示如何應(yīng)用這些知識(shí)來(lái)改進(jìn)測(cè)試用例的編寫(xiě),改善測(cè)試框架,讓測(cè)試自動(dòng)化更加高效。通過(guò)對(duì)這個(gè)板塊的學(xué)習(xí),測(cè)試工程師對(duì)編程語(yǔ)言和測(cè)試工具會(huì)有更深入的了解,從而更高效地進(jìn)行測(cè)試自動(dòng)化的工作,開(kāi)始有能力針對(duì)產(chǎn)品特性來(lái)設(shè)計(jì)自動(dòng)化測(cè)試框架,這是工程團(tuán)隊(duì)對(duì)中級(jí)測(cè)試工程師的一般要求。
第三個(gè)板塊,介紹Python的高級(jí)特性、面向?qū)ο蟮乃枷?、自?dòng)化測(cè)試工具和框架的高級(jí)特性、設(shè)計(jì)思路、存在的問(wèn)題和限制及其改進(jìn)思路、工程團(tuán)隊(duì)的高質(zhì)量協(xié)作、實(shí)際項(xiàng)目中的最佳實(shí)踐等更深入的內(nèi)容。這部分包含了實(shí)戰(zhàn)中提煉出來(lái)的大量經(jīng)驗(yàn)和總結(jié)。通過(guò)對(duì)這個(gè)板塊的學(xué)習(xí),測(cè)試工程師可以向高級(jí)工程師和架構(gòu)師方向邁出堅(jiān)實(shí)的一步。具備這樣的技術(shù)能力和思維方式后,測(cè)試工程師可以在整個(gè)軟件工程團(tuán)隊(duì)中起到非常積極的作用,而不只限于測(cè)試團(tuán)隊(duì)。
每個(gè)板塊的末尾都有一個(gè)實(shí)戰(zhàn)章節(jié),所有的實(shí)戰(zhàn)章節(jié)都圍繞同一個(gè)測(cè)試場(chǎng)景展開(kāi),前后銜接呼應(yīng),有很強(qiáng)的延續(xù)性。每個(gè)實(shí)戰(zhàn)章節(jié)都是針對(duì)相應(yīng)的技術(shù)水平而設(shè)計(jì)的,讀者可以非常直觀地看到代碼和設(shè)計(jì)如何隨著技術(shù)水平的提升而改進(jìn)。
本書(shū)盡量用生活化的場(chǎng)景來(lái)描述編程場(chǎng)景,避免正確但是晦澀的表達(dá),避免直接拋出結(jié)論,而是用實(shí)戰(zhàn)項(xiàng)目來(lái)演示軟件開(kāi)發(fā)和測(cè)試的思路,用簡(jiǎn)單可行的思路引導(dǎo)讀者去一步步嘗試和驗(yàn)證,最終得到可以理解的結(jié)果。
編程語(yǔ)言和工具在不斷快速演進(jìn),學(xué)習(xí)解決問(wèn)題的思路遠(yuǎn)比直接學(xué)習(xí)結(jié)論重要。本書(shū)針對(duì)常見(jiàn)的編程和測(cè)試場(chǎng)景講解Python的代碼實(shí)現(xiàn),但是不會(huì)事無(wú)巨細(xì)地列舉所有的邊角語(yǔ)言特性。同時(shí),本書(shū)會(huì)嘗試分析常見(jiàn)的代碼和測(cè)試思路,分析其中的不足,提出改進(jìn)思路,引導(dǎo)讀者理解實(shí)際項(xiàng)目中的開(kāi)發(fā)、測(cè)試和協(xié)作方式。在某些內(nèi)容的講解中,本書(shū)會(huì)嘗試比較Python和其他主流編程語(yǔ)言(比如Java),分析Python獨(dú)特的語(yǔ)言特性,也會(huì)講解Selenium和PyTest這樣的測(cè)試框架和工具在項(xiàng)目實(shí)踐中的問(wèn)題,以及相應(yīng)的解決思路。
對(duì)于相關(guān)的專(zhuān)業(yè)術(shù)語(yǔ),本書(shū)會(huì)盡量用中文表達(dá)。但是有一些術(shù)語(yǔ)如果翻譯成中文可能并不傳神,在實(shí)際工作中也不常用,并不會(huì)幫助讀者更好地理解它們的含義,對(duì)于這種情況,本書(shū)會(huì)直接用英文表達(dá),詳細(xì)介紹可參見(jiàn)后面的術(shù)語(yǔ)表。
本書(shū)希望讀者有基本的編程和軟件測(cè)試經(jīng)驗(yàn),更重要的是,要有在軟件測(cè)試的職業(yè)道路上走得更遠(yuǎn)的意愿。
在寫(xiě)作本書(shū)的準(zhǔn)備過(guò)程中,我得到了許多朋友的幫助和鼓勵(lì),這讓我下定決心動(dòng)筆,逐步厘清寫(xiě)書(shū)的思路,完善自己的知識(shí)體系,直至最終成書(shū)。
謹(jǐn)以此書(shū),致謝宋寶華、張國(guó)強(qiáng)、劉勃、黃巍、王錄華、盧鵬、劉濤、何昭然、曾昭毅、邱鵬、周宇、劉陽(yáng)、李潔、劉靜、甘露、Bryan Turner、Jeff Strater、Daniel Toms、任俊、劉保良、劉春濤、劉志鵬、郝洛玫、周麗、李真真、徐欣、陳然、張翔、張立兵、劉軍、楊文镕等親友,感謝你們?cè)诩夹g(shù)和職業(yè)發(fā)展上對(duì)我的幫助和鼓勵(lì)。謹(jǐn)以此書(shū),致謝我的“鐵匠鋪”籃球隊(duì)的隊(duì)友們,因?yàn)橛心銈兌嗄甑呐惆楹凸膭?lì),我才對(duì)鍛煉身體沒(méi)有懈怠,才能以良好的身體狀態(tài)持續(xù)投入編程和寫(xiě)書(shū)的世界中。謹(jǐn)以此書(shū),向我的父母、岳父母、兄嫂、姐姐和姐夫致謝,你們的言傳身教給了我努力的方向。謹(jǐn)以此書(shū),向我的兒子致遠(yuǎn)和女兒致雅表達(dá)感激,在陪伴你們成長(zhǎng)的過(guò)程中,我的內(nèi)心也成長(zhǎng)了。謹(jǐn)以此書(shū),向我的秀外慧中的“大當(dāng)家”劉璐致以無(wú)盡感激,因?yàn)橛心銦o(wú)怨無(wú)悔的付出和全力支持,我才能把工作之余本應(yīng)該陪伴家人的時(shí)間騰挪出來(lái),花費(fèi)一年多的時(shí)間寫(xiě)完這本書(shū)。最后,對(duì)為本書(shū)做出巨大貢獻(xiàn)的策劃朱捷老師致以深深的謝意,因?yàn)橛心銖膶?zhuān)業(yè)的角度不斷給我中肯的反饋,我才能不斷完善和打磨書(shū)稿,竭力為讀者呈現(xiàn)有質(zhì)量的內(nèi)容。
限于篇幅,我無(wú)法一一列舉所有想要感謝的人,但我一直心懷感恩,這些年里,我從你們身上學(xué)會(huì)了很多,收獲了很多,是你們激勵(lì)我不斷前行,努力跟上你們的腳步。
本書(shū)基于我的學(xué)習(xí)和工作經(jīng)驗(yàn)總結(jié)而成,但是因?yàn)楝F(xiàn)實(shí)世界里的軟件項(xiàng)目多種多樣,而我本人受限于所涉及的項(xiàng)目類(lèi)型和技術(shù)視野,加之時(shí)間倉(cāng)促,書(shū)中難免有錯(cuò)誤和疏漏,懇請(qǐng)廣大讀者批評(píng)指正。我的郵箱是mac.xxn@outlook.com,歡迎大家和我討論相關(guān)的技術(shù)問(wèn)題,我會(huì)非常樂(lè)意和大家交流分享。
- Getting Started with React
- JavaScript修煉之道
- Learning Spring 5.0
- C和C++安全編碼(原書(shū)第2版)
- Vue.js快跑:構(gòu)建觸手可及的高性能Web應(yīng)用
- 數(shù)據(jù)結(jié)構(gòu)與算法JavaScript描述
- Learn Swift by Building Applications
- 零基礎(chǔ)學(xué)單片機(jī)C語(yǔ)言程序設(shè)計(jì)
- JavaCAPS基礎(chǔ)、應(yīng)用與案例
- 零基礎(chǔ)C#學(xué)習(xí)筆記
- HTML5游戲開(kāi)發(fā)實(shí)戰(zhàn)
- Android智能手機(jī)APP界面設(shè)計(jì)實(shí)戰(zhàn)教程
- Spark技術(shù)內(nèi)幕:深入解析Spark內(nèi)核架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)原理
- Java從入門(mén)到精通(視頻實(shí)戰(zhàn)版)
- 測(cè)試工程師Python開(kāi)發(fā)實(shí)戰(zhàn)