白盒測試方法-程式碼檢查法
程式碼檢查包括桌面檢查、程式碼審查和走查等,主要檢查程式碼和設計的一致性,程式碼對標準的遵循、可讀性,程式碼邏輯表達的正確性,程式碼結構的合理性等方面;發現違背程式編寫標準的問題,程式中不安全、不明確和模糊的部分,找出程式中不可移植部分、違背程式程式設計風格的內容,包括變數檢查、命名和型別審查、程式邏輯審查、程式語法檢查和程式結構檢查等內容。
程式碼檢查方法
1、程式碼檢查法
(1)桌面檢查:這是一種傳統的檢查方法,由程式設計師檢查自己編寫的程式。程式設計師在程式通過編譯之後,對源程式程式碼進行分析、檢驗,並補充相關文件,目的是發現程式中的錯誤。由於程式設計師熟悉自己的程式及其程式設計風格,桌面檢查由程式設計師自己進行可以節省很多的檢查時間,但應避免主觀片面性
(2)程式碼審查
由若干程式設計師和測試員組成一個審查小組,通過閱讀、討論和爭議,對程式進行靜態分析的過程。程式碼審查分兩步:第一步,小組負責人提前把設計規格說明書、控制流程圖、程式文字及有關要求、規範等分發給小組成員,作為審查的依據。小組成員在充分閱讀這些材料後,進入審查的第二步,召開程式審查會。在會上,首先由程式設計師逐句簡介程式的邏輯。在此過程中,程式設計師或其他小組成員可以提出問題,展開討論,審查錯誤是否存在。實踐表明,程式設計師在講解過程中能發現許多原來自己沒有發現的錯誤,而討論和爭議則促進了問題的暴露。
在會前,應當給審查小組每個成員準備一份常見錯誤的清單,把以往所有可能發生的常見錯誤羅列出來,供與會者對照檢查,以提高審查的失效。這個常見的錯誤清單也成為檢查表,它把程式中可能發生的各種錯誤進行分類,對每一類錯誤列出儘可能多的典型錯誤,然後把它們製成表格,供再審查時使用
(3)走查
與程式碼審查基本相同,分為兩步,第一步也是把材料分給走查小組的每個成員,讓他們認真研究程式,然後再開會。開會的程式與程式碼審查不同,不是簡單地讀程式和對照錯誤檢查表進行檢查,而是讓與會者“充當”計算機,即首先由測試組成員為所測試程式準備一批有代表性的測試用例,提交給走查小組。走查小組開會,集體扮演計算機角色,讓測試用例沿程式的邏輯執行一遍,隨時記錄程式的蹤跡,供分析和討論用。
人們藉助測試用例的媒介作用,對程式的邏輯和功能提出各種疑問,結合問題開展熱烈的討論和爭議,能夠發現更多的問題。
程式碼檢查應在編譯和動態測試之前進行,在檢查前,應準備好需求描述文件、程式設計文件、程式的原始碼請當、程式碼編譯標準和程式碼缺陷檢查表等。在實際使用中,程式碼檢查能快速找到缺陷,發現30%~70%的邏輯設計和編碼缺陷,
程式碼檢查可以使用測試軟體進行自動化測試,以利於提高測試效率,降低勞動強度,或者使用人工進行測試,以充分發揮人力的邏輯思維能力
2、程式碼檢查專案
變數交叉引用表;標號的交叉引用表;檢查子程式、巨集、函式;等價性檢查;常量檢查;標準檢查;風格檢查;比較控制流;選擇、啟用路徑;補充文件
根據檢查專案可以編制程式碼規則、規範和檢查表等作為測試用例,如編碼規範、程式碼檢查規範、缺陷檢查表等
3、編碼規範
編碼規範是指程式編寫過程中必須遵循的規則,一般會詳細制定程式碼的語法規則、語法格式等
4、程式碼檢查規範
在程式碼檢查中,需要依據被測軟體的特點,選用適當的標準與規則規範。在使用測試軟體進行自動化程式碼檢查時,測試工具一般會內建許多的編碼規則。在自動化測試基礎上使用桌面檢查、程式碼走查、程式碼審查等人工檢查的方法仔細檢查程式的結構、邏輯等方面的缺陷
5、缺陷檢查表
在進行人工程式碼檢查時,程式碼缺陷檢查表是我們用到的測試用例。
程式碼缺陷檢查表中一般包括容易出錯的地方和在以往的工作中遇到的典型錯誤