掌握有效測試軟件的方法與技術(二)

發表于:2011-12-22來源:未知作者:娃娃點擊數: 標簽:軟件測試方法
6. 軟件系統的主要測試內容及技術 6.1 接口與路徑測試 u 數據一般通過接口輸入和輸出,所以接口測試是白盒測試的第一步。每個接口可能有多個輸入參數,每個參數有“典型值”、“邊界值”、“異常值”之分,所以輸 入的組合數可能并不少。根據

  6. 軟件系統的主要測試內容及技術

  6.1 接口與路徑測試

  u 數據一般通過接口輸入和輸出,所以接口測試是白盒測試的第一步。每個接口可能有多個輸入參數,每個參數有“典型值”、“邊界值”、“異常值”之分,所以輸 入的組合數可能并不少。根據接口的定義,可以推斷某種輸入應當產生什么樣的輸出。輸出包括函數的返回值和輸出參數。如果實際輸出與期望的輸出不一致,那么 說明程序有錯誤。白盒方式的接口測試和黑盒方式的功能測試,其方法十分相似。

  u 一個函數體內的語句可能只有十幾條,但邏輯路徑可能有成千上萬條。想遍歷測試幾乎是不可能的,不測試或者胡亂找幾條路徑測試卻又不行。

  u 對于非嚴格系統而言,在分析路徑方面化費很多精力是不值得的。我認為在構造接口測試的同時已經建立了測試路徑。因為每一種輸入將產生唯一的輸出,輸入與輸 出之間的路徑也是唯一的。由于接口測試中的輸入是有代表性的,因此相應的路徑也具有代表性,不用得著費煞苦心地去找測試路徑。

  u 路徑測試的檢查表

  數據類型、變量值、邏輯判斷、循環、內存管理、文件I/O、錯誤處理

  u 由于接口測試是枚舉的,有可能漏掉某些狀況,導致一些重要的路徑沒有被測試。預防措施有:

  觀察是否有程序語句從來沒有被執行過。如果發生在這種情況,要么是程序有錯誤,存在無用的代碼;要么是接口測試不充分,漏掉了一些路徑。

  要特別留意函數體內的錯誤處理程序塊(如果存在的話),這是最易被人疏忽的路徑,隱患最多。

  6.2 功能測試

  u 功能測試的基本方法是構造一些合理輸入(在需求范圍之內),檢查輸出是否與期望的相同。如果兩者不一致,即表明功能有誤。也有例外的情況,如《需求規格說明書》中的某個功能寫錯了,而實際上軟件的功能卻是正確的,這時要更改的是《需求規格說明書》。

  u 功能測試看起來比較簡單,只要看得懂《需求規格說明書》,誰都會做。難點在于如何構造有效的輸入。由于輸入空間通常是無限的,窮舉測試顯然行不通。那么隨便輸入一些東西,碰運氣行不行?

  u 功能測試有兩種比較好的測試方法:等價劃分法和邊界值分析法。

  等價劃分是指把輸入空間劃分為幾個“等價區間”,在每個“等價區間”中只需要測試一個典型值就可以了。等價劃分法來源于人們的直覺與經驗,可令測試事半功倍。

  “缺陷遺漏在角落里,聚集在邊界上”。邊界值測試法是對等價劃分法的補充。如果A和B是輸入空間的邊界值,那么除了典型值外還要用A和B作為測試用例。

  例如測試函數。憑直覺,等價區間應是(0, 1)和(1, +∞)??扇〉湫椭祒=0.5以及x=2.0進行“等價劃分”測試。再取 x=0以及x=1進行“邊界值”測試。

  6.3 健壯性測試

  u 健壯性是指在異常情況下,軟件還能正常運行的能力。健壯性有兩層含義:一是容錯能力,二是恢復能力。

  u 容錯性測試通常構造一些不合理的輸入來引誘軟件出錯,例如:

  (1)輸入錯誤的數據類型。如“猴”年“馬”月。

  (2)輸入定義域之外的數值。如上海人常說的“十三點”

  u 粗暴一些方式俗稱“大猩猩”測試法。除了不能拳打腳踢嘴咬外,什么招術都可以使出來。例如在測試客戶機-服務器模式的軟件時,把網絡線拔掉,造成通信異常中斷。

  u 恢復測試重點考察一下幾項:

  (1)系統能否重新運行;

  (2)有無重要的數據丟失;

  (3)是否毀壞了其它相關的軟件硬件。

  6.4 性能測試

  u 性能測試即測試軟件處理事務的速度,一是為了檢驗性能是否符合需求,二是為了得到某些性能數據供人們參考(例如用于宣傳)。

  u 有時人們關心測試的“絕對值”,如數據送輸速率是每秒多少比特。有時人們關心測試的“相對值”,如某個軟件比另一個軟件快多少倍。

  u 在獲取測試的“絕對值”時,我們要充分考慮并記錄運行環境對測試的影響。例如網絡環境、計算機主頻,總線結構和外部設備都可能影響軟件的運行速度。

  u 性能測試的一些注意事項:

  不要試圖讓人拿著鐘表去測時間,應當編寫一段程序用于計算時間以及相關數據。

  應當測試軟件在標準配置和最低配置下的性能。

  為了排除干擾,應當關閉那些消耗內存、占用CPU的其它應用軟件(如殺毒軟件)。

  不同的輸入情況會得到不同的性能數據,應當分檔記錄。例如傳輸文件的容量從100K到1M可以分成若干等級。

  由于環境的波動,同一種輸入情況在不同的時間可能得到不同的性能數據,可以取其平均值。

  6.5 用戶界面測試

  u 絕大多數軟件擁有圖形用戶界面。圖形用戶界面的測試重點是正確性、易用性和視覺效果。在評價易用性和視覺效果時,主觀性非常強,應當考慮多個人的觀點。

  6.6 信息安全測試

  u 信息安全性(security)是指防止系統被非法入侵的能力,既屬于技術問題又屬于管理問題。

  u 信息安全性測試有如下步驟:

  (1)為非法入侵設立目標,例如“盜竊某個文件”或“更改數據庫記錄”等。

  (2)邀請(或懸賞)一些人扮演黑客,讓他們想盡辦法入侵系統,實現“目標”。

  (3)如果有人成功了,請他詳述入侵的過程。別忘了給予獎勵。

  6.7 壓力測試

  u 壓力測試也叫負荷測試,即獲取系統能正常運行的極限狀態。了解“極限”是很有價值的,例如潛艇下潛極限深度…。

  u 壓力測試的主要任務是:構造正確的輸入,使勁折騰系統卻讓它剛好不癱瘓。

  u 壓力測試的一個變種是敏感測試。在某種情況下,微小的輸入變動會導致系統的表現(如性能)發生急劇的變化。敏感測試目的是發現什么樣的輸入可能會引發不穩定現象。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97