基於模型的軟體測試技術探析論文

基於模型的軟體測試技術探析論文

  摘 要:近年來,隨著科技資訊的快速發展,軟體的功能性和複雜性增強,軟體測試與可靠性評估的難度逐步加大。筆者主要分析了現在廣泛應用的面向物件軟體開發技術和軟體自動化測試技術的現狀,總結了基於模型的軟體測試特點及不足,並簡單介紹了基於模型的軟體測試流程。

  關鍵詞:軟體產業;模型;測試流程

  軟體產業在國家資訊化,工業化程序中發揮越來越重要的作用,是推動我國經濟社會發展的基礎性、戰略性和先導性產業。保障軟體質量,維護國家和社會資訊保安已是國家必須解決的重點問題。進行軟體測試是保證軟體質量的關鍵階段,是保證軟體生存期的重要步驟。軟體測試,即在軟體正式投入執行前,對軟體需求分析、設計規格說明和編碼進行最終複審的活動。其目的是為了檢驗軟體系統是否滿足需求並針對發現的問題進行改進。 目前,我國軟體質量測試研究中,對軟體質量測評模型與測試資料自動生成方法的研究,已經成軟體工程領域的研究熱點。基於模型的軟體測試方式是軟體編碼階段的主要測試方法,透過故障排除法,檢測軟體質量,具有執行速度快,效率高、檢測效能佳等特點。但是也存在誤報、漏報和故障機理等程式問題。筆者透過分析國內外軟體質量相關技術現狀,對基於模型的軟體測試技術特點和存在的主要問題進行了分析,闡述了基於模型的軟體測試流程。

  1 國內外軟體質量相關技術現狀

  近幾年,國家對軟體安全問題越來越重視,不少高校和國家研究機構從事軟體測試研究,透過借鑑國外先進理論和引進技術,結合我國軟體質量問題,基於模型的軟體測試技術得到了快速發展並應用到實際測試中。但是還是遠遠落後於國外軟體測試技術,一方面,在歐美髮達國家,軟體測試工作是一個非常獨立的職業,是軟體質量控制必不可少的環節;在我國,很多軟體企業軟體測試工作只停留在單元測試,功能測試等環節,甚至根本不進行質量測試,專業的測試工作人員所佔比例小;另一方面,我國軟體產業質量較低,軟體測試標準化、規範化操作尚未形成,而軟體測試的通用化、網路化和智慧化水平與國外相比,更是相差甚遠。

  2 模型的軟體測試技術特點

  2.1 軟體測試評價一體化

  基於模型的軟體測試技術根據被測試應用程式的分析設計模型,自動生成測試模型、產生測試用例和進行測試結果評價。

  2.2 軟體測試自動化水平及測試效率高

  基於模型的軟體測試在測試過程中,首先提高了軟體測試效率,減少了測試人員的工作量;其次在軟體成本降低的同時,軟體產品質量提高了;最後,可以隨時生成各種統計資料,提高高層監控整個軟體測試過程的能力。

  2.3 有效解決了測試失效辨識問題

  基於模型的軟體測試技術是對其他軟體測試技術的有效補充,往往能發現其他測試技術難以發現的故障,尤其是對邏輯複雜故障測試效果好,保障了軟體質量。

  3 模型的軟體測試存在的主要問題

  模型的軟體測試工作是一項具體且全面的工作過程。首先,工作人員方面,不僅需要測試人員具備一定的理論基礎,還要掌握相關工具使用方法。其次,在實際應用過程中,我們發現基於模型的軟體測試技術存在不少軟體質量問題,尚不能取代已有的其他測試技術,還需從事此行業的工作人員進一步研究和實踐,更好的補充其他測試技術不足之處。以下簡述了存在的幾個主要問題並進行了簡要分析。

  3.1 誤報問題

  誤報問題是系統沒有發生故障而報警,誤報資訊是模型的軟體測試技術普遍存在的問題。這是由於一些故障的發生和確定是在動態的資訊執行中形成的',而基於模型的軟體測試技術大多是靜態分析技術,誤報問題在靜態分析的測試工具工作中是不可避免的。以下以OCL在建模的程序排程系統中的靜態模型為例,見圖1。 圖1 靜態模型 上圖是對系統的靜態描述,雖然可以形成所需模型,但是顯然對該系統的描述還是不精確的。我們知道,處在就緒狀態的程序和等待進入就緒狀態的程序集合之間是不相交的,而系統中始終只能有一個處於活動狀態的程序,活動程序與前兩個程序也不會發生集合。這樣,靜態圖的生成並不是準確的,誤報問題由此產生。現在不少高校和研究所將動態測試與靜態測試進行互配測試,以期解決測試中的誤報問題。

  3.2 漏報問題

  漏報是指系統發生了故障而沒有報警,是系統故障中又一常見問題。基於模型的軟體測試是由模型定義和模型檢測演算法進行軟體質量測試的,由於模型定義和模型檢測演算法在具體軟體模型檢測中存在差異,漏報問題也是不可避免。 我們知道,由於模型定義是由故障本身及所用工具決定的,而軟體模型多種多樣,測試工具因模型變化,具體的模型所用的檢測工具在設計過程中從檢測的效率性和降低軟體複雜性出發,都會設計形成自己認為最簡便合理的檢測演算法,這樣就形成了軟體檢測中普遍存在漏報問題,即使是相同的模型,由於檢測工具的差異,導致檢測故障結果也存在差異性。

最近訪問