軟件工程與軟件測試_第1頁
軟件工程與軟件測試_第2頁
軟件工程與軟件測試_第3頁
軟件工程與軟件測試_第4頁
軟件工程與軟件測試_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 軟件缺陷和軟件故障案例:軟件缺陷和軟件故障案例:案例1 美國迪斯尼公司的獅子王游戲軟件bug 兼容性問題兼容性問題案例2 美國航天局火星登陸事故 系統(tǒng)測試系統(tǒng)測試 銜接問題銜接問題 案例3 跨世紀“千年蟲”問題 案例4 “沖擊波”計算機病毒案例5 windows 2000 中文輸入法漏洞案例6 金山詞霸bug 一個混沌的過程一個混沌的過程 軟件質(zhì)量是軟件的生命,它直接影響軟件的使軟件質(zhì)量是軟件的生命,它直接影響軟件的使用與維護。用與維護。 那什么是軟件質(zhì)量?那什么是軟件質(zhì)量?liso/iec9126-1991(gb/t6260-1996)定義:定義: 軟件質(zhì)量是與軟件產(chǎn)品滿足明確或隱含軟件質(zhì)

2、量是與軟件產(chǎn)品滿足明確或隱含需求的能力有關(guān)的特征和特性的總和。需求的能力有關(guān)的特征和特性的總和。能滿足給定需求的特性能滿足給定需求的特性具有所期望的各種屬性組合的程度具有所期望的各種屬性組合的程度能滿足用戶綜合期望的程度能滿足用戶綜合期望的程度軟件的組合特性軟件的組合特性l面對眾多的質(zhì)量因素如何取折衷,這實際上就面對眾多的質(zhì)量因素如何取折衷,這實際上就是區(qū)分質(zhì)量因素對軟件質(zhì)量影響程度輕重的問是區(qū)分質(zhì)量因素對軟件質(zhì)量影響程度輕重的問題,即題,即軟件質(zhì)量模型軟件質(zhì)量模型。l常見的軟件質(zhì)量模型常見的軟件質(zhì)量模型l圖圖1.5所示為所示為iso/iec 9126-1991標準規(guī)定的軟標準規(guī)定的軟件質(zhì)量度

3、量模型。它由件質(zhì)量度量模型。它由3層組成,其中第層組成,其中第1層稱層稱為質(zhì)量特性,第為質(zhì)量特性,第2層稱為質(zhì)量子特性,第層稱為質(zhì)量子特性,第3層稱層稱為度量。為度量。 軟件質(zhì)量 質(zhì)量特性 質(zhì)量子特性 度量 功能性 適合性 準確性 互操作性 依從性 安全性 可靠性 成熟性 容錯性 易恢復性 可使用性 易理解性 易學習性 易操作性 效率 時間特性 資源特性 可維護性 易分析性 穩(wěn)定性 易變更性 易測試性 可移植性 適應性 易安裝性 遵循性 易替換性 度 量 由 使 用 單 位 自 行 決 定 新的新的iso/iec9126iso/iec9126軟件質(zhì)量模型軟件質(zhì)量模型(2001)(2001)l內(nèi)

4、部質(zhì)量內(nèi)部質(zhì)量 在軟件開發(fā)過程中在軟件開發(fā)過程中 可維護性、靈活性、可移植性、可重用性、可讀性可維護性、靈活性、可移植性、可重用性、可讀性、可測試性、可理解性、可測試性、可理解性l外部質(zhì)量外部質(zhì)量 在預定的系統(tǒng)環(huán)境中在預定的系統(tǒng)環(huán)境中 正確性、可用性、效率、可靠性、完整性、適應性正確性、可用性、效率、可靠性、完整性、適應性、準確性、堅固性、準確性、堅固性l使用質(zhì)量使用質(zhì)量 從用戶的觀點出發(fā)從用戶的觀點出發(fā) 有效性、生產(chǎn)率、安全性、滿意程度等有效性、生產(chǎn)率、安全性、滿意程度等軟件能力成熟度模型軟件能力成熟度模型-cmml美國卡內(nèi)基美國卡內(nèi)基-梅隆大學軟件工程研究所(梅隆大學軟件工程研究所(sei

5、)研制的)研制的cmm(capability maturity model)是用于衡量軟件)是用于衡量軟件過程能力的事實標準,同時也是目前軟件過程改進最過程能力的事實標準,同時也是目前軟件過程改進最好的參考標準。好的參考標準。cmm 1.0于1991年制定。 到2000年,cmm演化成為cmmi(capability maturity model integration)cmmi-se/sw 1.1(cmmi for system engineering and software engineering)于2002年1月正式推出。 成熟度的五個等級成熟度的五個等級過程域(過程域(pa)cmm

6、在中國在中國國內(nèi)國內(nèi)通過通過cmm等級評估的企業(yè)(等級評估的企業(yè)(2002年統(tǒng)計數(shù)據(jù))年統(tǒng)計數(shù)據(jù)) 公司名稱公司名稱 cmmcmm級別級別 通過時間通過時間 摩托羅拉 l5 2000-09 華為印度所 l4 2001-12 東大阿爾派 l3 2001-06 托普軟件 l3 2001-11 聯(lián)想軟件事業(yè)部 l3 2002-01鼎新公司 l2 1999-07 博通公司 l2 2001-04 用友軟件 l2 2001-06 浪潮通軟 l2 2001-11 東方通科技 l2 2001-12 新太科技 l2 2001-12 神州數(shù)碼 l2 2002-01 對軟件測試的誤解:對軟件測試的誤解:l如果發(fā)布出

7、去的軟件有質(zhì)量問題如果發(fā)布出去的軟件有質(zhì)量問題, ,那是軟件測試人員的錯。那是軟件測試人員的錯。l軟件測試技術(shù)要求不高軟件測試技術(shù)要求不高, ,至少比編程容易多了,隨便找一個至少比編程容易多了,隨便找一個人就能做。人就能做。l有時間就多測試一些有時間就多測試一些, ,來不及就少測試一些。來不及就少測試一些。l軟件測試是測試人員的事軟件測試是測試人員的事, ,與開發(fā)人員無關(guān)。與開發(fā)人員無關(guān)。l設(shè)計設(shè)計- -實現(xiàn)實現(xiàn)- -測試測試, ,軟件測試是開發(fā)后期的一個階段。軟件測試是開發(fā)后期的一個階段。l軟件產(chǎn)品開發(fā)完畢軟件產(chǎn)品開發(fā)完畢, ,再進行測試的觀念有悖于生命周期理論。再進行測試的觀念有悖于生命周

8、期理論。軟件產(chǎn)品質(zhì)量問題越晚發(fā)現(xiàn)軟件產(chǎn)品質(zhì)量問題越晚發(fā)現(xiàn), ,修復的代價越大。修復的代價越大。 1.4.1 軟件測試的定義軟件測試的定義測試是一個程序的執(zhí)行過程,其目的在于發(fā)測試是一個程序的執(zhí)行過程,其目的在于發(fā)現(xiàn)錯誤?現(xiàn)錯誤?測試是為了證明程序是沒有錯誤的?測試是為了證明程序是沒有錯誤的?l在在ieee提出的軟件工程標準術(shù)語中,軟件測試提出的軟件工程標準術(shù)語中,軟件測試被定義為:被定義為:“使用人工和自動手段來運行或測使用人工和自動手段來運行或測試某個系統(tǒng)的過程,其目的在于檢驗它是否滿試某個系統(tǒng)的過程,其目的在于檢驗它是否滿足規(guī)定的需求或弄清楚預期結(jié)果與實際結(jié)果之足規(guī)定的需求或弄清楚預期結(jié)果

9、與實際結(jié)果之間的差別。間的差別。”l 軟件測試是與軟件質(zhì)量密切聯(lián)系在一起的,軟件測試是與軟件質(zhì)量密切聯(lián)系在一起的,歸根結(jié)底,軟件測試是為了保證軟件質(zhì)量。歸根結(jié)底,軟件測試是為了保證軟件質(zhì)量。 1.4.1 軟件測試的定義軟件測試的定義 測 試 手 段 : 驗 證測 試 手 段 : 驗 證 ( v e r i f i c a t i o n ) 和 確 認和 確 認(validation)p驗證是指如何決定軟件開發(fā)的每個階段、每個步驟的產(chǎn)品驗證是指如何決定軟件開發(fā)的每個階段、每個步驟的產(chǎn)品是否正確無誤并與其前面的開發(fā)階段和開發(fā)步驟的產(chǎn)品相是否正確無誤并與其前面的開發(fā)階段和開發(fā)步驟的產(chǎn)品相一致。驗證

10、工作意味著在軟件開發(fā)過程中開展一系列活動一致。驗證工作意味著在軟件開發(fā)過程中開展一系列活動,旨在確保軟件能夠正確無誤地實現(xiàn)軟件的需求。,旨在確保軟件能夠正確無誤地實現(xiàn)軟件的需求。 “是否在正確地建造一個產(chǎn)品?是否在正確地建造一個產(chǎn)品?”p確認是指如何決定最后的軟件產(chǎn)品是否正確無誤。其目的確認是指如何決定最后的軟件產(chǎn)品是否正確無誤。其目的是證實在一個給定的外部環(huán)境中軟件的邏輯正確性。是證實在一個給定的外部環(huán)境中軟件的邏輯正確性。 “是否建成一個正確的產(chǎn)品?是否建成一個正確的產(chǎn)品?” 用戶要求用戶:我要什么?需求說明書分析員:我可以提供什么?設(shè)計說明書設(shè)計員:我要軟件做什么?源程序程序員:我要讓計

11、算機怎么做?運行結(jié)果計算機:程序運行得到的結(jié)果理解正確性表達正確性理解正確性設(shè)計正確性表達正確性理解正確性編碼正確性運行正確性輸入正確性相符嗎?123451 1質(zhì)量保證質(zhì)量保證 質(zhì)量保證(質(zhì)量保證(qa)工作通過預防、檢查與改進來保證)工作通過預防、檢查與改進來保證軟件質(zhì)量。軟件質(zhì)量。qa采用采用“全面質(zhì)量管理全面質(zhì)量管理”和和“過程改進過程改進”的原的原理開展質(zhì)量保證工作。軟件的質(zhì)量保證的措施主要有理開展質(zhì)量保證工作。軟件的質(zhì)量保證的措施主要有檢查檢查、評審評審和和測試測試。 2 2軟件測試軟件測試 測試雖然也與開發(fā)過程緊密相關(guān),但關(guān)心的不是過測試雖然也與開發(fā)過程緊密相關(guān),但關(guān)心的不是過程的

12、活動,而是對過程的產(chǎn)物以及開發(fā)出的軟件進行剖析程的活動,而是對過程的產(chǎn)物以及開發(fā)出的軟件進行剖析。 軟件質(zhì)量保證工程師軟件質(zhì)量保證工程師l流程引導和培訓流程引導和培訓l項目問題預警、問題協(xié)助解決項目問題預警、問題協(xié)助解決l項目審計和監(jiān)督項目審計和監(jiān)督l過程咨詢和指導過程咨詢和指導l對測試中發(fā)現(xiàn)的問題的分析、追蹤與回歸測試也是軟件對測試中發(fā)現(xiàn)的問題的分析、追蹤與回歸測試也是軟件測試中的重要工作,因此軟件測試是保證軟件質(zhì)量的一測試中的重要工作,因此軟件測試是保證軟件質(zhì)量的一個重要環(huán)節(jié)。個重要環(huán)節(jié)。l軟件質(zhì)量保證活動與軟件測試的關(guān)系可用下表說明:軟件質(zhì)量保證活動與軟件測試的關(guān)系可用下表說明: 比較的

13、內(nèi)容比較的內(nèi)容軟件測試軟件測試軟件質(zhì)量保證軟件質(zhì)量保證工作性質(zhì)工作性質(zhì)技術(shù)性工作技術(shù)性工作管理性工作管理性工作對象對象軟件產(chǎn)品軟件產(chǎn)品(包括階段性的產(chǎn)品)(包括階段性的產(chǎn)品)軟件過程軟件過程焦點焦點事后檢查事后檢查強調(diào)預防強調(diào)預防范圍范圍在研發(fā)部門或技術(shù)部門在研發(fā)部門或技術(shù)部門在公司層面,在公司層面,跨所部門跨所部門1.4.2 軟件測試貫穿于整個開發(fā)周期軟件測試貫穿于整個開發(fā)周期開發(fā)階段開發(fā)階段主要測試活動主要測試活動 需求分析確定測試步驟確定需求是否恰當生成功能測試用例確定設(shè)計是否符合需求 設(shè)計確定設(shè)計信息是否足夠準備結(jié)構(gòu)和功能的測試用例確定設(shè)計的一致性 編碼為單元測試產(chǎn)生結(jié)構(gòu)和功能測試的測

14、試用用例進行足夠的單元測試 測試系統(tǒng)測試應用系統(tǒng),著重在功能上 安裝把測試過的系統(tǒng)投入生產(chǎn) 維護修改缺陷并重新測試1.4.3 軟件測試的目的軟件測試的目的c為了保證軟件產(chǎn)品的最終質(zhì)量;為了保證軟件產(chǎn)品的最終質(zhì)量;c對軟件產(chǎn)品進行質(zhì)量控制;對軟件產(chǎn)品進行質(zhì)量控制;c對軟件質(zhì)量進行度量和評估;對軟件質(zhì)量進行度量和評估;c幫助軟件過程改進;幫助軟件過程改進;c為軟件可靠性提供依據(jù)。為軟件可靠性提供依據(jù)。 1.4.3 軟件測試的目的軟件測試的目的glen myers the art of software testing測試是一個程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;測試是一個程序的執(zhí)行過程,目的在于發(fā)現(xiàn)

15、錯誤;一個好的測試用例在于發(fā)現(xiàn)了還未曾發(fā)現(xiàn)的錯誤;一個好的測試用例在于發(fā)現(xiàn)了還未曾發(fā)現(xiàn)的錯誤;一個成功的測試是發(fā)現(xiàn)至今尚未察覺的錯誤的測試。一個成功的測試是發(fā)現(xiàn)至今尚未察覺的錯誤的測試。 注意:測試是為了證明程序有錯,而不能保證程序注意:測試是為了證明程序有錯,而不能保證程序 沒有錯誤。沒有錯誤。所有的測試都應追溯到用戶需求。所有的測試都應追溯到用戶需求。應當把應當把“盡早地和不斷地進行軟件測試盡早地和不斷地進行軟件測試”作為軟件測試者作為軟件測試者的座右銘。的座右銘。程序員應該避免檢查自己的程序,測試工作應該由獨立的程序員應該避免檢查自己的程序,測試工作應該由獨立的第三方來完成。第三方來完成

16、。pareto原則:測試發(fā)現(xiàn)的錯誤中原則:測試發(fā)現(xiàn)的錯誤中80%很可能起源于很可能起源于20%的的模塊中。應孤立這些疑點模塊,進行重點測試。模塊中。應孤立這些疑點模塊,進行重點測試。設(shè)計測試用例時,應該考慮各種情況。設(shè)計測試用例時,應該考慮各種情況。 (合法的、不合法的、異常的、極端的)(合法的、不合法的、異常的、極端的)對測試錯誤結(jié)果要有一個確認的過程。對測試錯誤結(jié)果要有一個確認的過程。制定嚴格的測試計劃。制定嚴格的測試計劃。完全測試是不可能的,測試需要終止。完全測試是不可能的,測試需要終止。程序修改后要回歸測試程序修改后要回歸測試妥善保存一切測試過程文檔。妥善保存一切測試過程文檔。l軟件測

17、試模型是對軟件測試過程的一種抽象,用于軟件測試模型是對軟件測試過程的一種抽象,用于定義軟件測定的流程和方法。定義軟件測定的流程和方法。l常用的軟件測試模型pv模型是最具有代表性的測試模型。模型是最具有代表性的測試模型。v模型最早是由模型最早是由paul rook在在20世紀世紀80年代后期提出的年代后期提出的。v模型模型l局限性:局限性: 把測試作為編碼之后的最后一個活動,需把測試作為編碼之后的最后一個活動,需求分析等前期產(chǎn)生的錯誤直到后期的驗收測試才能求分析等前期產(chǎn)生的錯誤直到后期的驗收測試才能發(fā)現(xiàn),忽視了對需求分析、系統(tǒng)設(shè)計等活動的驗證發(fā)現(xiàn),忽視了對需求分析、系統(tǒng)設(shè)計等活動的驗證和確認。和

18、確認。w模型模型w模型模型l局限性:局限性: w模型和模型和v模型都把軟件的開發(fā)視為需求、模型都把軟件的開發(fā)視為需求、設(shè)計、編碼等一系列串行的活動,無法支持迭代、設(shè)計、編碼等一系列串行的活動,無法支持迭代、自發(fā)性以及變更調(diào)整。自發(fā)性以及變更調(diào)整。 h模型模型lh模型中模型中, 軟件測試是一個完全獨立的流程,貫穿于整個產(chǎn)軟件測試是一個完全獨立的流程,貫穿于整個產(chǎn)品的周期,與其他流程并發(fā)地進行。品的周期,與其他流程并發(fā)地進行。 “盡早準備,盡早執(zhí)行盡早準備,盡早執(zhí)行”x模型模型lx模型是對模型是對v模型的改進,模型的改進,x模型提出針對單獨的程序片段模型提出針對單獨的程序片段進行相互分離的編碼和測

19、試,此后通過頻繁的交接,通過進行相互分離的編碼和測試,此后通過頻繁的交接,通過集成最終合成為可執(zhí)行的程序。集成最終合成為可執(zhí)行的程序。 1按測試方式劃分:靜態(tài)測試和動態(tài)測試按測試方式劃分:靜態(tài)測試和動態(tài)測試2按照測試實施組織劃分:按照測試實施組織劃分:開發(fā)方測試(開發(fā)方測試(測試)測試)用戶測試(用戶測試(測試)測試)第三方測試第三方測試3. 按照測試方法劃分:白盒測試和黑盒測試按照測試方法劃分:白盒測試和黑盒測試4按照測試過程劃分:按照測試過程劃分:單元測試單元測試集成測試集成測試系統(tǒng)測試系統(tǒng)測試驗收測試驗收測試按照測試目的劃分:按照測試目的劃分:名稱名稱說明說明功能測試功能測試測試軟件的功

20、能是否符合功能性需求,通常采用黑盒測試方式。一般由獨立測試人員執(zhí)行。健壯性測試健壯性測試測試軟件的容錯能力,驗證程序在各種異常情況下能否正確處理。接口測試接口測試對各個模塊進行聯(lián)調(diào)測試,包含程序內(nèi)接口和外接口。性能測試性能測試測試軟件在各種狀況下的性能,如在正?;蜃畲筘撦d下的狀況。強度測試強度測試測試系統(tǒng)在異常的資源配置下運行的情況。壓力測試壓力測試測試軟件系統(tǒng)的最大負載,超出此負載軟件可能會失常。用戶界面測試用戶界面測試測試系統(tǒng)的界面安全性測試安全性測試測試該系統(tǒng)防止非法侵入的能力??煽啃詼y試可靠性測試測試軟件是否滿足規(guī)格說明中規(guī)定的可靠性指標。安裝安裝/反安裝反安裝測試測試測試軟件在“全部、部分、升級”等狀況下的安裝/反安裝過程。文檔測試文檔測試測試內(nèi)部和外部文檔的清晰性和準確性。恢復測試恢復測試測試該系統(tǒng)從故障中恢復過來的能力。兼容性測試兼容性測試測試該系統(tǒng)與其它軟件硬件兼容的能力。 軟件測試工作必須要通過制定測試計劃、設(shè)計軟件測試工作必須要通過制定測試計劃、設(shè)計測試、實施測試、執(zhí)行測試、評估測試幾個階段來測試、實施測試、執(zhí)行測試、評估測試幾個階段來完成。其流程如圖完成。其流程如圖1.12所示。所示。 回歸測試 制定測試計劃 設(shè)計測試 實施測試 執(zhí)

溫馨提示

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

評論

0/150

提交評論