理解什麼是軟體缺陷,軟體缺陷到底有多嚴重,軟體缺陷發生的原因,清楚作為乙個軟體測試員的最終目標以及成為乙個優秀的軟體測試員應該具有的特點品質。
一、臭名昭著的軟體錯誤用例研究
軟體無處不在。但是軟體是人寫的——所以不完美。
二、軟體缺陷
改正軟體缺陷也許花費很小,但是解決方案的事實卻可能花費數百美元。
指的是缺失嚴重的情況,甚至是危險的情況,同時也意味著責備:
故障(fault) 失敗(failure) 缺點(defeat)
並不那麼尖銳,主要指未按預料的執行,而不是說全部失敗:
異常(anomaly) 事件(incident) 偏差(variance)
其他:問題(problem) 錯誤(error) 缺陷(bug) 矛盾(inconsistency) 特殊(feature)
注意:產品開發小組提及軟體問題的方式反映出他們處理整個開發過程的方式。
產品說明書(product specification):對開發的產品進行定義,給出產品的細節、如何做、做什麼、不能做什麼。
軟體缺陷(software bug):
1)軟體未實現產品說明書要求的功能;
2)軟體出現了產品說明書指明不應該出現的錯誤;
3)軟體實現了產品說明書未提到的功能;
4)軟體未實現產品說明說雖未明確但應該實現的功能;
5)軟體難以理解、不易使用、執行緩慢或者——從測試員的角度看,終端使用者會認為不好。
注意:軟體測試員是第乙個真正使用軟體的人,如果軟體測試員發現某些地方不對勁,無論什麼原因,都要認為是軟體缺陷。作為軟體測試員,要全面、最重要的是要客觀評價,並非所有測試發現的缺陷都要修復。
以下分析軟體缺陷出現的原因:
產品說明書:是主要原因,許多情況下,說明書沒有寫,其他情況下可能是說明書不夠全面、經常修改,或者整個開發小組沒有很好的溝通。為軟體做計畫是極其重要的,如果沒有做好,軟體缺陷就會出現。
編碼。其他。
軟體通常通過有計畫、有條理的開發過程來實現。從開始到計畫、程式設計、測試,到公開使用的過程中,都很有可能發現軟體缺陷。
注意:從說明書–設計–編碼–測試–發布整個過程中,誰著時間推移,修復軟體缺陷的費用成十倍地增長。
三、作為軟體測試員
清楚作為乙個軟體測試員的最終目標以及成為乙個優秀的軟體測試員應該具有的特點品質。
思考 :
如果只是為了測試應達到的功能,建立測試時期通過,就會遺漏功能不足之處,這樣會漏掉缺陷。
作為軟體測試員,不能滿足於僅僅找到軟體缺陷,而應該考慮如何在軟體開發過程中找出軟體缺陷,以便減低修復成本。
軟體測試員的目標是盡可能早地找出軟體缺陷,並確保其得以修復。
注意:要記住,「修復」缺陷並非指一定要改正軟體。可以使指在使用者手冊中新增一段注釋或者為使用者提供特殊的培訓。這可能需要改變市場部門廣告宣傳資料,或者甚至推遲缺陷部分功能的發布。
大多數軟體測試員應該具備的素質,或者應該有意識的培養這方面的素質:
是探索者:軟體測試員不會害怕進入陌生環境。他們喜歡拿到新軟體,安裝在自己的機器上,**結果。
是故障排除員:軟體測試員善於發現問題的癥結。他們喜歡解謎。
不放過任何蛛絲馬跡:軟體測試員總在不停地嘗試。他們可能碰到轉瞬即逝或者難以重現的軟體缺陷。他們不會但做事偶然而輕易放過,而會想盡一切可能去發現它們。
具有創造性:測試顯而易見的事實,對軟體測試員來說還不夠。他們的工作是要設想出富有創意甚至超常的手段來尋找缺陷。
是追求完美者:他們力求完美,但是當知道某些無法奇蹟是,不去苛求,而是盡力接近目標。
判斷準確:軟體測試員要決定測試內容、測試時間,以及看到的問題是否是真的缺陷。
他們注重策略和外交。軟體測試員常常帶來的是壞訊息。他們必須告訴程式設計師,你的孩子(程式)很醜。優秀的軟體測試員知道怎樣策略和職業地處理這些問題,也知道如何和不夠冷靜的程式設計師合作。
善於說服:軟體測試員找出的缺陷有時被認為不重要,不用修復。測試員要善於清晰地表達觀點,說明軟體缺陷為何必須修復,並推進缺陷的修復。
參考文獻
《軟體測試(原書第2版)》
《軟體測試的藝術(原書第3 版)》
章一 軟體測試的背景
章一 軟體測試的背景 一 軟體失敗的術語 缺點defect,偏差variance,故障fault,失敗failure,問題problem,矛盾inconsistency,錯誤error,特殊feature,事件incident,缺陷bug,異常anomaly。二 軟體缺陷的定義 1 產品說明書 pr...
軟體測試學習筆記(一)軟體測試基礎
課程鏈結 軟體測試 中國大學mooc 慕課 1.什麼是bug,談談你對它的理解 bug在英文上是小蟲子 的意思,第一次bug的出現,正是乙個小蟲子落在巨型計算機的導致電晶體短路,從而使得計算機出現問題。我理解的bug是在編譯程式時以及後續執行時出現的錯誤,有很大的不可 性,進行改錯時還可能出現,改掉...
軟體測試學習筆記(一) 軟體測試基礎
什麼是軟體測試?為了發現軟體的問題而操作軟體的過程叫做軟體測試 一 問題的定義及規劃 主要確定軟體的開發目的及可行性,制定專案總體開發計畫。即要做好市場調研。二 需求分析 在確定軟體開發可行的情況下,對軟體需要實現的各個功能進行詳細分析,明確客戶的要求,輸出需求規格說明書初版,提交評審。三 軟體設計...