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

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

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    軟件測試的目標:失敗等于成功

    發布: 2010-12-15 10:41 | 作者: 不詳 | 來源: 領測測試網采編 | 查看: 152次 | 進入軟件測試論壇討論

    領測軟件測試網

      軟件測試的目標:失敗等于成功    軟件測試

      最近,我的一個同事在走廊里攔住我,非常驕傲和熱情地給我描述了她為一套自動測試程序進行的設計和采用的技術。她說:“最妙的是他們都能夠非常順利、漂亮的運行”。在我走開的時候我在想怎樣采取最溫和的方式告訴她,她已經“迷失了方向”。雖然她盡了很大的努力去建立一套成功的測試,但是她沒有認清軟件測試的真正目的。

      軟件測試的真正目標是什么?為了研究這個問題,我隨機問了一些軟件開發測試工程師、管理人員。其中一些說目標是驗證軟件是否滿足用戶和產品的需求。其他的人給出了更簡單的回答,例如:“確認軟件沒有Bugs”以及“為了驗證軟件能夠正常運轉”。 就我看來,這些說法都不準確。簡單來說,軟件測試的真正目的是找到以前沒有發現的bug。 下面我將從我對軟件測試目標的看法出發,剖析我同事關于軟件測試的主要目標的誤解,并給測試人員一些建議。

      誤解1:軟件測試的目的是為了確保沒有Bug

      這種看法反映了一種對于軟件本質的樂觀但從根本上錯誤的觀點。一個簡單的事實就是不存在“bug-free”的軟件。

      為什么是這樣呢?首先,在等式的開發一邊,你必須面對時刻在變化的技術,一個復雜的而且經常有缺陷的應用設計,集成新的已存在的系統帶來的困難,等等。人本身的錯誤也是一個很大的因素。雖然現代思維應用開發工具可以自動生成代碼,但是在有些地方人必須參與到開發過程中,而人是會犯錯誤的。

      而在等式的測試這一邊,不可能讓你的產品在送到你的用戶以前運行所有可能的測試來檢測出每一個可能的bug。讓我們來看一個簡單的假定的例子。比如說你要測試一個這樣的程序:

      接受3個整型的數值作為輸入,每一個數值的范圍在0到9之間。在種操作系統下運行?梢栽L問存儲在3個不同廠商中任何一個提供的數據庫中的數據。我們計算一下,我們有1,000種可能的排列作為測試輸入。為了測試在每個操作系統上的每種排列,我們需要2,000個測試用例,另外再考慮到每種輸入在每個支持的數據庫運行一遍,我們需要6,000個測試用例。這個數字還沒有考慮到其他的測試情況,例如網絡故障,磁盤空間不足以及內存耗盡等等。所以實際上我們需要測試用例的數目要更大一些。

      無疑,我們不得不接受這樣一個事實:我們只能生活在一個所有的軟件都有bug的世界當中。然而,我們沒有必要絕望。經過精心的計劃,我們可以選擇性地找出產品中最多出現危險以及對我們的用戶最重要的部分中的bug。下面是我發現的有效的一些步驟。

      在你的計劃當中加入風險分析

      正確理解你的客戶需求文檔本身就是一門科學(后面將會詳細講到)。如果你不能直接接觸到你的用戶--例如,通過客戶焦點小組,那么你就應該和你的客戶支持部門一起商討你的測試計劃,因為他們直接接觸到最終用戶。

      要明白你的產品哪些部分處于危險當中同樣需要分析。變更是危險的主要來源;如果你引入了一個變更,你可能不注意地引入了一個新的bug或者發現一個已經存在的bug。因此,支持新功能的代碼一直是一個尋找危險的好地方。為了修正一個bug而修改的代碼也是這樣。而且,如果你在某個地方發現了bug,那么在附近潛藏著其他bug的可能性就很大。雖然你可能認為經過多年修正了很多bug的地方最后“清除干凈了”,這種想法只是在修正時發現了bug的根源的情況下才是正確的。如果bug的根源是糟糕的設計,而進行的修正只是一個簡單的補丁而不是從根本上解決這個問題,那么這個修正實際上可能引入了新的bug。另外,記。杭词故腔凇案驹颉钡男拚灿锌赡軙l基礎性變更,暴露其他嚴重bug。

      理解產品是如何工作的--和為何可能出故障

      對一些測試者來說,第一個想做的就是看產品外在的可見的“行為”--將精力集中在他們的產品客戶將看到的部分。這樣做效力有限,因為他們沒有清楚的理解產品程序的邏輯,數據流等等,這些是用戶不可見的。為了能夠理解產品是如何工作的,以及怎樣會出故障,你必須看“罩子下面”并且在你的測試中用到你看到的東西。

      例如,如果你只看一個GUI,你可能看到程序通過一個格式化的HTML表格顯示一個特定的數據庫查詢的結果。然而,除非你知道這個表格的表示是一個Java數組對象,從服務器傳到客戶端,然后轉化為一個HTML表格,否則你就不會知道這里存在一個潛在的一個客戶端性能瓶頸的危險。如果一個用戶運行一個查詢,返回的記錄太多,就會導致客戶端在處理表格的時候像死機一樣。(我在幾年前是通過這樣的方法解決這個問題的:每次讓客戶端只接收一部分結果數據,并且明確地告訴用戶還有其他的數據未傳過來。)

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: 目標 軟件測試 失敗

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品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>