靜態測試
測試設計
驗證覆蓋
接下來讓我帶領大家一起揭開RBT第一個階段也是最重要的一個階段——靜態測試的面紗!
什么是靜態測試
靜態測試是基于期望屬性、專業經驗、通用標準來對工作件的特征進行詳細檢查的一種測試方法。所謂工作件,也就是靜態測試的測試對象,是不同種類的產品交付件,即一切項目過程文檔,例如系統設計說明書、產品需求文檔、開發設計文檔(詳細設計說明書、數據庫設計說明書)、源代碼以及測試文檔。
靜態測試的特質
靜態測試的查錯和分析功能是其他方法所不能替代的。
靜態測試的目的是確保工作件中的缺陷被盡早發現和處理,盡可能在軟件開發生命周期的早期階段關閉缺陷產生的源頭。
靜態測試人員主要是尋找三類缺陷:錯誤,意味著沒有進行正確的改變;遺漏,意味著有些該改變的沒有改變;額外,意味著非有意的改變或增加。
靜態測試的好處
1、 靜態測試有助于緩解測試執行階段工作的壓力
傳統測試方法,測試部門的工作往往是前松后緊,工作分配和工作壓力極不平衡。
分析:大家經常會聽到測試人員反應“現在在測試準備階段,就是寫寫測試用例,不忙,忙的時候還是測試執行的時候,經常要加班加點”。造成這種現象的原因就在于,測試人員還只是把測試開發完成后的“軟件成品“當做“測試工作的內容”,并不把前期的用于制造軟件的“設計圖紙”——需求、設計文檔當做測試對象來花時間和精力進行測試。
運用靜態測試后:
加深對項目的理解,使測試計劃和測試設計質量得到提高;
使得測試用例全面、有效,從“撞問題”轉變為有目的的“找問題”
提前了對項目的理解,減少了測試執行時的摸索時間,從而加快測試進度
提前發現問題,降低缺陷修復成本、回歸測試成本以及溝通成本,同時降低項目風險,減輕測試執行時的壓力
2、 靜態測試可有效緩解因工期和人力因素對項目的影響
目前軟件項目普遍都存在:項目周期短和人力資源不足的情況。
分析:在這種情況下,往往會延長開發時間、壓縮設計和測試執行的時間,以保證項目能如期完成。項目自身抵抗風險的能力下降,某些高風險的缺陷一旦在測試階段暴露,將可能會導致設計被推翻,需求被迫變更,大量的代碼重寫和之前測試工作的徒勞,嚴重影響項目質量和項目進度,讓項目陷入惡性循環。
運用靜態測試后:
提前發現設計問題,協同開發一起做好功能設計,避免項目走彎路
完善測試設計,明確描述分歧,細化處理功能,提高編碼質量和測試質量
一定程度地緩解項目工期壓力和人力資源壓力
3、 靜態測試有助于發揮測試人員的潛力
傳統的測試是按照需求設計文檔來驗證程序的問題,沒料到這個”唯一的”“測試依據”其實很多時候都靠不住,問題叢生,暗含殺機。
分析:當測試人員養成完全依賴UC(或者PRD)的習慣后,變會缺乏主動思考、創新思考的能力。下意識的就把UC和PRD當成測試的立足點,以此來驗證軟件產品的質量,這樣將導致測試人員發現的問題質量低,問題深度不夠,難以發現用戶體驗相關的缺陷,并且容易使測試人員當因某個測試問題與開發意見不一時,爭辯時腰板挺不直,使問題得過且過,喪失測試人員的地位。
運用靜態測試后:
激發了測試人員的潛力,層層深入業務核心,從被動接受,轉變為主動思考,敢于質疑設計,敢于異議架構!
對測試人員思考和分析能力的鍛煉;
姿態的轉變——“客戶的代言人”
4、 靜態測試有助于測試準備階段對測試人員的績效評估
分析:傳統測試在測試準備階段,測試經理除了通過測試用例對測試人員的工作情況進行評估外,很難有其他方法對其績效進行了解。而測試設計和測試用例的產出相對是滯后的,這樣就給測試經理提前預警帶來了難度,一旦到了測試準備階段后期才發現問題,就讓測試準備工作陷入被動的境地。
原文轉自:http://www.uml.org.cn/Test/201208244.asp