軟體測試系列之瞭解篇

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   2014   

                                                              


趣味小故事:

         Bug詞原意臭蟲或蟲子。

      【第一個電腦Bug誕生68年】1945年9月,編譯器發明者格蕾斯·哈珀正領著她的小組構造”馬克二型”電腦。突然,馬克二型死機了;哈珀在某出錯繼電器上發現一隻被電死的飛蛾;她將蛾子貼到記事本中並註明”第一個發現蟲子執行個體”。從此,電腦錯誤稱為Bug,將發現Bug並糾正的過程叫”Debug”!

 

一、缺陷

 

 什麼是軟體缺陷(即bug)

       

          電腦軟體或程式中存在的某種破壞正常運行能力的問題、錯誤,或者隱藏的功能缺陷。

 

 為什麼會出現軟體缺陷

      

        第一大來源於需求定位錯誤,需求說明文檔沒有寫,或者不夠全面,經常更改,總是導致的結果就是一開始的需求定錯了,那麼這個軟體的bug就會出現。(在這裡你就可以看出來bug不僅僅是編程的錯誤,更多的原因很可能是因為需求不明確)

        第二大來源是設計錯誤。架構師設計架構,設計師設計更多的細節等錯誤。

        還有一些原因很可能是測試錯誤,不過這一點的比例佔得很小。

 

 修複軟體缺陷的費用

       

      設計軟體,通常我們需要有計劃,有條理的開發過程來實現。這個過程的整個階段,我們都可以從中發現bug。不過隨著時間的推移,修複軟體缺陷的費用也在呈十倍的增長。你可以想象建築樓房一樣,一開始還比較好改動,但是越到後來越不好改,而且很多時候找不到問題出在了哪裡,很有可能需要拆掉一部分重建立,工期反覆,搞不好最後還會賠錢。所以,費用的增長與軟體的開發過程成正比增長,我們所需要做的,就是儘早的發現bug!

 

二、測試原則

 

 軟體測試有風險

 

完全測試程式不可能

         如果你妄想對一個程式進行完全測試,那我勸你別想了。完全測試程式是不可能的,首先輸入量太大,輸出結果太多,軟體的執行路徑也太多。而且需求是主觀的,你認為對的,也許在別人眼裡就是不正確的!

 測試無法顯示潛伏的軟體缺陷

        想想一下,如果讓你測試軟體,你測試很多回後的結果是,沒有發現問題,但是這個時候你能說,這個軟體是沒有問題,沒有bug的嗎?軟體測試的工作與防疫員是很相似的,你可以報告軟體存在問題,但是卻不能報告軟體沒有問題。解決方案,繼續測試。

        看完上面的兩條,相信你對“軟體測試有風險”這個標題有了一定的認識,任何人都無法對軟體進行完全測試,這樣也導致了軟體很可能潛伏bug,所以,我們要做的是,儘可能的降低風險,貼近完全測試。在這裡,軟體測試員需要學會一個關鍵的思想——如何把數量巨大的可能測試減少到可以控制的範圍,以及如何針對風險做出明智的抉擇,哪些測試重要,哪些測試不重要。

 

 找到的bug越多,就說明軟體的bug越多

        

       你殺死過“小強(蟑螂)”嗎?小強有一個很霸氣的稱號——不死的小強!

        在這裡我們的軟體中的bug就像我們生活中的害蟲一樣,發現一個,附近可能就有一堆。而且一個有意思的現象是,軟體中的bug也具有抵抗力,當我們反覆使用相同的測試載入器來測試的時候,慢慢的你就會發現該軟體居然對此測試載入器有了免疫力,戲稱“殺蟲劑怪事”,有意思吧。

 

 並非所有的bug都要修複

        

       我們需要做出一款沒有任何bug的軟體交付給使用者嗎?做過開發的應該都知道,很多軟體的上市,多多少少都會存在一些缺陷,那麼當時為什麼沒有改?

        原因很多,比如沒有足夠的時間,不算是真正的bug,修複的風險太大,不值得修複等等,這些都可以是我們不修改bug的原因。記得我曾經在一篇博文中寫過,心有百川之人,有的時候,我們的心胸也要給bug的留一些空間。

 

三、術語和定義

 

 精確和準確

       

        你可以這樣理解,準確就是指命中目標,精確在軟體的行業,你可以指軟體的穩定性,計算的精度。我們對這個有個大致的瞭解就可以,這樣有利於我們判斷bug的嚴重層級,而且不同的公司可能有不同的標準,我們需要學習。

 

 確認和驗證

        

      確認是保證軟體符合需求;驗證是保證軟體滿足使用者的要求過程。這樣說有點繞,你可以這樣理解,確認是最基本的保證,更傾向於開發過程中的事情;而驗證是要實際去檢驗的,根據現實生活來保證是否滿足,是對最終產品的檢驗。

 

 品質和可靠性

        

        如果說這個軟體一直很穩定,可靠,我們可以說這個軟體具有可靠性,甚至於我們可以不完全正確的說,這個軟體的品質很好;而實際上判定品質好壞的範圍很廣,比如軟體的功能,運行能力,相容性等等,可靠性只是判斷軟體品質的其中一條,是必要不充分條件。

 

 測試和品質保證(QA)

        

      在這裡區分兩個定義,軟體測試員的目標是儘可能早的找出bug並確保bug修複;而軟體品質保證人員的主要職責是建立和執行改進軟體開發過程並防止bug發生的標準和方法。

        他們兩者有時候也會存在一些交叉,比如測試員會做一些QA的工作,QA人員也會進行一些測試。具體還要根據公司的安排來看,比如有的公司,測試和QA都是同一個人。

 

 小結:


         囉囉嗦嗦也說了這麼多,其實我已經儘可能的精簡了,嘿嘿。本文說的比較零散,算是對測試入門的一些專業術語和具體情況的一個瞭解吧。如果想要具體瞭解的,還要具體去查一些資料來學習,也歡迎與大家交流和探討!


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.