• <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-05-31來源:作者:點擊數: 標簽:軟件測試實驗物理
    讀理工科的人多多少少做過物理實驗,從中學到大學有數不清的機會。對照書本的步驟一項一項做下來,看到預期的結果就收工走人,不然就找原因直到得到正確結果為止。 這就是物理實驗嗎? 從事科研工作的人對這種“實驗”嗤之以鼻。這樣做除了應付一下教育部一點
    讀理工科的人多多少少做過物理實驗,從中學到大學有數不清的機會。對照書本的步驟一項一項做下來,看到預期的結果就收工走人,不然就找原因直到得到正確結果為止。

      這就是物理實驗嗎?

      從事科研工作的人對這種“實驗”嗤之以鼻。這樣做除了應付一下教育部一點價值都沒有。

      科學研究是要探索未知的世界,并沒有一個先知可以斷言某件事情,而我們不經證實就奉為真理。出發點不同,行為的效果便大相徑庭。要探索未知的世界,除了試驗既定的路線外,還須廣歷不同的路線,獲得大量的信息來了解世界的真相;反之僅僅是重復的話,只需要走固定的步驟,如果結果不同還要想方設法為預期結果辯護,實在是南轅北轍。

      有人會問,科學家重復同行的實驗又作何論?那時實驗結論尚未成為公論,需要重復已有實驗,并輔以新的實驗來證實懷疑;也有挑戰現有理論,改變條件試圖證明新的理論。這些都是為了探索證實未知的世界,出發點大不一樣。

      那么,軟件測試是為了探索世界還是重復檢驗呢?

      有人認為,程序員寫的代碼,設計目的是明確的,所用技術是清晰的。只要有領域內的專家,所有軟件行為都是可預期的,軟件測試就是例行公事再確認一下。

      早期的計算機工作者的確是這樣的,他們都是領域內的專家,根據代碼能夠準確指出程序的行為。如果說他們是上帝,程序就是他們完美的伊甸園,什么都在計劃之內。

      然而時過境遷,現在的軟件團隊里面不可能所有人都是專家,也不是所有領域都有專家。除了火箭控制之類要求高可靠性的系統,大多數的軟件都是由非專家編寫出來的。所以程序員不一定知道哪里有死鎖和餓死,不一定知道哪里有資源泄漏,不一定知道哪里有兼容性問題。他們可能還是上帝,只是做出來的不再是伊甸園了。以今天軟件系統的復雜度而言,每個團隊都維護一大堆上帝成本太高。

      因此,程序員很多對他們作品的假設,未經證實之前不一定正確:

      “這個列表會列出所有結果” -- 沒有或者很多結果的時候呢?

      “這個列表不會有重復的對象” -- 刪除A之后添加A,且異步的刪除失敗的時候呢?

      “這個列表的輸出不會錯的“ -- 多個數據源同時對其輸入大量的數據呢?

      這個結論會導致軟件測試的一個可怕悖論:測試用例不少是來自程序員的假設,不正確的假設使得這些用例可能是不正確或無意義的。

      這正是很多測試書籍介紹的邊界、性能、壓力、可擴展和安全測試的由來:正是需要檢驗那些假設的真實性。

      但是事情還沒完。

      測試員也不是上帝,他們做出來的也不是伊甸園。

      如果程序員的產出是代碼和bug修復,測試員的產出就是測試用例和bug報告。

      我們剛才忽略了bug報告。

      bug報告有兩個最重要的部分,重現步驟和錯誤細節。而其中出現的不正確的假設和推理主要有三種:

      

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