摘要:目前,國內120萬軟件從業人員中,真正能擔當軟件測試職位的不超過5萬人,軟件測試人才缺口已超過20萬并向30萬大關急速挺進,并且在大公司軟件測試工程師的薪資與開發工程師相比非但不低,反而持平或更高。那么想成為一名合格的測試工程師,首先要掌握測試方法與各階段的關注重點,以及典型測試方法與開發流程的對應關系,本文結合典型測試模型V模型做些討論,希望本文能給讀者一定的幫助和啟發。
關鍵詞:軟件測試;V模型
中圖分類號:TP311.53文獻標識碼:A文章編號:1674-7712 (2014) 08-0000-01
軟件測試是在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。在這個過程中,我們需要在什么階段,完成什么樣的測試,關注哪些測試方面呢?下面我們結合一個最為簡單也最被大家熟悉的測試模型V模型(圖1所示)為例來探討一下。
圖1V模型圖
V模型中箭頭代表了時間方向,左邊下降的表示的是開發過程各階段,與此相對應的是右邊上升的部分,即測試過程的各個階段。在軟件測試方面,V模型是最廣為人知的模型,V模型中的過程從左到右,描述了基本的開發過程和測試行為。V模型的價值在于它非常明確地標明了測試過程中存在的不同級別,并且清楚地描述了這些測試階段和開發過程期間各階段的對應關系。我們選擇V模型,是因為他它清晰地表明了測試階段與開發階段的對應過程,可以讓我們更集中精力來學習和討論測試的問題,在實際應用中,W模型,X模型,H模型等也各有優缺點,我們在此不再贅述。
首先,單元測試是在軟件開發過程中要進行的最低級別的測試活動,軟件的獨立單元將與程序的其他部分相隔離的情況下進行測試。與開發階段的編碼相對應。通過單元測試,測試人員可以驗證開發人員所編寫的代碼是按照先前設想的方式進行的,輸出結果符合預期值,這就實現了單元測試的目的。單元測試的重點是模塊接口測試,異常處理測試,獨立路徑測試,局部數據結構測試,邊界條件測試等。需要注意的是模塊接口測試中的被測模塊并不是一個獨立的程序,在考慮測試模塊時,同時要考慮它和外界的聯系,用一些輔助模塊去模擬與被測模塊相關聯的模塊,如圖2所示,經常需要我們編寫驅動模塊及樁模塊。
圖2編寫驅動模塊及樁模塊
接下來的集成測試是介于單元測試和系統測試之間的過渡階段,與軟件開發計劃中的軟件詳細設計階段相對應,是單元測試的擴展和延伸。它所測試的內容包括單元間的接口以及集成后的功能。與單元測試不同,集成測試的關注點主要在于:在把各個模塊連接起來的時候,穿越模塊接口的數據是否會丟失;一個模塊的功能是否會對另一個模塊的功能產生不利的影響;各個子功能組合起來,能否達到預期要求的父功能;全局數據結構是否有問題;單個模塊的誤差累積起來,是否會放大,從而達到不能接受的程度。
系統測試是最接近于人們的日常測試實踐。它是將已經集成好的軟件系統,作為整個計算機系統的一個元素,與計算機硬件、外設、某些支持軟件、數據和人員等其他系統元素結合在一起,在實際運行環境下,對計算機系統進行一系列的組裝測試和確認測試。典型的系統測試包括:(1)恢復測試,也叫容錯測試,用來檢查系統的容錯能力。通常若計算機系統出現錯誤,就必須在一定時間內從錯誤中恢復過來,修正錯誤并重新啟動系統。(2)安全測試,安全測試的目的在于檢查系統對外界非法入侵的防范能力,系統安全測試的準則是讓非法侵入者攻擊系統的代價大于保護系統安全的價值。(3)強度測試也稱壓力測試、負載測試。強度測試是要破壞程序,檢測非正常的情況系統的負載能力。強度測試模擬實際情況下的軟硬件環境和用戶使用過程的系統負荷,長時間或超負荷地運行測試軟件來測試系統,以檢驗系統能力的最高限度,從而了解系統的可靠性、穩定性等。(4)性能測試,性能測試用來測試軟件在系統運行時的性能表現,比如運行速度、系統資源占有或響應時間等情況。(5)容量測試,容量測試是指在系統正常運行的范圍內測定系統能夠處理的數據容量,測試系統承受超額數據容量的能力。(7)可靠性測試,可靠性測試是從驗證的角度出發,檢驗系統的可靠性是否達到預期的目標,同時給出當前系統可能的可靠性增長情況。(8)兼容性測試,軟件兼容性測試是檢測各軟件之間能否正常地交互、共享信息,能否正確地和軟件合作完成數據處理。從而保障軟件能夠按照客戶期望的標準進行交互,多個軟件共同完成指定的任務。
驗收測試是向未來的用戶表明系統能夠像預定要求的那樣工作,并且可以讓最終用戶將其用于執行軟件的既定功能和任務。驗收測試是檢驗軟件產品質量的最后一道工序。驗收測試通常更突出客戶的作用,同時軟件開發人員也有一定的參與。
以上,本文通過一個典型的測試模型,結合典型的測試方法,讓讀者對典型測試方法及各個階段的測試內容等有一個比較清晰的了解,當然,本文是以典型測試方法為例,實際測試工作中,往往是多種測試模型,多種測試方法相結合,達到保證軟件質量的目的,目前常見的測試方法也多達三四十種,希望本文能夠拋磚引玉,對測試沒有認識的讀者以幫助,對已經工作在測試戰線的測試工程師有所啟發。
參考文獻:
[1]郭健強.面向對象軟件測試理論與技術的研究[D].西安電子科技大學,1999.