出版時間:2007-9 出版社:電子工業(yè)出版社 作者:朱少民 頁數(shù):447
Tag標簽:無
前言
前言 2000年剛建立測試團隊時,測試人員和開發(fā)人員是一種對立的關(guān)系,開發(fā)人員覺得軟件測試是挑他們的毛病,和他們過不去,有一個簡單的故事可以說明這一點。當時,條件有限,測試人員和開發(fā)人員共享一臺小型機服務器,測試人員發(fā)現(xiàn)了一個缺陷,告訴了某個開發(fā)人員,而他趁測試人員不注意,回到自己的座位上偷偷地修改了代碼,處理了那個缺陷,然后跑到測試人員身邊說:“你把那個Bug再現(xiàn)給我看看?”結(jié)果,可想而知,這個測試人員無論如何也不能復現(xiàn)那個Bug(缺陷)了?! 啄暌院?,這種情況不再出現(xiàn)了,不是因為條件好了,可以買很多服務器,可以將測試環(huán)境和開發(fā)環(huán)境分離開來,而是觀念改變了。雖然的確是購買了幾百臺服務器(不用小型機,越來越多的服務器采用Linux系統(tǒng)),將測試環(huán)境和開發(fā)環(huán)境分離開了,在客觀上可以避免那類“悲劇”的發(fā)生,但是觀念遠比機器重要。擁有正確的觀念,就比較容易創(chuàng)建良好的質(zhì)量文化,開發(fā)人員的態(tài)度也隨之發(fā)生變化,他們已經(jīng)深深認識到: 軟件測試是幫助自己,測試人員是在找產(chǎn)品定義、設(shè)計和實現(xiàn)的缺陷,不是找自己的缺陷,是對事,不是對人; 測試人員越快地發(fā)現(xiàn)缺陷,項目越能盡早結(jié)束; 測試人員盡可能多地發(fā)現(xiàn)Bug,遺留在產(chǎn)品中的Bug就會越少,產(chǎn)品的質(zhì)量就會越高; 測試人員和自己(開發(fā)人員)的工作都是為了相同的目標——按時、高質(zhì)量地發(fā)布產(chǎn)品; 開發(fā)人員的水平越高,所寫的程序中的Bug越少,而不在于使用了別人不知道的技巧。 現(xiàn)在,有的開發(fā)人員向我抱怨,是不是換了一個新人測試他寫的模塊?因為這次發(fā)現(xiàn)的缺陷比前次發(fā)現(xiàn)的少多了。開發(fā)人員希望更多的缺陷被測試人員發(fā)現(xiàn)出來,絕不希望缺陷被留給客戶去發(fā)現(xiàn)?! 〗裉欤覀兏吲d地看到開發(fā)人員和測試人員心往一處想。從項目啟動的第一天起到需求和設(shè)計的評審階段,從后期的缺陷修正到產(chǎn)品維護——在整個軟件生命周期中,開發(fā)人員和測試人員愉快地合作、共同努力,將軟件產(chǎn)品的開發(fā)效率和質(zhì)量推到一個新的高度。一方面,開發(fā)人員主動介紹自己對產(chǎn)品特性是如何理解的,又是如何實現(xiàn)這些特性的,他們主動邀請測試人員參與代碼的走查并對新發(fā)現(xiàn)的Bug快速響應。另一方面,測試人員提前將設(shè)計好的一些測試用例交給開發(fā)人員,讓開發(fā)人員先根據(jù)這些測試用例驗證正在開發(fā)的功能特性,測試人員還愉快地幫助開發(fā)人員再現(xiàn)某個缺陷?! ∷羞@些,都可以看出軟件測試在國內(nèi)越來越受重視,軟件測試領(lǐng)域正迎來朝氣蓬勃的新氣象。當更多的人投入到測試行業(yè)時,需要一本實踐性強、富有啟發(fā)性的專業(yè)書,指導大家如何進行測試,出色地完成測試任務。這本《全程軟件測試》就承載了這樣一個任務,它會從項目啟動開始,一步一步地教會大家如何做好測試工作,包括建立測試組、計劃測試、設(shè)計測試用例、選擇測試工具、開發(fā)測試腳本、執(zhí)行測試和編寫測試報告等。這也是我與大家分享多年來積累的軟件測試經(jīng)驗與技術(shù)實踐,以及不斷思考所升華的體會?! 榱藢戇@本書,我事先也做了一些嘗試,盡量收集大家對軟件測試需求的反饋,并在CSDN的個人博客http://blog.csdn.net/KerryZhu上演義了30回的軟件測試,受到了大家的好評。也許就因為這個,在CSDN建立博客不到8個月,我的博客就成為當年(2006年)十大最具價值的博客之一?! 〈饲?,我曾寫過一本《軟件測試方法和技術(shù)》的教材,這本教材在比較短的時間內(nèi)印刷了好幾次,也頗受歡迎。但那本書在很大程度上是從理論、概念上講解軟件測試的方法和技術(shù)的,適合在校學生使用。而這本書重實踐、重應用,適合軟件公司的測試經(jīng)理、工程師和想進入軟件測試行業(yè)的人員學習?! ∪珪?2章,以兩個案例為背景,以項目向前發(fā)展的實際過程為路線圖,全面展開軟件測試的思想、流程、方法、技術(shù)和最佳實踐。全書力求做到方法有效、技術(shù)實用,集中講解實際測試工作,沒有單純地介紹概念,而是將概念準確地穿插在測試進程活動之中?! 〉?章介紹測試項目啟動后要做好哪些準備,如何掌控項目背景和要素,為制定測試計劃打下堅實的基礎(chǔ),包括了解軟件的質(zhì)量需求,深刻理解軟件測試和測試過程,以及開發(fā)過程之間的關(guān)系,并說明如何確定軟件測試組長和制定測試規(guī)范。 第2章測試計劃是焦點,主要討論了測試人員在需求評審中的作用,確定軟件功能和非功能性的系統(tǒng)測試需求、各個階段的測試任務,并進行測試范圍分析和工作量估計、測試資源需求和團隊組建、測試里程碑和進度安排,以及基于測試風險分析制定有效的測試策略?! 〉?章從系統(tǒng)架構(gòu)的審查開始,深入到系統(tǒng)組件設(shè)計、設(shè)計規(guī)格說明書、界面設(shè)計和系統(tǒng)部署設(shè)計等一系列的審查。在系統(tǒng)部署設(shè)計中,詳細討論了系統(tǒng)部署邏輯設(shè)計、物理設(shè)計、可用性設(shè)計、可伸縮性設(shè)計和安全性設(shè)計的驗證?! 〉?章圍繞測試設(shè)計展開討論,先從測試用例框架的設(shè)計入手,然后逐步涉及測試用例的構(gòu)成、設(shè)計方法、評審、功能測試用例和系統(tǒng)測試用例的設(shè)計,其中對各種功能設(shè)計方法、故障轉(zhuǎn)移和系統(tǒng)安全性的測試用例設(shè)計作了更詳細的介紹?! 〉?章測試工具的選擇和腳本的開發(fā)是本章的主題。在這一章,對測試工具的優(yōu)勢、實現(xiàn)原理等進行了分析,介紹了測試工具選擇的標準、評估報告和誤區(qū),給出了開源或商業(yè)的測試工具的完整解決方案,包括詳細介紹了Selenium和Jmeter的使用,最后說明如何進行測試腳本錄制、回放、開發(fā)和重構(gòu)?! 〉?章展示測試和編程的交互過程,主要經(jīng)歷程序代碼的審查、程序的動態(tài)測試兩個環(huán)節(jié)。對于白盒測試方法及其應用、單元測試工具等,在這一章作了詳細介紹?! 〉?章開始進入功能測試的執(zhí)行階段,并著重介紹了自動化功能測試的執(zhí)行,如何優(yōu)化測試環(huán)境的組合,如何有效地創(chuàng)建測試套件和軟件缺陷的報告,包括測試執(zhí)行之前的準備、測試環(huán)境的建立和設(shè)置、UI測試、回歸測試等。 第8章介紹如何進行國際化測試和本地化測試,包括本地化的功能測試、數(shù)據(jù)格式驗證、UI驗證、配置和兼容性驗證,以及翻譯驗證?! 〉?章內(nèi)容是圍繞系統(tǒng)測試執(zhí)行來展開的,進一步讓讀者了解系統(tǒng)測試,詳細分析了負載測試的加載方式、負載參數(shù)、執(zhí)行布局和結(jié)果報告,從而更好地理解如何做好性能測試,并相繼介紹了Web安全性測試、容錯性測試、兼容性測試、安裝測試等?! 〉?0章內(nèi)容相對簡單,包括4個方面:驗收測試、文檔測試、α測試和β測試、產(chǎn)品后繼版本的測試?! 〉?1章內(nèi)容豐富,涉及測試管理的思想和系統(tǒng)、測試用例的管理、測試自動化的管理、缺陷跟蹤和分析、測試進度和風險的控制、測試覆蓋度和結(jié)果分析等。例如單就缺陷分析,就包括缺陷生命周期、缺陷狀態(tài)的跟蹤、缺陷的分析、累計缺陷趨勢分析等?! 〉?2章最后一章是總結(jié)和思考,可以讓讀者認清現(xiàn)實、制定原則,然后用辨證統(tǒng)一的方法去看各種測試方法,如白盒測試方法和黑盒測試方法、靜態(tài)測試和動態(tài)測試、手工測試和自動化測試、有計劃測試和隨機測試等,從而真正悟出軟件測試方法的應用之道。這章還分享了筆者在測試中所積累的大量最佳實踐,并以實用的測試成熟度模型作為結(jié)尾?! ”緯詈蟾接熊浖y試全景圖、完整的項目檢查表、軟件測試計劃通用模板、完整的測試工具列表和代碼審查的示范性列表等資料?! ∮捎谒胶蜁r間的限制,書中難免會出現(xiàn)錯誤,歡迎讀者及各界同仁不吝指正?! ⊥扑]序 翻閱少民的這部新作時,不禁讓我想起一位好朋友前幾天提到的《敘事謠曲》中“只彎一次腰”的故事:有一次,耶穌帶著他的門徒彼得出門遠行,在路上發(fā)現(xiàn)了一塊破爛的馬蹄鐵,耶穌就讓彼得揀起來,不料彼得懶得彎腰,假裝沒有聽見。耶穌沒說什么,自己彎腰揀起馬蹄鐵,用它在鐵匠那里換了幾文錢,并用這些錢買了十幾顆櫻桃。出了城,兩人繼續(xù)向前走,沿途都是茫茫的荒野,看不到人煙,也找不到水源。耶穌猜到彼得渴得厲害,就讓藏在袖子里的櫻桃悄悄掉出一顆。彼得一見,趕緊撿起來吃掉。耶穌邊走邊掉,彼得也就狼狽地彎了十七八次腰。于是耶穌對他說:“要是你剛才彎一次腰,就不會在后來沒完沒了地彎腰了。小事不干,就將在更多的小事上操勞?!薄 ∵@個故事,不同的人有不同的感悟。作為一個軟件行業(yè)的多年從業(yè)者,我很自然就聯(lián)想到了軟件開發(fā)過程。軟件測試(具體到每一個測試用例的實施)正是在龐大復雜的軟件產(chǎn)品開發(fā)過程中確保軟件產(chǎn)品質(zhì)量的“小事”。軟件測試工作繁雜、瑣碎又耗時,甚至有時吃力不討好,這使得許多軟件從業(yè)者對其不夠重視;好多技術(shù)人員熱衷于編碼而不愿從事測試工作這樣的“小事”;有些公司認為開發(fā)能出成果而測試可有可無,因而非常重視開發(fā)但不重視測試;許多國內(nèi)軟件企業(yè)存在著漠視測試過程、測試時間不充分、測試計劃不細致、測試軟硬件資源不足等問題,從而在軟件質(zhì)量控制上存在相當大的問題,以致項目延遲甚至失敗?! ≡谲浖a(chǎn)業(yè)發(fā)展的幾十年中,軟件測試已逐步滲透到各個領(lǐng)域,成為越來越不可或缺的技術(shù)成分。例如,以前被認為距離軟件技術(shù)比較遠的汽車工業(yè),現(xiàn)在已把高級車制造費用的20%~25%投入到電子設(shè)備與軟件系統(tǒng)上。由此看來,軟件的品質(zhì)已成為人們?nèi)找骊P(guān)注的重中之重。如何找到一種全面的分析方法,來檢測軟件開發(fā)過程中不同階段的結(jié)果,以便盡可能早地系統(tǒng)地保證或提高軟件產(chǎn)品的質(zhì)量和可靠性,從而減少后期“彎腰”的必要性與次數(shù),已成為影響軟件企業(yè)生產(chǎn)力與生產(chǎn)效率的關(guān)鍵問題。 可喜的是,越來越多的軟件公司和管理技術(shù)人員在工作中將更多的時間和資源投向了測試方面。很多優(yōu)秀企業(yè)中開發(fā)與測試的人員比例達到了3:1或2:1,許多頂尖的技術(shù)人員在從事質(zhì)量控制和軟件測試工作。而國內(nèi)這幾年軟件測試人員的短缺和招聘難度的提高從反面證明了軟件測試正越來越得到重視?! 〗陙?,軟件產(chǎn)業(yè)發(fā)展正從產(chǎn)品模式向服務模式(SoftwareasaService,SaaS)轉(zhuǎn)變。在過去的多年中,WebEx公司一直處于這一浪潮的領(lǐng)導地位。WebEx提供的網(wǎng)絡(luò)會議服務(WebConference)被稱為改變?nèi)藗児ぷ鞣绞降募夹g(shù)革命。朱少民先生與他帶領(lǐng)的團隊非常自豪而榮幸地參與了WebEx產(chǎn)品開發(fā)的整個過程,在這個過程中他們夯實了軟件測試的理論基礎(chǔ),并積累了豐富的實戰(zhàn)經(jīng)驗。 少民從事高校教育及軟件開發(fā)測試工作多年,并且在美國硅谷工作兩年,其經(jīng)歷是很好的理論與實踐相結(jié)合的典范。與少民共事多年,了解他在軟件測試領(lǐng)域的積累,從開始時采用簡單、初級的測試方法,一步步發(fā)展到今天系統(tǒng)、科學的軟件質(zhì)量管理體系;從手工測試向自動化測試過渡;從幾個人的測試小組到幾百名測試工程師的大規(guī)模團隊?,F(xiàn)在,是到了將過去的經(jīng)驗教訓作一番總結(jié),以其親身經(jīng)歷為業(yè)界同仁指點軟件測試的規(guī)律與介紹成功實踐經(jīng)驗的時候了?! ∵@部《全程軟件測試》是少民與其工作團隊多年來的經(jīng)驗積累,其中一些觀點與見解已經(jīng)成為WebEx公司的基本工作準則,對軟件研發(fā)領(lǐng)域有著重要的實質(zhì)性貢獻。本書通過實例全面描述了軟件測試的整個過程,覆蓋了測試管理的各個重要方面。對測試管理的各個層次和環(huán)節(jié)做了系統(tǒng)的介紹,包括測試策略制定、風險控制、缺陷跟蹤和分析、測試管理系統(tǒng)的應用等,并且更進一步對如何執(zhí)行本地化測試和國際化測試進行了闡述。作者重點聚焦在實踐性上,從軟件測試項目啟動、測試計劃開始,深入到測試用例設(shè)計、測試工具選擇、腳本開發(fā),以及功能測試和系統(tǒng)測試等各個步驟,并對它們都作了詳細闡述。 讓人印象深刻的是本書對軟件測試工作中幾個看似簡單、實際上非常關(guān)鍵的問題作了詳細的說明。例如就開發(fā)團隊模式,作者介紹了以開發(fā)為核心,以項目經(jīng)理為核心,以及“三國鼎立”(以項目經(jīng)理、開發(fā)組長、測試組長為核心)的模式。而“三國鼎立”的測試團隊具有獨立、權(quán)威性地位的概念也是工作經(jīng)驗的總結(jié)。相信讀者會從實戰(zhàn)中體會到作者的深刻用意。 在探索高效軟件測試與軟件開發(fā)的過程中,本書覆蓋了全面的理論分析和詳細的實戰(zhàn)闡述,對任何從事軟件測試的人員和軟件開發(fā)人員,以及軟件工程相關(guān)專業(yè)的高校師生,都具有重要的參考價值。希望書中的一些真知灼見對廣大讀者有所裨益?! ±顨J敏(JimLi) WebEx總部工程技術(shù)及中國研發(fā)高級總監(jiān) 2007年6月于美國硅谷 推薦語 這是一本為軟件測試團隊創(chuàng)作的融實踐性、專業(yè)性、思想性和實用性為一體的軟件測試書籍。全書以完整測試項目的規(guī)劃和執(zhí)行過程為主線,以典型測試項目案例為分析和應用實例,把作者豐富的測試實踐經(jīng)驗與具體測試方法和技術(shù)總結(jié)出來與讀者分享。本書適合于指導軟件公司測試經(jīng)理和測試工程師閱讀和實踐,對準備從事軟件測試的從業(yè)人員也是不可多得的學習和培訓教材。 ——崔啟亮昱達軟件科技有限公司技術(shù)與培訓總裁 非常欣喜地得知又一本國內(nèi)原創(chuàng)的軟件測試專著問世了,目前國內(nèi)的軟件測試書籍理論偏多,介紹最佳實踐的偏少,希望本書能成為軟件測試工程師的案頭手冊,為國內(nèi)軟件測試行業(yè)的蓬勃發(fā)展添磚加瓦。 ——賀炘慧靈科技 首席測試專家、北京軟件行業(yè)協(xié)會測試工作委員會副秘書長 如果你想通過一本切合實際而不僅僅是紙上談兵的書來學習軟件測試,《全程軟件測試》會是一個很好的選擇! ——周澤睿百度高級測試工程師 興趣:模塊級測試、性能壓力測試、網(wǎng)絡(luò)編程、算法等 很難得,久未看到如此讓人暢快的文章。能將軟件工程實踐系統(tǒng)地貫穿在一起,并不失理論佐證,這本身就是個勝利?! 呃诎俣雀呒墱y試工程師 致力于軟件測試前沿理論的探索及其與工程實踐的結(jié)合 優(yōu)秀的測試思想,體現(xiàn)著對人生反思的哲學。從某種意義上說,生活和軟件開發(fā)一樣,要在試錯的磨煉中成長?! 顣越馨俣葴y試與項目管理工程師 本書最吸引我的地方在于其真實的項目背景,這對于缺乏豐富實踐經(jīng)驗的從業(yè)人員來說無疑是最寶貴的材料。 ——周可杉對外經(jīng)濟貿(mào)易大學信息學院在讀碩士研究生 研究方向:管理信息系統(tǒng)與電子商務 作者對于測試項目從啟動、計劃、驗證、設(shè)計、工具和腳本開發(fā)等多個角度由淺入深的介紹,非常有利于初學者對于測試流程的理解?! 茌x某公司軟件測試工程師 計算機信息管理專業(yè)
內(nèi)容概要
本書以兩個典型項目為背景,按實際項目進行的先后次序,循序漸進地闡述了軟件測試的全過程。從軟件項目啟動、需求評審、測試計劃開始,然后深入到測試用例設(shè)計、測試工具選擇、腳本開發(fā)、功能測試和系統(tǒng)測試等不同階段,生動地演繹了必需而實用的測試方法、技術(shù)和實施技巧。本書還系統(tǒng)地介紹了測試管理的各個層次及其細節(jié),包括測試策略制定、風險控制、缺陷跟蹤和分析、測試管理系統(tǒng)的應用等。最后,本書呈現(xiàn)了軟件測試成熟度模型和對軟件測試的總結(jié)和思考,幫助讀者了解軟件測試所面對的現(xiàn)實問題和應恪守的原則、領(lǐng)會測試方法的應用之道和品味測試的最佳實踐。 本書是作者長期從事軟件測試工作的經(jīng)驗與智慧的結(jié)晶,是軟件測試工程師的良師益友。本書也可作為軟件開發(fā)人員、項目經(jīng)理等的參考書,更適合用作軟件測試的培訓教材或教學用書。
作者簡介
朱少民 (Kerry Zhu),男,1964年出生,1988年碩士畢業(yè) 、1995年破格提升為副教授,目前擔任一家跨國公司的中國區(qū)高級質(zhì)量總監(jiān)。先后在大學的研究和教學工作、國際一流的跨國企業(yè)工作,從事軟件開發(fā)、測試、QA和過程改進等工作近二十年,先后獲得機械工業(yè)部、安徽省、合肥市、青島市等多項科技進步獎。在美國硅谷工作兩年。 主要研究領(lǐng)域:軟件測試、軟件質(zhì)量管理和軟件過程改進?! ≈饕鳎?《全程軟件測試》、《軟件測試方法和技術(shù)》、《軟件質(zhì)量保證和管理》、《軟件過程管理》和《軟件工程導論》等。
書籍目錄
前 言引 子第1章 測試項目啟動1.1 了解軟件的質(zhì)量需求 21.1.1 軟件產(chǎn)品的質(zhì)量需求 21.1.2 軟件質(zhì)量的對立面——軟件缺陷 51.1.3 軟件缺陷產(chǎn)生的原因 71.1.4 究竟什么是軟件測試 81.1.5 軟件測試的目標 111.2 選定測試組長 131.2.1 測試過程和開發(fā)過程的關(guān)系 131.2.2 測試組長的人選 151.2.3 測試在項目團隊中的位置 171.3 掌控項目背景 181.3.1 軟件測試的項目要素 181.3.2 兩個典型項目的介紹 201.3.3客戶端軟件Google Talk功能簡介 211.3.4 Web應用——雅虎日歷功能介紹 221.4 制定測試規(guī)范 231.5 小結(jié) 28第2章 測試計劃2.1 產(chǎn)品需求文檔審查和評審 302.1.1需求評審的重要性 302.1.2 測試人員在需求評審中的角色 322.1.3 需求評審的標準 342.2 項目的測試需求和任務 362.2.1 確定軟件功能測試需求 362.2.2 非功能性的系統(tǒng)測試需求 382.2.3 軟件即服務的測試需求 392.2.4 各個階段的測試任務 412.3 測試范圍分析和工作量估計 432.3.1 功能測試范圍的分析 432.3.2系統(tǒng)測試范圍的分析 462.3.3 工作量的估計 482.3.4 工作分解結(jié)構(gòu)表方法 492.3.5 工作量估計的實例 512.4 測試資源需求和團隊組建 532.4.1 測試資源需求 532.4.2 團隊組建 542.4.3 培訓 552.5 測試里程碑和進度安排 562.6 測試風險分析 572.7 制定有效的測試策略 612.8 完整生成測試計劃書 652.9 小結(jié) 66第3章 設(shè)計驗證3.1 系統(tǒng)架構(gòu)的審查 683.1.1 系統(tǒng)架構(gòu)選型的確認 683.1.2軟件設(shè)計評審標準 693.1.3 系統(tǒng)組件設(shè)計的審查 723.2 產(chǎn)品設(shè)計規(guī)格說明書的復審 743.2.1 重視設(shè)計規(guī)格說明書的審查 743.2.2 設(shè)計規(guī)格說明書的多層次審查 753.2.3 界面設(shè)計的評審 763.2.4 驗證過程與確認過程 773.3 系統(tǒng)部署設(shè)計的審查 783.3.1 系統(tǒng)部署邏輯設(shè)計的審查 793.3.2 軟件部署物理設(shè)計的審查 803.3.3 系統(tǒng)部署可用性設(shè)計的審查 823.3.4 系統(tǒng)部署可伸縮性設(shè)計的驗證 853.3.5 系統(tǒng)部署安全性設(shè)計的驗證 86小結(jié) 87第4章 測試設(shè)計4.1 測試用例框架的設(shè)計 894.1.1為什么需要測試用例 894.1.2 測試用例設(shè)計考慮因素 904.1.3 測試用例框架的構(gòu)成 914.1.4 測試用例的元素 934.2 功能測試用例的設(shè)計 944.2.1 功能測試用例的內(nèi)容 954.2.2 功能測試用例的設(shè)計方法 964.2.3 等價類劃分法 974.2.4 邊界值分析法 1004.2.5 因果圖法 1044.2.6 功能圖法 1054.2.7 錯誤推測法 1064.2.8 正交實驗設(shè)計方法 1074.3 系統(tǒng)測試用例的設(shè)計 1084.3.1 故障轉(zhuǎn)移的測試用例設(shè)計 1094.3.2 系統(tǒng)安全性的測試用例設(shè)計 1104.4 測試用例的審查 1124.4.1 測試用例書寫標準 1124.4.2 測試用例評審要點 1134.6 測試套件的創(chuàng)建 115 第5章 測試工具選擇和腳本開發(fā) 5.1 測試工具的需求分析 1195.1.1 測試工具的優(yōu)勢 1195.1.2 測試工具的實現(xiàn)原理 1205.2 測試工具的選擇 1245.2.1 測試工具選擇的標準 1245.2.2 測試工具評估報告實例 1265.2.3 測試工具選擇的誤區(qū) 1275.3 測試工具完整方案之商業(yè)版 1285.3.1 GUI功能測試工具的比較 1295.3.2 負載和性能測試工具 1315.3.3 基于Web應用的測試工具 1335.4 測試工具完整方案之開源版 1355.4.1 開源測試工具總覽 1355.4.2 Web功能測試工具—Selenium 1375.4.3 強大的性能測試工具—JMeter 1425.4 測試腳本錄制和回放 1455.4.1 創(chuàng)建自動化腳本項目 1455.4.2 錄制Selenium腳本 1475.4.3 用Robot錄制客戶端測試的腳本 1505.5 測試腳本的開發(fā) 1525.5.1 適應測試腳本開發(fā)的測試用例 1525.5.2 測試腳本的重構(gòu)和優(yōu)化 153第6章 測試和編程的交互6.1 程序代碼的審查 1546.1.1 代碼審查的方法和范圍 1546.1.2 代碼風格的審查 1566.1.3 編程規(guī)則的審查 1586.2 單元測試 1606.2.1 什么是單元測試 1616.2.2單元測試的現(xiàn)狀和作用 1626.2.3單元測試的方法 1636.3 單元測試用例的設(shè)計 1646.3.1 語句覆蓋法 1656.3.2 判定和條件覆蓋法 1666.3.4 基本路徑測試法 1696.3.5 多種白盒測試方法的比較和總結(jié) 1696.3.6 循環(huán)結(jié)構(gòu)的測試用例 1706.3.7 單元測試的典型實例 1726.4 單元測試工具 1746.4.1 靜態(tài)代碼分析 1756.4.2 測試覆蓋率工具EMMA 176第7章 功能測試的執(zhí)行 7.1 測試執(zhí)行概述 1807.2 測試執(zhí)行的準備 1817.2.1 培訓和知識傳遞 1827.2.2 測試任務安排 1837.2.3 測試環(huán)境的建立 1847.2.4 測試環(huán)境的設(shè)置 1857.2.5 測試自動化運行平臺 1877.3 如何有效地創(chuàng)建測試套件 1887.3.1 功能測試套件的創(chuàng)建 1887.3.2 測試環(huán)境的爆炸性組合 1907.3.3 環(huán)境組合優(yōu)化 1917.4 功能測試自動化的執(zhí)行 1947.5 用戶界面和適用性測試 1977.6 回歸測試 2007.6 軟件缺陷的報告 2027.6.1 缺陷的屬性 2027.6.2 缺陷描述的詳細描述 2057.6.3 如何報告缺陷 206小結(jié) 207第8章 國際化和本地化測試的執(zhí)行8.1 國際化測試 2088.1.1 軟件國際化的基本要求 2098.1.2 國際化測試 2128.1.3 I18N測試實例 2148.2 本地化測試 2158.2.1 軟件本地化的質(zhì)量需求 2158.2.2 本地化測試的基本內(nèi)容 2178.2.3 L10N的功能測試 2198.2.4 L10N的數(shù)據(jù)格式驗證 2218.2.5 L10N的UI驗證 2248.2.6 L10N的配置和兼容性驗證 2258.2.7 L10N的翻譯驗證 2268.3 I18N和L10N測試工具 228小結(jié) 230第9章 系統(tǒng)測試的執(zhí)行 9.1 如何進行系統(tǒng)測試 2329.1.1 進一步了解系統(tǒng)測試 2329.1.2 系統(tǒng)測試的實施策略 2349.2 Web應用服務器的負載測試 2369.2.1 負載測試的加載方式 2379.2.2 負載測試的準備工作 2389.2.3 負載測試的執(zhí)行 2399.2.4 負載測試的結(jié)果分析 2419.3 Web應用服務器的性能測試 2429.4 Web安全性測試 2449.5 容錯性測試 2469.6 數(shù)據(jù)庫的性能測試 2479.7 兼容性測試 2509.8 安裝測試 2539.8.1 客戶端軟件安裝測試 2539.8.2 軟件服務模式下的安裝測試 255小結(jié) 256第10章 后續(xù)測試10.1 驗收測試 25610.2 文檔測試 25910.3 α測試和β測試 26010.4 產(chǎn)品后繼版本的測試 261小結(jié) 263第11章 測試的跟蹤和管理11.1 測試管理 26511.1.1 測試管理的全局性 26511.1.2 測試策略的執(zhí)行 26611.1.3 測試管理系統(tǒng)的應用 26711.1.4 測試管理工具 26911.2 測試用例的管理 27111.2.1 測試用例創(chuàng)建的管理 27111.2.2 測試用例執(zhí)行的管理 27311.2.3 測試用例的維護 27311.3 測試自動化的管理 27511.3.1 測試自動化的框架 27511.3.2 測試自動化的流程 27711.4 缺陷跟蹤和分析 27811.4.1 缺陷生命周期 27811.4.2 缺陷狀態(tài)的跟蹤 28011.4.3 缺陷的分析 28111.4.4 累計缺陷趨勢分析 28411.5 測試進度和風險的控制 28611.5.1 測試進度管理 28611.5.2 測試風險的控制 28911.6 測試覆蓋度和結(jié)果分析 29111.6.1 測試覆蓋評估 29111.6.2 基于軟件缺陷的質(zhì)量評估 29311.6.3 軟件缺陷清除率 29411.6.4 測試報告的模板、實例 296小結(jié) 298第12章 總結(jié)和思考12.1軟件測試的現(xiàn)實和原則 30012.1.1 測試的現(xiàn)實 30012.2 軟件測試的多維空間 30412.3 軟件測試方法的應用之道 30612.3.1 白盒測試方法和黑盒測試方法 30712.3.2靜態(tài)測試和動態(tài)測試 30712.3.3 手工測試和自動化測試 30812.3.4 有計劃測試和隨機測試 30912.3.5 新功能測試和回歸測試 31012.3.6 測試方法綜合應用的總結(jié) 31112.3.7 測試方法的有效性和風險性 31212.4 軟件測試的最佳實踐 31212.4.1 測試計劃的最佳實踐 31312.4.2 測試用例設(shè)計中的最佳實踐 31412.4.3 測試自動化中的最佳實踐 31512.4.4 測試執(zhí)行中的最佳實踐 31912.4.5 測試團隊建設(shè)中的最佳實踐 32112.5 軟件測試成熟度模型 32312.5.1 從CMM/CMMI得到的啟發(fā) 32312.5.2 目前TMM存在的問題 32512.5.3 實用測試成熟度模型的建立 326附錄A 軟件測試全景圖附錄B 完整的項目檢查表附錄C 軟件測試計劃通用模板(GB8567-88)附錄D 完整的測試工具列表附錄E 代碼審查的示范性列表附錄F 軟件測試術(shù)語中英文對照附錄G LoadRunner和OpenSTA比較分析參考文獻
章節(jié)摘錄
引子 在本書的開頭,有必要介紹軟件測試在軟件開發(fā)中的位置、地位和作用,也就是幫助讀者建立起有關(guān)軟件測試的基本輪廓(big picture),這樣對閱讀和理解以后各章的內(nèi)容會有很大幫助。要建立起軟件測試的基本輪廓,也就需要回答下列幾個問題: 軟件測試的作用是什么? 軟件測試在軟件開發(fā)生命周期(SDLC)中的位置在哪里? 軟件測試過程是怎樣的? 軟件測試團隊的地位如何? 軟件測試和軟件質(zhì)量保證(SQA)有何區(qū)別? 下面我們先簡單回答這些問題。即使您不能完全理解也不要急,后面會逐步幫助您解開軟件測試之謎。但有一點是明確的,在看完這段“引子”后,您對軟件測試會有一個整體的認識,從而不至于陷入“盲人摸象”的困境?! ?. 軟件測試的作用 在購買商品時,會發(fā)現(xiàn)商品上貼有一個“QC”標簽,這就是產(chǎn)品經(jīng)過質(zhì)量檢驗(Quality Control)的標志。軟件測試就好比制造工廠的質(zhì)量檢驗工作,是對軟件產(chǎn)品和階段性工作成果進行質(zhì)量檢驗,力求發(fā)現(xiàn)其中的各種缺陷,并督促修正缺陷,從而控制和保證軟件產(chǎn)品的質(zhì)量。所以,軟件測試是軟件公司致力于提高軟件產(chǎn)品質(zhì)量的重要手段之一。 2. 軟件測試在SDLC中的位置 在著名的軟件瀑布模型中,軟件測試處在“編程”的下游,在“軟件維護”的上游,先有編程后有測試,測試的位置很清楚,但瀑布模型沒有反映SDLC的本質(zhì),沒能準確無誤地反映測試的位置?! 嶋H上,測試貫穿整個SDLC,從需求評審、設(shè)計評審開始,就介入到軟件產(chǎn)品的開發(fā)活動或軟件項目實施中了。測試人員借助于需求定義的閱讀、討論和審查,不僅能發(fā)現(xiàn)需求定義的問題,而且可以了解產(chǎn)品的設(shè)計特性、用戶的真正需求,進而確定測試目標,準備用例(Use Case)并策劃測試活動。同理,在軟件設(shè)計階段,測試人員可以了解系統(tǒng)是如何實現(xiàn)的,以及構(gòu)建在什么樣的平臺之上等各類問題,這樣可以提前準備系統(tǒng)的測試環(huán)境,包括硬件和第三方軟件的采購,并著手研究如何測試系統(tǒng),完成系統(tǒng)測試用例設(shè)計、測試工具的選型或啟動測試工具的開發(fā),進一步完善測試計劃等。所有這些準備工作,都要花去很多時間,應盡早開展起來?! ‘斣O(shè)計人員在做詳細設(shè)計時,測試人員就應直接參與具體的設(shè)計、參與設(shè)計的評審,找出設(shè)計的缺陷。同時,完成功能特性測試的用例,并基于這些測試用例開發(fā)測試腳本?! ≡诰幊屉A段就進行單元測試,是一種很有效的辦法,可以盡快找出程序中的錯誤。充分的單元測試可以大幅度提高程序質(zhì)量,減少開發(fā)成本?! ≤浖y試在SDLC中的位置,可以通過圖0-1充分地體現(xiàn)出來。軟件測試和軟件開發(fā)構(gòu)成一個全過程的交互、協(xié)作的關(guān)系,兩者自始至終一起工作,共同致力于同一個目標——按時、高質(zhì)量地完成項目?! D0-1 軟件測試和SDLC的關(guān)系 3. 軟件測試過程 軟件測試的全過程,要經(jīng)歷如圖0-2所示的很多個里程碑,其中主要的里程碑有: 產(chǎn)品需求文檔(PRD)或市場需求文檔(MRD)的評審和簽發(fā); 產(chǎn)品規(guī)格說明書(Spec)的評審和簽發(fā); 測試計劃、測試計劃書的評審和簽發(fā); 測試用例的設(shè)計、評審和簽發(fā); 功能測試; 系統(tǒng)測試; 驗收測試?! D0-2 測試全過程的跟蹤示意圖 4. 軟件測試團隊的地位 在軟件開發(fā)中,雖然有很多角色,有各種各樣的人員參與,包括項目經(jīng)理、產(chǎn)品經(jīng)理、UI(用戶界面)設(shè)計人員、文檔人員等,但最大的兩個團隊就是測試團隊和開發(fā)團隊(由設(shè)計人員/程序員組成),也就是說,在一個軟件公司,測試人員和程序員,占有最大比重。當然,有些軟件公司,銷售人員或客戶支持人員也比較多。由此可見,軟件測試團隊的地位應該是舉足輕重的?! ?. 軟件測試和SQA的區(qū)別 如前面所說,軟件測試屬于軟件控制,它和SQA(質(zhì)量保證)的區(qū)別概括起來有4點,見表0-1?! ”?-1 項目 軟件測試 SQA 工作性質(zhì) 技術(shù)性工作 管理性工作 對象 軟件產(chǎn)品(包括階段性產(chǎn)品) 軟件過程 焦點 事后檢驗 強調(diào)預防 范圍 在研發(fā)(R&D)部門或技術(shù)部門 在公司層次,跨所有部門,包括市場、銷售、客戶服務、行政、后勤、人事等部門
編輯推薦
基于國際一流軟件企業(yè)的軟件測試流程和實踐,以兩個典型項目為背景,按實際測試項目運轉(zhuǎn)方式,逐步向前推進,最終貫穿整個軟件測試全過程。從軟件測試項目啟動、測試計劃開始,然后深入到測試用例設(shè)計、測試工具選擇、腳本開發(fā)、功能測試和系統(tǒng)測試等各項測試活動,清楚地演繹測試的方法和實踐。在完全掌握測試的技術(shù)和方法的基礎(chǔ)上,對測試管理的各個層次和環(huán)節(jié)做了系統(tǒng)的介紹,包括測試策略制定、風險控制、缺陷跟蹤和分析、測試管理系統(tǒng)的應用等。最后,隨著軟件測試的總結(jié)和思考,逐漸理解所面對的現(xiàn)實和應堅持的原則,領(lǐng)會軟件測試方法的應用之道和品味測試的最佳實踐,并在軟件測試成熟度模型前停住腳步,久久不想離去?! y試專家朱少民老師最新力作,深邃洞察軟件測試整體架構(gòu),囊括軟件測試的思想、流程、方法、技術(shù)和最佳實踐,系統(tǒng)介紹測試管理的各個層次及其細節(jié)。全書以兩個典型項目為背景,按實際測試項目運轉(zhuǎn)方式,逐步向前推進,最終貫穿整個軟件測試全過程。從軟件測試項目啟動、測試計劃開始,然后深入到測試用例設(shè)計、測試工具選擇、腳本開發(fā)、功能測試和系統(tǒng)測試等各項測試活動,清楚地演繹測試的方法和實踐。在完全掌握測試的技術(shù)和方法的基礎(chǔ)上,對測試管理的各個層次和環(huán)節(jié)做了系統(tǒng)的介紹,包括測試策略制定、風險控制、缺陷跟蹤和分析、測試管理系統(tǒng)的應用等。最后,隨著軟件測試的總結(jié)和思考,逐漸理解所面對的現(xiàn)實和應堅持的原則,領(lǐng)會軟件測試方法的應用之道和品味測試的最佳實踐?! ∵@是一本為軟件測試團隊創(chuàng)作的融實踐性、專業(yè)性、思想性和實用性為一體的軟件測試書籍。全書以完整測試項目的規(guī)劃和執(zhí)行過程為主線,以典型測試項目案例為分析和應用實例,把作者豐富的測試實踐經(jīng)驗與具體測試方法和技術(shù)總結(jié)出來與讀者分享。本書適合于指導軟件公司測試經(jīng)理和測試工程師閱讀和實踐,對準備從事軟件測試的從業(yè)人員也是不可多得的學習和培訓教材?! 迒⒘?昱達軟件科技有限公司 技術(shù)與培訓總裁 非常欣喜地得知又一本國內(nèi)原創(chuàng)的軟件測試專著問世了,目前國內(nèi)的軟件測試書籍理論偏多,介紹最佳實踐的偏少,希望本書能成為軟件測試工程師的案頭手冊,為國內(nèi)軟件測試行業(yè)的蓬勃發(fā)展添磚加瓦?! R炘 慧靈科技 首席測試專家、北京軟件行業(yè)協(xié)會測試工作委員會副秘書長 如果你想通過一本切合實際而不僅僅是紙上談兵的書來學習軟件測試,《全程軟件測試》會是一個很好的選擇! ——周澤睿 百度高級測試工程師 興趣:模塊級測試、性能壓力測試、網(wǎng)絡(luò)編程、算法等 很難得,久未看到如此讓人暢快的文章。能將軟件工程實踐系統(tǒng)地貫穿在一起,并不失理論佐證,這本身就是個勝利?! 呃?百度高級測試工程師 致力于軟件測試前沿理論的探索及其與工程實踐的結(jié)合 優(yōu)秀的測試思想,體現(xiàn)著對人生反思的哲學。從某種意義上說,生活和軟件開發(fā)一樣,要在試錯的磨煉中成長。 ——李曉杰 百度測試與項目管理工程師 本書最吸引我的地方在于其真實的項目背景,這對于缺乏豐富實踐經(jīng)驗的從業(yè)人員來說無疑是最寶貴的材料?! 芸缮?對外經(jīng)濟貿(mào)易大學信息學院在讀碩士研究生 研究方向:管理信息系統(tǒng)與電子商務 作者對于測試項目從啟動、計劃、驗證、設(shè)計、工具和腳本開發(fā)等多個角度由淺入深的介紹,非常有利于初學者對于測試流程的理解?! 茌x 某公司軟件測試工程師 計算機信息管理專業(yè)
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載