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

下載本文檔

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

文檔簡介

1、第1章 軟件測試概述,1.1 軟件測試的背景 1.2 軟件缺陷 1.3 軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析 1.4 軟件測試的認(rèn)識(shí) 1.5 軟件測試人員的素質(zhì),1.1 軟件測試的背景,1.1.1 軟件測試發(fā)展歷史 1.1.2 軟件測試的現(xiàn)狀,1.1 軟件測試的背景,隨著軟件產(chǎn)業(yè)的日益發(fā)展,軟件系統(tǒng)的規(guī)模和復(fù)雜性與日俱增,軟件的生產(chǎn)成本和軟件中存在的缺陷故障造成的損失也大大增加,甚至?xí)頌?zāi)難性的后果。軟件產(chǎn)品不同于其他科技和生產(chǎn)領(lǐng)域,它是人腦的高度智力化的體現(xiàn),由于這一特殊性,軟件與生俱來就有可能存在著缺陷。 在開發(fā)大型軟件系統(tǒng)的漫長過程中,面對紛繁復(fù)雜的各種現(xiàn)實(shí)情況,人的主觀認(rèn)識(shí)和客觀現(xiàn)實(shí)之間往往

2、存在著差距,開發(fā)過程中各類人員之間的交流和配合也往往并不是盡善盡美的。,1.1 軟件測試的背景,如果不能在軟件正式投入運(yùn)行之前發(fā)現(xiàn)并糾正這些錯(cuò)誤,那么這些錯(cuò)誤最終必然會(huì)在軟件的實(shí)際運(yùn)行過程中暴露出來。到那時(shí),改正這些錯(cuò)誤不僅要付出很大的代價(jià),而且往往會(huì)造成無法彌補(bǔ)的損失。軟件的質(zhì)量就是軟件的生命,為了保證軟件的質(zhì)量,人們在長期的開發(fā)過程中積累了許多經(jīng)驗(yàn)并形成了許多行之有效的方法。但是借助這些方法,我們只能盡量減少軟件中的錯(cuò)誤和不足,卻不能完全避免所有的錯(cuò)誤。 如何防止和減少這些可能存在的問題呢?答案是進(jìn)行軟件測試。測試是最有效的排除和防止軟件缺陷與故障的手段,并由此促進(jìn)了軟件測試?yán)碚撆c技術(shù)實(shí)踐

3、的快速發(fā)展。新的測試?yán)碚?、測試方法、測試技術(shù)手段在不斷涌出,軟件測試機(jī)構(gòu)和組織也在迅速產(chǎn)生和發(fā)展,由此軟件測試技術(shù)職業(yè)也同步完善和健全起來。,1.1.1 軟件測試發(fā)展歷史,軟件測試是伴隨著軟件的產(chǎn)生而產(chǎn)生的。在軟件行業(yè)發(fā)展初期,軟件規(guī)模較小,復(fù)雜程序較低,軟件開發(fā)的過程比較混亂、相當(dāng)隨意。這一階段還沒有系統(tǒng)意義上的軟件測試,更多的是一種類似調(diào)試的測試,測試用例的設(shè)計(jì)和選取也都是根據(jù)測試人員的經(jīng)驗(yàn)隨機(jī)進(jìn)行的,大多數(shù)測試的目的是為了證明系統(tǒng)可以正常運(yùn)行。當(dāng)時(shí)對測試的投入較少,測試介入的也較晚,一般是等到代碼形成,產(chǎn)品已經(jīng)基本完成才進(jìn)行測試。,1.1.1 軟件測試發(fā)展歷史,直到20世紀(jì)50年代后期,

4、隨著計(jì)算機(jī)軟件的發(fā)展,用于計(jì)算機(jī)編程的各種高級(jí)語言相繼誕生,程序的復(fù)雜性遠(yuǎn)遠(yuǎn)超過了以前,測試的重點(diǎn)也逐步轉(zhuǎn)入到使用高級(jí)語言編寫的軟件系統(tǒng)中來。盡管如此,由于受到硬件的制約,在計(jì)算機(jī)系統(tǒng)中,軟件仍然處于次要位置。軟件正確性的把握仍然主要依賴于編程人員的技術(shù)水平,測試活動(dòng)始終落后于開發(fā)活動(dòng)。因此,這一時(shí)期軟件測試的理論和方法發(fā)展比較緩慢。,1.1.1 軟件測試發(fā)展歷史,到了20世紀(jì)70年代以后,計(jì)算機(jī)處理速度迅猛提高,存儲(chǔ)器容量快速增加,軟件在整個(gè)計(jì)算機(jī)系統(tǒng)中的地位也越來越重要。隨著軟件開發(fā)技術(shù)的成熟和完善,軟件的規(guī)模也越來越大,復(fù)雜度也大大增加。因此,軟件的可靠性面臨著前所未有的危機(jī),給軟件測試

5、工作帶來了巨大的挑戰(zhàn),很多測試?yán)碚摵蜏y試方法應(yīng)運(yùn)而生,逐漸形成了一套完整的體系,也涌現(xiàn)了一批出色的軟件測試宗師。,1.1.1 軟件測試發(fā)展歷史,1972年,軟件測試的先驅(qū)者Bill Hetzel博士在North Carllina大學(xué)舉行了第一次以軟件測試為主題的正式會(huì)議。此后軟件測試的會(huì)議就如雨后春筍般出現(xiàn)。1981年,Bill Hetzel博士開設(shè)了一門公共課“結(jié)構(gòu)化軟件測試”(Structured Software Testing)。1983年,他將軟件測試定義為“評(píng)價(jià)一個(gè)程序和系統(tǒng)的特性或能力,并判斷它是否達(dá)到預(yù)期的結(jié)果,軟件測試就是以此為目的的任何行為”。他的思想的核心觀點(diǎn)是:測試方法

6、是試圖驗(yàn)證軟件是“工作的”,所謂“工作的”就是指軟件的功能是按照預(yù)先的設(shè)計(jì)執(zhí)行的,以正向思維,針對軟件系統(tǒng)的所有功能點(diǎn),逐個(gè)驗(yàn)證其正確性。軟件測試業(yè)界把這種方法看作是的軟件測試的第一類方法。,1.1.1 軟件測試發(fā)展歷史,軟件測試的第二類方法代表人物是Glenford J. Myers。他認(rèn)為測試不應(yīng)該著眼于驗(yàn)證軟件是工作的,相反應(yīng)該首先認(rèn)定軟件是有錯(cuò)誤的,然后用逆向思維去發(fā)現(xiàn)盡可能多的錯(cuò)誤。他還從人的心理學(xué)的角度論證,如果將 “驗(yàn)證軟件是工作的”作為測試的目的,非常不利于測試人員發(fā)現(xiàn)軟件的錯(cuò)誤。1979年,他提出了對軟件測試的定義:“測試是為發(fā)現(xiàn)錯(cuò)誤而執(zhí)行的一個(gè)程序或者系統(tǒng)的過程?!边@個(gè)定義

7、,也被業(yè)界所認(rèn)可,經(jīng)常被引用。,1.1.1 軟件測試發(fā)展歷史,在產(chǎn)業(yè)界,從20世紀(jì)70年代后期到20世紀(jì)80年代中期,很多軟件企業(yè)成立了QA或者SQA部門。后來QA的職能轉(zhuǎn)變?yōu)榱鞒瘫O(jiān)控(包括監(jiān)控測試流程),而測試(Testing)則從QA中分離出來成為獨(dú)立的組織職能。 到了20世紀(jì)80年代初期,軟件和IT行業(yè)進(jìn)入了大發(fā)展,軟件趨向大型化、高復(fù)雜度,軟件的質(zhì)量越來越重要。這時(shí),一些軟件測試的基礎(chǔ)理論和實(shí)用技術(shù)開始形成,并且人們開始為軟件開發(fā)設(shè)計(jì)了各種流程和管理方法,軟件開發(fā)的方式也逐漸由混亂無序的開發(fā)過程過渡到結(jié)構(gòu)化的開發(fā)過程,以結(jié)構(gòu)化分析與設(shè)計(jì)、結(jié)構(gòu)化評(píng)審、結(jié)構(gòu)化程序設(shè)計(jì)及結(jié)構(gòu)化測試為特征。,

8、1.1.1 軟件測試發(fā)展歷史,如今在軟件產(chǎn)業(yè)化發(fā)展的大趨勢下,人們對軟件質(zhì)量、成本和進(jìn)度的要求也越來越高,軟件質(zhì)量的控制已經(jīng)不僅僅是傳統(tǒng)意義上的軟件測試。傳統(tǒng)軟件的測試大多是基于代碼運(yùn)行的,并且常常是軟件開發(fā)的后期才開始進(jìn)行,但大量研究表明,設(shè)計(jì)活動(dòng)引入的錯(cuò)誤占軟件開發(fā)過程中出現(xiàn)的所有錯(cuò)誤數(shù)量的5065。因此,越來越多的聲音呼吁,要求有一個(gè)規(guī)范的軟件開發(fā)過程。而在整個(gè)軟件開發(fā)過程中,測試已經(jīng)不再只是基于程序代碼進(jìn)行的活動(dòng),而是一個(gè)基于整個(gè)軟件生命周期的質(zhì)量控制活動(dòng),貫穿于軟件開發(fā)的各個(gè)階段。,1.1.2 軟件測試的現(xiàn)狀,在我國,軟件測試目前還沒有形成一個(gè)真正的產(chǎn)業(yè),尚處于起步階段,根據(jù)51te

9、sting組織得到的2009年中國軟件測試從業(yè)人員調(diào)查報(bào)告可以看出:軟件測試從業(yè)人員所在公司成立的時(shí)間在5年以上的比例為58,集中分布在應(yīng)用軟件行業(yè)、電信/互聯(lián)網(wǎng)服務(wù)行業(yè),公司多為私營或集體所有制企業(yè),且比例逐年增加。調(diào)查顯示雖然國內(nèi)IT軟件開發(fā)企業(yè)對軟件測試認(rèn)識(shí)比較淡薄,公司測試人員與開發(fā)人員的比例主要分布在1:31:4之間,較國外1: 1比例相距甚遠(yuǎn),但是國內(nèi)IT企業(yè)也逐步開始重視軟件測試團(tuán)隊(duì)的建設(shè),在IT企業(yè)中,一些知名企業(yè)已經(jīng)將軟件測試作為企業(yè)未來發(fā)展的一個(gè)板塊,參與2009年調(diào)查的軟件測試從業(yè)人員中,73的人所在公司具有獨(dú)立的測試部門,專職測試人員也呈逐年上升趨勢。,1.1.2 軟件

10、測試的現(xiàn)狀,總之,國內(nèi)軟件行業(yè)普遍規(guī)模偏小,缺乏大型軟件產(chǎn)品經(jīng)驗(yàn),開發(fā)過程不夠規(guī)范,這決定了國內(nèi)軟件測試行業(yè)與一些發(fā)達(dá)國家相比還存在一定的差距。其實(shí),這與中國整體軟件的發(fā)展水平是一致的,因?yàn)槲覈w的軟件產(chǎn)業(yè)水平和軟件發(fā)達(dá)國家的水平相比有較大的差距,而作為軟件產(chǎn)業(yè)重要一環(huán)的軟件測試,必然也存在著不小的差距。但是,我們在軟件測試實(shí)現(xiàn)方面并不比國外差,國際上優(yōu)秀的測試工具,我們基本都有,這些工具所體現(xiàn)的思想我們也有深刻的理解,很多大型系統(tǒng)在國內(nèi)都得到了很好的測試。,1.2 軟件缺陷,1.2.1 軟件缺陷案例分析 1.2.2 軟件缺陷的定義 1.2.3 軟件缺陷產(chǎn)生的原因 1.2.4 軟件缺陷的修復(fù)

11、費(fèi)用,1.2.1 軟件缺陷案例分析,軟件是由人編寫開發(fā)的,是一種邏輯思維的產(chǎn)品,盡管現(xiàn)在軟件開發(fā)者采取了一系列有效措施,不斷地提高軟件開發(fā)質(zhì)量,但仍然無法完全避免軟件(產(chǎn)品)會(huì)存在各種各樣的缺陷。軟件中存在的缺陷有時(shí)會(huì)造成相當(dāng)嚴(yán)重的損失和災(zāi)難。 下面以4個(gè)軟件缺陷的案例來說明。,- 美迪斯尼公司的獅子王游戲軟件bug - 美航天局火星登陸探測器缺陷 - 北京奧運(yùn)會(huì)門票暫停第二階段的門票銷售。 -諾基亞Series40手機(jī)平臺(tái)存在缺陷,兼容性,銜接性,訪問量大,漏洞,1.2.1 軟件缺陷案例分析,1.2.2 軟件缺陷的定義,對于軟件存在的各種問題在軟件工程或軟件測試中都可以稱為軟件缺陷或軟件故障

12、。 軟件缺陷即計(jì)算機(jī)系統(tǒng)或者程序中存在的任何一種破壞正常運(yùn)行能力的問題、錯(cuò)誤,或者隱藏的功能缺陷、瑕疵。缺陷會(huì)導(dǎo)致軟件產(chǎn)品在某種程度上不能滿足用戶的需要。對于軟件缺陷的精確定義,通常有以下5條描述:,1.2.2 軟件缺陷的定義,軟件未達(dá)到產(chǎn)品說明書要求的功能。 軟件出現(xiàn)了產(chǎn)品說明書指明不會(huì)出現(xiàn)的錯(cuò)誤。 軟件功能超出了產(chǎn)品說明書規(guī)定的功能。 軟件未實(shí)現(xiàn)產(chǎn)品說明書雖未明確指出但應(yīng)該實(shí)現(xiàn)的目標(biāo)。 軟件難以理解,不易使用,運(yùn)行緩慢或者最終用戶認(rèn)為使用效果不好。,1.2.2 軟件缺陷的定義,為了更好地理解上述5條描述,我們以計(jì)算器軟件為例進(jìn)行說明。 計(jì)算器的產(chǎn)品說明書聲明它能夠準(zhǔn)確無誤地進(jìn)行加、減、乘、

13、除運(yùn)算。當(dāng)你拿到計(jì)算器后,按下“+”鍵,結(jié)果什么反應(yīng)也沒有,根據(jù)第條規(guī)則,這是一個(gè)缺陷。假如得到錯(cuò)誤答案,根據(jù)第條規(guī)則,這同樣是一個(gè)缺陷。 若產(chǎn)品說明書聲明計(jì)算器永遠(yuǎn)不會(huì)崩潰、鎖死或者停止反應(yīng)。當(dāng)你任意敲鍵盤,計(jì)算器停止接受輸入,根據(jù)第條規(guī)則,這是一個(gè)缺陷。,1.2.2 軟件缺陷的定義,若用計(jì)算器進(jìn)行測試,發(fā)現(xiàn)除了加、減、乘、除之外它還可以求平方根,說明書中從沒提到這一功能,根據(jù)第條規(guī)則,這是軟件缺陷。軟件實(shí)現(xiàn)了產(chǎn)品說明書未提到的功能。 若在測試計(jì)算器時(shí),發(fā)現(xiàn)電池沒電會(huì)導(dǎo)致計(jì)算不正確,但產(chǎn)品說明書未指出這個(gè)問題。根據(jù)第條規(guī)則,這是個(gè)缺陷。 第條規(guī)則是全面的。如果軟件測試員發(fā)現(xiàn)某些地方不對勁,無

14、論什么原因,都要認(rèn)定為缺陷。如“”鍵布置的位置極其不好按;在明亮光下顯示屏難以看清。根據(jù)第條規(guī)則,這些都是缺陷。,1. 軟件本身 文檔錯(cuò)誤、內(nèi)容不正確或拼寫錯(cuò)誤。 數(shù)據(jù)考慮不周全引起強(qiáng)度或負(fù)載問題。 對邊界考慮不夠周全,漏掉某幾個(gè)邊界條件造成的錯(cuò)誤。 對一些實(shí)時(shí)應(yīng)用系統(tǒng),保證精確的時(shí)間同步,否則容易引起時(shí)間上不協(xié)調(diào)、不一致性帶來的問題。 沒有考慮系統(tǒng)崩潰后在系統(tǒng)安全性、可靠性的隱患。 硬件或系統(tǒng)軟件上存在的錯(cuò)誤。 軟件開發(fā)標(biāo)準(zhǔn)或過程上的錯(cuò)誤。,1.2.3 軟件缺陷產(chǎn)生的原因,1.2.3 軟件缺陷產(chǎn)生的原因,2. 團(tuán)隊(duì)工作 系統(tǒng)分析時(shí)對客戶的需求不是十分清楚,或者和用戶的溝通存在一些困難。 不同

15、階段的開發(fā)人員相互理解不一致,軟件設(shè)計(jì)對需求分析結(jié)果的理解偏差,編程人員對系統(tǒng)設(shè)計(jì)規(guī)格說明書中某些內(nèi)容重視不夠,或存在著誤解。 設(shè)計(jì)或編程上的一些假定或依賴性,沒有得到充分地溝通。,1.2.3 軟件缺陷產(chǎn)生的原因,3. 技術(shù)問題 算法錯(cuò)誤。 語法錯(cuò)誤。 計(jì)算的精度問題。 系統(tǒng)結(jié)構(gòu)不合理,造成系統(tǒng)性能問題。 接口參數(shù)不匹配,導(dǎo)致模塊集成出現(xiàn)問題。,1.2.3 軟件缺陷產(chǎn)生的原因,軟件缺陷是由很多原因造成的,將諸多原因如規(guī)格說明書、系統(tǒng)設(shè)計(jì)結(jié)果、編程的代碼等歸類起來比較后發(fā)現(xiàn),規(guī)格說明書是軟件缺陷出現(xiàn)最多的地方,如下圖所示。,1.2.3 軟件缺陷產(chǎn)生的原因,軟件產(chǎn)品規(guī)格說明書為什么是軟件缺陷存在最

16、多的地方,主要原因有以下幾種: 由于軟件產(chǎn)品還沒有設(shè)計(jì)、開發(fā),完全靠想象去描述系統(tǒng)的實(shí)現(xiàn)結(jié)果,所以有些特性還不夠清晰。 用戶一般是非計(jì)算機(jī)專業(yè)人員,軟件開發(fā)人員和用戶的溝通存在較大困難,對要開發(fā)的產(chǎn)品功能理解不一致。 需求變化的不一致性。用戶的需求總是在不斷變化的,這些變化如果沒有在產(chǎn)品規(guī)格說明書中得到正確的描述,容易引起前后文、上下文的矛盾。 對規(guī)格說明書不夠重視,在規(guī)格說明書的設(shè)計(jì)和寫作上投入的人力、時(shí)間不足。 沒有在整個(gè)開發(fā)隊(duì)伍中進(jìn)行充分溝通,有時(shí)只有設(shè)計(jì)師或項(xiàng)目經(jīng)理得到比較多的信息。,1.2.4 軟件缺陷的修復(fù)費(fèi)用,軟件通常要靠有計(jì)劃、有條理的開發(fā)過程來實(shí)現(xiàn)。從開始到計(jì)劃、編程、測試,

17、到公開使用的過程中,都有可能發(fā)現(xiàn)軟件缺陷。軟件缺陷造成的修復(fù)費(fèi)用隨著時(shí)間的推移呈指數(shù)級(jí)地增長。當(dāng)早期編寫產(chǎn)品說明書時(shí)發(fā)現(xiàn)并修復(fù)缺陷,費(fèi)用可能只要10美元甚至更少。同樣的缺陷如果直到軟件編寫完成開始測試時(shí)才發(fā)現(xiàn),費(fèi)用可能要1001000美元。如果是客戶發(fā)現(xiàn)的,費(fèi)用可能達(dá)到數(shù)千甚至數(shù)百萬美元。下圖所示為軟件缺陷在不同階段發(fā)現(xiàn)時(shí)錯(cuò)誤修正后的費(fèi)用情況。,1.2.4 軟件缺陷的修復(fù)費(fèi)用,1.3 軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析,1.3.1 軟件測試的復(fù)雜性 1.3.2 軟件測試的經(jīng)濟(jì)性 1.3.3 軟件測試的充分性準(zhǔn)則,1.3 軟件測試的復(fù)雜性與經(jīng)濟(jì)性分析,人們通常認(rèn)為軟件工程中程序的開發(fā)是一個(gè)復(fù)雜而困難的

18、過程,需要投入大量的人力、物力和時(shí)間,而測試程序則比較容易,不需要花費(fèi)太多的精力,并且通過測試可以找到所有的軟件故障。這其實(shí)是人們對軟件開發(fā)過程理解上的一個(gè)誤區(qū)。在實(shí)際的軟件開發(fā)過程中,軟件測試作為現(xiàn)代軟件開發(fā)工業(yè)的一個(gè)非常重要的組成部分,正扮演著越來越重要的角色。隨著軟件規(guī)模的不斷擴(kuò)大,如何在有限的條件下對被開發(fā)的軟件進(jìn)行有效的測試已經(jīng)成為軟件工程中一個(gè)非常關(guān)鍵的課題。,1.3.1 軟件測試的復(fù)雜性,軟件測試是一項(xiàng)細(xì)致并且需要具備高度技巧的工作,稍有不慎就會(huì)顧此失彼,發(fā)生不應(yīng)有的疏漏。針對下面幾個(gè)問題的分析充分說明了軟件測試的復(fù)雜性。 1. 不可能對程序?qū)崿F(xiàn)完全測試 在實(shí)際的軟件測試工作中,

19、完全測試是不現(xiàn)實(shí)的。所謂完全的測試,就是讓被測程序在一切可能的輸入情況下全部執(zhí)行一遍。通常也稱這種測試為“窮舉測試”。,1.3.1 軟件測試的復(fù)雜性,窮舉測試會(huì)引起以下幾種問題: 測試所需要的輸入量太大; 測試的輸出結(jié)果太多; 軟件執(zhí)行路徑太多; 軟件的規(guī)格說明書存在主觀性,沒有一個(gè)客觀的標(biāo)準(zhǔn),從不同的角度來評(píng)判,軟件缺陷的標(biāo)準(zhǔn)是不同的。,1.3.1 軟件測試的復(fù)雜性,加法的測試(窮舉法): 輸入合理數(shù)據(jù):1+0=,1+1=,1+2=,計(jì)算器能處理的數(shù)字是32位,所以要一直輸入到1+9999999999(共32個(gè)9)=。 接下來,繼續(xù)輸入2+0=,2+1=,2+2=,直到輸入2+9999999

20、999(共32個(gè)9)=。依次類推,加法的輸入還在繼續(xù)。 輸入不合理數(shù)據(jù):1+a,jpkl+o9,jsfw+16,,這樣的測試情況可能出現(xiàn)無窮多個(gè)。,1.3.1 軟件測試的復(fù)雜性,按照上述思路一個(gè)一個(gè)的測試,單是加法的輸入就接近無窮多個(gè),使得在理論上根本無法進(jìn)行窮舉測試。在實(shí)際的使用過程中,測試人員還要考慮到包括隨機(jī)出現(xiàn)的各種突發(fā)情況,比如用戶不小心撞到鍵盤引起某個(gè)誤操作。Glenford J. Myers在1979年描述了一個(gè)只包含loop循環(huán)和if語句的簡單程序??梢允褂貌煌恼Z言將其寫成20行左右的代碼,但是這樣簡短的語句卻有著十萬億條路徑。面對這樣一個(gè)龐大的數(shù)字,即便是一個(gè)有經(jīng)驗(yàn)的優(yōu)秀的

21、軟件測試員也需要十億年才能完成全部測試,而且在實(shí)際應(yīng)用中,此類程序是非常有可能出現(xiàn)的。,1.3.1 軟件測試的復(fù)雜性,2. 殺蟲劑現(xiàn)象 軟件中存在的故障現(xiàn)象與發(fā)現(xiàn)的故障數(shù)量成正比。1990年,BorisBeizer在其編著的“Software Testing Techniques”(第二版)中提到了“殺蟲劑怪事”一詞,同一種測試工具或方法用于測試同一類軟件越多,則被測試軟件對測試的免疫力就越強(qiáng)。這與農(nóng)藥殺蟲是一樣的,老用一種農(nóng)藥,則害蟲就有了免疫力,農(nóng)藥就失去了作用。 在現(xiàn)實(shí)當(dāng)中,往往是發(fā)現(xiàn)了一個(gè)故障以后,很可能會(huì)接二連三地發(fā)現(xiàn)更多的軟件故障。有這樣一個(gè)現(xiàn)象值得我們?nèi)ブ匾暎?7%的軟件故障(是

22、由用戶發(fā)現(xiàn)的)是與系統(tǒng)中的4%的程序模塊有關(guān)。因此,經(jīng)測試后的程序中隱藏的故障數(shù)目與該程序中發(fā)現(xiàn)的故障數(shù)目成正比。,1.3.1 軟件測試的復(fù)雜性,產(chǎn)生殺蟲劑現(xiàn)象的可能原因是由于開發(fā)過程中各種各樣的主客觀因素,再加上不可預(yù)見的突發(fā)性事件,軟件測試員采用同一種測試方法或者工具不可能檢測出所有的缺陷。為了克服被測試軟件的免疫力,軟件測試員必須不斷編寫新的測試程序,對程序的各個(gè)部分進(jìn)行不斷測試,以避免被測試軟件對單一的測試程序具有免疫力而使軟件缺陷不被發(fā)現(xiàn)。 因此,根據(jù)經(jīng)驗(yàn),我們應(yīng)當(dāng)對故障集中的程序模塊進(jìn)行重點(diǎn)測試,越是問題多的模塊,越是要花更多的時(shí)間和代價(jià)來測試,以此會(huì)達(dá)到更好的測試效果。,太少的測

23、試是不負(fù)責(zé)任,過多的測試是一種浪費(fèi)。 100的測試是不可能的,圖1-3 最優(yōu)測試量,1.3.1 軟件測試的復(fù)雜性,3. 軟件測試的代價(jià),1.3.1 軟件測試的復(fù)雜性,4. 不能修復(fù)所有的軟件故障 在軟件測試中還有一個(gè)嚴(yán)峻的現(xiàn)實(shí):即使花再多的時(shí)間和代價(jià),也不能夠使所有的軟件故障都得到修復(fù)。但這并不能說明測試就是失敗的,在實(shí)際操作過程中,測試人員要進(jìn)行正確的判斷,合理的取舍,根據(jù)風(fēng)險(xiǎn)分析來決定哪些故障需要修復(fù),哪些故障可以不修復(fù),即并不是所有的軟件缺陷都需要被修復(fù)。,1.3.1 軟件測試的復(fù)雜性,當(dāng)確定是軟件缺陷時(shí),若出現(xiàn)以下情況,軟件缺陷就不能被修復(fù)。 不會(huì)引起大的問題。為了防止整個(gè)系統(tǒng)由于局部

24、修復(fù)而出現(xiàn)某些問題,在特殊情況下,不常出現(xiàn)的小問題可以暫時(shí)忽略。 修復(fù)所冒的風(fēng)險(xiǎn)太大。由于軟件本身各個(gè)模塊之間有著千絲萬縷的聯(lián)系,使得單一修復(fù)某一段代碼可能會(huì)產(chǎn)生更多的大量未知故障,所以在某些情況下不修復(fù)反而是最保險(xiǎn)的做法。 沒有足夠的時(shí)間去修復(fù)。在商業(yè)活動(dòng)中,為了能及時(shí)交付軟件產(chǎn)品,當(dāng)部分軟件缺陷沒有足夠的時(shí)間修復(fù),又不會(huì)對軟件的正常運(yùn)行產(chǎn)生大的影響時(shí),就只能在說明書中列出可能出現(xiàn)的缺陷。 可以不算成故障的缺陷。某些特殊的缺陷有時(shí)從另一個(gè)方面看可以理解成一種新的附加功能,這是大多數(shù)商務(wù)軟件在處理一些特殊缺陷時(shí)采取的做法。,1.3.2 軟件測試的經(jīng)濟(jì)性,測試工作在整個(gè)項(xiàng)目開發(fā)過程中占有重要地位,從軟件工程的總目標(biāo)出發(fā),測試的經(jīng)濟(jì)性要求充分利用有限的人力和物力資源,高效率、高質(zhì)量地完成測試。在軟件測試過程中,必須考慮它的經(jīng)濟(jì)性,考慮應(yīng)該按照什么樣的原則進(jìn)行測試,以實(shí)現(xiàn)測試成本與測試效果的統(tǒng)一。為了降低測試成本,在選擇測試用例時(shí)要遵守以下原則: 被測對象的測試等級(jí)應(yīng)該取決于被測對象在整個(gè)軟件開

溫馨提示

  • 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)論