• <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-04-10來源:作者:點擊數: 標簽:單元軟件
    最近參與的一個項目里我把 單元測試 放到很重要的位置并且也發現了一些問題。順便整理一下。 這不是一篇嚴謹的技術文章。只是一些個人不成熟的感想。 在實際 開發 過程中,我發現在 單元測試代碼 中經常會出現兩種情況:第一種就是在測試代碼中炫耀編程技巧,
    最近參與的一個項目里我把單元測試放到很重要的位置并且也發現了一些問題。順便整理一下。

            這不是一篇嚴謹的技術文章。只是一些個人不成熟的感想。

            在實際開發過程中,我發現在單元測試代碼中經常會出現兩種情況:第一種就是在測試代碼中炫耀編程技巧,第二種就是敷衍了事,你不是讓我通過測試么?好,我就寫一個用例,一定能通過的那種,然后告訴你,OK,我的測試通過了。我覺得,這就是對單元測試的意義沒有真正理解的表現。

            到底單元測試是做什么用的?我想,在說明這個問題之前,我先說說我所理解的測試到底是做什么用的。

            所謂的測試,是一種產品質量保證的手段。我按照需求規格說明書制造了一件產品,那么誰來確保這個產品符合了需求規格的要求呢?就是測試。它會根據需求規格說明書設計一系列的場景和用例,來對產品進行測試,看看產品是不是真的符合所期望的需求。

            要達到這個目標,其實并不十分的容易,因為一個真正的系統,情況十分復雜,里面充滿了數不清的分支、異常、邊界條件,甚至運行環境,將這些東西組合起來,產生的需要測試的點將會是一個天文數字,在有限的時間內做完一個充分而可靠的測試,是不可能的。

            為了將充分測試變得可能,一個比較好的途徑就是分層測試。我在做運行測試或性能測試的時候,有一個前提,就是假設整個系統的集成運行已經沒有問題了,在運行測試或性能測試時,我將不再考慮“系統無法正常運行”這種場景。那么如何保證集成運行沒問題呢?我們用集成測試來檢驗。但是在做集成測試的時候,我們同樣要基于一個假定,就是各個模塊的功能都能夠如期正常工作。而這一點,又是通過模塊自身的功能測試來完成的?!@樣一層層往下推,每個層次就假設它所依賴的層次沒有問題,這樣就可以減少很多場景以及由這些場景引出的額外的分支。將原先一個幾何級數的測試用例分解成可以接受的若干層次的算術級數的用例。這樣一來測試就變得有可能做好了。

            而單元測試,正是這些測試的最低層次——保證每個函數/方法,或者說最小功能模塊的正確性的一種測試。

            通過上面的描述,我們至少清楚了這樣幾件事情:1. 單元測試是一種測試,它不是代碼的一部分;2. 單元測試是最低層級的測試,它只保證函數的可靠性,不保證其它;3. 單元測試應該能保證每一個函數的可靠性。

          

    原文轉自: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>