• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 軟件單元測試和事先測試開發

    發表于:2009-03-30來源:作者:點擊數: 標簽:開發單元軟件
    摘要:Eric Gunnerson 介紹了事先測試開發的思想,并提供了一個實用實例來演示如何在您自己的應用程序中應用它。 從 MSDN Online Code Center 下載 integerlist.exe。 本專欄末尾有我的簡介,如果您讀過的話,就會知道我在擔任程序經理之前曾出任 C# 編譯器

    摘要:Eric Gunnerson 介紹了事先測試開發的思想,并提供了一個實用實例來演示如何在您自己的應用程序中應用它。

    從 MSDN Online Code Center 下載 integerlist.exe。

    本專欄末尾有我的簡介,如果您讀過的話,就會知道我在擔任程序經理之前曾出任 C# 編譯器的測試組長,而在此之前是 C++ 編譯器的測試組長。這些工作經歷使我對分析和盡量避免軟件錯誤特別感興趣。

    要減少軟件中的錯誤數目,方法之一就是擁有一個專業的測試組,其工作就是盡一切可能使軟件崩潰。不幸的是,如果擁有測試組,那么即使是經驗豐富的開發人員,也會傾向于花費較少的時間來保證代碼的可靠性。

    軟件界有一句俗語:“開發人員不應該測試他們自己的代碼”。這是因為開發人員對自己的代碼了如指掌,他們很清楚如何采用適當的方法對代碼進行測試。盡管這句俗語很有道理,但卻忽略了非常重要的一點 - 如果開發人員不對自己的代碼進行測試,又如何知道代碼能否按照預期的方式運行?

    簡單說來,他們根本無從得知。開發人員編寫那種運行不正?;蛑辉谀承┣闆r下運行正常的代碼是一個嚴重的問題。他們通常只測試代碼能否在很少的情況下正常運行,而不是驗證代碼能夠在所有情況下均正常運行。

    發現軟件錯誤
    發現軟件錯誤的情況有很多:

    由首次編寫代碼的開發人員發現。
    由嘗試運行代碼的開發人員發現。
    由組中的其他開發人員或測試人員發現。
    作為產品大規模測試的一部分。
    由最終用戶發現。
    如果在第一種情況下發現軟件錯誤,則修復錯誤比較容易,成本也很低。情況越靠后,修復軟件錯誤的成本就越高;修復一個由最終用戶發現的軟件錯誤可能要耗費 100 或 1000 倍的成本。更不用說用戶通常因為軟件錯誤導致工作無法繼續,而一直等到下一個版本才能解決問題。

    如果開發人員能夠在編寫代碼期間發現所有的軟件錯誤,那就再好不過了。為此,您必須編寫能在編寫代碼時運行的測試。有一種很不錯的方法,它恰好可以做到這一點。

    事先測試開發
    所謂的事先測試開發是指在編寫代碼前編寫測試。如果所有測試均正常運行,便可以斷定代碼運行正常;添加新功能時,這些測試會繼續驗證您是否破壞了代碼的任何部分。

    此概念于 20 世紀 90 年代初誕生于 Smalltalk 世界,Kent Beck 在當時編寫了 SmalltalkUnit。在過去的幾年中,大部分環境都具備了單元測試工具,其中有一個很出色的適用于 .NET Framework 領域的工具,即 nUnit(英文)。

    示例
    下面我將編寫一個 IntegerList 類來介紹事先測試開發的工作原理。IntegerList 是 ArrayList 類的變體,用于在本地存儲整數,因此不存在裝箱和取消裝箱的開銷。

    第一步是創建一個控制臺項目,并向其中添加一個 IntegerList.cs 源文件。要連接 nUnit 框架,需要添加對 nUnit 框架的引用。在我的系統中,它們位于 d:\program files\nUnit v2.0\bin。

    第二步是花些時間考慮如何對該類進行測試。這與確定類應該具備哪些功能的過程類似,但重點放在功能的特定用途(將值 1 添加到列表并檢查是否成功),而不是功能本身(將一個項目添加到列表)。要生成此類,我們首先要提供一個要使用的測試列表:

    測試該類可以構造
    將兩個整數添加到列表,并確保數目和項目都正確。
    執行同一操作,但針對更多的項目。
    將此列表轉換為一個字符串。
    使用 foreach 枚舉此列表。
    此示例從某種程度上代表了我開始時的想法,即希望這個類執行的操作。多數類一次只會創建一小部分,測試應隨著類的增長而添加。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>