《軟件測試軟件測試的基礎知識》由會員分享,可在線閱讀,更多相關《軟件測試軟件測試的基礎知識(43頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級
2、,第四級,第五級,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣
3、式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,*,*,軟件測試,第,1,講 軟件測試基礎,1,機遇和挑戰(zhàn)并存,2,Test Engineer,QA/Supervisor,Project/Quality Manager,Senior Engineer,軟件行業(yè)是朝陽行業(yè),軟件測試是軟件行業(yè)的朝陽行業(yè)。,軟件行業(yè)由賣方市場轉(zhuǎn)入買方市場,激烈的競爭要求軟件的產(chǎn)品質(zhì)量越來越高。,歐美國家的軟件項目,軟件測試的工作量占項目總工作量,40%,,軟件測試的經(jīng)費占項目總經(jīng)費,30%,。,測試人員和開發(fā)人
4、員的比例 國外:,1,:,1-2,:,1,,國內(nèi),1,:,51,:,3,,當前國內(nèi)高素質(zhì)軟件測試人員的市場需求大約,50,萬人左右。,主要內(nèi)容,第,1,部分 軟件測試概述(,What,),第,2,部分 軟件測試基礎,(,概念、原理、方法、步驟、工具),(How),第,3,部分 軟件測試實踐,(Application),3,網(wǎng)絡資源,UML,軟件工程組織 (技術文章),51Testing,軟件測試(注冊下載需技術分),中國軟件測評中心,中國測試員網(wǎng)站,中國軟件測試在線,4,教材,參考書目:,軟件測試方法和技術,(,第,2版),,朱少民,清華大學出版社,,2010,軟件測試大學教程,,蔡建平,,清
5、華大學出版社,,2009,軟件測試,,Ron Patton,著,張小松等譯,機械工業(yè)出版社,,2006,5,第,1講,軟件測試基礎,為什么要進行軟件測試?,什么是軟件測試?,軟件測試的分類,測試階段,軟件測試的工作范疇,SQA,與軟件測試的關系,6,7,為什么要進行軟件測試?,軟件缺陷與軟件故障案例,迪斯尼并不總是帶來笑聲,英特爾奔騰浮點除法缺陷,火星探測飛船墜毀,愛國者導彈防御系統(tǒng),2008,北京奧運會售票系統(tǒng),8,迪斯尼并不總是帶來笑聲,1994,年圣誕節(jié)前夕,迪斯尼公司發(fā)布了第一個面向兒童的多媒體光盤游戲“獅子王童話”,圣誕節(jié)后的第一天,迪斯尼客戶支持部電話開始響個不停,不斷有人咨詢、抱
6、怨為什么游戲總是安裝不成功,或沒法正常使用,這個游戲軟件只能在少數(shù)系統(tǒng)中正常運行,9,兼容性問題,英特爾奔騰浮點除法缺陷,如果答案不為,0,,說明計算機使用的是帶有浮點除法軟件缺陷的老式英特爾奔騰處理器。,1994,年,10,月,30,日,弗吉尼亞州的,Thomas R.Nicely,博士在用奔騰,PC,進行計算問題時得出了一個錯誤的結論,因此發(fā)現(xiàn)了這個問題,后來在互聯(lián)網(wǎng)上引起一場風暴。,他們的軟件測試工程師在芯片發(fā)布之前進行內(nèi)部測試時已經(jīng)發(fā)現(xiàn)了這個問題,英特爾的管理層認為這沒有嚴重到保證要修正,甚至公開的程度。,當軟件缺陷被發(fā)現(xiàn)時,英特爾試圖低調(diào)解決問題,但為時已晚,最終拿出,4,億多美元來
7、支付所有維護費用,10,(,4195835,3145727,),3145727-4195835=,?,火星探測飛船墜毀,機械震動在大多數(shù)情況下也會觸發(fā)著地開關,設置錯誤的數(shù)據(jù)位。設想飛船開始著陸時,計算機極有可能關閉推進器,而火星登陸飛船下墜,1800,米之后沒有反推進器的幫助,沖向地面,必然會撞成碎片,兩個小組,本身的工作都沒什么問題,就是沒有合在一起測試,其接口沒有被測,而問題就在這里,11,系統(tǒng)測試,銜接問題,愛國者導彈防御系統(tǒng),當愛國者導彈防御系統(tǒng)的時鐘累計運行超過,14,小時后,系統(tǒng)的跟蹤系統(tǒng)就不準確,。從而導致,攔截伊拉克飛毛腿導彈,的幾次失敗,,其中一枚在沙特阿拉伯的多哈爆炸的飛
8、毛腿導彈造成,28,名美國士兵死亡,12,系統(tǒng)時鐘誤差積累,2008,北京奧運會售票系統(tǒng),2007,年,10,月,30,日上午,11,時,,2008,北京奧運會售票系統(tǒng)軟件癱瘓。北京奧運會的指定獨家票務供應商,-,北京歌華特瑪捷票務有限公司成立于,2006,年,9,月,由美國特瑪捷公司、中體產(chǎn)業(yè)股份有限公司及北京歌華文化發(fā)展集團三家出資構建而成。售票系統(tǒng)癱瘓事件發(fā)生后,公眾普遍質(zhì)疑歌華特瑪捷公司是否具備承擔,2008,北京奧運會的票務銷售能力。,用戶常常在軟件開發(fā)初期就發(fā)現(xiàn)軟件可能跟他們的需求有不一致的地方。在開發(fā)軟件之前,需要進行必要的需求分析。開發(fā)完成之后,也要進行必要的測試工作。雖然這些
9、軟件故障的后果程度不一,但可以肯定的是,通過嚴格的軟件測試可以極大地降低故障及因此而引發(fā)的種種惡果。,13,14,為什么要進行軟件測試?,軟件總存在缺陷,。只有通過測試,才可以發(fā)現(xiàn)軟件缺陷。也只有發(fā)現(xiàn)了缺陷,才可以將軟件缺陷從軟件產(chǎn)品或軟件系統(tǒng)中清理出去。,軟件失敗時,也許僅僅給我們帶來了不便,也可能是災難性的。我們需要,軟件測試,,來保障軟件質(zhì)量。,15,什么是軟件測試?,軟件測試學科的形成,正反兩方面的爭辯,軟件測試的定義,軟件測試的其它觀點,16,軟件測試學科的發(fā)展,從測試的思想導向來劃分為,4,個階段,:,1957,1978,年,以功能驗證為導向,測試是證明軟件是正確的(正向思維)。,
10、1978,1983,年,以破壞性為為導向,測試是為了找到軟件中的錯誤(逆向思維)。,1983,1987,年,以質(zhì)量評估為導向,測試是提供產(chǎn)品的評估和質(zhì)量度量。,1988,年起,以缺陷預防為導向,測試是為了展示軟件符合設計要求,發(fā)現(xiàn)缺陷、預防缺陷。,17,更好的階段劃分,分為,3,個階段,初期階段、發(fā)展階段和成熟階段,初級階段,(,1957,1971,)測試通常被認為是對產(chǎn)品進行事后檢驗,缺乏有效的測試方法,發(fā)展階段,(,1972,1982,),,1972,年第一次關于軟件測試的正式會議,促進了軟件測試的發(fā)展,成熟階段,(,1983,到現(xiàn)在),國際標準,Std 829-1983,,形成一門獨立的
11、學科和專業(yè),成為軟件工程學科中的一個重要組成部分,18,軟件測試的正面性,Bill Hetzel,博士(正向思維的代表):,軟件測試就是為程序能夠按預期設想那樣運行而建立足夠的信心,。,“,軟件測試是一系列活動以評價一個程序或系統(tǒng)的特性或能力并確定是否達到預期的結果,”,測試是為了驗證軟件是否符合用戶需求,即驗證軟件產(chǎn)品是否能正常工作,19,軟件測試的反面性,Glenford J.Myers,(反向思維的代表):,測試是為了證明程序有錯,而不是證明程序無錯誤,一個好的測試用例是在于它能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤,一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試,20,軟件測試定義的兩面性,21,評價一個
12、程序或系統(tǒng)的特性或能力并確定是否達到預期的結果,測試是為發(fā)現(xiàn)錯誤而針對某個程序或系統(tǒng)的執(zhí)行過程,軟件測試,正向思維,驗證軟件正常工作,逆向思維,假定軟件有錯誤,在設計規(guī)定的環(huán)境下運行軟件的所有功能,直至全部通過,。,尋找容易犯錯誤的地方和系統(tǒng)的薄弱環(huán)節(jié),試圖破壞系統(tǒng),直至找不出問題。,軟件測試是什么?,測試,=“,測”,+“,試”,什么是“測”?,Measure,、測量,知道結果的驗證行為,測,什么是“試”?,Try,、試驗,不知道結果的嘗試行為,試,軟件測試,測:驗證軟件功能、性能,試:驗證軟件是否有非功能性的異常,在規(guī)定的條件下對程序進行操作,以發(fā)現(xiàn)程序錯誤,對其是否能滿足設計要求進行評估
13、的過程,Myers,軟件測試的定義,軟件測試是為了發(fā)現(xiàn)軟件缺陷而執(zhí)行程序或系統(tǒng)的過程。,23,Q:,我按照用戶的需求測試了實際的系統(tǒng),卻一個缺陷也沒有發(fā)現(xiàn),我所做的測試工作有意義嗎?,1979,年,Glenford J.Myers,在,軟件測試藝術,(,The art of software testing,)書中給出的定義:,傳統(tǒng)意義上的測試定義,是狹義的。,A:,當然有意義,因為我至少證明了該系統(tǒng)基本符 合用戶的需求。,IEEE,軟件測試的定義,1983,年,IEEE,的定義,:,使用人工或自動手段運行或測定某個系統(tǒng)的過程,其目的在于,檢驗它是否滿足規(guī)定的需求,或是弄清預期結果與實際結果之
14、間的差別。,24,明確提出軟件測試以檢驗是否滿足需求為目標。,軟件測試的定義,軟件測試,也可以定義為是“驗證(,Verification,)”和“有效性確認(,Validation,)”活動構成的整體。,驗證,:是檢驗軟件是否已正確地實現(xiàn)了產(chǎn)品規(guī)格書所定義的系統(tǒng)功能和特性,有效性確認,:是確認所開發(fā)的軟件是否滿足用戶真正需求的活動,25,驗證:“我們是否正確地完成了產(chǎn)品?”,確認:“我們是否完成了正確的產(chǎn)品?”,-,Boehm,軟件測試的其它觀點,軟件測試被認為是對軟件系統(tǒng)中潛在的各種風險進行評估的活動,。,基于風險,的軟件測試可以被看作是一個動態(tài)的監(jiān)控過程,對軟件開發(fā)全過程進行檢測,隨時發(fā)現(xiàn)
15、問題、報告問題,測試的,經(jīng)濟觀點,就是以最小的代價獲得最高的軟件產(chǎn)品質(zhì)量,。,經(jīng)濟觀點也要求軟件測試盡早開展工作,發(fā)現(xiàn)缺陷越早,返工的工作量就越小,所造成的損失就越小。,26,問題討論,玩電腦游戲是不是軟件測試?,玩手機是不是軟件測試?,用戶使用軟件是不是軟件測試?,27,軟件測試的分類,方法,目標,/,特性,單元測試,系統(tǒng)測試,驗收測試,性能測試,強壯性測試,功能測試,白盒測試,黑盒測試,測試階段或?qū)哟?適用性測試,可靠性測試,集成測試,安全性測試,軟件測試的分類,按測試的對象或范圍分類,,如單元測試、文檔測試、系統(tǒng)測試等,按測試目的分類,,如功能測試、回歸測試、性能測試、可靠性測試、安全性
16、測試和兼容性測試等,根據(jù)測試過程中被測軟件是否被執(zhí)行,,分為靜態(tài)測試和動態(tài)測試,根據(jù)是否針對系統(tǒng)的內(nèi)部結構和具體實現(xiàn)算法來完成測試,,可分為白盒測試和黑盒測試,按測試方法分類,數(shù)據(jù)庫測試、壓力測試、恢復測試、安全測試、兼容性測試等,注意:,不要在術語上糾纏,因為不同的測試小組可能使用不同的術語。理解其含義及其在小組中的應用是軟件測試人員的職責。,Ron Patton,軟件測試,軟件測試的各個階段,開發(fā)生命周期,.,維護,需求定義,應用定義,應用開發(fā),修訂,建立,建立,測試生命周期,.,執(zhí)行,.,執(zhí)行,執(zhí)行,.,測試計劃,缺陷跟蹤,測試開發(fā),測試設計,評估,好處:可以找到軟件的,Bug,,提高軟件可靠性!,不好:這些,Bug,可能讓開發(fā)人員瘋掉!可能項目延期!,軟件測試是“不得不做”!,軟件測試階段,階 段,輸 入,輸 出,需求分析,需求定義,市場分析文檔,相關技術文檔,市場需求分析會議記要,功能設計,技術設計,設計審查,市場需求文檔,技術設計文檔,測試計劃,測試用例,功能驗證,代碼完成文件包,功能詳細設計說明書,最終技術文檔,完整測試用例,完備的測試計劃,缺陷報告,功能驗證測試報告,系