[摘要]隨著軟件產業(yè)的發(fā)展,軟件測試已經成為軟件工程的重要部分。對軟件測試技術的研究與應用也成為人們關注的課題。本文以某酒店商務管理系統(tǒng)為例,以測試計劃、測試分析的形式,介紹軟件測試技術的原理、方法、過程以及如何應用軟件測試技術測試軟件。
[關鍵詞]軟件測試;信息系統(tǒng);白盒測試;黑盒測試
[中圖分類號]TP311
[文獻標識碼]A
[文章編號]1005-6432(2008)48-0108-02
隨著人們對軟件產品質量的要求越來越高,軟件測試技術也越來越受到人們的重視,軟件測試在整個軟件開發(fā)中占據了一半或一半以上的工作量。因此,對軟件測試技術的研究一直是人們關注的課題。本文也將對軟件測試技術的原則、方法、步驟進行研究,并以某酒店商務管理系統(tǒng)這一個實例加以探討。無論怎樣強調軟件測試的重要性和它對軟件可靠性的影響都不過分。在開發(fā)大型軟件系統(tǒng)的漫長過程中,面對著極其錯綜復雜的問題,人的主觀認識不可能完全符合客觀現(xiàn)實,與工程密切相關的各類人員之間的通信和配合也不可能完美無缺,因此,在軟件生命周期的每個階段都不可避免地會產生差錯。由于軟件開發(fā)至今離不開人的創(chuàng)造性勞動,所以錯誤的發(fā)生是不可避免的,軟件測試的目標就是要找出這些錯誤,預防和排除這些錯誤。
所以軟件測試可定義為:按照特定規(guī)程,發(fā)現(xiàn)軟件錯誤的過程。其目的就是在軟件投入生產性運行之前,盡可能多地發(fā)現(xiàn)軟件中的錯誤。測試人員根據上述過程輸入信息測試程序并評價測試結果,當測試結果與期望結果存在差異時,往往程序有錯,此時可采用測試排錯技術定位錯誤并改正之。通過對測試結果的收集和評價,軟件質量和軟件可靠性的一些定性指標即能逐步確定下來。
1 技術基礎
1.1 軟件測試技術
軟件測試技術大體上可分為兩大類:白盒測試技術、黑盒測試技術。
白盒測試技術是根據程序的控制結構設計測試用例。原則是:①保證模塊中每一獨立的路徑至少執(zhí)行一次;②保證所有判斷的每一分支至少執(zhí)行一次;③保證每一循環(huán)都在邊界條件下至少各執(zhí)行一次;④驗證所有內部數(shù)據結構的有效性。白盒測試有兩種方法:邏輯覆蓋和基本路徑測試法。
黑盒測試是已知產品應該具有的功能,通過測試檢驗每個功能是否都能正常使用。黑盒測試又稱功能測試,是指在軟件的接口上進行測試,即看它能否滿足功能要求,輸入能否被正確地接收并正確地輸出結果,以及能否保持外部信息(如數(shù)據文件)的完整性等。黑盒測試著眼于軟件的外部特性,而不考慮軟件的內部邏輯結構,測試僅在程序界面上進行。黑盒測試主要有三種方法:等價分類法、邊界值分析法、錯誤猜測法。
1.2 測試終止標準
黑盒測試和白盒測試都是選擇測試,不可能徹底發(fā)現(xiàn)程序的所有錯誤。顯然測試過少,程序的遺留錯誤較多,將降低其可靠性,但過量的測試,也會增大軟件成本。規(guī)定測試策略和應達目標:白盒測試時一般可規(guī)定以完全覆蓋為標準,即語句覆蓋率和分支覆蓋率分別達到100%,滿足了這些條件就可終止測試。黑盒測試時可結合程序的實際情況選擇一種或數(shù)種方法,(例如邊界值法或等價類法)來設計測試用例。當把所有測試用例全部用完后測試便可終止。
1.3 軟件測試的步驟
根據鄭人杰、殷人昆、陶永雷在《實用軟件工程》(1997)中,對軟件工程的開發(fā)過程和測試過程的比較,發(fā)現(xiàn)兩者應該是對應的。軟件設計由設計藍圖到產品實現(xiàn)是一個由粗到精的結構化的設計過程。軟件測試則是由精到粗的逆向驗證過程。
我們將根據以上描述的測試原則、測試技術、測試步驟,對某酒店商務管理系統(tǒng)做軟件測試。
2 軟件測試的應用
2.1 系統(tǒng)概述
為了保證酒店管理系統(tǒng)的各項功能可靠地實現(xiàn),編寫了此測試計劃,對所開發(fā)軟件的各功能模塊和整個系統(tǒng)進行測試。本測試計劃主要用于發(fā)現(xiàn)系統(tǒng)開發(fā)過程中出現(xiàn)的各種不完善之處,發(fā)現(xiàn)軟件設計中的錯誤,要求的測試環(huán)境是Visual Foxpro,WIN DOWS XP,測試條件是各數(shù)據庫文件框架已經建立,內容為空。該管理系統(tǒng)分為以下幾個主模塊:
(1)營業(yè)管理模塊(YYGL):主要針對酒店的營業(yè)情況進行計算機管理,按時間流程分點菜、上菜、退菜、結賬四個主模塊。
(2)統(tǒng)計報表模塊(TJBB):統(tǒng)計并打印營業(yè)狀況,產生一個明晰的報表提供給酒店經營管理者。
(3)系統(tǒng)維護模塊(XTWH):提供對此餐飲管理系統(tǒng)維護工作的一些模塊,主要是在數(shù)據庫發(fā)生意外事故時維護數(shù)據庫。
2.2 測試項目設計
限于篇幅我們僅以幾個典型模塊的測試為例,介紹如何使用白盒測試技術和黑盒測試技術對軟件系統(tǒng)進行測試。
(1)KL(口令檢測模塊)測試。內容:測試當輸入的數(shù)據分別為正確、不正確時,系統(tǒng)是否能正確處理。測試用例:(等價分類法)用戶權限選擇“操作員”身份,(正確口令為admin)當輸入均為正確時,系統(tǒng)進入系統(tǒng)說明菜單。用戶權限再選擇“boss”身份(口令admin),“系統(tǒng)管理員”身份(口令123456),作類似的測試,因篇幅關系,不再贅述。在進入系統(tǒng)后測試三種用戶權限是否不一致。分析:當用戶權限以三種身份進入系統(tǒng)時,軟件系統(tǒng)提供給用戶的界面是完全相同的。這肯定與用戶的需求是不一致的。否則就不用以三種身份進入系統(tǒng)了。所以,口令檢測模塊只是完成了部分功能,其身份鑒別功能沒有實現(xiàn)。
(2)YYGL(營業(yè)管理模塊)中的“點菜”模塊測試。內容:本項測試是為了檢測包括桌號、人數(shù)、份數(shù)、菜名等字段是否正確傳遞。為檢測點菜功能,我們采用動態(tài)測試,采用白盒測試基本路徑覆蓋法來設計測試用例。分析:對Visual Foxpro代碼進行的分析,可以看出當動態(tài)測試進行時,經過了每一個判斷路徑,顯示的結果同預測的結果相同。
(3)CTRB(酒店日報模塊)測試。內容:測試日報模塊能否正確處理一天的統(tǒng)計報表工作。測試用例:邏輯覆蓋法,分析:日報是一天的銷售情況總結,一天最好只進行一次,軟件系統(tǒng)沒有鑒別功能,當日報生成后就刪除了記錄,會出現(xiàn)“今日無記錄”狀態(tài)。如果酒店停業(yè)幾天或幾天不用該系統(tǒng),在生成日報時,系統(tǒng)會提示“還有××天的日報沒生成,請生成”,這時只有在系統(tǒng)初始化或者修改系統(tǒng)日期逐天生成日報后,才能繼續(xù)使用日報功能。
(4)YYGL(營業(yè)管理模塊)中的“指定上菜”模塊測試。內容:測試“指定上菜”功能是否能夠實現(xiàn)。測試用例:基本路徑覆蓋法,當輸入正確時,顯示點此菜而沒上萊的客桌的信