【軟件工程】軟件測試及軟件質量控制_第1頁
【軟件工程】軟件測試及軟件質量控制_第2頁
【軟件工程】軟件測試及軟件質量控制_第3頁
【軟件工程】軟件測試及軟件質量控制_第4頁
【軟件工程】軟件測試及軟件質量控制_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、軟件測試及軟件質量控制 第六章軟件系統(tǒng)統(tǒng)的開發(fā)發(fā)過程中中,軟件件測試占占據(jù)著重重要地位位。盡管管人們采采取了多多種保證證軟件質質量的措措施,由由于軟件件系統(tǒng)的的客觀復復雜性,人們的的主觀認認識不可可能完全全符合客客觀實際際,完美美無缺,每個階階段的技技術審查查也不可可能毫無無遺漏地地查出和和糾正所所有的設設計和分分析上的的錯誤,在軟件件生命周周期的各各個階段段,都不不可避免免地會產產生差錯錯,這些些差錯遲遲早會在在軟件的的生產和和使用過過程中暴暴露出來來。軟件工程程實踐的的經驗表表明,發(fā)發(fā)現(xiàn)軟件件的時刻刻越晚,改正這這些錯誤誤所花費費的代價價也越高高,如果果在軟件件投入使使用之前前沒有發(fā)發(fā)現(xiàn)和

2、糾糾正軟件件的大部部分錯誤誤,人們們付出的的代價會會更高,往往會會造成惡惡劣的后后果。從廣義上上來說,軟件測測試工作作散布在在軟件生生命周期期的各個個開發(fā)階階段,人人們認識識到,軟軟件測試試是保證證軟件質質量的主主要手段段,各階階段的評評審工作作和驗證證工作,均是廣廣義概念念上的測測試工作作。而主主要的測測試是在在編碼和和測試這這兩個階階段進行行的。因因此,狹狹義的軟軟件測試試就是程程序測試試。6.1軟軟件測測試基本本概念G.J.Myers給出了關關于測試試的一些些規(guī)則,被軟件件工程領領域認可可:(1)測測試是為為了發(fā)現(xiàn)現(xiàn)程序中中的錯誤誤而執(zhí)行行程序的的過程;(2)好好的測試試方案極極有可能能

3、發(fā)現(xiàn)迄迄今為止止尚未發(fā)發(fā)現(xiàn)的錯錯誤;(3)成成功的測測試是發(fā)發(fā)現(xiàn)了至至今為止止尚未發(fā)發(fā)現(xiàn)的錯錯誤。6.1軟軟件測測試基本本概念這些規(guī)則則,實際際上是軟軟件測試試的狹義義概念程序序測試。狹義的軟軟件測試試:測試試是為了了發(fā)現(xiàn)錯錯誤而執(zhí)執(zhí)行程序序的過程程。是根根據(jù)軟件件開發(fā)的的各個階階段的說說明和程程序的內內部結構構而精心心設計的的一批測測試用例例(有輸輸入數(shù)據(jù)據(jù)及預期期的結果果),并并利用這這些測試試用例執(zhí)執(zhí)行程序序及發(fā)現(xiàn)現(xiàn)錯誤的的過程。6.1軟軟件測測試基本本概念廣義的軟軟件測試試是對軟軟件計劃劃、軟件件系統(tǒng)分分析、軟軟件設計計、軟件件編碼進進行的查查錯活動動,包括括代碼執(zhí)執(zhí)行和人人工審查查活

4、動,測試的的目的是是找出軟軟件生命命周期的的各個階階段的錯錯誤,有有利于以以后進行行修改和和糾正。但測試試本身不不修正錯錯誤,調調試才會會修正錯錯誤。即即找錯的的活動是是測試;分析錯錯誤的性性質與位位置,進進行糾錯錯的活動動是調試試,保證證算法的的正確實實現(xiàn)。軟軟件測試試與程序序測試都都是查找找錯誤的的活動,差別在在于查找找錯誤的的范圍不不同。6.1軟軟件測測試基本本概念由于測試試的目標標是暴露露程序的的錯誤,從心理理學角度度看,由由設計者者自己進進行測試試是不恰恰當?shù)?,設計小小組和測測試小組組應該分分別設立立,有利利于進行行客觀和和公正的的軟件測測試。測測試是有有限的,由于通通常的測測試過程

5、程不可能能窮盡一一切情況況,即使使經過了了嚴格的的測試之之后,仍仍然可能能存在沒沒有被發(fā)發(fā)現(xiàn)的錯錯誤隱藏藏在程序序中,不不能證明明程序中中沒有錯錯誤。6.1軟軟件測測試基本本概念因此,測測試僅僅僅有可能能找出程程序的錯錯誤,測測試不能能證明程程序是正正確的。軟件工工程中所所有其它它階段都都是“建建設性”的,軟軟件工程程師力圖圖從抽象象概念出出發(fā),逐逐步設計計出具體體的軟件件系統(tǒng),而測試試人員的的工作表表面上看看卻是“破壞性性”的,竭力證證明軟件件中含有有錯誤,不能按按預定要要求正確確工作。凡是進進行對比比的方式式均可理理解為測測試驗證證。6.1.2軟軟件測試試的對象象軟件測試試應該貫貫穿于軟軟

6、件生命命期的各各個階段段,各階階段的工工作是相相互銜接接、相互互影響的的,前一一階段發(fā)發(fā)生的問問題自然然要影響響到下一一階段的的工作。為了把把握各個個環(huán)節(jié)的的正確性性,人們們需要進進行各種種確認和和驗證工工作。軟件確認認是廣義義上的軟軟件測試試,它是是企圖證證明軟件件在一個個給定的的外部環(huán)環(huán)境中軟軟件的邏邏輯正確確性的一一系列活活動和過過程,如如需求說說明書的的確認、程序的的確認等等。6.1.2軟軟件測試試的對象象程序的確確認又分分為靜態(tài)態(tài)確認與與動態(tài)確確認。靜態(tài)確認認一般不不在計算算機上執(zhí)執(zhí)行程序序,而是是通過程程序正確確性證明明、靜態(tài)態(tài)分析或或人工分分析來確確認程序序的正確確性;動態(tài)確認認

7、主要通通過動態(tài)態(tài)分析和和動態(tài)測測試,用用執(zhí)行程程序的過過程來檢檢查執(zhí)行行的狀態(tài)態(tài),確認認程序是是否有問問題;6.1.2軟軟件測試試的對象象正確性證證明主要要是企圖圖繞過復復雜的測測試,直直接證明明程序的的正確性性。如程序的的輸入輸輸出斷言言法。設程序段段為S,其前斷言言為P,后斷言為為R。如果執(zhí)行行S以前P為真,則則執(zhí)行S后R也為真,則證明明S是正確的的,記為為PSR。6.1.2軟軟件測試試的對象象任何程序序總可以以分成S1、S2、Sn個結點,對應的的斷言為為R1、R2、Rn,起初R1為輸入斷斷言,R2為輸出斷斷言,也也是下一一個輸入入斷言,Rn為最后的的輸出斷斷言,我我們總可可以,將將S1、

8、S2、Sn逐個證明明,自頂頂向下或或自底向向上都可可證明程程序的正正確性,該分支支已發(fā)展展為計算算機代數(shù)數(shù)學;6.1.2軟軟件測試試的對象象軟件驗證證也屬于于廣義上上的軟件件測試,它試圖圖證明在在軟件生生命期的的各個階階段、各各階段的的邏輯協(xié)協(xié)調性、完備性性和正確確性。包括系統(tǒng)統(tǒng)分析員員理解用用戶要求求的正確確性、表表達的正正確性、設計人人員對需需求規(guī)格格說明理理解的正正確性、設計與與設計表表達的正正確性、程序編編碼的正正確性和和運行軟軟件程序序時輸入入的正確確性、運運行結果果的正確確性等,運行結結果與用用戶預期期的結果果是否一一致等,這說明明任何一一個環(huán)節(jié)節(jié)上發(fā)生生了問題題都可能能在軟件件測

9、試中中表現(xiàn)出出來。6.1.3測測試信息息流將測試的的過程用用數(shù)據(jù)流流圖表示示,可得得測試信信息流如如圖6-1所示示。 (至軟件配置)軟件配置 1 測試結果 2 錯誤 3 修正的軟件測試配置 測試結果測試工具 測試 評價 調試 正確 預測結果 出錯率 4 數(shù)據(jù) 可靠性 分析圖6-1 測試信息流 6.1.3測測試信息息流1.測試試過程需需要三類類輸入:(1)軟軟件配置置:包括括軟件開開發(fā)文檔檔(用戶戶文檔、需求規(guī)規(guī)格說明明、軟件件設計說說明、源源程序代代碼)、目標執(zhí)執(zhí)行程序序、數(shù)據(jù)據(jù)結構;(2)測測試配置置:包括括測試計計劃、測測試用例例、測試試驅動程程序等;實際上上在整個個軟件開開發(fā)過程程中,測

10、測試配置置只是軟軟件配置置的一個個子集;(3)測測試工具具:為提提高軟件件測試效效率,使使用測試試工具為為測試工工作服務務;如:測試數(shù)數(shù)據(jù)自動動生成程程序,靜靜態(tài)分析析程序、動態(tài)分分析程序序、測試試結果分分析程序序及標準準例程測測試數(shù)據(jù)據(jù)庫等。6.1.3測測試信息息流測試之后后,對所所有測試試結果進進行分析析,將實實際測試試的結果果與預期期的結果果進行比比較。如如果發(fā)現(xiàn)現(xiàn)出錯的的數(shù)據(jù),則意味味著軟件件有錯誤誤,需要要糾錯,應進行行調試,確定錯錯誤的位位置和出出錯的性性質,改改正這些些錯誤,同時修修正相關關文檔。修正過過的文檔檔一般需需經過再再次測試試,直到到通過測測試為止止。6.1.3測測試信

11、息息流通過收集集和分析析測試結結果的有有關數(shù)據(jù)據(jù),可以以建立軟軟件評估估的可靠靠性模型型。如果經常常出現(xiàn)需需要修改改設計的的嚴重錯錯誤,那那么軟件件的質量量和可靠靠性就值值得懷疑疑,同時時也表明明需要進進一步測測試。相反,如如果軟件件功能能能夠正確確完成,出現(xiàn)的的錯誤易易于修改改,那么么就可能能有兩種種評價:6.1.3測測試信息息流一種是軟軟件的質質量和可可靠性達達到可以以接受的的程度。另一種是是所做的的測試還還不足以以發(fā)現(xiàn)軟軟件的嚴嚴重錯誤誤。如果得到到的評價價是沒有有發(fā)現(xiàn)錯錯誤,很很有可能能測試的的配置考考慮得不不夠充分分和細致致,軟件件仍有潛潛伏的錯錯誤,以以后改正正錯誤需需要付出出高昂

12、的的代價。6.1.3測測試信息息流2.軟件件錯誤可可以從不不同角度度進行分分類:(1)從從錯誤對對程序的的影響程程度來分分:嚴嚴重性錯錯誤:嚴嚴重影響響程序的的運行,甚至不不能運行行;一一般性錯錯誤:經經常影響響程序的的運行,特殊情情況下表表現(xiàn)正常常;6.1.3測測試信息息流微小錯誤誤:一般般情況下下程序能能運行,特殊情情況下表表現(xiàn)異常常;無影響性性錯誤:不影響響程序的的運行。6.1.3測測試信息息流(2)從從開發(fā)過過程的轉轉換環(huán)節(jié)節(jié)上分:構構造錯錯誤:編編碼實現(xiàn)現(xiàn)與設計計不一致致;設計錯誤誤:設計計邏輯與與說明不不一致;說明書錯錯誤:說說明書與與用戶要要求不一一致;需需求錯錯誤:不不滿足用用

13、戶的實實際要求求;配配置錯誤誤:軟件件配置不不滿足實實際環(huán)境境。6.1.3測測試信息息流(3)從從測試結結果的表表現(xiàn)上分分類:1)功能能錯誤:由系統(tǒng)統(tǒng)需求分分析不完完整引起起的;2)結構構錯誤:由總體體設計的的錯誤引引起的;3)過程程錯誤:由詳細細設計的的錯誤引引起的;4)數(shù)據(jù)據(jù)錯誤:由軟件件編碼或或詳細設設計的錯錯誤引起起的;5)編碼碼錯誤:由軟件件編碼引引起的錯錯誤;6)其它它錯誤:由文檔檔和其它它系統(tǒng)元元素引起起的錯誤誤;6.1.3測測試信息息流6.1.4軟軟件測試試步驟與與軟件開開發(fā)各階階段的關關系軟件測試試一般分分為四個個步驟:(1)單單元測試試(也稱稱模塊測測試):針對軟軟件設計計

14、的基本本單元程序序模塊,進行正正確性檢檢驗的測測試工作作。目的的在于發(fā)發(fā)現(xiàn)各個個模塊內內部可能能存在的的各種差差錯。單單元測試試需要從從程序內內部結構構出發(fā)設設計測試試用例,多個模模塊可以以平行、獨立地地進行測測試;6.1.4軟軟件測試試步驟與與軟件開開發(fā)各階階段的關關系(2)集集成測試試(也稱稱組裝測測試,聯(lián)聯(lián)合測試試):在在單元測測試的基基礎上,將所有有模塊按按設計要要求集成成在一起起進行測測試,以以檢驗總總體設計計中各模模塊間的的接口設設計問題題、模塊塊之間的的相互影影響、上上層模塊塊存在的的各種差差錯及全全局數(shù)據(jù)據(jù)結構對對系統(tǒng)的的影響等等方面。6.1.4軟軟件測試試步驟與與軟件開開發(fā)各

15、階階段的關關系(3)確確認測試試(也稱稱驗收測測試,有有效性測測試):主要檢檢驗軟件件的功能能和性能能是否與與需求說說明書中中的規(guī)定定一致。(4)系系統(tǒng)測試試:將軟軟件系統(tǒng)統(tǒng)作為一一個元素素,放入入整個實實際的計計算機系系統(tǒng)中,與計算算機硬件件、其他他軟件、使用人人員等系系統(tǒng)元素素結合在在一起,在實際際使用環(huán)環(huán)境下進進行綜合合全面的的測試。6.1.4軟軟件測試試步驟與與軟件開開發(fā)各階階段的關關系前面多次次強調,使用軟軟件生命命期(瀑瀑布模型型)模型型,軟件件開發(fā)過過程是一一個自頂頂向下,逐步細細化的過過程,而而軟件測測試過程程則是與與開發(fā)過過程相反反的次序序進行的的,是一一個自底底向上,逐步集

16、集成的過過程,低低一層測測試為上上一層測測試準備備測試條條件和數(shù)數(shù)據(jù)驅動動環(huán)境,也包含含兩者平平行進行行測試。6.1.4軟軟件測試試步驟與與軟件開開發(fā)各階階段的關關系因此,發(fā)發(fā)現(xiàn)引起起錯誤的的原因順順序也與與開發(fā)過過程的相相次序反反,首先先對每一一個模塊塊進行單單元測試試,消除除程序模模塊內部部邏輯上上和功能能上的錯錯誤和缺缺陷,再再對照軟軟件設計計進行集集成測試試(有時時也叫整整體測試試),檢檢測和排排除子系系統(tǒng)或系系統(tǒng)結構構上的錯錯誤,再再對照需需求進行行確認測測試(也也稱為有有效性測測試),最后進進行系統(tǒng)統(tǒng)測試,運行系系統(tǒng),看看軟件系系統(tǒng)是否否滿足功功能和性性能及其其它要求求。6.1.4

17、軟軟件測試試步驟與與軟件開開發(fā)各階階段的關關系需求分析軟件設計軟件編碼確認測試集成測試單元測試系統(tǒng)測試圖6-2 軟件件測試與與軟件開開發(fā)過程程間的關關系6.1.4軟軟件測試試步驟與與軟件開開發(fā)各階階段的關關系需求分析 說明書概要設計 說明書詳細設計 說明書源程序 代碼確認測試集成測試單元測試系統(tǒng)測試圖6-3 軟件件測試與與開發(fā)文文檔之間間的關系系6.1.5軟軟件測試試原則(1)將將軟件測測試貫穿穿于軟件件開發(fā)的的各個階階段中,在開發(fā)發(fā)過程中中盡早地地發(fā)現(xiàn)和和預防錯錯誤,杜杜絕隱患患,提高高軟件質質量;(2)測測試用例例必須包包含輸入入數(shù)據(jù)和和與之對對應的預預期輸出出結果,精心設設計測試試用例;

18、(3)測測試時應應避免設設計者檢檢查自己己設計的的程序;(4)設設計測試試用例時時,應包包括合理理的與不不合理的的輸入條條件;6.1.5軟軟件測試試原則(5)充充分注意意測試中中出現(xiàn)的的錯誤群群集現(xiàn)象象,若發(fā)發(fā)現(xiàn)錯誤誤數(shù)目較較多,則則可能殘殘存的錯錯誤數(shù)目目也較多多,這種種錯誤出出現(xiàn)的群群集現(xiàn)象象,已為為許多程程序測試試實踐所所證實;(6)嚴嚴格執(zhí)行行測試計計劃,以以軟件需需求說明明書為基基準設計計測試用用例,排排除測試試的隨意意性;6.1.5軟軟件測試試原則(7)對對每一個個測試結結果做全全面檢查查,不能能遺漏錯錯誤出現(xiàn)現(xiàn)的征兆兆,軟件件修改后后要進行行回歸測測試,即即用修改改前測試試過的測

19、測試用例例進行測測試,再再用新的的測試用用例測試試;(8)妥妥善保存存測試計計劃、測測試用例例、出錯錯統(tǒng)計數(shù)數(shù)據(jù)和最最終分析析報告,為維護護提供方方便。在一個程程序段中中,還存存在著尚尚未發(fā)現(xiàn)現(xiàn)的錯誤誤概率與與已發(fā)現(xiàn)現(xiàn)的錯誤誤數(shù)正相相關。6.1.5軟軟件測試試原則殘存錯誤的可能性已發(fā)現(xiàn)的錯誤數(shù)圖6-4 軟件件錯誤的的群集現(xiàn)現(xiàn)象示意意圖6.2軟軟件測測試的方方法軟件的測測試方法法很多,不同的的出發(fā)點點得到不不同的測測試方法法。有:從測試過過程來分分:靜態(tài)態(tài)分析法法、動態(tài)態(tài)測試法法;從觀察結結構的透透明性方方式來分分:白盒盒法、黑黑盒法、灰盒法法;從獲得測測試數(shù)據(jù)據(jù)形式上上分:窮窮盡法;等價類類劃

20、分法法;邊界界值分析析法;6.2軟軟件測測試的方方法從邏輯分分析上分分:因果果圖法;錯誤推推測法;從測試步步驟上分分:單元元測試、集成測測試、確確認測試試、系統(tǒng)統(tǒng)測試等等;從考察形形式上分分:功能能測試,邏輯測測試;6.2軟軟件測測試的方方法如何測試試得更完完全、怎怎樣進行行測試用用例的設設計,是是軟件測測試中的的關鍵技技術。無無論用哪哪種方法法進行測測試,都都是設法法用較少少的測試試用例集集合測試試出程序序中較多多的潛在在錯誤。靜態(tài)分析析時,不不執(zhí)行程程序,可可對需求求分析說說明書、軟件設設計說明明書、源源程序做做結構檢檢查、流流圖分析析、符號號執(zhí)行來來分析軟軟件可能能導致的的異常情情況,找

21、找出軟件件錯誤。從測試試過程來來分:靜靜態(tài)分析析法、動動態(tài)測試試法;6.2軟軟件測測試的方方法結構檢查查是手工工分析技技術,對對需求說說明、程程序設計計、編碼碼、測試試工作進進行評議議,虛擬擬地(模模擬)執(zhí)執(zhí)行程序序,在評評議中發(fā)發(fā)現(xiàn)和檢檢查錯誤誤;流圖分析析是通過過分析流流程圖、代碼結結構來檢檢查程序序錯誤,便于進進行編碼碼分析和和測試結結果分析析;6.2軟軟件測測試的方方法符號執(zhí)行行是定義義符號化化數(shù)據(jù),為程序序的每條條路徑給給出符號號表達式式,對特特定路徑徑輸入符符號,經經處理輸輸出符號號,判斷斷程序的的行為是是否錯誤誤,這種種方法復復雜,易易出錯,較少使使用?;液蟹ㄊ鞘前缀蟹ǚê秃诤泻?/p>

22、法相結結合使用用的方法法,僅對對重點路路徑和程程序段用用白盒法法測試,大部分分用黑盒盒法進行行測試。6.2軟軟件測測試的方方法動態(tài)測試試是直接接執(zhí)行程程序進行行測試,包括功功能測試試、接口口測試和和結構測測試,觀觀察程序序的行為為,記錄錄執(zhí)行的的結果,從執(zhí)行行結果來來分析程程序可能能出現(xiàn)的的錯誤;有些人設設想,不不管使用用那種測測試方法法,只要要對每一一種可能能發(fā)生的的情況都都進行測測試,能能正確通通過,就就可以得得到完全全正確的的程序。6.2軟軟件測測試的方方法包含所有有可能情情況的測測試稱為為窮盡測測試,實實際上,通常不不可能做做到窮盡盡測試。因為各各種輸入入數(shù)據(jù)的的排列組組合情況況往往多

23、多到無法法實際測測試完成成的程度度。如用用黑盒法法測試三三個整數(shù)數(shù)型的輸輸入數(shù)據(jù)據(jù),如果果每個整整數(shù)是16位二二進制數(shù)數(shù),則輸輸入數(shù)據(jù)據(jù)有216216216=2482.81014種排列組組合。6.2軟軟件測測試的方方法如果每測測試一次次需要1毫秒,測試完完畢這些些排列組組合的各各種情況況需要一一萬年,另外還還需測試試不合法法的輸入入情況,實際上上不可能能窮盡所所有組合合情況。因此,一般的的軟件測測試是有有限測試試。Alpha()測試:通通用軟件件產品為為了征集集用戶的的意見,在開發(fā)發(fā)者的場場所,由由用戶進進行的測測試,記記錄用戶戶發(fā)現(xiàn)的的錯誤和和問題。6.2軟軟件測測試的方方法Beta()測試

24、:在在一個或或多個用用戶自己己的場所所,由最最終用戶戶進行,并記錄錄在測試試中遇到到的所有有問題和和想法。重要的通通用軟件件產品,大多經經過和測試。6.3測測試方方案與測測試用例例設計測試試方案是是軟件測測試中的的關鍵問問題。測測試方案案包括預預定要測測試的功功能、結結構,應應該要輸輸入的測測試數(shù)據(jù)據(jù)和輸入入這些數(shù)數(shù)據(jù)后預預期的結結果測試用用例。測測試用例例的設計計是其中中較困難難的問題題,不同同的測試試數(shù)據(jù)發(fā)發(fā)現(xiàn)程序序錯誤的的能力差差別很大大,為了了提高測測試效率率,降低低測試成成本,應應該選用用高效的的測試數(shù)數(shù)據(jù)。因因為不可可能進行行窮盡測測試,選選用少量量高效的的測試數(shù)數(shù)據(jù),進進行盡可可

25、能完備備的測試試就顯得得更重要要了。6.3測測試方方案與測測試用例例設計測試試方案的的基本目目標是,確定一一組最有有可能發(fā)發(fā)現(xiàn)某個個或某類類錯誤的的測試用用例。有有多種測測試技術術,同一一種測試試技術在在不同的的應用場場合效果果可能相相差很大大,因此此,通常常需要聯(lián)聯(lián)合使用用多種測測試技術術來設計計測試用用例。通常的做做法是用用黑盒法法設計基基本測試試方案,再用白白盒法補補充一些些方案。6.4白白盒法法(邏輯輯覆蓋)白盒法也也稱邏輯輯驅動法法(邏輯輯覆蓋法法),從從軟件的的具體邏邏輯結構構和執(zhí)行行路徑出出發(fā),設設計測試試用例。具有語語句覆蓋蓋、判定定覆蓋(分支覆覆蓋)、條件覆覆蓋、判判定/條條

26、件覆蓋蓋、路徑徑覆蓋、條件組組合覆蓋蓋、點覆覆蓋、邊邊覆蓋,下面以以一個經經典例子子分別介介紹:設有某個個算法片片段的程程序流程程圖如下下:6.4白白盒法法(邏輯輯覆蓋)圖6-5程序段程序框圖 (A1)AND(B=0) (A=2)OR(X1) X=X/AX=X+1abcdeTT6.4白白盒法法(邏輯輯覆蓋)該程序片片段有四四條路徑徑:abd,acd,ace,aed。(1)語句覆蓋蓋:選擇擇足夠的的測試用用例使程程序中每每條語句句至少執(zhí)執(zhí)行一次次。為了使每每個語句句都執(zhí)行行一次,程序的的執(zhí)行路路徑只需需經過a、b、c、d、e各點即可可。如果果選擇路路徑ace,則能保證證程序中中的語句句都執(zhí)行行一

27、次。6.4白白盒法法(邏輯輯覆蓋)例如,選選擇測試試用例:A=2,B=0,X=3,預期的結結果為:A=2,B=0,X=2.5;但是,許許多路徑徑得不到到測試,這種測測試很不不充分。圖6-5程序段程序框圖 (A1)AND(B=0) (A=2)OR(X1) X=X/AX=X+1abcdeTT6.4白白盒法法(邏輯輯覆蓋)(2)判判定覆覆蓋(也也稱分支支覆蓋):判定定是一個個邏輯表表達式的的結果。選擇足足夠的測測試用例例,使程程序中每每個判定定至少都都能獲得得一次“真”值值和一次次“假”值,從從而使程程序的每每個判定定的每個個分支至至少都執(zhí)執(zhí)行一次次。例如,選選擇測試試用例:A=3,B=0,X=3,

28、預期結果果為:A=3,B=0,X=1;選擇測試試用例:A=2,B=1,X=0,預期結果果為:A=2,B=1,X=1;6.4白白盒法法(邏輯輯覆蓋)這組測試試用例覆覆蓋了路路徑acd和aed,滿足了判判定覆蓋蓋要求。判定覆覆蓋比語語句覆蓋蓋強,但但是判定定覆蓋只只關心整整個判定定表達式式的值,對程序序邏輯的的覆蓋程程度仍然然不高,如上面面的測試試,只覆覆蓋了全全部路徑徑的一半半路徑。6.4白白盒法法(邏輯輯覆蓋)(3)條條件覆覆蓋:條條件為邏邏輯表達達式中的的各個邏邏輯分量量。選擇擇足夠的的測試用用例,使使得程序序判定中中的每個個條件都都能獲得得各種可可能的結結果。如圖6-5中,有四個個條件:A

29、1,B=0,A=2,X1,每個條件件可能出出現(xiàn)的各各種結果果為:a點出現(xiàn):A1,A1;B=0,B0;b點出現(xiàn):A=2,A2;X1,X1;6.4白白盒法法(邏輯輯覆蓋)例如,選選擇測試試用例:A=2,B=0,X=4,預期結果果為:A=2,B=0,X=3;選擇測試試用例:A=1,B=1,X=1,預期結果果為:A=1,B=1,X=1;這組測試試用例覆覆蓋了路路徑acd,aed和abd,滿足了條條件覆蓋蓋要求。條件覆覆蓋比判判定覆蓋蓋強,它它使判定定表達式式中的每每個條件件都取得得了兩個個不同的的結果。6.4白白盒法法(邏輯輯覆蓋)但也有相相反的情情況,每每個條件件雖然取取得兩個個不同的的結果,判定表

30、表達式卻卻始終只只取一個個值,例例如:取取數(shù)據(jù):A=2,B=0,X=1;滿足A1,B=0,A=2,X1的條件,執(zhí)行路路徑ace;A=1,B=1,X=2;滿足A1,B0,A2,X1的條件,執(zhí)行路路徑abd;滿足了條條件覆蓋蓋,卻不不滿足判判定覆蓋蓋,第二二個判定定表達式式的值總總為真。6.4白白盒法法(邏輯輯覆蓋)(4)判判定/條件覆覆蓋:選選擇足夠夠的測試試用例,使得程程序判定定中的每每個條件件都能獲獲得各種種可能的的結果,并且使使得每個個判定都都取得各各種可能能的結果果。例如,選選擇測試試用例:A=2,B=0,X=4,預期結果果為:A=2,B=0,X=3;選擇測試試用例:A=1,B=1,X=

31、1,預期結果果為:A=1,B=1,X=1;6.4白白盒法法(邏輯輯覆蓋)這組測試試用例覆覆蓋了路路徑acd,aed和abd,滿足了判判定/條條件覆蓋蓋要求。但它也也并不比比條件覆覆蓋更強強。6.4白白盒法法(邏輯輯覆蓋)(5)條條件組合合覆蓋:選擇足足夠的測測試用例例,使得得程序判判定中的的條件的的各種可可能組合合都至少少出現(xiàn)一一次。如圖6-5中,需要測測試覆蓋蓋條件組組合的下下述八種種情況:1)A1,B=0 ;2) A1,B0;3)A1,B=0;4)A1,B0;5) A=2,X16)A=2,X18) A2,X16.4白白盒法法(邏輯輯覆蓋)用A=2,B=0,X=4,預期結果果:A=2,B=0

32、,X=3,覆蓋情況況1)、5);用A=2,B=1,X=1,預期結果果:A=2,B=1,X=2,覆蓋情況況2)、6)用A=1,B=0,X=2,預期結果果:A=1,B=0,X=3,覆蓋情況況 3)、7)用A=1,B=1,C=1,預期結果果:A=1,B=1,X=1,覆蓋情況況 4)、8)6.4白白盒法法(邏輯輯覆蓋)條件組合合覆蓋是是最強的覆蓋,雖然這這四個測測試實現(xiàn)現(xiàn)了條件件組合覆覆蓋,但但并沒有有覆蓋每每一條路路徑,如如:路徑徑acd遺漏了。以上各種種技術基基本上是是依次增增強的順順序,但但測試用用例的數(shù)數(shù)量也急急劇增加加。開銷銷大,應應注意權權衡。6.4白白盒法法(邏輯輯覆蓋)(6)點點覆蓋:

33、圖論中中的點覆覆蓋定義義為:如如果連通通圖G的子圖G是連通的的,而且且包含G的所有節(jié)節(jié)點,則則稱G是G的點覆蓋蓋。如果果把程序序流程圖圖的每個個處理框框(含一一個或多多個語句句)作為為一個節(jié)節(jié)點,就就畫出了了程序圖圖。滿足足點覆蓋蓋的要求求是選取取足夠多多的測試試用例,測試執(zhí)執(zhí)行程序序時的路路徑,至至少經過過程序圖圖的每個個節(jié)點一一次。顯顯然,點點覆蓋的的要求和和語句覆覆蓋的要要求是相相同的。6.4白白盒法法(邏輯輯覆蓋)(7)邊邊覆蓋:圖論中中的邊覆覆蓋定義義為:如如果連通通圖G的子圖G是連通的的,而且且包含G的所有邊邊,則稱稱G是G的邊覆蓋蓋。為了了滿足邊邊覆蓋的的測試要要求,使使得程序序

34、的執(zhí)行行路徑經經過程序序圖中的的每一條條邊。通通常邊覆覆蓋和判判定覆蓋蓋是一致致的。6.4白白盒法法(邏輯輯覆蓋)(8)路路徑覆蓋蓋:選擇擇足夠的的測試用用例,使使得程序序中的每每條可能能組合路路徑都至至少執(zhí)行行一次。(如果果程序圖圖中有環(huán)環(huán),則每每個環(huán)至至少經過過一次。)它是是相當強強的邏輯輯覆蓋標標準,選選擇的測測試用例例更具有有代表性性,暴露露錯誤的的能力也也更強。6.4黑黑盒法法(邏輯輯覆蓋)黑盒測試試法把程程序看成成是一個個黑盒子子,不考考慮程序序內部的的執(zhí)行過過程,著著眼于外外部特性性,在接接口上進進行測試試,僅考考慮輸入入與輸出出能否與與需求規(guī)規(guī)格說明明書對應應起來,輸入能能否正

35、確確的接收收,輸出出能否得得到正確確的結果果。也稱稱為數(shù)據(jù)據(jù)驅動或或輸入/輸出驅驅動測試試,或功功能測試試。黑盒法包包括等價價類劃分分、邊界界值分析析、因果果圖法。6.5.1等等價類劃劃分一個理想想的測試試用例能能夠獨自自發(fā)現(xiàn)某某一類錯錯誤。一一般的測測試是以以輸入數(shù)數(shù)據(jù)為基基礎進行行的,我我們著眼眼于劃分分輸入數(shù)數(shù)據(jù)值的的情況,以便找找出有代代表性的的測試數(shù)數(shù)據(jù),減減少測試試工作量量。6.5.1等等價類劃劃分假設我們們可以把把輸入的的數(shù)據(jù)域域劃分成成有限的的等價類類,用每每個等價價類的代代表值作作為測試試用例的的輸入數(shù)數(shù)據(jù)進行行測試,等價于于該類的的任何其其它值作作為設計計用例的的輸入數(shù)數(shù)據(jù)

36、進行行的測試試。即:如果等等價類中中的一個個測試用用例檢測測出程序序的一個個錯誤,那么這這一等價價類的其其余測試試用例也也能發(fā)現(xiàn)現(xiàn)同樣的的錯誤。相反,若測不不出錯誤誤,則該該等價類類的其他他測試用用例,也也測不出出錯誤。6.5.1等等價類劃劃分等價類劃劃分的原原則:(1)如如果規(guī)定定了輸入入值的取取值范圍圍,則可可劃分出出一個有有效的等等價類(輸入值值在此范范圍內),兩個個無效的的等價類類(輸入入值小于于最小值值、或大大于最大大值);(2)如如果規(guī)定定了輸入入數(shù)據(jù)的的個數(shù),則類似似地也可可以劃分分出一個個有效等等價類和和兩個無無效等價價類。6.5.1等等價類劃劃分(3)如如果規(guī)定定了輸入入數(shù)據(jù)

37、的的一組值值,而且且程序對對不同輸輸入值做做不同地地處理,則每個個允許的的值是一一個有效效的等價價類,還還有一個個無效的的等價類類(任何何一個不不允許的的輸入值值);(4)如如果規(guī)定定了輸入入數(shù)據(jù)必必須遵循循的規(guī)則則,則可可以劃分分出一個個有效的的等價類類(符合合規(guī)則的的輸入數(shù)數(shù)據(jù))和和若干個個無效的的等價類類(從各各種不同同角度違違反規(guī)則則);6.5.1等等價類劃劃分(5)如如果輸入入數(shù)據(jù)為為整型,則可以以劃分出出正整數(shù)數(shù)、零和和負整數(shù)數(shù)三個有有效類;(6)如如果程序序處理的的對象是是表格,則應該該使用空空表、以以及含有有一項或或多項的的表進行行測試。以上列舉舉了可能能情況的的一部分分,還可

38、可以根據(jù)據(jù)經驗進進行劃分分。上面面是針對對輸入數(shù)數(shù)據(jù)而言言,對輸輸出數(shù)據(jù)據(jù)也可類類似劃分分。6.5.1等等價類劃劃分根據(jù)等價價類劃分分來設計計測試方方案時主主要使用用下面的的兩個步步驟(先先劃分好好等價類類):1)設計計一個新新的測試試方案,盡可能能多的覆覆蓋尚未未被覆蓋蓋的有效效等價類類;重復復這一步步驟直到到所有有有效等價價類都被被覆蓋為為止;2)設計計一個新新的測試試方案,使它覆覆蓋一個個,而且且只覆蓋蓋一個尚尚未被覆覆蓋的無無效等價價類,重重復這一一步驟直直到所有有無效等等價類都都被覆蓋蓋為止;6.5.2邊邊界值分分析經驗表明明,程序序在處理理邊界情情況時最最容易發(fā)發(fā)生錯誤誤忽忽略邊界

39、界數(shù)據(jù)域域問題。所以選選取稍微微高于或或低于邊邊界值的的數(shù)據(jù)進進行測試試。啟發(fā)發(fā)規(guī)則如如下:(1)輸輸入條件件規(guī)定取取值范圍圍或輸入入個數(shù)時時,取邊邊界值的的上下值值或個數(shù)數(shù)的上下下界設計計測試用用例;(2)如如果輸出出條件規(guī)規(guī)定取值值范圍,取邊界界上下浮浮動值作作為測試試數(shù)據(jù);6.5.2邊邊界值分分析(3)規(guī)規(guī)格說明明中提出出輸入輸輸出有序序集,取取有序集集的第一一個和最最后一個個元素作作為測試試數(shù)據(jù);(4)分分析規(guī)格格說明,找出其其他可能能存在的的邊界條條件,取取其上下下浮動值值作為測測試數(shù)據(jù)據(jù)。6.5.3因因果圖法法因果圖可可以提供供邏輯條條件和相相應動作作之間的的簡潔邏邏輯關系系表示。

40、因果圖的的使用可可以分為為如下步步驟:(1)列列出模塊塊的原因因和和效果(動作),給每每個原因因和效果果一個標標示符;(2)把把原因、效果用用邏輯符符號連接接起來,畫出原原因效果果圖,標標出約束束條件;6.5.3因因果圖法法(3)原原因相對對于判定定表中的的條件,效果相相對于判判定表中中的動作作,把原原因效果果圖轉換換為判定定表;(4)把把判定表表中右邊邊部分的的每一列列表示的的情況轉轉換為測測試用例例。6.5.3錯錯誤推測測法錯誤推測測法在很大程程度上依依靠人的的直覺和和經驗進進行。有有時利用用其他測測試方法法測試后后的程序序表現(xiàn),推測應應該如何何進行下下一步的的測試。也可利利用程序序錯誤清

41、清單作為為推測測測試的依依據(jù)。6.5.3綜綜合測試試策略對軟件系系統(tǒng)的實實際測試試,往往往利用多多種測試試方法進進行,形形成綜合合測試策策略。通通常是用用黑盒法法設計一一些基本本的測試試用例,再用白白盒法補補充設計計一些必必要的測測試用例例,黑盒盒、白盒盒法相結結合灰盒法法進行測測試。具具體策略略為:(1)在在任何情情況下都都應該該使用邊邊界值分分析法進進行測試試。經驗驗表明這這種方法法設計出出的測試試用例,暴露程程序錯誤誤的能力力最強,應該包包括輸入入和輸出出數(shù)據(jù)的的邊界情情況;6.5.3綜綜合測試試策略(2)必必要時用用等價類類劃分法法補充測測試用例例;(3)必必要時用用錯誤推推測法補補充

42、測試試用例;(4)對對照程序序邏輯,檢查設設計測試試用例,可根據(jù)據(jù)對程序序的可靠靠性要求求采用不不同的邏邏輯覆蓋蓋標準,補充測測試用例例,達到到邏輯覆覆蓋標準準;(5)如如果有輸輸入條件件的組合合,就應應從輸入入條件及及其組合合開始測測試。6.5.3綜綜合測試試策略對于集成成測試可可以使用用模塊的的自頂向向下的結結合方式式,也可可以使用用自底向向上的結結合方式式進行測測試,還還可用輔輔助測試試工具協(xié)協(xié)助測試試。軟件系統(tǒng)統(tǒng)測試完完后,應應對軟件件配置進進行復查查,確保保軟件的的有關文文檔資料料的完整整齊全,分類編編目,便便于軟件件的維護護和修改改。審查查的資料料包括:用戶所所需的文文檔(用用戶手

43、冊冊、操作作手冊);設計計文檔;源程序序;測試試文檔(測試說說明書,測試報報告)及及其它說說明等。6.6軟軟件調調試程序測試試只是發(fā)發(fā)現(xiàn)錯誤誤的跡象象,并不不清楚具具體錯誤誤的位置置和產生生的原因因,應該該立即進進行調試試,即糾糾正錯誤誤的工作作,它包包含兩方方面工作作:(1)確確定程序序中錯誤誤的具體體位置和和性質;(2)修修改錯誤誤。調試必須須由程序序員自己己來進行行。6.6軟軟件調調試調試技術術有以下下類別:輸出存儲儲器內容容:發(fā)現(xiàn)現(xiàn)問題時時,設法法保留現(xiàn)現(xiàn)場信息息,把所所有寄存存器和主主存中相相關部分分的內容容打印出出來進行行分析研研究。打印關鍵鍵變量的的動態(tài)內內容:為為取得關關鍵變量

44、量的動態(tài)態(tài)值,在在程序中中插入標標準的打打印語句句,檢驗驗在某個個事件發(fā)發(fā)生后變變量是否否按預期期的要求求進行變變化。6.6軟軟件調調試利用調試試工具跟跟蹤程序序的動態(tài)態(tài)變化,單步跟跟蹤,檢檢查主存存和寄存存器內容容,檢查查重要變變量內容容,檢查查是否進進入預定定的程序序分支,設置斷斷點,當當程序運運行到檢檢查的重重點位置置,暫停停程序運運行,觀觀察主要要的變化化信息,分析程程序狀態(tài)態(tài),決定定繼續(xù)跟跟蹤還是是停止執(zhí)執(zhí)行,為為程序的的調試提提供了有有力的手手段。調試的策策略有:試探法法,回溯溯法,對對分查找找法、歸歸納法、演繹法法??筛鶕?jù)個人人經驗和和具體情情況靈活活應用。6.7軟軟件質質量控

45、制制高質量是是產品得得以存在在和生長長的前提提,軟件件工程的的主要目目標之一一就是要要獲得高高質量的的軟件。在軟件件工程誕誕生之前前,由于于計算機機設備條條件的限限制,計計算機發(fā)發(fā)展的早早期,內內存容量量有限,執(zhí)行速速度不高高,當時時的軟件件設計特特別強調調效率。隨著技技術的發(fā)發(fā)展,軟軟件規(guī)模模的擴大大,軟件件復雜性性的增加加,人們們對軟件件質量的的觀點早早已發(fā)生生了很大大變化,更強調調軟件的的全面質質量評價價。6.7.1軟軟件質量量評價不同的人人員對軟軟件質量量關心的的著重點點不同,反映了了對軟件件質量的的不同要要求。用戶關心心軟件產產品是否否滿足規(guī)規(guī)定的功功能和性性能要求求,軟件件運行是是

46、否可靠靠,是否否易于學學習掌握握,易于于使用,是否有有較高的的運行效效率,是是否可以以從一個個環(huán)境移移植到另另一個環(huán)環(huán)境等問問題。軟件開發(fā)發(fā)人員既既要開發(fā)發(fā)滿足質質量要求求的最終終產品,又要注注意軟件件開發(fā)過過程中的的每個階階段的質質量。6.7.1軟軟件質量量評價開發(fā)人員員常把產產品外部部特性用用軟件內內部質量量結構來來對應。維護人員員要求軟軟件系統(tǒng)統(tǒng)、軟件件文檔清清晰、軟軟件文檔檔與源代代碼一致致,軟件件易于修修改、易易于維護護。管理人員員關心的的是軟件件的總體體質量特特性,在在軟件質質量與開開發(fā)工期期之間進進行折中中選擇;6.7.1軟軟件質量量評價但影響軟軟件質量量的各因因素之間間是相互互

47、聯(lián)系、甚至是是相互矛矛盾的,如追求求可靠性性要犧牲牲一定的的時間和和空間效效率為代代價,要要求軟件件不但能能在合法法的輸入入情況下下正確地地運行,而且還還應該能能夠安全全地排除除非法的的入侵和和處理意意外的事事件。一般要求求軟件具具有良好好的結構構,齊全全的文檔檔資料,易于閱閱讀和理理解,便便于修改改和維護護,內部部層次結結構清晰晰、人機機界面友友好,用用戶樂于于使用。6.7.1軟軟件質量量評價國際標準準化機構構建議,軟件質質量模型型由三層層組成:高層:軟軟件質量量需求評評價準則則(SQRC);中層:軟軟件質量量設計評評價準則則(SQDC);低層:軟軟件質量量度量評評價準則則(SQMC);6.

48、7.1軟軟件質量量評價多數(shù)軟件件同行公公認的一一般質量量按如下下特性進進行評價價:正確性:(功能能度)在在預定的的環(huán)境下下,軟件件實現(xiàn)的的功能達達到設計計規(guī)范和和滿足用用戶要求求的程度度;可靠性:軟件在在給定的的條件下下和規(guī)定定的時間間內完成成預定職職能的概概率;即即保持其其性能的的能力相相關的屬屬性;易用性:用戶學學習軟件件、運行行操作軟軟件、準準備輸入入、理解解輸出所所做的努努力程度度,根據(jù)據(jù)用戶評評估使用用軟件所所需進行行努力的的程度相相關的屬屬性;6.7.1軟軟件質量量評價效率:在在規(guī)定的的條件下下,軟件件表現(xiàn)的的性能級級別與所所使用資資源總量量(包括括人員、時間、財力)關系的的屬性;

49、可維護性性:軟件件修改難難易程度度的一組組屬性;可移植性性;(可可轉換性性)指一一個軟件件從一個個環(huán)境轉轉換到另另一個環(huán)環(huán)境運行行的能力力的相關關屬性。以上六條條是常見見的評價價方面。6.7.1軟軟件質量量評價還有其它它方面的的特性來來評價軟軟件質量量,衡量量總體質質量的優(yōu)優(yōu)劣程度度。如:健壯性:在硬件件發(fā)生故故障、輸輸入數(shù)據(jù)據(jù)無效或或操作失失誤等意意外情況況下,系系統(tǒng)不至至于崩潰潰,能作作出適當當響應的的程度;完整性:(安全全性)對對未經授授權的人人使用軟軟件或數(shù)數(shù)據(jù)的企企圖,系系統(tǒng)能夠夠控制(禁止)的程度度;6.7.1軟軟件質量量評價可測試性性:系統(tǒng)統(tǒng)容易測測試的程程度;可再用性性:在其其

50、他應用用中該軟軟件可以以被再次次使用的的程度(或范圍圍);可互連性性:把軟軟件系統(tǒng)統(tǒng)與其他他系統(tǒng)連連接起來來的能力力。除了定性性評價外外,人們們逐漸重重視軟件件的質量量度量,它是在在系統(tǒng)運運行過程程中進行行動態(tài)檢檢測,不不斷收集集軟件性性能方面面的數(shù)據(jù)據(jù),利用用軟件質質量模型型(如軟軟件可靠靠性模型型、軟件件復雜度度模型等等)進行行分析和和評價。6.7.2軟軟件質量量控制做好軟件件質量的的控制,就要加加強軟件件生命期期各個階階段的軟軟件質量量保證,需要做做好如下下幾方面面的軟件件管理工工作:(1)采采用技術術手段保保證軟件件質量:在軟件件開發(fā)過過程中,注意采采用科學學的軟件件工程方方法和工工具來保保證所開開發(fā)軟件件的質量量;6.7.2軟軟件質量量控制(2)組組織技術術評審:在軟件件開發(fā)的的每個階階段結束束后,都都要組織織評審,對質量量進行評評價,可可以及早早地發(fā)現(xiàn)現(xiàn)軟件開開發(fā)過程程中的可可能引起起軟件質質量問題題的潛在在錯誤;(3)加加強軟件件測試:軟件測測試是軟軟件質量量保證的的重要手手段。測測試可以以發(fā)現(xiàn)軟軟件中大大多數(shù)隱隱藏的錯錯誤,測測試愈充充分,軟軟件中的的隱患就就有可能能暴露得得愈徹底底;6.7.2軟軟件質量量

溫馨提示

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

評論

0/150

提交評論