摘 要:本文首先概述了軟件測試技術相關理論,然后對軟件測試技術的幾種典型方法進行了較為詳細的分析探討,最后從軟件產品的單元測試、系統測試以及軟件產品的驗收測試等方面提出了軟件產品測試的策略建議。
關鍵詞:軟件測試技術;軟件質量;系統測試
中圖分類號:TP311 文獻標識碼:A 文章編號:1674-7712 (2013) 20-0000-01
一、軟件測試技術相關理論概述
早期便已經有諸多的學者對軟件測試等領域做了一些較為深入的研究,IEEE在二十世紀八十年代便對軟件測試提出了一個較為權威的定義,所謂軟件測試指的是通過人工或者自動化的方式等對相關系統進行運行過程的測試,以此來更好地確定系統是否穩定可行,或者用來檢測系統實際運行情況與預期之間的差異性。隨著計算機科學的高速發展,軟件測試技術得到了更為深遠的發展。從具體實踐情況來看,軟件測試通常都是用人工來執行的,在具體的實際操作過程中雖然有諸多方法來保障軟件的實際質量問題,但是由于軟件的復雜性以及環境的多變性等情況,軟件難免會出現難以預料的問題,如果忽視了隱藏在軟件中的問題,將會對生命、財產等帶來不可估量的損失。比如如果當前使用的Windows存在一些安全隱患,這無疑會給人們的生活、財產等帶來不可估量的損失。在這種情況之下軟件測試技術應運而生了[1]。
總的來說,軟件測試是一個對已有的軟件進行錯誤查找的過程,也是一個將軟件程序進行試運行的過程,軟件測試的目的是在少量成本的基礎之上將軟件產品中的錯誤問題查找出來并進行及時的修正,從而使得軟件產品的質量得到充分的保證與提升,避免后期由于軟件質量問題帶來的損失。一個成功、成本適中的軟件測試需要能夠最早、最大程度地將軟件問題找出來并進行及時的修正,同時通過最少的代價獲得最好的軟件產品質量保障。與此同時,軟件測試需要證實軟件與的實現功能與預期基本相符,并證明該軟件性能是否與需求是相匹配的,搜集相關數據為軟件質量判斷提供可靠性依據[2]。
二、軟件測試技術方法分析
軟件測試技術從不同的角度可以劃分為不同的測試方法,本文將主要從如下幾種方法對軟件測試技術進行詳細分析:
(一)白盒測試技術方法。白盒測試技術方法從一定程度上來說是基于程序層面的測試,在進行測試的時候充分利用軟件程序的邏輯關系等相關信息,對其進行設計測試以及有選擇性的測試,以此對軟件程序的所有邏輯結構進行有效性測試。靜態的白盒測試主要是通過檢測軟件產品的實際性能是否與需求以及預期功能相一致,動態白盒測試主要通過用例設計來實現測試。白盒測試往往希望通過軟件測試達到如下幾個方面的目的:(1)實現軟件產品所有獨立路徑測試一次以上;(2)實現真實值與虛擬值都能被邏輯判斷;(3)實現循環結構可以將軟件產品中的所有邊界情況進行測試;(4)對軟件產品內部結構進行有效性測試。
(二)黑盒測試技術方法,黑盒測試在一定程度上可以被看成是一種動態性測試,黑盒測試是基于功能層面進行的測試,在對軟件產品進行測試的時候往往只對功能較為關注,對軟件其他方面的性能涉及較少。在實際測試操作過程中,黑盒測試一般都是在軟件產品原有的功能背景之下對每個功能的正常性、穩定性以及有效性進行全方位的測試,在整個測試過程中,軟件程序被看成是一個未知的黑盒子,在不考慮軟件產品內部結構的情況之下測試程序的接口,從而測試軟件產品功能是否與需求相符。
(三)四是回歸測試方法,在軟件的任何一個階段所發生的狀況都將對軟件的使用等帶來嚴重的影響,軟件變動的原因有許多,比如可能是由于對軟件進行集成維護時期進行了模塊增加,對軟件的錯誤修正不完善,錯誤修正的副作用等原因。因此,我們需要在不同時期對軟件所發生的變化進行重新測試,以確定軟件是否在正常的運行軌道,軟件修正是否對原有的功能造成了負面的影響等,這一系列的過程就是對軟件產品所進行的回歸測試。回歸測試作為軟件測試的重要過程,需要注重在不同的階段對軟件產品進行科學的回歸測試,以保障軟件產品在不同的生命周期階段有可靠的質量保障。
三、軟件測試策略分析
軟件測試的策略主要有如下幾種類型:
(一)單元測試,單元測試是軟件測試的萌芽階段產品,單元測試的重點在于對軟件產品的最小組成部分進行測試,其步驟是通過對軟件產品最小組成部分的測試來記錄相應的結果,并將修改過程中的軟件產品錯誤進行及時的記錄修正,運用白盒測試方法將軟件產品中的邏輯性錯誤找出。單元測試主要可以分為測試單個方法對象、多個屬性的對象以及不同函數(對象)構成的對象等,單元測試具體方法也會根據對象類的情況而有所變化[3]。
(二)集成測試,集成測試對軟件產品進行測試的主要目的是為了保證軟件在運行過程中不會因結合等方面因素而停止正常運行,集成測試的具體步驟是通過對測試結果進行記錄,對錯誤性數據進行及時修正后再進行回歸測試。集成測試的重點在于運用增量法來定位軟件產品的錯誤位置。所使用的增量法也是由簡到繁的方式對軟件產品的各個模塊進行測試。
(三)系統測試,系統測試主要是對軟件產品的最終應用進行測試,在軟件產品實現整體性運行時進行測試。軟件產品的性能測試是系統測試的關鍵內容,主要是測試軟件產品的性能是否已經達到了相應的需求指標規格,這就需要通過功能測試、性能測試以及配置測試等實行軟件產品的整體系統測試,以此確保軟件產品性能的穩定性、合規性以及達標性[4]。
(四)驗收測試,驗收測試是對即將分發的軟件產品進行最終的測試,驗收測試一般都是在客戶需求的基礎之上進行有針對性的測試,對軟件產品的性能、兼容性以及可移植性等方面進行測試確認。在這個測試過程中往往都會采用黑盒測試的方式來對軟件產品進行最終的技術性測試,以此保障送達客戶手中的產品質量無誤。
參考文獻:
[1]孫曉妍.軟件測試技術理論與方法高效率化探究[J].軟件導刊,2013(1):57-59.
[2]侯海霞,崔冬華.基于軟件測試技術的軟件質量保證研究[J].科技信息(科學教研),2008(5):151-152.
[3]薛賽男,趙偉.軟件測試技術——計量測試技術的新領域[J].計量技術,2003(5):146-148.
[4]沈升源,陳麗容,湯銘端.基于統計覆蓋測試技術的軟件測試充分性研究[J].系統工程與電子技術,2004(6):66-67.
[作者簡介]呂佶(1981.7-),男,浙江杭州人,軟件工程碩士,講師,研究方向:計算機圖形圖像學。