第1章 軟件測試概述._第1頁
第1章 軟件測試概述._第2頁
第1章 軟件測試概述._第3頁
第1章 軟件測試概述._第4頁
第1章 軟件測試概述._第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1第1章 軟件測試概述1.1 軟件測試的背景軟件測試的背景 1.2 軟件缺陷軟件缺陷 1.3 軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析 1.4 軟件測試的認(rèn)識(shí)軟件測試的認(rèn)識(shí) 1.5 軟件測試人員的素質(zhì)軟件測試人員的素質(zhì) 2本課教學(xué)目標(biāo)n了解軟件測試的背景n正確理解軟件缺陷的概念n了解軟件測試的發(fā)展歷程及國內(nèi)外現(xiàn)狀n了解軟件測試的發(fā)展趨勢3引子:獵人打鳥討論討論 來回答一個(gè)問題:如果樹上有來回答一個(gè)問題:如果樹上有10只只鳥,開槍打死鳥,開槍打死1只,還剩幾只?只,還剩幾只?41.1 軟件測試的背景 1.1.1 軟件測試發(fā)展歷史 1.1.2 軟件測試的現(xiàn)狀 51.1 軟件測試的背

2、景 隨著軟件產(chǎn)業(yè)的日益發(fā)展,軟件系統(tǒng)的規(guī)模和復(fù)隨著軟件產(chǎn)業(yè)的日益發(fā)展,軟件系統(tǒng)的規(guī)模和復(fù)雜性與日俱增,軟件的生產(chǎn)成本和軟件中存在的缺陷雜性與日俱增,軟件的生產(chǎn)成本和軟件中存在的缺陷故障造成的損失也大大增加,甚至?xí)頌?zāi)難性的后故障造成的損失也大大增加,甚至?xí)頌?zāi)難性的后果。軟件產(chǎn)品不同于其他科技和生產(chǎn)領(lǐng)域,它是人腦果。軟件產(chǎn)品不同于其他科技和生產(chǎn)領(lǐng)域,它是人腦的高度智力化的體現(xiàn),由于這一特殊性,軟件與生俱的高度智力化的體現(xiàn),由于這一特殊性,軟件與生俱來就有可能存在著缺陷。來就有可能存在著缺陷。 在開發(fā)大型軟件系統(tǒng)的漫長過程中,面對紛繁復(fù)在開發(fā)大型軟件系統(tǒng)的漫長過程中,面對紛繁復(fù)雜的各種現(xiàn)實(shí)情

3、況,人的主觀認(rèn)識(shí)和客觀現(xiàn)實(shí)之間往雜的各種現(xiàn)實(shí)情況,人的主觀認(rèn)識(shí)和客觀現(xiàn)實(shí)之間往往存在著差距,開發(fā)過程中各類人員之間的交流和配往存在著差距,開發(fā)過程中各類人員之間的交流和配合也往往并不是盡善盡美的。合也往往并不是盡善盡美的。 61.1 軟件測試的背景 如何防止和減少這些可能存在的問題呢?答案是進(jìn)行如何防止和減少這些可能存在的問題呢?答案是進(jìn)行軟件軟件測試測試。測試是最有效的排除和防止軟件缺陷與故障的手段,并。測試是最有效的排除和防止軟件缺陷與故障的手段,并由此促進(jìn)了軟件測試?yán)碚撆c技術(shù)實(shí)踐的快速發(fā)展。新的測試?yán)碛纱舜龠M(jìn)了軟件測試?yán)碚撆c技術(shù)實(shí)踐的快速發(fā)展。新的測試?yán)碚?、測試方法、測試技術(shù)手段在不斷涌

4、出,軟件測試機(jī)構(gòu)和組論、測試方法、測試技術(shù)手段在不斷涌出,軟件測試機(jī)構(gòu)和組織也在迅速產(chǎn)生和發(fā)展,由此軟件測試技術(shù)職業(yè)也同步完善和織也在迅速產(chǎn)生和發(fā)展,由此軟件測試技術(shù)職業(yè)也同步完善和健全起來。健全起來。71.1.1 軟件測試發(fā)展歷史 早期“調(diào)試”1957年20世紀(jì)70年代20世紀(jì)80年代早期20世紀(jì)90年代2002年為了確信自己的產(chǎn)品Glenford Myers 軟件測試藝術(shù) 軟件質(zhì)量、Bill Hetzel 軟件測試完全指南 測試工具盛行 Rick D. Craig & Stefan P. Jaskiel 系統(tǒng)的軟件測試 “測試是為發(fā)現(xiàn)錯(cuò)誤而執(zhí)行一個(gè)程序或系統(tǒng)的過程測試是為發(fā)現(xiàn)錯(cuò)誤而

5、執(zhí)行一個(gè)程序或系統(tǒng)的過程”“測試是以評(píng)價(jià)一個(gè)程序或者系統(tǒng)屬性為目標(biāo)的任何測試是以評(píng)價(jià)一個(gè)程序或者系統(tǒng)屬性為目標(biāo)的任何一種活動(dòng)。測試是對軟件質(zhì)量的度量一種活動(dòng)。測試是對軟件質(zhì)量的度量”“測試是為了度量和提高被測軟件的質(zhì)量,對測試件測試是為了度量和提高被測軟件的質(zhì)量,對測試件進(jìn)行工程設(shè)計(jì)、實(shí)施和維護(hù)的整個(gè)生命周期過程進(jìn)行工程設(shè)計(jì)、實(shí)施和維護(hù)的整個(gè)生命周期過程”8軟件測試過程模型軟件測試過程模型V模型模型91.1.2 軟件測試的現(xiàn)狀 在我國,軟件測試目前還沒有形成一個(gè)真正的產(chǎn)業(yè),尚處在我國,軟件測試目前還沒有形成一個(gè)真正的產(chǎn)業(yè),尚處于起步階段,根據(jù)于起步階段,根據(jù)51testing組織得到的組織得到

6、的2009年中國軟件測年中國軟件測試從業(yè)人員調(diào)查報(bào)告試從業(yè)人員調(diào)查報(bào)告可以看出:軟件測試從業(yè)人員所在公司可以看出:軟件測試從業(yè)人員所在公司成立的時(shí)間在成立的時(shí)間在5年以上的比例為年以上的比例為58,集中分布在應(yīng)用軟件行,集中分布在應(yīng)用軟件行業(yè)、電信業(yè)、電信/互聯(lián)網(wǎng)服務(wù)行業(yè),公司多為私營或集體所有制企業(yè),互聯(lián)網(wǎng)服務(wù)行業(yè),公司多為私營或集體所有制企業(yè),且比例逐年增加。調(diào)查顯示雖然國內(nèi)且比例逐年增加。調(diào)查顯示雖然國內(nèi)IT軟件開發(fā)企業(yè)對軟件測軟件開發(fā)企業(yè)對軟件測試認(rèn)識(shí)比較淡薄,公司測試人員與開發(fā)人員的比例主要分布在試認(rèn)識(shí)比較淡薄,公司測試人員與開發(fā)人員的比例主要分布在1:31:4之間,較國外之間,較國

7、外1: 1比例相距甚遠(yuǎn),但是國內(nèi)比例相距甚遠(yuǎn),但是國內(nèi)IT企業(yè)也企業(yè)也逐步開始重視軟件測試團(tuán)隊(duì)的建設(shè),在逐步開始重視軟件測試團(tuán)隊(duì)的建設(shè),在IT企業(yè)中,一些知名企企業(yè)中,一些知名企業(yè)已經(jīng)將軟件測試作為企業(yè)未來發(fā)展的一個(gè)板塊,參與業(yè)已經(jīng)將軟件測試作為企業(yè)未來發(fā)展的一個(gè)板塊,參與2009年調(diào)查的軟件測試從業(yè)人員中,年調(diào)查的軟件測試從業(yè)人員中,73的人所在公司具有獨(dú)立的的人所在公司具有獨(dú)立的測試部門,專職測試人員也呈逐年上升趨勢。測試部門,專職測試人員也呈逐年上升趨勢。101.1.2 軟件測試的現(xiàn)狀 總之,國內(nèi)軟件行業(yè)普遍規(guī)模偏小,缺乏大型軟件總之,國內(nèi)軟件行業(yè)普遍規(guī)模偏小,缺乏大型軟件產(chǎn)品經(jīng)驗(yàn),開發(fā)

8、過程不夠規(guī)范,這決定了國內(nèi)軟件測產(chǎn)品經(jīng)驗(yàn),開發(fā)過程不夠規(guī)范,這決定了國內(nèi)軟件測試行業(yè)與一些發(fā)達(dá)國家相比還存在一定的差距。其實(shí),試行業(yè)與一些發(fā)達(dá)國家相比還存在一定的差距。其實(shí),這與中國整體軟件的發(fā)展水平是一致的,因?yàn)槲覈@與中國整體軟件的發(fā)展水平是一致的,因?yàn)槲覈w的軟件產(chǎn)業(yè)水平和軟件發(fā)達(dá)國家的水平相比有較大體的軟件產(chǎn)業(yè)水平和軟件發(fā)達(dá)國家的水平相比有較大的差距,而作為軟件產(chǎn)業(yè)重要一環(huán)的軟件測試,必然的差距,而作為軟件產(chǎn)業(yè)重要一環(huán)的軟件測試,必然也存在著不小的差距。但是,我們在軟件測試實(shí)現(xiàn)方也存在著不小的差距。但是,我們在軟件測試實(shí)現(xiàn)方面并不比國外差,國際上優(yōu)秀的測試工具,我們基本面并不比國外

9、差,國際上優(yōu)秀的測試工具,我們基本都有,這些工具所體現(xiàn)的思想我們也有深刻的理解,都有,這些工具所體現(xiàn)的思想我們也有深刻的理解,很多大型系統(tǒng)在國內(nèi)都得到了很好的測試。很多大型系統(tǒng)在國內(nèi)都得到了很好的測試。 111.2 軟件缺陷 1.2.1 軟件缺陷案例分析軟件缺陷案例分析 1.2.2 軟件缺陷的定義軟件缺陷的定義 1.2.3 軟件缺陷產(chǎn)生的原因軟件缺陷產(chǎn)生的原因 1.2.4 軟件缺陷的修復(fù)費(fèi)用軟件缺陷的修復(fù)費(fèi)用 12nBUG的由來n第一個(gè)BUG(1945年9月9日)n“測” “試”(拉丁語TESTUM)131.2.1 軟件缺陷案例分析 軟件是由人編寫開發(fā)的,是一種邏輯思維的產(chǎn)品,軟件是由人編寫開

10、發(fā)的,是一種邏輯思維的產(chǎn)品,盡管現(xiàn)在軟件開發(fā)者采取了一系列有效措施,不斷地盡管現(xiàn)在軟件開發(fā)者采取了一系列有效措施,不斷地提高軟件開發(fā)質(zhì)量,但仍然無法完全避免軟件(產(chǎn)品)提高軟件開發(fā)質(zhì)量,但仍然無法完全避免軟件(產(chǎn)品)會(huì)存在各種各樣的缺陷。軟件中存在的缺陷有時(shí)會(huì)造會(huì)存在各種各樣的缺陷。軟件中存在的缺陷有時(shí)會(huì)造成相當(dāng)嚴(yán)重的損失和災(zāi)難。成相當(dāng)嚴(yán)重的損失和災(zāi)難。 下面以下面以4個(gè)軟件缺陷的案例來說明。個(gè)軟件缺陷的案例來說明。 14 - - 美迪斯尼公司的獅子王游戲軟件美迪斯尼公司的獅子王游戲軟件bug bug - - 美航天局火星登陸探測器缺陷美航天局火星登陸探測器缺陷 - - 北京奧運(yùn)會(huì)門票暫停第二

11、階段的門票銷售。北京奧運(yùn)會(huì)門票暫停第二階段的門票銷售。 - - 諾基亞諾基亞Series40Series40手機(jī)平臺(tái)存在缺陷手機(jī)平臺(tái)存在缺陷 - - 金山詞霸bug上述所有實(shí)例中的軟件問題在軟件工程或軟件測試中都被上述所有實(shí)例中的軟件問題在軟件工程或軟件測試中都被稱為稱為軟件缺陷軟件缺陷。兼容性兼容性銜接性銜接性訪問量大訪問量大漏洞漏洞1.2.1 軟件缺陷案例分析 15161.2.2 軟件缺陷的定義 對于軟件存在的各種問題在軟件工程或軟件測試中都可以對于軟件存在的各種問題在軟件工程或軟件測試中都可以稱為軟件缺陷或軟件故障。稱為軟件缺陷或軟件故障。 軟件缺陷即計(jì)算機(jī)系統(tǒng)或者程序中存在的任何一種破

12、壞正軟件缺陷即計(jì)算機(jī)系統(tǒng)或者程序中存在的任何一種破壞正常運(yùn)行能力的問題、錯(cuò)誤,或者隱藏的功能缺陷、瑕疵。缺陷常運(yùn)行能力的問題、錯(cuò)誤,或者隱藏的功能缺陷、瑕疵。缺陷會(huì)導(dǎo)致軟件產(chǎn)品在某種程度上不能滿足用戶的需要。對于軟件會(huì)導(dǎo)致軟件產(chǎn)品在某種程度上不能滿足用戶的需要。對于軟件缺陷的精確定義,通常有以下缺陷的精確定義,通常有以下5條描述:條描述:171.2.2 軟件缺陷的定義 (1)軟件)軟件未達(dá)到未達(dá)到產(chǎn)品說明書中已經(jīng)標(biāo)明的功能;(缺少)產(chǎn)品說明書中已經(jīng)標(biāo)明的功能;(缺少) (2)軟件)軟件未達(dá)到未達(dá)到產(chǎn)品說明書中雖未指出但應(yīng)當(dāng)達(dá)到的目標(biāo);產(chǎn)品說明書中雖未指出但應(yīng)當(dāng)達(dá)到的目標(biāo);(缺少)(缺少) (3

13、)軟件出現(xiàn)了產(chǎn)品說明書中)軟件出現(xiàn)了產(chǎn)品說明書中指明不會(huì)指明不會(huì)出現(xiàn)的錯(cuò)誤;(多余)出現(xiàn)的錯(cuò)誤;(多余) (4)軟件功能)軟件功能超出了超出了產(chǎn)品說明書中指明的范圍;(多余)產(chǎn)品說明書中指明的范圍;(多余) (5)軟件測試人員認(rèn)為軟件測試人員認(rèn)為軟件難以理解、不易使用,或者軟件難以理解、不易使用,或者最終用最終用戶認(rèn)為戶認(rèn)為該軟件使用效果不良。該軟件使用效果不良。181.2.2 軟件缺陷的定義 缺陷辨析缺陷辨析1:計(jì)算器說明書一般聲稱該計(jì)算器將準(zhǔn)確無誤地進(jìn)行加、減、乘、除運(yùn)算。 如果測試人員或用戶選定了兩個(gè)數(shù)值后,隨意按下了“+”號(hào)鍵,結(jié)果沒有任何反應(yīng)。(LG:BUG1)缺陷辨析缺陷辨析2:

14、若在進(jìn)行測試時(shí),發(fā)現(xiàn)除了規(guī)定的加、減、乘、除功能之外,還能夠進(jìn)行求平方根的運(yùn)算,而這一功能并沒有在說明書的功能中規(guī)定。(LG:BUG4)缺陷辨析缺陷辨析3:若在測試過程中發(fā)現(xiàn),因?yàn)殡姵貨]電而導(dǎo)致了計(jì)算不正確,但產(chǎn)品說明書未能指出在此情況下應(yīng)如何進(jìn)行處理。(LG:BUG2)缺陷辨析缺陷辨析4:假如計(jì)算器說明書指明計(jì)算器不會(huì)出現(xiàn)崩潰、死鎖或者停止反應(yīng),而在用戶隨意按、敲鍵盤后,計(jì)算器停止接受輸入或沒有了反應(yīng)。(LG:BUG3)缺陷辨析缺陷辨析5:測試人員或最終用戶發(fā)現(xiàn)計(jì)算器某些地方不好用,比如,按鍵太小、顯示屏在亮光下無法看清等。(LG:BUG5)19軟件缺陷特征 “看不到看不到” 軟件的特殊性決

15、定了缺陷不易看到軟件的特殊性決定了缺陷不易看到 “看到但是抓不到看到但是抓不到” 發(fā)現(xiàn)了缺陷,但不易找到問題發(fā)生的原因所在發(fā)現(xiàn)了缺陷,但不易找到問題發(fā)生的原因所在201. 軟件本身軟件本身l 文檔錯(cuò)誤、內(nèi)容不正確或拼寫錯(cuò)誤。文檔錯(cuò)誤、內(nèi)容不正確或拼寫錯(cuò)誤。l 數(shù)據(jù)考慮不周全引起強(qiáng)度或負(fù)載問題。數(shù)據(jù)考慮不周全引起強(qiáng)度或負(fù)載問題。l 對邊界考慮不夠周全,漏掉某幾個(gè)邊界條件造成的錯(cuò)對邊界考慮不夠周全,漏掉某幾個(gè)邊界條件造成的錯(cuò)誤。誤。l 對一些實(shí)時(shí)應(yīng)用系統(tǒng),保證精確的時(shí)間同步,否則容對一些實(shí)時(shí)應(yīng)用系統(tǒng),保證精確的時(shí)間同步,否則容易引起時(shí)間上不協(xié)調(diào)、不一致性帶來的問題。易引起時(shí)間上不協(xié)調(diào)、不一致性帶來

16、的問題。l 沒有考慮系統(tǒng)崩潰后在系統(tǒng)安全性、可靠性的隱患。沒有考慮系統(tǒng)崩潰后在系統(tǒng)安全性、可靠性的隱患。l 硬件或系統(tǒng)軟件上存在的錯(cuò)誤。硬件或系統(tǒng)軟件上存在的錯(cuò)誤。l 軟件開發(fā)標(biāo)準(zhǔn)或過程上的錯(cuò)誤。軟件開發(fā)標(biāo)準(zhǔn)或過程上的錯(cuò)誤。 1.2.3 軟件缺陷產(chǎn)生的原因 211.2.3 軟件缺陷產(chǎn)生的原因 2. 團(tuán)隊(duì)工作團(tuán)隊(duì)工作 l系統(tǒng)分析時(shí)對客戶的需求不是十分清楚,或者和用戶的溝通系統(tǒng)分析時(shí)對客戶的需求不是十分清楚,或者和用戶的溝通存在一些困難。存在一些困難。l不同階段的開發(fā)人員相互理解不一致,軟件設(shè)計(jì)對需求分析不同階段的開發(fā)人員相互理解不一致,軟件設(shè)計(jì)對需求分析結(jié)果的理解偏差,編程人員對系統(tǒng)設(shè)計(jì)規(guī)格說明

17、書中某些內(nèi)容結(jié)果的理解偏差,編程人員對系統(tǒng)設(shè)計(jì)規(guī)格說明書中某些內(nèi)容重視不夠,或存在著誤解。重視不夠,或存在著誤解。l設(shè)計(jì)或編程上的一些假定或依賴性,沒有得到充分地溝通。設(shè)計(jì)或編程上的一些假定或依賴性,沒有得到充分地溝通。221.2.3 軟件缺陷產(chǎn)生的原因 3. 技術(shù)問題技術(shù)問題l算法錯(cuò)誤。算法錯(cuò)誤。l語法錯(cuò)誤。語法錯(cuò)誤。l計(jì)算的精度問題。計(jì)算的精度問題。l系統(tǒng)結(jié)構(gòu)不合理,造成系統(tǒng)性能問題。系統(tǒng)結(jié)構(gòu)不合理,造成系統(tǒng)性能問題。l接口參數(shù)不匹配,導(dǎo)致模塊集成出現(xiàn)問題。接口參數(shù)不匹配,導(dǎo)致模塊集成出現(xiàn)問題。231.2.3 軟件缺陷產(chǎn)生的原因 軟件缺陷是由很多原因造成的,將諸多原因如規(guī)格說明書、軟件缺陷

18、是由很多原因造成的,將諸多原因如規(guī)格說明書、系統(tǒng)設(shè)計(jì)結(jié)果、編程的代碼等歸類起來比較后發(fā)現(xiàn),規(guī)格說明系統(tǒng)設(shè)計(jì)結(jié)果、編程的代碼等歸類起來比較后發(fā)現(xiàn),規(guī)格說明書是軟件缺陷出現(xiàn)最多的地方,如下圖所示。書是軟件缺陷出現(xiàn)最多的地方,如下圖所示。 241.2.3 軟件缺陷產(chǎn)生的原因 軟件產(chǎn)品規(guī)格說明書為什么是軟件缺陷存在最多的地方,軟件產(chǎn)品規(guī)格說明書為什么是軟件缺陷存在最多的地方,主要原因有以下幾種:主要原因有以下幾種:l由于軟件產(chǎn)品還沒有設(shè)計(jì)、開發(fā),完全靠想象去描述系統(tǒng)的由于軟件產(chǎn)品還沒有設(shè)計(jì)、開發(fā),完全靠想象去描述系統(tǒng)的實(shí)現(xiàn)結(jié)果,所以有些特性還不夠清晰。實(shí)現(xiàn)結(jié)果,所以有些特性還不夠清晰。 l用戶一般是非

19、計(jì)算機(jī)專業(yè)人員,軟件開發(fā)人員和用戶的溝通用戶一般是非計(jì)算機(jī)專業(yè)人員,軟件開發(fā)人員和用戶的溝通存在較大困難,對要開發(fā)的產(chǎn)品功能理解不一致。存在較大困難,對要開發(fā)的產(chǎn)品功能理解不一致。l需求變化的不一致性。用戶的需求總是在不斷變化的,這些需求變化的不一致性。用戶的需求總是在不斷變化的,這些變化如果沒有在產(chǎn)品規(guī)格說明書中得到正確的描述,容易引起變化如果沒有在產(chǎn)品規(guī)格說明書中得到正確的描述,容易引起前后文、上下文的矛盾。前后文、上下文的矛盾。l對規(guī)格說明書不夠重視,在規(guī)格說明書的設(shè)計(jì)和寫作上投入對規(guī)格說明書不夠重視,在規(guī)格說明書的設(shè)計(jì)和寫作上投入的人力、時(shí)間不足。的人力、時(shí)間不足。l沒有在整個(gè)開發(fā)隊(duì)伍

20、中進(jìn)行充分溝通,有時(shí)只有設(shè)計(jì)師或項(xiàng)沒有在整個(gè)開發(fā)隊(duì)伍中進(jìn)行充分溝通,有時(shí)只有設(shè)計(jì)師或項(xiàng)目經(jīng)理得到比較多的信息。目經(jīng)理得到比較多的信息。 251.2.4 軟件缺陷的修復(fù)費(fèi)用 軟件通常要靠有計(jì)劃、有條理的開發(fā)過程來實(shí)現(xiàn)。從開始軟件通常要靠有計(jì)劃、有條理的開發(fā)過程來實(shí)現(xiàn)。從開始到計(jì)劃、編程、測試,到公開使用的過程中,都有可能發(fā)現(xiàn)軟到計(jì)劃、編程、測試,到公開使用的過程中,都有可能發(fā)現(xiàn)軟件缺陷。軟件缺陷造成的修復(fù)費(fèi)用隨著時(shí)間的推移呈指數(shù)級(jí)地件缺陷。軟件缺陷造成的修復(fù)費(fèi)用隨著時(shí)間的推移呈指數(shù)級(jí)地增長。當(dāng)早期編寫產(chǎn)品說明書時(shí)發(fā)現(xiàn)并修復(fù)缺陷,費(fèi)用可能只增長。當(dāng)早期編寫產(chǎn)品說明書時(shí)發(fā)現(xiàn)并修復(fù)缺陷,費(fèi)用可能只要要

21、10美元甚至更少。同樣的缺陷如果直到軟件編寫完成開始測美元甚至更少。同樣的缺陷如果直到軟件編寫完成開始測試時(shí)才發(fā)現(xiàn),費(fèi)用可能要試時(shí)才發(fā)現(xiàn),費(fèi)用可能要1001000美元。如果是客戶發(fā)現(xiàn)美元。如果是客戶發(fā)現(xiàn)的,費(fèi)用可能達(dá)到數(shù)千甚至數(shù)百萬美元。下圖所示為軟件缺陷的,費(fèi)用可能達(dá)到數(shù)千甚至數(shù)百萬美元。下圖所示為軟件缺陷在不同階段發(fā)現(xiàn)時(shí)錯(cuò)誤修正后的費(fèi)用情況。在不同階段發(fā)現(xiàn)時(shí)錯(cuò)誤修正后的費(fèi)用情況。261.2.4 軟件缺陷的修復(fù)費(fèi)用 27軟件產(chǎn)品開發(fā)完畢,再進(jìn)行測試的觀念是有悖于生命周期理論的。軟件產(chǎn)品質(zhì)量問題越晚發(fā)現(xiàn),修復(fù)的代價(jià)越大。$1$10$100$1000+specification designco

22、derelease281.3 軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析 1.3.1 軟件測試的復(fù)雜性軟件測試的復(fù)雜性 1.3.2 軟件測試的經(jīng)濟(jì)性軟件測試的經(jīng)濟(jì)性 1.3.3 軟件測試的充分性準(zhǔn)則軟件測試的充分性準(zhǔn)則 291.3 軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析 人們通常認(rèn)為軟件工程中程序的開發(fā)是一個(gè)復(fù)雜人們通常認(rèn)為軟件工程中程序的開發(fā)是一個(gè)復(fù)雜而困難的過程,需要投入大量的人力、物力和時(shí)間,而困難的過程,需要投入大量的人力、物力和時(shí)間,而測試程序則比較容易,不需要花費(fèi)太多的精力,并而測試程序則比較容易,不需要花費(fèi)太多的精力,并且通過測試可以找到所有的軟件故障。這其實(shí)是人們且通過測試可以找到所有的軟件故障。這其

23、實(shí)是人們對軟件開發(fā)過程理解上的一個(gè)誤區(qū)。在實(shí)際的軟件開對軟件開發(fā)過程理解上的一個(gè)誤區(qū)。在實(shí)際的軟件開發(fā)過程中,軟件測試作為現(xiàn)代軟件開發(fā)工業(yè)的一個(gè)非發(fā)過程中,軟件測試作為現(xiàn)代軟件開發(fā)工業(yè)的一個(gè)非常重要的組成部分,正扮演著越來越重要的角色。隨常重要的組成部分,正扮演著越來越重要的角色。隨著軟件規(guī)模的不斷擴(kuò)大,如何在有限的條件下對被開著軟件規(guī)模的不斷擴(kuò)大,如何在有限的條件下對被開發(fā)的軟件進(jìn)行有效的測試已經(jīng)成為軟件工程中一個(gè)非發(fā)的軟件進(jìn)行有效的測試已經(jīng)成為軟件工程中一個(gè)非常關(guān)鍵的課題。常關(guān)鍵的課題。 301.3.1 軟件測試的復(fù)雜性 軟件測試是一項(xiàng)細(xì)致并且需要具備高度技巧的工軟件測試是一項(xiàng)細(xì)致并且需要

24、具備高度技巧的工作,稍有不慎就會(huì)顧此失彼,發(fā)生不應(yīng)有的疏漏。針作,稍有不慎就會(huì)顧此失彼,發(fā)生不應(yīng)有的疏漏。針對下面幾個(gè)問題的分析充分說明了軟件測試的復(fù)雜性。對下面幾個(gè)問題的分析充分說明了軟件測試的復(fù)雜性。1. 不可能對程序?qū)崿F(xiàn)完全測試不可能對程序?qū)崿F(xiàn)完全測試 在實(shí)際的軟件測試工作中,完全測試是不現(xiàn)實(shí)的。在實(shí)際的軟件測試工作中,完全測試是不現(xiàn)實(shí)的。所謂完全的測試,就是讓被測程序在一切可能的輸入所謂完全的測試,就是讓被測程序在一切可能的輸入情況下全部執(zhí)行一遍。通常也稱這種測試為情況下全部執(zhí)行一遍。通常也稱這種測試為“窮舉測窮舉測試試”。311.3.1 軟件測試的復(fù)雜性 窮舉測試會(huì)引起以下幾種問題:

25、窮舉測試會(huì)引起以下幾種問題:l測試所需要的輸入量太大;測試所需要的輸入量太大;l測試的輸出結(jié)果太多;測試的輸出結(jié)果太多;l軟件執(zhí)行路徑太多;軟件執(zhí)行路徑太多;l軟件的規(guī)格說明書存在主觀性,沒有一個(gè)客觀的標(biāo)軟件的規(guī)格說明書存在主觀性,沒有一個(gè)客觀的標(biāo)準(zhǔn),從不同的角度來評(píng)判,軟件缺陷的標(biāo)準(zhǔn)是不同的。準(zhǔn),從不同的角度來評(píng)判,軟件缺陷的標(biāo)準(zhǔn)是不同的。321.3.1 軟件測試的復(fù)雜性 加法的測試(窮舉法):加法的測試(窮舉法):輸入合理數(shù)據(jù):1+0=,1+1=,1+2=,計(jì)算器能處理的數(shù)字是 3 2 位 , 所 以 要 一 直 輸 入 到1+9999999999(共32個(gè)9)=。 接下來,繼續(xù)輸入2+0

26、=,2+1=,2 + 2 = , , 直 到 輸 入2+9999999999(共32個(gè)9)=。依 次 類 推 , 加 法 的 輸 入 還 在 繼續(xù)。輸入不合理數(shù)據(jù):1+a,jpkl+o9,jsfw+16,,這樣的測試情況可能出現(xiàn)無窮多個(gè)。 33為什么不可能做窮舉測試M1D1D2D3D4M2M3M4M5M6M7D5=20次循環(huán)次數(shù)01220獨(dú)立路徑數(shù)51+52+53+5211014(1百萬億)每個(gè)測試用例(考慮、執(zhí)行、驗(yàn)證結(jié)果)5分鐘共需測試時(shí)間10億年341.3.1 軟件測試的復(fù)雜性 2. 殺蟲劑現(xiàn)象殺蟲劑現(xiàn)象 軟件中存在的故障現(xiàn)象與發(fā)現(xiàn)的故障數(shù)量成正比。軟件中存在的故障現(xiàn)象與發(fā)現(xiàn)的故障數(shù)量成

27、正比。1990年,年,BorisBeizer在其編著的在其編著的“Software Testing Techniques”(第二版)中提到了(第二版)中提到了“殺蟲劑怪事殺蟲劑怪事”一詞,同一種測試工具或一詞,同一種測試工具或方法用于測試同一類軟件越多,則被測試軟件對測試的免疫力方法用于測試同一類軟件越多,則被測試軟件對測試的免疫力就越強(qiáng)。這與農(nóng)藥殺蟲是一樣的,老用一種農(nóng)藥,則害蟲就有就越強(qiáng)。這與農(nóng)藥殺蟲是一樣的,老用一種農(nóng)藥,則害蟲就有了免疫力,農(nóng)藥就失去了作用。了免疫力,農(nóng)藥就失去了作用。 在現(xiàn)實(shí)當(dāng)中,往往是發(fā)現(xiàn)了一個(gè)故障以后,很可能會(huì)接二在現(xiàn)實(shí)當(dāng)中,往往是發(fā)現(xiàn)了一個(gè)故障以后,很可能會(huì)接二

28、連三地發(fā)現(xiàn)更多的軟件故障。有這樣一個(gè)現(xiàn)象值得我們?nèi)ブ匾暎哼B三地發(fā)現(xiàn)更多的軟件故障。有這樣一個(gè)現(xiàn)象值得我們?nèi)ブ匾暎?7%的軟件故障(是由用戶發(fā)現(xiàn)的)是與系統(tǒng)中的的軟件故障(是由用戶發(fā)現(xiàn)的)是與系統(tǒng)中的4%的程序的程序模塊有關(guān)。因此,經(jīng)測試后的程序中隱藏的故障數(shù)目與該程序模塊有關(guān)。因此,經(jīng)測試后的程序中隱藏的故障數(shù)目與該程序中發(fā)現(xiàn)的故障數(shù)目成正比。中發(fā)現(xiàn)的故障數(shù)目成正比。 351.3.1 軟件測試的復(fù)雜性 產(chǎn)生殺蟲劑現(xiàn)象的可能原因是由于開發(fā)過程中各種各樣的產(chǎn)生殺蟲劑現(xiàn)象的可能原因是由于開發(fā)過程中各種各樣的主客觀因素,再加上不可預(yù)見的突發(fā)性事件,軟件測試員采用主客觀因素,再加上不可預(yù)見的突發(fā)性事件,

29、軟件測試員采用同一種測試方法或者工具不可能檢測出所有的缺陷。為了克服同一種測試方法或者工具不可能檢測出所有的缺陷。為了克服被測試軟件的免疫力,軟件測試員必須不斷編寫新的測試程序,被測試軟件的免疫力,軟件測試員必須不斷編寫新的測試程序,對程序的各個(gè)部分進(jìn)行不斷測試,以避免被測試軟件對單一的對程序的各個(gè)部分進(jìn)行不斷測試,以避免被測試軟件對單一的測試程序具有免疫力而使軟件缺陷不被發(fā)現(xiàn)。測試程序具有免疫力而使軟件缺陷不被發(fā)現(xiàn)。 因此,根據(jù)經(jīng)驗(yàn),我們應(yīng)當(dāng)對故障集中的程序模塊進(jìn)行重因此,根據(jù)經(jīng)驗(yàn),我們應(yīng)當(dāng)對故障集中的程序模塊進(jìn)行重點(diǎn)測試,越是問題多的模塊,越是要花更多的時(shí)間和代價(jià)來測點(diǎn)測試,越是問題多的模

30、塊,越是要花更多的時(shí)間和代價(jià)來測試,以此會(huì)達(dá)到更好的測試效果。試,以此會(huì)達(dá)到更好的測試效果。 36n太少的測試是不負(fù)責(zé)任,過多的測試是一種浪費(fèi)。太少的測試是不負(fù)責(zé)任,過多的測試是一種浪費(fèi)。n100100的測試是不可能的的測試是不可能的軟件缺陷數(shù)量測 試 成本缺陷量測試工作量最優(yōu)測試工作量圖1-3 最優(yōu)測試量1.3.1 軟件測試的復(fù)雜性 3. 軟件測試的代價(jià)371.3.1 軟件測試的復(fù)雜性 4. 不能修復(fù)所有的軟件故障不能修復(fù)所有的軟件故障 在軟件測試中還有一個(gè)嚴(yán)峻的現(xiàn)實(shí):即使花再多在軟件測試中還有一個(gè)嚴(yán)峻的現(xiàn)實(shí):即使花再多的時(shí)間和代價(jià),也不能夠使所有的軟件故障都得到修的時(shí)間和代價(jià),也不能夠使所

31、有的軟件故障都得到修復(fù)。但這并不能說明測試就是失敗的,在實(shí)際操作過復(fù)。但這并不能說明測試就是失敗的,在實(shí)際操作過程中,測試人員要進(jìn)行正確的判斷,合理的取舍,根程中,測試人員要進(jìn)行正確的判斷,合理的取舍,根據(jù)風(fēng)險(xiǎn)分析來決定哪些故障需要修復(fù),哪些故障可以據(jù)風(fēng)險(xiǎn)分析來決定哪些故障需要修復(fù),哪些故障可以不修復(fù),即并不是所有的軟件缺陷都需要被修復(fù)。不修復(fù),即并不是所有的軟件缺陷都需要被修復(fù)。381.3.1 軟件測試的復(fù)雜性 當(dāng)確定是軟件缺陷時(shí),若出現(xiàn)以下情況,軟件缺陷就不能被修復(fù)。l不會(huì)引起大的問題。為了防止整個(gè)系統(tǒng)由于局部修復(fù)而出現(xiàn)某些問題,在特殊情況下,不常出現(xiàn)的小問題可以暫時(shí)忽略。l修復(fù)所冒的風(fēng)險(xiǎn)

32、太大。由于軟件本身各個(gè)模塊之間有著千絲萬縷的聯(lián)系,使得單一修復(fù)某一段代碼可能會(huì)產(chǎn)生更多的大量未知故障,所以在某些情況下不修復(fù)反而是最保險(xiǎn)的做法。l沒有足夠的時(shí)間去修復(fù)。在商業(yè)活動(dòng)中,為了能及時(shí)交付軟件產(chǎn)品,當(dāng)部分軟件缺陷沒有足夠的時(shí)間修復(fù),又不會(huì)對軟件的正常運(yùn)行產(chǎn)生大的影響時(shí),就只能在說明書中列出可能出現(xiàn)的缺陷。l可以不算成故障的缺陷。某些特殊的缺陷有時(shí)從另一個(gè)方面看可以理解成一種新的附加功能,這是大多數(shù)商務(wù)軟件在處理一些特殊缺陷時(shí)采取的做法。 391.3.2 軟件測試的經(jīng)濟(jì)性 測試工作在整個(gè)項(xiàng)目開發(fā)過程中占有重要地位,從軟件工測試工作在整個(gè)項(xiàng)目開發(fā)過程中占有重要地位,從軟件工程的總目標(biāo)出發(fā),

33、測試的經(jīng)濟(jì)性要求充分利用有限的人力和物程的總目標(biāo)出發(fā),測試的經(jīng)濟(jì)性要求充分利用有限的人力和物力資源,高效率、高質(zhì)量地完成測試。在軟件測試過程中,必力資源,高效率、高質(zhì)量地完成測試。在軟件測試過程中,必須考慮它的經(jīng)濟(jì)性,考慮應(yīng)該按照什么樣的原則進(jìn)行測試,以須考慮它的經(jīng)濟(jì)性,考慮應(yīng)該按照什么樣的原則進(jìn)行測試,以實(shí)現(xiàn)測試成本與測試效果的統(tǒng)一。為了降低測試成本,在選擇實(shí)現(xiàn)測試成本與測試效果的統(tǒng)一。為了降低測試成本,在選擇測試用例時(shí)要遵守以下原則:測試用例時(shí)要遵守以下原則: l被測對象的測試等級(jí)應(yīng)該取決于被測對象在整個(gè)軟件開發(fā)項(xiàng)被測對象的測試等級(jí)應(yīng)該取決于被測對象在整個(gè)軟件開發(fā)項(xiàng)目中的重要地位和一旦發(fā)生故障會(huì)造成的損失情況來綜合分析。目中的重要地位和一旦發(fā)生故障會(huì)造成的損失情況來綜合分析。l要制訂科學(xué)有效的測試策略。在保證能夠盡可能多地發(fā)現(xiàn)軟要制訂科學(xué)有效的測試策略。在保證能夠盡可能多地發(fā)現(xiàn)軟件缺陷的前提下,盡量少地使用測試用例件缺陷的前提下,盡量少地使用測試用例。 401.3.2 軟件測試的經(jīng)濟(jì)性 測試是軟件生命期中費(fèi)用消耗最大的環(huán)節(jié)。測試費(fèi)用除了

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論