官术网_书友最值得收藏!

第3章 代碼檢查、走查與評審

多年以來,軟件界的大多數人都持有一個想法,即編寫程序僅僅是為了提供給機器執行,并不是供人們閱讀的,軟件測試的惟一方法就是在計算機上執行它。20世紀70年代早期,一些程序員最先意識到閱讀代碼對于構成完善的軟件測試和調試手段的價值,通過他們的努力,原有的觀念開始發生變化。

今天,并不是所有的軟件測試人員都要閱讀代碼,但是研讀程序代碼作為測試工作的一部分,這個觀念已經得到了廣泛認同。以下幾個因素會影響到特定的測試和調試工作需要人工實際閱讀代碼的可能性:軟件的規模和復雜度、軟件開發團隊的規模、軟件開發的時限(例如時間安排表是松散還是緊密)等,當然還有編程小組的技術背景和文化。

基于這些原因,在深入研究較為傳統的基于計算機的測試技術之前,我們首先討論非基于計算機測試的過程(即“人工測試”)。人工測試技術在查找錯誤方面非常有效,以至于任何編程項目都應該使用其中的一種或多種技術。應該在程序開始編碼之后、基于計算機的測試開始之前使用這些方法。同樣,也可以在編程過程的更早階段就開始設計和應用類似的方法(例如在每個設計階段的末尾),但是這些內容超出了本書討論的范圍。

在開始討論人工測試技術之前,有一條重要的注意事項:由于包含了人為因素在內,導致很多方法的正規性要差于由計算機執行的數學證明,人們可能會懷疑某些如此簡單和不正規的東西是否有用。反之亦然。這些不正規的方法并沒有妨礙測試取得成功;相反,它們從以下兩個方面顯著地提高了測試的功效和可靠性。

首先,人們普遍認識到錯誤發現得越早,改正錯誤的成本越低,正確改正錯誤的可能性也越大。其次,程序員在開始基于計算機的測試時似乎要經歷一個心理上的轉變。從內部產生的壓力似乎會急劇增長,并產生一個趨勢,要“盡可能快地修正這個缺陷”。由于這些壓力的存在,程序員在改正某個由基于計算機測試發現的錯誤時所犯的失誤,要比改正早期發現的問題時所犯的失誤更多一些。

主站蜘蛛池模板: 外汇| 清河县| 云林县| 称多县| 阿克陶县| 抚远县| 恩平市| 项城市| 盘锦市| 家居| 腾冲县| 中牟县| 鄢陵县| 禹州市| 化德县| 衡水市| 达孜县| 海伦市| 修文县| 建始县| 平山县| 理塘县| 南皮县| 全州县| 九台市| 惠安县| 汉川市| 长白| 荥阳市| 广汉市| 两当县| 沙洋县| 台湾省| 呼伦贝尔市| 定兴县| 洛浦县| 郎溪县| 马边| 内黄县| 民县| 惠州市|