天天看點

《軟體測試技術實戰:設計、工具及管理》目錄—導讀

《軟體測試技術實戰:設計、工具及管理》目錄—導讀

版權

軟體測試技術實戰:設計、工具及管理

• 著    顧 翔

  組  編 51testing軟體測試網

  責任編輯 張 濤

• 人民郵電出版社出版發行  北京市豐台區成壽寺路11号

  郵編 100164  電子郵件 [email protected]

• 讀者服務熱線:(010)81055410

  反盜版熱線:(010)81055315

内容提要

本書是作者總結十幾年的軟體測試的實踐經驗寫成的,希望通過來自一線的實踐知識和技能,幫助讀者打開一扇通往軟體測試之路的大門,尋找到解決測試問題的技術、技巧和方法,體驗到測試工作中“逮”bug猶如“尋寶”的樂趣。全書分為“設計”“工具”和“管理”3篇,共14章,每章的内容雖有一定的聯系,但也可各自獨立,讀者可以根據自己的需求,按照書的内容順序閱讀,也可以根據自己的興趣選取相關章節閱讀。

本書可供軟體測試初學者、測試從業人員閱讀,也可作為大專院校計算機軟體專業學生的參考書,還可作為教育訓練學校的教材。

“51testing軟體測試網”作品系列 編輯委員會名單

編 委:

王 威 具有多年軟體開發經驗和軟體測試工作經驗,對産品測試的方法和管理流程有深刻的認識,51testing軟體測試教育訓練進階講師

周 峰 國家認證系統分析員,上海軟體行業協會軟體品質管理與過程改進專委會副主任,51testing軟體測試教育訓練進階講師

王 琰 具有豐富的通信終端産品的測試以及管理工作經驗,51testing軟體測試教育訓練進階講師

樸春龍 mercury認證cpc,自動化測試專家,51testing軟體測試教育訓練進階講師

周春江 具有多年通信協定和通信終端裝置的測試工作經驗,51testing軟體測試教育訓練進階講師

商 莉 多年從事軟體開發、軟體測試及品質保證方面的管理工作,51testing軟體測試教育訓練進階講師

宋光照 具有深厚的開源軟體測試實踐經驗,擅長嵌入式測試,51testing軟體測試教育訓練進階講師

劉愛飛 性能測試專家,web測試專家,51testing軟體測試教育訓練進階講師

丁佳晶 多年軟體測試從業經驗,軟體品質檢驗進階工程師,51testing軟體測試教育訓練進階講師

許愛國 國内軟體測試最早一批實踐者,具備豐富的測試經驗,51testing軟體測試教育訓練進階講師

編輯部成員:張曉曉 嚴代麗

我與顧翔先生是同學,是以結緣,有幸成為《軟體測試技術實戰—設計、工具及管理》一書最早的讀者之一。一般說來,閱讀專業性、技術性強的著作是枯燥、單調和乏味的,但從作者手中拿到書稿,我卻是一氣呵成,幾乎是沒有中斷讀完的。

我國的軟體産業發展實作了偉大的跨越,取得了輝煌的業績。2000年,我國軟體産業的規模隻有590多億元,2016年這一數字達到了驚人的4.3萬億元。這是3.8萬家軟體和資訊技術服務企業、近600萬軟體從業人員努力奮鬥的結果。其中也彙集了本書作者為代表的一批軟體測試工程師群體的默默奉獻。

在軟體大發展的時代,軟體的穩定、安全和可靠性尤為關鍵,軟體測試的重要性尤為凸顯。然而長期以來卻鮮有系統、全面分析、研究軟體測試理論技術和方法的專著問世,根植于軟體測試實踐而又高于實踐,具有實戰性、可操作性的圖書更少。本書的出版發行,不可多得,正當其時。

作者1997年大學畢業後投身于軟體開發、測試專業之中,20年從未間斷。他不僅見證了我國軟體産業波瀾壯闊的發展曆程,而且深深地參與其中,完成了從幼稚到成熟、從青年到中年、從最底層的軟體開發和測試者到軟體測試的組織管理者、教學教育訓練導師的轉變和升華。作者将20年從業的實踐經驗、理論思考內建于一書,形成了本書許多亮點和特色:專業性,系統、全面研究分析了軟體測試的理論、方法、技術;權威性,作者雖然不是專家、名人,但我認為“因為專業而權威”;系統性,源于其本人的親自實踐、親身經曆和體驗;可讀性,注重以實際案例為驅動,娓娓道來,不少章節都頗為“抓人”;實用性,既可作為軟體測試的教材,也可作為軟體開發、測試人員的實用手冊。

綜上所述,我願為本書鼓與呼,推薦給廣大讀者學習。

——中國資訊化周報 社長 宋波

書評

本書是由國内具有豐富測試經驗的作者寫作的關于軟體測試實踐的書,全書内容豐富,結構清晰,涵蓋測試設計、測試工具與測試管理3部分内容。全書内容強調測試實踐,既有測試基本知識的介紹,也有測試應用的案例分析;既可以作為測試初學者入門用書,也可以供測試職業人士參考。

——中國軟體測試認證委員會(cstqb)專家組成員 崔啟亮

本書作者顧翔老師有着多年的教育訓練經驗,這本書是他多年傳道、授業、解惑的總結,内容全面、精彩,可為軟體測試從業人員提供專業的指導。

——中國賽寶(華東)實驗室 陳锃基

從我十多年的軟體測試行業從業經驗來看,大部分軟體測試人員缺乏對被測對象所涉及的it技術的深入了解,例如對代碼、中間件、資料庫、虛拟化、雲計算、大資料的了解,缺乏這些技術上的了解,表面上看起來不會對測試工作造成很大的影響,其實卻會導緻測試的不周全、不深入;顧翔老師知識面廣,測試經驗豐富,在編寫本書時不僅全面透徹地講解了軟體測試本身的知識,還用通俗易懂的語言介紹了各類相關技術,測試初學者們可以全面學習并從中受益。

——廣州億能測試技術服務有限公司ceo 陳能技

本書作者經過長期的工作實踐,結合國内測試現狀,精心構思了測試的知識體系。書中将測試設計提升到很關鍵的高度,用好的測試設計指導測試工具在測試執行中的使用;用測試管理的精髓,引導測試工作的有序開展,為廣大測試工程師的學習提供了必備的參考。

——科大訊飛 cto助理 測試部經理 吳如偉

本書的特色在于将大量的技術賦予了實際的應用場景,讓讀者能夠更加清晰地把握如何将測試技術應用于具體實踐的同時,為測試團隊實施相關技術方案帶來信心。本書的技術内容和流程方法傾注了作者多年的從業經驗,讀者可以基于該書的内容為模闆,迅速展開合理、規範和有序的測試工作。書中所講述的測試技術都是作者精心選取的主流技術,展現了作者豐富的行業經驗和對新技術發展方向敏銳的洞察力,初級以及資深的讀者均可受益于本書的精彩内容。

——星雲測試ceo 趙明

本書是一本非常全面的軟體測試實踐參考書。它不僅知識體系完整,作者也結合自己多年的測試實戰經驗,分享了大量非常有參考價值的實戰案例。它不隻是一本專業軟體測試人員需要學習的參考書,對于做靈活開發的每一個團隊成員來說,都需要認真學習本書當中的測試基礎知識、測試設計和管理的思路、實踐和工具。

——scrum中文網和leangoo看闆創始人 廖靖斌

前言

軟體測試是軟體研發過程中的一個重要環節,作為一個獨立的工作是在我國20世紀末和21世紀初逐漸形成的。随着軟體行業的發展,至今已有一支十分龐大的專門從事軟體測試工作的隊伍活躍在軟體企業中。

我是國内最早一批從事軟體測試的工程師,先後在北京炎黃新星網際網路絡有限公司(公司産品:中國家庭網和800buy電子商務網站)、中興通訊(南京)有限公司、意法半導體(中國)有限公司(公司産品:數字電視機頂盒)以及愛立信(中國)通信有限公司等機關工作過。十幾年來,軟體測試從無到有,我經曆了整個過程,是以對軟體測試有比較深入的了解和體會,也積累了一些經驗。我把在工作中遇到的一些問題和案例寫成數十篇文章,在51testing等各大網站上發表,得到廣大軟體開發和測試人員的認可和支援,遵照一些朋友的建議,我把網上的這些文章重新整理修改,并增加了一些新的内容,集結成一本書。在這本書中,我主要以案例為驅動,介紹軟體測試工作中一些常用的方法、思路、遇到的問題以及解決這些問題的方法。

1997年,我畢業于北京工業大學計算機學院軟體工程專業,在學校裡,軟體測試僅僅作為《軟體工程》的一個章節進行介紹。畢業後,我進入一家網際網路公司從事網站的開發工作。當時軟體測試在許多機關都不是一個獨立的部門,軟體測試一般都由開發人員自己來完成。由于沒有專職的軟體測試人員,是以軟體的安全性、穩定性、可靠性等都很難得到保證。實際工作中遇到過不少案例,下面幾個例子就可以得到證明。

2000年我所在的公司與cctv“開心辭典”欄目組合作開發網上答題的項目,這是一個智力娛樂性節目,我編寫了前端的答題代碼,考慮到可能有人用計算機程式來答題,如編寫一個死循環,一直選擇b(或a、c、d),這可以使答題的速度很快,命中率也非常高,為此,我選用javascript過濾了使用死循環的答題者。可是,到了“開心辭典”正式使用這個軟體時,發現仍然有人使用死循環來答題,可我的程式是正确的。後來,在一次聊天子產品中,通過登入賬号我找到了這位“達人”,他說我們前端的确沒有漏洞,他是通過自己編寫的程式繞過我們前端進入到系統後端的,而我們的後端并沒有進行校驗。當初如果有專業的測試人員,這個bug是有可能避免的。

衆所周知,軟體産品的安全性是很重要的問題,而軟體測試是保證産品安全的關鍵所在。下面的例子說明如果沒有做好軟體測試,就可能造成嚴重的後果。有一次我所在的公司開發了一個産品,使用者曾經投訴,采用我們公司的這個産品後,經常發現一些沒有登入的使用者也會進入系統,損毀了公司的形象,造成很大的損失。後來經過數個月的排查才發現,這是開發人員沒有對sql語句進行專門處理,由于sql注入造成的。像這樣的問題,如果在正式上線前,經過嚴格的測試,這個bug是可以事先找到和解決的,這樣就不會造成那麼大的損失。當然,要能夠測試出上面出現的bug,是需要有一定工作經驗的,隻有具有豐富軟體開發經驗的人才能勝任,是以我一直強調從事軟體測試工作前最好進行3年以上的軟體開發工作。為此,在本書的有關章節中我将會進行詳細闡述。

本書還将介紹一些功能測試和性能測試互相依存的例子,這源于我在某家公司做bbs系統的測試工作,系統在前4個月運作一直非常好,可後來系統顯示的速度明顯降低了,原來幾秒鐘顯示一個頁面,現在變成要兩分鐘才能顯示頁面。以前好評如潮,現在投訴不斷。經過查找,發現這是由于當時隻做了功能測試,而沒有進行規範的性能測試造成的。“重功能,輕性能”,這是在軟體測試工作中經常犯的一個毛病,值得引起重視。

軟體測試必須對相應的業務有所了解。記得我剛到意法半導體有限公司時,從事數字電視機頂盒測試工作。這是一種嵌入式軟體産品,這種類型的測試工作往往比較複雜,因為這種軟體在開發初期是看不見、摸不着的,隻有到後期才可以在仿真器、模拟器,甚至移植到真機中才能測試,再加上我對數字電視業務知識的缺乏,在測試中不太容易發現bug。記得在2005年12月31日,開發人員當天下午5點才把一份軟體測試版本交給我們測試人員,為了交給客戶作元旦的獻禮,我們必須在當天下午6點半做完測試,時間緊迫,我們隻能對一些最重要的功能進行測試,又加上我對業務不太熟悉,選擇重點時沒有把握好,産品傳遞給使用者在2006年元旦使用時,開始系統運作得非常好,但一個多小時後,數字電視的音量達到最大,更糟的是,根本無法用遙控器來進行操控。後來究其原因是嵌入式軟體的記憶體空間很小,而程式中存在着野指針,是以發生了記憶體溢出,導緻音量失控。

開發與測試之間經常是一對沖突,這往往需要開發與測試之間進行有效溝通來解決。記得2008年上半年,我所在公司的産品進入一個開發的關鍵時期,開始大規模地招聘開發人員,公司40%多的開發人員都是新員工。這段時間,測試人員總能發現許多bug,使得大部分開發人員要疲于修改這些bug,根本沒有時間去開發産品的新功能,這就導緻開發人員對測試人員的意見很大,甚至有些開發人員認為測試人員是故意給他們找麻煩。當時我作為測試經理認識到測試人員與開發人員之間的沖突必須解決,必須協調雙方的關系,于是我一方面要求測試人員不但要能發現問題,還要逐漸學會從log日志中定位到問題,盡可能協助開發人員解決問題。同時我又主動和開發部門經理協商,要求開發人員在送出測試版本之前必須認真做好自測。之後,開發人員與測試人員之間關系得到改善,産品的品質也得到提高。

由于新興的靈活開發模式便于在相對短的疊代周期内釋出一個新版本,往往幾個月就可以發表一個新的版本。這就給回歸測試帶來很大的挑戰,也促使自動化測試得到不斷發展。在回歸測試中,自動化測試扮演了非常重要的角色,特别是後來采用持續內建(ci)技術,自動化測試的優勢得到了更好展現。當然,自動化測試也不是萬能的,由于自動化測試工具本身也是軟體,它也會有bug,特别是剛開發出的自動化測試腳本,用它驗證産品代碼,當發現一個測試用例沒有通過時,就很難判定是産品的問題還是自動化測試腳本本身的問題。另外,随着需求的變更,自動化測試腳本的更新也要随時跟進。這會使得測試人員的大部分精力都集中在調試和維護自動化測試腳本上,而不能更好地做好測試分析與設計工作。自動化測試在軟體基本功能驗證以及性能測試等不能用手工方法來完成的測試工作中,取得了很好的效果。但是,在一些基于經驗的測試方法,如“探索式測試”“缺陷攻擊法”中,大部分還是需要通過手工方法來實作。

有了一定的測試經驗如果沒有理論的結合,也是不完美的。例如,進行相容性測試時,組合的對象往往很多,窮舉測試是不太可能的,随機抽樣測試也不靠譜。根據一種叫“正交測試法”的測試理論,可以把測試用例減少很多。另外,它有統計學的理論作為保證,其測試的可靠性也得到提高。這說明,由于it行業發展十分迅速,從事軟體測試的工作者也要與時俱進,不斷學習新的理論和方法。

以上隻是本書中的一小部分,我把十幾年在軟體測試中的實踐、體會和思考總結成書,希望為讀者打開一扇通往軟體測試之路的大門,使讀者尋找到解決測試問題的技術和方法,體驗到測試工作中“逮”bug猶如“尋寶”的樂趣。本書可供軟體測試同仁借鑒。由于現在許多大學裡,計算機專業都開設了軟體測試課程,是以本書也可作為大專院校計算機軟體專業學生的參考書。

全書分為“設計”“工具”和“管理”3篇,共14章,每個章節之間雖有一定的聯系,但也可各自獨立成章,讀者可以根據自己的需求,按照書的内容順序閱讀,也可以根據自己的興趣選取相關章節閱讀。

最後,感謝人民郵電出版社張濤先生及其編輯團隊、51testing編輯嚴代麗對本書的出版做出的辛勤勞動,沒有你們的大力支援,出版本書的願望是不可能實作的;感謝微信平台,它将我與全國的軟體測試愛好者連接配接起來,共同分享軟體測試給大家帶來的喜怒哀樂,讓大家能夠利用這個平台分享軟體測試的經驗、思想和方法,進一步豐富本書的内容;在這裡特别感謝楊豔豔、葉微、劉琛梅、趙明、劉莎莎、萬巧、張曉麗、陳佳麗、詹露、張子繁、金鑫、馮昌、帥敏、沈曉靜、趙院嬌和蹇輝在出版後期對本書進行了仔細的校對。另外,我還要感謝我的家人對我這次出書工作在精神、物質及生活上的支援。祝願軟體測試行業能夠在中國得到更好發展,有更多的測試專家能夠在中國出現。本書的全部附錄、代碼以及探索式測試課程均可掃描下面的二維碼從網站上下載下傳。

《軟體測試技術實戰:設計、工具及管理》目錄—導讀

由于本人水準以及時間有限,書中難免存在錯誤或者不足之處,請廣大讀者不吝指正。我的e-mail:[email protected],微信号:xianggu0625。個人網站:www.3testing.com。編輯聯系與投稿郵箱為zhangtao@ ptpress.com.cn。

《軟體測試技術實戰:設計、工具及管理》目錄—導讀

本文僅用于學習和交流目的,不代表異步社群觀點。非商業轉載請注明作譯者、出處,并保留本文的原始連結。

目錄

第1篇 軟體測試設計技術

<a href="https://yq.aliyun.com/articles/91510">第1章 軟體測試的基本知識</a>

<a href="https://yq.aliyun.com/articles/91510">1.1節軟體測試的基本理論</a>

<a href="https://yq.aliyun.com/articles/91524">1.2節軟體測試的七項基本原則</a>

<a href="https://yq.aliyun.com/articles/91535">1.3節驗證與确認的差別</a>

<a href="https://yq.aliyun.com/articles/91550">1.4節本章總結</a>

<a href="https://yq.aliyun.com/articles/91571">第2章 傳統的軟體測試的設計方法</a>

<a href="https://yq.aliyun.com/articles/91571">2.1節運用等價類/邊界值設計測試用例</a>

<a href="https://yq.aliyun.com/articles/91614">2.2節運用決策表設計測試用例</a>

<a href="https://yq.aliyun.com/articles/91637">2.3節運用狀态轉換圖設計測試用例</a>

<a href="https://yq.aliyun.com/articles/91649">2.4節運用決策樹設計測試用例</a>

<a href="https://yq.aliyun.com/articles/91674">2.5節運用正交法設計測試用例</a>

<a href="https://yq.aliyun.com/articles/91730">2.6節軟體白盒測試</a>

<a href="https://yq.aliyun.com/articles/91736">2.7節測試用例不應該包含實際的資料</a>

<a href="https://yq.aliyun.com/articles/91755">2.8節介紹内容</a>

第3章 探索式軟體測試設計方法

第4章 基于風險的軟體測試

第5章 專項軟體測試設計

第6章 雲計算、大資料的軟體測試方法

第2篇 軟體測試工具

第7章 軟體測試工具總覽

第8章 單元測試工具

第9章 性能測試工具

第10章 缺陷管理工具

第11章 app軟體測試工具

第3篇 軟體測試管理

第12章 軟體測試與品質文檔

第13章 軟體測試管理

第14章 軟體測試工程師的職業素質

繼續閱讀