軟件測試的重要性

1、首先,什麼是軟件測試?

很多人看到這個小標題肯定會一笑而過,但你絕不能忽視他的真正概念。

軟件測試是檢查實際結果與預期結果是否匹配並確保軟件系統無缺陷的活動。軟件測試還有助於識別產品與實際需求不符或是缺失項。測試活動既可以手動完成,也可以使用自動化工具完成。有些人更喜歡將軟件測試稱為白盒和黑盒測試。

2、軟件測試的目標

在給定的產品中儘可能多地發現錯誤(或bug)。

演示一個給定的軟件產品與它的需求規格匹配。

使用最小的成本和努力來驗證軟件的質量。

生成高質量的測試用例,執行有效的測試,併發布正確和有用的問題報告。

3、軟件測試過程

軟件測試通常分為兩個主要過程——驗證 & 認證。

驗證 是當您的團隊只需要檢查軟件、系統或框架是否符合文檔要求時的過程。

驗證是您的團隊需要驗證系統正確性的過程。在這個過程中,您將回顧產品、系統,並考慮用戶真正想要什麼和已經做了什麼。

在軟件測試中,錯誤、缺陷和錯誤之間有區別,我們應該清楚地區分,以避免誤解問題。

4、為什麼軟件測試很重要?

測試很重要,因為軟件錯誤可能很昂貴甚至很危險,一個bug越長越不被發現,它就可能帶來更大的隱患。此外,如果測試團隊錯過了準確詳盡地捕捉或識別風險和軟件問題,會導致一些災難發生,那麼就需要付出昂貴的代價來檢測bug,所以軟件漏洞或是Bug可能會導致貨幣和人員的損失,歷史上太多這樣的例子,下面我們就來看看這些經典的事例。

2015年4月,倫敦彭博終端由於軟件漏洞宕機,導致金融市場上超過30萬交易商受到影響。迫使政府推遲30億英鎊的債務出售。

日產尼桑汽車由於安全氣囊感應探測器的軟件故障,召回超過100萬輛汽車。據報道,由於此軟件故障導致兩起事故。

星巴克咖啡由於POS系統的軟件故障無法處理交易,因此被迫關閉了美國和加拿大約60%的商店。

亞馬遜的一些第三方零售商看到他們的產品由於軟件故障價格全部被降至1英磅,由此導致慘重損失。

Windows 10中的漏洞,此問題使用戶能夠通過win32系統中的缺陷脫離安全沙箱。

2015年,F-35戰鬥機成為軟件漏洞的受害者,導致其無法正確檢測目標。

1994年4月26日,中國航空公司空中客車A300因軟件故障而墜毀,造成264人無辜死亡

1985年,加拿大的Therac-25放射治療機由於軟件Bug而發生故障,向患者提供了致命的輻射劑量,造成3人死亡,3人嚴重受傷。

1999年4月,一個軟件漏洞導致12億美元的軍事衛星發射失敗,這是歷史上最昂貴的事故。

1996年5月,一個軟件問題導致美國一家大型銀行823名客戶的銀行賬戶被記入9.2億美元。

2018年6月27日,阿里雲出現大規模故障,原因為上線自動化運維繫統觸發未知Bug,導致部分產品訪問鏈接不通,影響時間約半小時,不知道雲中的程序猿們年終獎是否會泡湯。

5、軟件測試的類型

通常,測試分為三類:

軟件測試的重要性

下面詳細介紹一些比較常用的類型:

1、單元測試

這是在開發人員級別使用的最基本的測試,測試人員專注於單元代碼的單個部分,而它已經從任何外部交互或依賴於任何模塊之前被隔離。這個測試要求開發人員檢查他們編寫的最小代碼單元,並證明單元可以獨立工作。

2、集成測試

在開發人員級別上,在單元測試之後,還應該仔細檢查這些最小代碼的組合(或集成)。集成測試提供了訪問網絡、數據庫和文件系統的測試模塊。

它們將指示數據庫和網絡在合併到整個系統時是否運行良好。最重要的是,在前一階段測試的小代碼單元之間的連接將在這個階段被證明。

3、功能測試

毫無疑問,功能測試是更高級別的測試類型,應該在集成測試之後使用。

功能測試檢查輸出與規範中定義的輸入的準確性。對中間值不太重視,但對所創建的最終輸出給予了更多的關注。

4、冒煙測試

冒煙測試的類比來自於電子產品,其中一個問題意味著電路板散發出煙霧。

在功能測試完成之後,在新安裝和更新的輸入值之後,將在起始點執行一個簡單的測試。

5、迴歸測試

當系統中出現複雜的bug時,通常會影響系統的核心區域,所以使用迴歸測試來重新測試系統的所有模塊。

6、UI測試

除了上面的核心測試類型, UI測試現在也是一個眾所周知的,在軟件工程行業非常流行。

該圖形用戶界面測試確保了對所有用戶友好的特定應用程序或產品。UI測試主要評估設計組件,如佈局、顏色、字體、大小等等。另外, UI測試可以手動和自動執行。

當然這不是完整的測試分類列表,因為目前已經有超過150種的測試類型,並且仍在增加中。另外請注意,並非所有測試類型都適用於所有項目,這仍然取決於項目的性質以及測試範圍。

總結:

隨著軟件業的迅猛發展,軟件測試也變得尤為重要,但是很多人對測試行業的誤解還是存在的,“軟件的重點在於需求,在與分析,在於設計,在於開發,而測試,容易,沒什麼技術含量,找一些用戶,對照需求盡力去測就行了;有時間多測點,沒時間少測點。”這種錯誤的看法在好多項目經理,軟件負責人的心中鞏固著,難以改變。

這種觀念的結果有目共睹,是什麼?很簡單,是大量軟件BUG,缺陷的“流失”從測試人員的手中悄然而過,流失到用戶手中,流失進項目維護階段,隨之而來的,便是用戶無休止的抱怨,維護人員無休止的 “救火”,維護成本無休止的增加。這是軟件人員的夢魘!

噩夢總有醒來時,經過無數教訓的重擊,再不堪回首而不得回首的經歷中,軟件業的管理者發現:是他們錯了,軟件測試是不可忽視的。


分享到:


相關文章: