《軟件測試》PPT_第1頁
《軟件測試》PPT_第2頁
《軟件測試》PPT_第3頁
《軟件測試》PPT_第4頁
《軟件測試》PPT_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第1章 軟件測試基礎(chǔ)第第1章章 軟件測試基礎(chǔ)軟件測試基礎(chǔ)1.1 軟件質(zhì)量軟件質(zhì)量 1.2 軟件測試軟件測試 1.3 軟件缺陷軟件缺陷 1.4 測試用例測試用例 1.5 軟件測試分類軟件測試分類 1.6 本章小結(jié)本章小結(jié) 第1章 軟件測試基礎(chǔ) 1.1 軟軟 件件 質(zhì)質(zhì) 量量1983年,ANSI/IEEE STD729給出了軟件質(zhì)量的定義:軟件產(chǎn)品滿足規(guī)定的和隱含的與需求能力有關(guān)的全部特征和特性,包括:(1) 軟件產(chǎn)品質(zhì)量滿足用戶要求的程度;(2) 軟件各種屬性的組合程度;(3) 用戶對軟件產(chǎn)品的綜合反映程度;(4) 軟件在使用過程中滿足用戶要求的程度。第1章 軟件測試基礎(chǔ)軟件的質(zhì)量需求,從根本上

2、說是為了引導(dǎo)和滿足客戶的需求,而軟件質(zhì)量具體表現(xiàn)在軟件產(chǎn)品固有的特性,如產(chǎn)品的功能性、可靠性、易使用性、效率、可維護(hù)性、可移植性和安全性等。對于軟件的質(zhì)量,客戶、軟件產(chǎn)品開發(fā)人員和軟件開發(fā)企業(yè)對產(chǎn)品質(zhì)量的認(rèn)識有不同的側(cè)重點,但必須達(dá)到一個平衡點。 第1章 軟件測試基礎(chǔ)從客戶角度看,主要從產(chǎn)品的功能性需求和非功能性需求來看。功能性需求主要通過各種輸入完成用戶所需要的各項操作,包括數(shù)據(jù)的輸入和結(jié)果的輸出。同時對于這些功能的使用,要求易用性要高,界面要友好。對于非功能性需求,主要體現(xiàn)在軟件產(chǎn)品的性能、有效性、可靠性等方面,對于不同種類的軟件其非功能性需求有很大差異,如實時軟件在實時性和可靠性上的要求

3、就非常高。從軟件產(chǎn)品開發(fā)人員的角度來看,除客戶所關(guān)注的性能外,還要關(guān)注產(chǎn)品的可維護(hù)性、兼容性、可擴(kuò)展性和可移植性等。 第1章 軟件測試基礎(chǔ)對于軟件開發(fā)企業(yè)來說,除了客戶和開發(fā)人員所關(guān)注的重點外,軟件的質(zhì)量需求更多體現(xiàn)在市場競爭、成本控制等方面。提高軟件的質(zhì)量可以大大降低因質(zhì)量問題產(chǎn)生的不良成本(如維護(hù)成本等),提高企業(yè)的利潤。因此,對企業(yè)而言,質(zhì)量需求主要體現(xiàn)在軟件的功能性和非功能性需求上,如軟件的功能、可維護(hù)性、可移植性、可擴(kuò)展性等。 第1章 軟件測試基礎(chǔ)綜上所述,軟件質(zhì)量必須兼顧客戶、軟件開發(fā)人員和軟件開發(fā)企業(yè)對軟件質(zhì)量的需求。一般來說,高質(zhì)量軟件應(yīng)具備的特性包括:(1) 滿足用戶的需求。

4、這是最重要的一點,一個軟件如果不能夠滿足用戶的需求,設(shè)計得再好,采用的技術(shù)再先進(jìn),也沒有任何意義,即應(yīng)在軟件開發(fā)中遵循以用戶為中心的原則。(2) 合理處理進(jìn)度、成本、功能的關(guān)系。一個高質(zhì)量的軟件在開發(fā)過程中,項目成員一定能夠客觀地對待這三個因素,并通過有效的計劃、管理、控制,使得三者之間達(dá)成一種匹配,保證產(chǎn)出的最大化。 第1章 軟件測試基礎(chǔ)(3) 具備一定的可擴(kuò)展性和靈活性,能夠適應(yīng)一定程度的需求變化。有變化或變更就會對軟件開發(fā)產(chǎn)生沖擊,所以一個質(zhì)量優(yōu)秀的軟件,應(yīng)該能夠在一定程度上適應(yīng)這種變化,并保持軟件的穩(wěn)定性。(4) 具備一定的可靠性,能夠有效處理例外的情況,能夠承受各種非法情況的沖擊。(

5、5) 保持成本和性能的平衡。性能往往來源于客戶的非功能需求,是軟件質(zhì)量的一個重要的評價因素。但是性能問題在任何地方都存在,所以需要客觀地看待它。例如,代碼可讀性與可靠性之間的平衡。第1章 軟件測試基礎(chǔ)軟件的質(zhì)量主要由項目和項目管理團(tuán)隊或企業(yè)專門負(fù)責(zé)質(zhì)量的部門來負(fù)責(zé),這就需要他們對項目質(zhì)量有明確的認(rèn)識,從而在項目執(zhí)行過程中按照質(zhì)量計劃讓項目朝著預(yù)先確定的質(zhì)量目標(biāo)前進(jìn)。為達(dá)到軟件的高質(zhì)量目標(biāo),質(zhì)量管理的方法、理念被不斷提出、完善和創(chuàng)新。目前流行的軟件質(zhì)量管理有全面質(zhì)量管理、6管理等。 第1章 軟件測試基礎(chǔ)從1961年菲根堡姆提出全面質(zhì)量管理的概念開始,世界各國對它進(jìn)行了全面深入的研究,使全面質(zhì)量管

6、理的思想、方法、理論在實踐中不斷得到應(yīng)用和發(fā)展。概括地講,全面質(zhì)量管理的發(fā)展經(jīng)歷了以下四個階段:(1) 日本從美國引入全面質(zhì)量管理。1950年戴明博士在日本開展質(zhì)量管理講座,日本人從中學(xué)習(xí)到了這種全新的質(zhì)量管理的思想和方法。到1970年,質(zhì)量管理已經(jīng)逐步滲透到了全日本企業(yè)的基層。第1章 軟件測試基礎(chǔ)(2) 質(zhì)量管理中廣泛采用統(tǒng)計技術(shù)和計算機(jī)技術(shù)。從20世紀(jì)70年代開始,日本企業(yè)從質(zhì)量管理中獲得巨大的收益,他們充分認(rèn)識到了全面質(zhì)量管理的好處。日本人開始將質(zhì)量管理當(dāng)作一門科學(xué)來對待,并廣泛采用統(tǒng)計技術(shù)和計算機(jī)技術(shù)進(jìn)行推廣和應(yīng)用,全面質(zhì)量管理在這一階段獲得了新的發(fā)展。 第1章 軟件測試基礎(chǔ)(3) 全

7、面質(zhì)量管理的內(nèi)容和要求得到標(biāo)準(zhǔn)化。隨著全面質(zhì)量管理理念的普及,越來越多的企業(yè)開始采用這種管理方法。1986年,國際標(biāo)準(zhǔn)化組織ISO把全面質(zhì)量管理的內(nèi)容和要求進(jìn)行了標(biāo)準(zhǔn)化,并于1987年3月正式頒布了ISO 9000系列標(biāo)準(zhǔn),這是全面質(zhì)量管理發(fā)展的第三個階段。因此,我們通常所熟悉的ISO 9000系列標(biāo)準(zhǔn)實際上是對原來全面質(zhì)量管理研究成果的標(biāo)準(zhǔn)化。 第1章 軟件測試基礎(chǔ)(4) 質(zhì)量管理上升到經(jīng)營管理層面。隨著質(zhì)量管理思想和方法往更高層次發(fā)展,企業(yè)的生產(chǎn)管理和質(zhì)量管理被提升到經(jīng)營管理的層次。無論是學(xué)術(shù)界還是企業(yè)界,很多知名學(xué)者如朱蘭、石川馨、久米均等人,都提出了很多有關(guān)這個方面的觀念和理論,“質(zhì)量

8、管理是企業(yè)經(jīng)營的生命線”這種觀念逐漸被企業(yè)所接受。 第1章 軟件測試基礎(chǔ)1.1.1 軟件質(zhì)量保證軟件質(zhì)量保證質(zhì)量保證是為了提供信用、證明項目將會達(dá)到有關(guān)質(zhì)量標(biāo)準(zhǔn),而在質(zhì)量體系中進(jìn)行的一系列有計劃、有組織的工作活動。軟件質(zhì)量保證是由各種任務(wù)組成的,這些任務(wù)分別與兩種不同的參與者緊密相關(guān)進(jìn)行軟件開發(fā)的工程師和負(fù)責(zé)質(zhì)量保證的計劃、監(jiān)督、記錄、分析及報告工作的軟件質(zhì)量保證小組。軟件開發(fā)工程師通過可靠的技術(shù)方法和措施,進(jìn)行正式的技術(shù)評審、執(zhí)行計劃周密的軟件測試來考慮質(zhì)量問題,并保證軟件的質(zhì)量。而軟件質(zhì)量保證小組的職責(zé)是輔助軟件工程小組得到高質(zhì)量的最終產(chǎn)品。美國CMU大學(xué)的軟件工程研究所推薦了一組有關(guān)質(zhì)量

9、保證中的計劃、監(jiān)督、記錄、分析及報告的質(zhì)量保證活動。這些活動將由一個獨立的質(zhì)量保證小組(SQA)來執(zhí)行:第1章 軟件測試基礎(chǔ)(1) 為項目準(zhǔn)備質(zhì)量保證計劃;(2) 參與開發(fā)該項目的軟件過程描述;(3) 復(fù)審各項軟件工程活動,對其是否符合已定義好的軟件過程進(jìn)行核實;(4) 審計軟件工作產(chǎn)品,對其是否符合定義好的軟件過程中的相關(guān)部分進(jìn)行核實;(5) 確保軟件工作及其工作產(chǎn)品中的偏差已被記錄,并按預(yù)定流程進(jìn)行處理;(6) 記錄所有與相關(guān)規(guī)范或制度不符合的部分,并報告給高級管理者。 第1章 軟件測試基礎(chǔ)軟件質(zhì)量保證的目標(biāo)是以獨立審查方式,從第三方的角度監(jiān)控軟件開發(fā)任務(wù)的執(zhí)行,即軟件項目是否正遵循已制定

10、的計劃、標(biāo)準(zhǔn)和規(guī)程,給開發(fā)人員和管理層提供反映產(chǎn)品和過程質(zhì)量的信息和數(shù)據(jù),提高項目透明度,同時輔助軟件工程組取得高質(zhì)量的軟件產(chǎn)品。軟件質(zhì)量保證的目標(biāo)主要包括以下四個方面:(1) 通過監(jiān)控軟件開發(fā)過程來保證產(chǎn)品質(zhì)量;(2) 保證開發(fā)出來的軟件和軟件開發(fā)過程符合相應(yīng)標(biāo)準(zhǔn)與規(guī)程;(3) 保證軟件產(chǎn)品、軟件編制過程中存在的與規(guī)范或制度不符合的問題得到處理,必要時將問題反映給高級管理者; (4) 確保項目組制定的計劃、標(biāo)準(zhǔn)和規(guī)程不僅適合項目組的需要,同時還滿足評審和審計的需要。 第1章 軟件測試基礎(chǔ)除了以上四點之外,SQA最好還能作為軟件工程過程小組(SEPG)在項目組中的延伸,能夠收集項目中好的實施方

11、法和發(fā)現(xiàn)實施不利的原因,為修改企業(yè)內(nèi)部軟件開發(fā)整體規(guī)范提供依據(jù),為其他項目組的開發(fā)過程提供先進(jìn)方法和樣例。軟件企業(yè)中的SQA人員既可以由全職人員擔(dān)任,也可以由企業(yè)內(nèi)具有相關(guān)素質(zhì)、經(jīng)過SQA培訓(xùn)的人員兼職擔(dān)任。由此組成的SQA小組可能是一個真正的物理上存在的獨立部門,也可以是一個邏輯上存在的平臺。但不管是真正的獨立部門還是邏輯上的平臺,它都需要有一個靈魂人物SQA小組組長,來組織SQA小組的日常活動。 第1章 軟件測試基礎(chǔ)在給一個項目組指派SQA人員時,一定要注意一點:指派的SQA人員不能是該項目組的開發(fā)人員、配置管理人員或測試人員,一個項目的SQA除了監(jiān)控項目過程,完成SQA相關(guān)工作以外,不應(yīng)

12、該參與項目組的其他實質(zhì)性工作,否則他會與項目組捆綁在一起,很難保持客觀性。 第1章 軟件測試基礎(chǔ)1.1.2 質(zhì)量成本質(zhì)量成本質(zhì)量成本包含所有質(zhì)量工作或者進(jìn)行與質(zhì)量有關(guān)的活動所導(dǎo)致的成本。質(zhì)量成本可以劃分為預(yù)防成本、質(zhì)量評估成本和缺陷修復(fù)成本。預(yù)防成本主要包括:(1) 質(zhì)量計劃;(2) 技術(shù)評審/管理評審;(3) 測試設(shè)備/工具;(4) 培訓(xùn)。質(zhì)量評估成本包括深入了解各個過程中產(chǎn)品的質(zhì)量而開展的活動,主要包括:(1) 過程內(nèi)和過程間的審查;(2) 測試設(shè)備,工具的維護(hù);(3) 測試。 第1章 軟件測試基礎(chǔ)缺陷修復(fù)成本是指在開發(fā)過程中和將產(chǎn)品交付給客戶之后修復(fù)發(fā)現(xiàn)的缺陷所導(dǎo)致的成本,可以進(jìn)一步劃分

13、為內(nèi)部修復(fù)成本和外部修復(fù)成本。內(nèi)部修復(fù)成本指產(chǎn)品交付前發(fā)現(xiàn)缺陷而引發(fā)的成本,主要由返工、修復(fù)和失敗模式分析等組成。外部修復(fù)成本指產(chǎn)品交付給客戶后所發(fā)現(xiàn)的缺陷帶來的相關(guān)成本,如因解決客戶的抱怨、退換產(chǎn)品、技術(shù)支持和維護(hù)等而產(chǎn)生的成本。 第1章 軟件測試基礎(chǔ)圖1-1-1為Boehm所收集的數(shù)據(jù),發(fā)現(xiàn)和修復(fù)一個缺陷的成本將隨著我們從預(yù)防成本到質(zhì)量評估、從內(nèi)部修復(fù)到外部修復(fù)工作的開展而急劇增加。大量統(tǒng)計數(shù)據(jù)表明,質(zhì)量成本由三部分組成,其預(yù)防成本所占比例最低,修復(fù)缺陷成本最高。因此,為有效降低質(zhì)量成本,應(yīng)將更多的精力和關(guān)注點放在質(zhì)量預(yù)防上,其次是質(zhì)量評估上,采用缺陷修復(fù)是不得已而為之。因此有人提出了零缺

14、陷管理方法。質(zhì)量保證中最有效的辦法是預(yù)防。預(yù)防勝過檢查。質(zhì)量計劃、設(shè)計和實施是保證項目的關(guān)鍵,不是項目質(zhì)量出了問題采取檢查彌補(bǔ)。預(yù)防質(zhì)量問題的成本要少于糾正質(zhì)量問題的成本。 第1章 軟件測試基礎(chǔ)圖1-1-1 改正一個缺陷的相對成本示意圖 第1章 軟件測試基礎(chǔ)1.2 軟軟 件件 測測 試試由于軟件缺陷帶來的高額修復(fù)代價使得人們更注重于規(guī)劃良好的軟件測試,因此軟件開發(fā)組織將30%50%的項目精力花在測試上也就不足為奇,對于那些與人的生命有關(guān)的軟件(如飛行控制和醫(yī)療檢測軟件),在測試上所花的時間往往是其他軟件工程活動時間之和的35倍。軟件測試就好比工廠的質(zhì)量檢驗工作,是對軟件產(chǎn)品和階段性工作成果進(jìn)行

15、質(zhì)量檢驗,力求發(fā)現(xiàn)其中的各種缺陷,并督促修正缺陷,從而控制和保證軟件產(chǎn)品的質(zhì)量。因此,軟件測試是軟件公司提高軟件產(chǎn)品質(zhì)量的重要手段之一。第1章 軟件測試基礎(chǔ)軟件測試與質(zhì)量保證的關(guān)系:規(guī)范的軟件測試活動一般包括測試計劃創(chuàng)建、測試用例設(shè)計、執(zhí)行測試、更新測試文檔等;而軟件質(zhì)量保證的活動主要有協(xié)調(diào)度量、風(fēng)險管理、文檔檢查、促進(jìn)/協(xié)助流程改進(jìn)、監(jiān)察測試工作。軟件質(zhì)量保證(SQA)的職能是向管理層提供正確的可視化的信息,從而促進(jìn)與協(xié)助流程改進(jìn)。SQA還充當(dāng)測試工作的指導(dǎo)者和監(jiān)督者,幫助軟件測試建立質(zhì)量標(biāo)準(zhǔn)、測試過程評審方法和測試流程,同時通過跟蹤、審計和評審,及時發(fā)現(xiàn)軟件測試過程中的問題,從而幫助改進(jìn)測

16、試或整個開發(fā)的流程等,因此有了SQA,測試工作就可以被客觀地檢查與評價,同時也可以協(xié)助測試流程的改進(jìn)。而測試為SQA提供數(shù)據(jù)和依據(jù),幫助SQA更好地了解質(zhì)量計劃的執(zhí)行情況、過程質(zhì)量、產(chǎn)品質(zhì)量和過程改進(jìn)進(jìn)展,從而使SQA更好地做好下一步工作。 第1章 軟件測試基礎(chǔ)二者相同點:都是貫穿整個軟件開發(fā)生命周期的。二者不同點:SQA側(cè)重對流程中各過程的管理與控制,是一項管理工作,側(cè)重于流程和方法。而測試是對流程中各過程管理與控制策略的具體執(zhí)行與實施,其對象是軟件產(chǎn)品(包括階段性的產(chǎn)品),即測試是對軟件產(chǎn)品的檢驗,是一項技術(shù)性的工作。測試,常常被認(rèn)為是質(zhì)量控制的最主要手段。 第1章 軟件測試基礎(chǔ)1.2.1

17、 軟件測試的定義軟件測試的定義1軟件測試軟件測試1979年,G.J.Myers對軟件測試的定義:程序測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。1983年,IEEE對軟件測試的定義:使用人工或者自動的手段來運行或測定某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或者是弄清預(yù)期結(jié)果與實際運行結(jié)果之間的差別。1983年,B.hetzel對軟件測試的定義:以評價一個程序或系統(tǒng)的屬性為目標(biāo)的任何一種活動;測試是對軟件質(zhì)量的度量。第1章 軟件測試基礎(chǔ)2002年,測試的定義:使用人工或者自動手段來運行或測試被測試件的過程,其目的在于檢驗它是否滿足規(guī)定的需求并弄清預(yù)期結(jié)果與實際結(jié)果之間的差別。它是幫助識別開發(fā)完

18、成(中間或最終版本)的計算機(jī)軟件(整體或部分)的正確度(correctness)、完全度(completeness)和質(zhì)量(quality)的軟件過程。從上面的定義可以看出,軟件測試的內(nèi)涵在不斷豐富,對軟件測試的認(rèn)識在不斷深入。要完整理解軟件測試,就要從不同角度去審視。軟件測試就是對軟件產(chǎn)品進(jìn)行驗證和確認(rèn)的活動過程,其目的就是盡快盡早地發(fā)現(xiàn)軟件產(chǎn)品在整個開發(fā)生命周期中存在的各種缺陷,以評估軟件的質(zhì)量是否達(dá)到可發(fā)布水平。軟件測試是軟件質(zhì)量保證的關(guān)鍵元素,代表了需求規(guī)格說明書、設(shè)計和編碼的最終檢查。 第1章 軟件測試基礎(chǔ)2軟件測試的狹義觀點軟件測試的狹義觀點G.J.Myers在軟件測試之藝術(shù)(Th

19、e Art of Software Testing)給出的軟件測試定義,是傳統(tǒng)意義上的測試定義,即在代碼完成后通過運行程序或軟件來查找程序代碼或者軟件系統(tǒng)中的錯誤。這種傳統(tǒng)意義上的測試主要是受軟件開發(fā)瀑布模型的影響,而且非常不利于保證軟件的質(zhì)量,主要原因是這種測試不能在代碼完成前發(fā)現(xiàn)軟件系統(tǒng)在需求、設(shè)計等上的缺陷,圖1-1-1的統(tǒng)計表明這將導(dǎo)致后期的軟件質(zhì)量成本很高。 第1章 軟件測試基礎(chǔ)3軟件測試的廣義觀點軟件測試的廣義觀點為了盡早發(fā)現(xiàn)問題,降低軟件質(zhì)量成本,可將傳統(tǒng)的軟件測試范圍延伸到需求評審、設(shè)計評審、代碼評審等活動中。根據(jù)廣義觀點,軟件測試可分為靜態(tài)測試和動態(tài)測試。靜態(tài)測試主要的活動是

20、評審,即通過對需求、設(shè)計、代碼和其他軟件開發(fā)文檔的評審來檢驗相應(yīng)的內(nèi)容是否滿足用戶的需求,由于靜態(tài)測試不需要運行軟件或程序,故具有靜態(tài)特性特征。動態(tài)測試是通過運行軟件或程序來發(fā)現(xiàn)存在的問題,由于是在運行過程中發(fā)現(xiàn)問題,故具有動態(tài)性特征。第1章 軟件測試基礎(chǔ)4軟件測試的辨證統(tǒng)一觀點軟件測試的辨證統(tǒng)一觀點G.J.Myers給出的軟件測試定義,被軟件測試業(yè)界認(rèn)可,并經(jīng)常被引用,但由于屬于軟件測試的狹義范疇。后來G.J.Myers進(jìn)一步提出了程序測試的3個重要觀點:(1) 測試是為了證明程序有錯,而不是證明程序無錯;(2) 一個好的測試用例在于它發(fā)現(xiàn)至今沒有發(fā)現(xiàn)的錯誤;(3) 一個成功的測試是發(fā)現(xiàn)了至

21、今未發(fā)現(xiàn)的錯誤的測試。 第1章 軟件測試基礎(chǔ)從質(zhì)量保證觀點來看軟件測試,就是證明或者驗證軟件的功能特性和非功能特性滿足用戶的需求,主要是針對軟件的所有功能點逐一驗證其正確性,對于非功能點要滿足用戶的要求;從軟件測試的目標(biāo)和降低測試成本等方面來看,就是盡早盡快地發(fā)現(xiàn)更多的軟件缺陷,主要采取試圖破壞系統(tǒng)、摧毀系統(tǒng)等手段,發(fā)現(xiàn)系統(tǒng)中存在的各種缺陷。軟件測試就是在這兩者之間獲得平衡,但對于不同行業(yè)領(lǐng)域,兩者的比重是不一樣的。對于航天、電信計費系統(tǒng)等要求有很高的軟件質(zhì)量,特別是系統(tǒng)的高可靠性,而一般的應(yīng)用軟件或服務(wù)軟件,其質(zhì)量目標(biāo)一般設(shè)置在用戶可接受的水平,以降低軟件開發(fā)成本,加快軟件的發(fā)布速度。從軟件

22、測試的辨證統(tǒng)一觀點來看,對不同的軟件產(chǎn)品,應(yīng)制定相應(yīng)的可發(fā)布的質(zhì)量標(biāo)準(zhǔn),以評估軟件是否可發(fā)布。 第1章 軟件測試基礎(chǔ)5軟件測試的經(jīng)濟(jì)成本觀點軟件測試的經(jīng)濟(jì)成本觀點“一個好的測試用例在于發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤”,這體現(xiàn)了軟件測試的經(jīng)濟(jì)成本觀點。軟件測試的成本一直是業(yè)界關(guān)注的問題之一。根據(jù)辨證統(tǒng)一觀點來看,不充分的測試是不負(fù)責(zé)任的;過分的測試是一種資源的浪費,同樣也是一種不負(fù)責(zé)任的表現(xiàn)。在實際操作中的困難在于:如何界定什么樣的測試是不充分的,什么樣的測試是過分的。在目前軟件測試技術(shù)狀況下,唯一可用的答案是:制定最低測試通過標(biāo)準(zhǔn)和測試內(nèi)容,然后具體問題具體分析。對于相對復(fù)雜的產(chǎn)品或系統(tǒng)來說,零缺陷是一

23、種理想,應(yīng)在測試成本范圍內(nèi)進(jìn)行更充分的測試和更全面的質(zhì)量評估。 第1章 軟件測試基礎(chǔ)1.2.2 軟件測試的目的軟件測試的目的軟件測試的目標(biāo),概括地說,就是盡快盡早地將被測件中所存在的缺陷找出來,并促進(jìn)系統(tǒng)分析工程師、設(shè)計工程師和程序員等盡快地解決這些缺陷,并評估被測試件的質(zhì)量水平。軟件測試是軟件質(zhì)量保證過程中的重要一環(huán),同時也是軟件質(zhì)量控制的重要手段之一,測試工程師與整個項目團(tuán)隊共同努力,確保按時向客戶提交滿足客戶要求的高質(zhì)量的軟件產(chǎn)品。軟件測試的目標(biāo)之一是盡快盡早地找到至今沒有被發(fā)現(xiàn)的缺陷,而不是確保沒有缺陷。主要原因有: 第1章 軟件測試基礎(chǔ)(1) 測試的覆蓋率幾乎不可能達(dá)到100%,即軟

24、件測試不可能窮舉所有的測試用例,不能將程序中的所有路徑測試一遍;(2) 去除現(xiàn)有的缺陷可能會產(chǎn)生新的缺陷,同時系統(tǒng)的需求總是不斷在變化,這種需求的不穩(wěn)定性也將帶來新的缺陷;(3) 測試工程師對產(chǎn)品的理解不能完全代表用戶的理解,由于兩者之間的差異,故意味著可能存在測試工程師沒有發(fā)現(xiàn)的缺陷;(4) 測試的模擬環(huán)境不能完全代表用戶的實際使用環(huán)境,由于兩者之間的差異,故意味著可能存在測試工程師沒有發(fā)現(xiàn)的缺陷。 第1章 軟件測試基礎(chǔ)軟件測試的另外一個重要的目標(biāo)是評估軟件是否達(dá)到可發(fā)布水平,即何時停止軟件測試。每當(dāng)討論軟件測試技術(shù)的時候都會引發(fā)一個經(jīng)典問題的討論:“我們怎么知道我們的測試已經(jīng)足夠了呢?”。

25、遺憾的是,到目前為止這個問題還沒有一個非常明確的答案,但還是有一些基于實踐經(jīng)驗的答案。通過在軟件測試過程中收集的數(shù)據(jù),利用現(xiàn)有的統(tǒng)計理論和可靠性模型,就可能得到“測試什么時候完成”這種問題有意義的指導(dǎo)原則。根據(jù)這些指導(dǎo)原則,不同的軟件企業(yè)根據(jù)項目的特征指定了軟件的可發(fā)布標(biāo)準(zhǔn),對軟件的可發(fā)布性進(jìn)行了有益的探索。 第1章 軟件測試基礎(chǔ)1.2.3 軟件測試的原則軟件測試的原則軟件測試從不同的角度出發(fā)會派生出兩種不同的測試原則。從用戶的角度出發(fā),通過軟件測試能充分暴露軟件中存在的問題和缺陷,從而考慮是否可以接受該產(chǎn)品;從開發(fā)者的角度出發(fā),就是希望測試能表明軟件已經(jīng)正確地實現(xiàn)了用戶的需求,達(dá)到軟件正式發(fā)

26、布的要求,以確立人們對軟件質(zhì)量的信心。根據(jù)軟件測試的廣義觀點來看,軟件測試不是僅對源程序進(jìn)行測試,開發(fā)各階段得到的文檔包括需求規(guī)格說明書、概要設(shè)計說明書、詳細(xì)設(shè)計說明書等都是軟件測試的對象。因此,在軟件測試中應(yīng)力求遵循以下原則:第1章 軟件測試基礎(chǔ)(1) 可追溯性。所有的測試都應(yīng)追溯到用戶需求。軟件測試揭示軟件的缺陷,一旦修正這些缺陷就能更好地滿足用戶需求;如果軟件實現(xiàn)的功能不是用戶所期望的,將導(dǎo)致軟件測試和軟件開發(fā)做了無用功,這種情況在軟件開發(fā)和軟件測試中時有發(fā)生。(2) 盡早開展預(yù)防性測試。測試工作進(jìn)行得越早,越有利于提高軟件的質(zhì)量和降低軟件的質(zhì)量成本,這是預(yù)防性測試的基本原則。由于軟件的

27、復(fù)雜性和抽象性,在軟件生命周期各階段都可能產(chǎn)生錯誤,所以不應(yīng)把軟件測試僅僅看做是軟件開發(fā)的一個獨立階段,而應(yīng)當(dāng)把它貫穿到軟件開發(fā)的各個階段中。在需求分析和設(shè)計階段就應(yīng)開始進(jìn)行測試工作,這樣才能盡早發(fā)現(xiàn)和預(yù)防錯誤,杜絕某些缺陷和錯誤,盡量避免將軟件缺陷遺留到下一個開發(fā)階段,提高軟件質(zhì)量。 第1章 軟件測試基礎(chǔ)(3) 投入/產(chǎn)出原則。根據(jù)軟件測試的經(jīng)濟(jì)成本觀點,在有限的時間和資源下進(jìn)行完全測試找出軟件所有的錯誤和缺陷是不可能的,也是軟件開發(fā)成本所不允許的,因此軟件測試不能無限進(jìn)行下去,應(yīng)適時終止。即不充分的測試是不負(fù)責(zé)任的;過分的測試是一種資源的浪費,同樣也是一種不負(fù)責(zé)任的表現(xiàn)。因此在滿足軟件預(yù)期

28、的質(zhì)量標(biāo)準(zhǔn)時,應(yīng)確定質(zhì)量的投入/產(chǎn)出比。(4) 回歸測試。由于修改了原來的缺陷,將可能導(dǎo)致新的缺陷產(chǎn)生。因此修改缺陷后,應(yīng)集中對軟件的可能受影響的模塊/子系統(tǒng)進(jìn)行回歸測試,以確保修改缺陷后不引入新的軟件缺陷。第1章 軟件測試基礎(chǔ)(5) 80/20原則。測試實踐表明,系統(tǒng)中80%左右的缺陷主要來自20%左右的模塊/子系統(tǒng),因此應(yīng)當(dāng)花較多的時間和代價測試那些具有更多缺陷數(shù)目的程序模塊/子系統(tǒng)。(6) 設(shè)立獨立的測試機(jī)構(gòu)或委托第三方測試。由于思維定勢和心理因素等原因,開發(fā)工程師難以發(fā)現(xiàn)自己的錯誤,同時揭露自己程序中的錯誤也是件非常困難的事。因此,測試一般由獨立的測試部門或第三方機(jī)構(gòu)進(jìn)行,但需要軟件開

29、發(fā)工程師的積極參與。 第1章 軟件測試基礎(chǔ) 1.3 軟軟 件件 缺缺 陷陷1.3.1 軟件缺陷的定義軟件缺陷的定義軟件缺陷是對軟件產(chǎn)品預(yù)期屬性的偏離現(xiàn)象,它包括檢測缺陷和殘留缺陷。檢測缺陷(Detected Defect)是指軟件在進(jìn)入用戶使用之前被檢測出的缺陷。殘留缺陷(Residual Defect)是指軟件發(fā)布后存在的缺陷,包括在用戶安裝前未被檢測出的缺陷和已被發(fā)現(xiàn)但還未被修復(fù)的缺陷。軟件故障(Software Failure)是指用戶使用軟件時,由于殘留缺陷引起的軟件失效癥狀。 第1章 軟件測試基礎(chǔ)不要將軟件缺陷和軟件錯誤兩個概念混淆起來。軟件缺陷的范圍更廣,它涵蓋了軟件錯誤、不一致性

30、問題、功能需求定義缺陷和產(chǎn)品設(shè)計缺陷等。軟件錯誤僅是軟件缺陷的一種,即程序或系統(tǒng)的內(nèi)部缺陷,通常是軟件代碼本身的問題,如算法錯誤、語法錯誤、內(nèi)存泄漏、數(shù)據(jù)溢出等。軟件錯誤必須被修正,但軟件缺陷不一定被修正。第1章 軟件測試基礎(chǔ)缺陷類型(Type):根據(jù)缺陷的自然屬性劃分的缺陷種類。缺陷嚴(yán)重程度(Severity):因缺陷引起的故障對軟件產(chǎn)品的影響程度。缺陷優(yōu)先級(Priority):缺陷必須被修復(fù)的緊急程度。缺陷狀態(tài)(Status):缺陷通過一個跟蹤修復(fù)過程的進(jìn)展情況。缺陷起源(Origin):缺陷引起的故障或事件第一次被檢測到的階段。缺陷來源(Source):引起缺陷的起因。缺陷根源(Roo

31、t Cause):發(fā)生錯誤的根本因素。 第1章 軟件測試基礎(chǔ)1.3.2 軟件缺陷的分類軟件缺陷的分類由于軟件缺陷分布在軟件開發(fā)周期中的不同階段,對于不同階段,其缺陷的分類標(biāo)準(zhǔn)是不一樣的。由于軟件的缺陷有很多屬性,根據(jù)屬性也可將缺陷分成不同的種類。表1-3-1表1-3-5分別列出了缺陷優(yōu)先級、缺陷狀態(tài)、缺陷起源、缺陷來源及缺陷嚴(yán)重級別的示例。 第1章 軟件測試基礎(chǔ)表1-3-1 缺陷優(yōu)先級示例 級 別 描 述 級(Immediately) 缺陷必須被立即解決 級(Normal Queue) 缺陷需要正常排隊等待修復(fù)或列入軟件發(fā)布清單 級(Not Urgent) 缺陷可以在方便時被糾正 第1章 軟件

32、測試基礎(chǔ)表 1-3-2 缺陷狀態(tài)示例 狀 態(tài) 描 述 已提交(Submitted) 已提交的缺陷確認(rèn) 已確認(rèn)(Open) 確認(rèn)提交的缺陷,等待修復(fù) 已拒絕(Rejected) 拒絕已經(jīng)提交的缺陷,不需修復(fù)或不是缺陷或重新提交 已修復(fù)(Resolved) 缺陷被修復(fù),確認(rèn)被修復(fù)的缺陷 已關(guān)閉(Closed) 已經(jīng)被測試,將其關(guān)閉 第1章 軟件測試基礎(chǔ)表 1-3-3 缺陷起源示例 起 源 描 述 需求(Requirement) 在需求階段發(fā)現(xiàn)的缺陷 架構(gòu)(Architecture) 在構(gòu)架階段發(fā)現(xiàn)的缺陷 設(shè)計(Design) 在設(shè)計階段發(fā)現(xiàn)的缺陷 代碼(Code) 在編碼階段發(fā)現(xiàn)的缺陷 測試(Te

33、st) 在測試階段發(fā)現(xiàn)的缺陷 第1章 軟件測試基礎(chǔ)表 1-3-4 缺陷來源示例 來 源 描 述 需求(Requirement) 由于需求的問題引起的缺陷 架構(gòu)(Architecture) 由于構(gòu)架的問題引起的缺陷 設(shè)計(Design) 由于設(shè)計的問題引起的缺陷 代碼(Code) 由于編碼的問題引起的缺陷 測試(Test) 由于測試的問題引起的缺陷 集成(Integration) 由于集成的問題引起的缺陷,在測試階段發(fā)現(xiàn)的缺陷 第1章 軟件測試基礎(chǔ)表 1-3-5 缺陷的嚴(yán)重級別示例 缺陷級別 描 述 嚴(yán)重缺陷 (Critical) 不能執(zhí)行正常工作功能或重要功能,使系統(tǒng)崩潰或資源嚴(yán)重不足 1.

34、由于程序所引起的死機(jī),非法退出 2. 死循環(huán) 3. 數(shù)據(jù)庫發(fā)生死鎖 4. 錯誤操作導(dǎo)致的程序中斷 5. 嚴(yán)重的計算錯誤 6. 與數(shù)據(jù)庫連接錯誤 7. 數(shù)據(jù)通信錯誤 較嚴(yán)重缺陷 (Major) 嚴(yán)重地影響系統(tǒng)要求或基本功能的實現(xiàn),且沒有辦法更正。(重新安裝或重新啟動該軟件不屬于更正辦法) 1. 功能不符 2. 程序接口錯誤 3. 數(shù)據(jù)流錯誤 4. 輕微數(shù)據(jù)計算錯誤 一般缺陷 (Average Severity) 嚴(yán)重地影響系統(tǒng)要求或基本功能的實現(xiàn),但存在合理的更正辦法(重新安裝或重新啟動該軟件不屬于更正辦法) 1. 界面錯誤(附詳細(xì)說明) 2. 打印內(nèi)容、格式錯誤 3. 簡單的輸入限制未放在前臺

35、進(jìn)行控制 4. 刪除操作未給出提示 5. 數(shù)據(jù)輸入沒有邊界值限定或不合理 次要缺陷 (Minor) 使操作者不方便或遇到麻煩,但它不影響執(zhí)行工作或功能實現(xiàn) 1. 輔助說明描述不清楚 2. 顯示格式不規(guī)范 3. 系統(tǒng)處理未優(yōu)化 4. 長時間操作未給用戶進(jìn)度提示 5. 提示窗口文字未采用行業(yè)術(shù)語 改進(jìn)型缺陷 (Enhancement) 1. 對系統(tǒng)使用的友好性有影響,例如:名詞拼寫錯誤、 界面布局或色彩問題、文檔的可讀性、一致性等 2. 建議 第1章 軟件測試基礎(chǔ)1.4 測測 試試 用用 例例實現(xiàn)測試目標(biāo)、完成測試,是借助測試用例來實現(xiàn)的。測試用例是測試執(zhí)行的基礎(chǔ),概括地說,測試用例是為某個特定測

36、試目標(biāo)而設(shè)計的,它是測試操作過程序列、條件、期望結(jié)果及相關(guān)數(shù)據(jù)的一個特定的集合。因此,測試用例必須給出測試目標(biāo)、測試對象、測試環(huán)境、前提條件、輸入數(shù)據(jù)、測試步驟和預(yù)期結(jié)果。測試目標(biāo):回答為什么測試,如測試被測件的功能、性能、兼容性、安全性等;測試對象:回答測什么,如對象、類、函數(shù)、接口等;測試環(huán)境:回答測試用例運行時所處的環(huán)境,包括系統(tǒng)的軟硬件配置和設(shè)定等要求; 第1章 軟件測試基礎(chǔ)測試前提:回答測試在滿足什么條件下開始測試,即測試用例運行時所處的前提條件;輸入數(shù)據(jù):回答運行測試時需要運行哪些測試數(shù)據(jù),即在測試時,系統(tǒng)所接受的各種可變化的數(shù)據(jù)組;操作步驟:回答運行測試用例的操作步驟序列,如先打

37、開對話框,輸入第一組測試數(shù)據(jù),點擊運行按鈕等。預(yù)期結(jié)果:回答按操作步驟序列運行測試用例時,被測件的預(yù)期運行結(jié)果。 第1章 軟件測試基礎(chǔ)由于在測試時不可能進(jìn)行窮舉測試,所以應(yīng)以最小的財力和物力投入,在最短的時間內(nèi)以最低成本盡快地發(fā)現(xiàn)軟件缺陷。因此要提高測試效率、節(jié)約測試時間,就必須設(shè)計好測試用例。在實踐操作中,可遵循以下步驟:(1) 制定測試設(shè)計用例策略和思想,在軟件測試計劃中描述出來。軟件測試策略隨著軟件生命周期的變化、軟件測試方法、技術(shù)與工具的不同發(fā)生變化。這就要求我們在制定測試策略時,應(yīng)該綜合考慮測試策略的影響因素及其依賴關(guān)系。這些影響因素可能包括測試項目資源因素、項目的約束和測試項目的特

38、殊需要等。一個好的測試策略應(yīng)該包括實施的測試類型和測試的目標(biāo)、實施測試的階段、技術(shù)、用于評估測試結(jié)果和測試是否完成的評測和標(biāo)準(zhǔn)、對測試策略所述的測試工作存在影響的特殊事項等內(nèi)容。 第1章 軟件測試基礎(chǔ)(2) 設(shè)計測試用例的框架,即測試用例的結(jié)構(gòu)。在設(shè)計測試用例過程中,應(yīng)首先設(shè)計測試用例的框架。只有通過測試用例框架的建立,才可高效地完成所需要的測試用例的設(shè)計工作。軟件測試的目標(biāo)取決于客戶、開發(fā)人員和軟件企業(yè)對軟件質(zhì)量的需求,所以可以將測試目標(biāo)分為功能性需求、非功能性的系統(tǒng)需求。功能性需求比較好確定,而非功能性需求則比較難以確定。功能測試的基本目標(biāo)主要是從用戶需求出發(fā),根據(jù)達(dá)成的需求規(guī)格說明書,盡

39、早盡可能多地發(fā)現(xiàn)不滿足用戶需求、與需求規(guī)格說明書不一致的所有軟件缺陷。 第1章 軟件測試基礎(chǔ) 對于非功能性需求測試,主要涉及非功能性的質(zhì)量需求,包括性能、安全、兼容性等,其測試需求因項目不同而差異較大。如單機(jī)版的應(yīng)用軟件,在系統(tǒng)測試要求上是最低的,對性能、穩(wěn)定性有一定的要求,對兼容性要求較高(要求能運行在不同的操作系統(tǒng)上)。對于C/S或B/S應(yīng)用系統(tǒng),如網(wǎng)站、郵件系統(tǒng)等,對性能、安全性和可靠性要求通常較高,如對于門戶網(wǎng)站要求能有724小時的高可靠性運行等要求。在實際操作中,應(yīng)根據(jù)測試策略、軟件產(chǎn)品線、產(chǎn)品特性、質(zhì)量需求或測試目標(biāo)來建立測試用例的框架。通常從功能性測試目標(biāo)和非功能性測試目標(biāo)來分別

40、進(jìn)行設(shè)計,如圖1-4-1所示。 第1章 軟件測試基礎(chǔ)測試目標(biāo)功能性非功能性子系統(tǒng)1子系統(tǒng)2子系統(tǒng)n性能容錯性兼容性模塊1模塊2模塊n圖1-4-1 測試用例框架示意圖 第1章 軟件測試基礎(chǔ)(3) 逐步細(xì)化設(shè)計具體的測試用例。在設(shè)計測試用例時,應(yīng)根據(jù)需求規(guī)格說明書、相關(guān)的功能模塊、操作路徑/流程、尋找設(shè)計上的弱點、考慮錯誤的或者異常的輸入,往往可以發(fā)現(xiàn)更多的缺陷。另外,設(shè)計測試用例是一個知識的積累過程,對產(chǎn)品特性和應(yīng)用環(huán)境等理解越深,發(fā)現(xiàn)的缺陷會越多。因此測試用例的設(shè)計不能僅限定在測試執(zhí)行前,應(yīng)該貫穿在整個測試活動過程中,不斷細(xì)化和完善測試用例的設(shè)計。 第1章 軟件測試基礎(chǔ)(4) 采用技術(shù)評審,不

41、斷優(yōu)化測試用例。邀請系統(tǒng)需求分析工程師、設(shè)計工程師、技術(shù)支持工程師等對測試用例進(jìn)行技術(shù)評審,根據(jù)評審建議對測試用例進(jìn)行修改和完善。另外通過測試人員對領(lǐng)域知識的深入掌握和測試的不斷深入也可逐步優(yōu)化用例。第1章 軟件測試基礎(chǔ) 1.5 軟件測試分類軟件測試分類軟件測試分類,可按照軟件開發(fā)的階段、技術(shù)、測試實施組織和軟件工程的發(fā)展歷史階段等來進(jìn)行劃分。按照軟件工程的發(fā)展歷史和發(fā)展階段來劃分,軟件測試可以劃分為基于過程的軟件測試(即傳統(tǒng)的軟件測試)、基于對象的軟件測試和基于構(gòu)件的軟件測試。按照開發(fā)階段劃分,軟件測試可分為單元測試、集成測試、系統(tǒng)測試、確認(rèn)測試和驗收測試。 第1章 軟件測試基礎(chǔ)(1) 單元

42、測試:又稱模塊測試,其目的在于檢查每個單元能否正確實現(xiàn)詳細(xì)設(shè)計說明中的功能、性能、接口和設(shè)計約束等要求,發(fā)現(xiàn)單元內(nèi)部可能存在的各種缺陷。(2) 集成測試:又稱組裝測試,主要測試單元之間的接口關(guān)系,逐步集成為符合概要設(shè)計要求的整個系統(tǒng)。(3) 系統(tǒng)測試:在真實或模擬系統(tǒng)運行的環(huán)境下,為驗證和確認(rèn)系統(tǒng)是否達(dá)到需求規(guī)格說明書規(guī)定的要求,而對集成的硬件和軟件系統(tǒng)進(jìn)行的測試。(4) 驗收測試:按照項目任務(wù)書或合同、供需雙方約定的驗收依據(jù)文檔進(jìn)行的對整個系統(tǒng)的評測,決定是否接收或拒收系統(tǒng)。 第1章 軟件測試基礎(chǔ)按照測試實施組織劃分,軟件測試可分為開發(fā)方測試、用戶測試(測試)和第三方測試。(1) 開發(fā)方測試

43、:又稱“驗證測試”或“測試”。開發(fā)方在軟件開發(fā)環(huán)境下,通過檢測和提供客觀證據(jù),證實軟件的實現(xiàn)是否滿足規(guī)定的需求,可以和軟件的“系統(tǒng)測試”一并進(jìn)行。(2) 用戶測試:又稱“測試”。軟件開發(fā)商有計劃地免費將軟件分發(fā)到目標(biāo)用戶市場,在實際應(yīng)用環(huán)境下,用戶通過運行和使用軟件找出軟件使用過程中發(fā)現(xiàn)的軟件缺陷與問題,檢測與核實軟件實現(xiàn)是否符合用戶的預(yù)期要求,并把信息反饋給開發(fā)者。 第1章 軟件測試基礎(chǔ)(3) 第三方測試:又稱“獨立測試”,是介于軟件開發(fā)方和用戶之間的測試組織的測試。軟件第三方測試也就是由在技術(shù)、管理和財務(wù)上與開發(fā)方和用戶相對獨立的組織進(jìn)行的軟件測試。一般情況下是在模擬用戶真實應(yīng)用環(huán)境下,進(jìn)行軟件確認(rèn)測試。按照測試技術(shù),軟件測試可劃分為靜態(tài)測試和動態(tài)測試技術(shù),如圖1-5-1所示。靜態(tài)測試強(qiáng)調(diào)不運行程序,通過人工對程序和文檔進(jìn)行分析與檢查。靜態(tài)測試實際上是對軟件中的需求說明書、設(shè)計說

溫馨提示

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

評論

0/150

提交評論