軟體測試戰略_測試那些事
這幾天看了一些關於軟體工程裡面軟體測試方面的書籍,感覺蠻有收穫,試與諸君共分享之。
軟體測試,對我這個才進入軟體領域兩年不到的菜鳥來說是一個既熟悉又陌生的詞彙。每個軟體行業的人不可能沒聽說過軟體測試,但是,我相信大多數和我一樣的菜鳥都沒有真正對自己寫的軟體程式做過系統的軟體測試工作。
說到這裡,有很多同學都不樂意了。我怎麼沒測試了?!!我都是寫一段程式碼就run一下,保證一段程式碼成功了才寫後面的好不好。而且,我寫的程式都能正確執行好不好。OK,OK,先不談這個,當年我也是這麼認為的,關於這點我們首先來界定下何為軟體測試再說。
官話:軟體測試的目的是為了發現軟體設計和實現過程中的疏忽說造成的錯誤。
我的理解:發現並修改軟體中不好的部分。這些不好的地方指錯誤、低效程式碼、不合理或不方便的設計等等一切影響功能和最終客戶反饋的地方。
同學們,還堅持麼?
一個很嚇人的事實是軟體界存在8020法則,即大多數好的軟體其測試所花費的工作量比其他所有的軟體工程加起來都多,比例為80:20。從這個角度來講,若大型系統的測試還像小遊戲一樣無規則、無計劃的進行測試,結果可想而知...可想而知,好的測試思路與方法在正式的測試工作當中是絕對必要的了...
一、軟體測試的戰略方法與思想
1.1 驗證與確認(Verification and Validation,V&V)
在大的方向,軟體測試通常做兩件事:驗證--即保證軟體的功能正確實現,和確認--確保軟體合乎客戶真正的需求。
上面的話可能讓人頭痛----不是一樣的意思麼?
好吧,換一種說法:驗證--我們在正確的構造產品麼? 確認--我們在構造正確的產品麼?
驗證不用說,正確性是軟體(其實遠不止軟體)最基本的要求,做計算器時你至少得保證1+1不等於3吧!!關於確認,很多程式設計人員都有一個誤區,就是我做客戶讓我做的東西。但一個很重要的問題是,客戶提出的需求真的與軟體的實際需求一致麼?撇去客戶表達與需求分析之間的不一致性不談,在人機設計與介面互動這一塊我們能做的更好吧。這裡借用MXR同學的成果(見圖1):當我們在做webAPP時,對同樣的功能需求,不同的表現方式會達到不同的效果。這也就是說,軟體測試,不僅僅是測試錯誤,更要對軟體的可用性與適用性做出修正,即保證軟體的質量。同樣,測試還應該包括效能監控、可行性研究、資料庫評測、演算法分析等等一切影響軟體質量的屬性。
圖 1
1.2 軟體測試的組織
V&V實現解決了測試是幹什麼這個基本問題,現在要解決另一個基本問題:誰來做測試工作?
很多人會有這樣的思想,對同樣的東西(這裡是指待測試的軟體模型),不同的人在認識上肯定會有差異。那麼,軟體開發人員對軟體進行測試是一個很好的選擇,誰能比開發者本人更瞭解程式呢!!!這也是為什麼別人列出一長串程式碼讓你找出某個錯誤時,你不耐煩的原因。
然而,一個顯而易見的事實是,開發人員本身總是急於展現他們所開發的程式的正確性,是成功的,是符合期望的,這是人之常情。令人遺憾的是,錯誤時客觀存在的。筆者也經常在向別人展示自己花了很大心思做成的程式時,試圖掩飾莫名出現的錯誤。有人說過,從心理學方面來看,軟體的分析和設計都是一類建設性的工作。從本文後面可以看到,軟體人員總是努力構造測試例項來“破壞”軟體。軟體工程師也會自豪與自己的“孩子”,這種仇視任何一個企圖傷害自己“孩子”的人這種心理是可以理解的。
那麼是否可以得出結論:開發工作與測試工作應該分離開來?答案是否定的。雖然獨立測試組(Independent Test Group,ITG)在所有大公司都是存在的,但開發人員與測試人員在軟體開發初期就應該進行交流。一個原因前面已經說了,你能忍受從頭看別人給你的100000+行程式碼,然後找出某個似乎存在的錯誤麼?筆者在前一段時間試圖分析hadoop的原始碼,不到兩天腦袋就歇菜了。另一個可能的原因是,測試並不僅僅是“大家一起來找茬”,而是一個自我修正的過程,完全需要開發人員一起來參與。
從這個意義上來講,ITG是軟體開發專案組的一部分。
......
本文轉載自51Testing軟體測試網,檢視全文:http://www.51testing.com/html/01/n-810301.html
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11323760/viewspace-1057794/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 軟體測試那些事
- 你不知道的軟體測試那些事?
- 軟體自動化測試工具的那些事兒
- 軟體測試探秘:從各類軟體測試入門,領略測試的奧秘
- 測試界的飛虎隊:測試人才戰略——測試行業的精英戰略(學習了)行業
- 【軟體測試】——介面測試
- 軟體驗收測試 第三方軟體測試 軟體功能測試 軟體資訊保安測試
- 軟體效能測試的內容有那些?
- 軟體測試-測試計劃
- 軟體測試——三、軟體測試的分類
- 軟體測試專案實戰之功能測試 千鋒實戰教程
- 軟體測試
- 軟體測試技術-黑盒測試
- 軟體測試:自動化測試
- 軟體測試對軟體質量的影響有那些?
- 軟體測試學習教程—軟體測試質量
- 軟體測試學習 ——五種軟體測試模型模型
- 軟體測試教程之手機軟體測試方法
- Python和單元測試那些事兒Python
- 軟體測試培訓教程:軟體測試面試之怎麼測試刷抖音?面試
- 軟體測試中的功能測試和非功能測試
- 軟體測試之測試分類_1.4
- 軟體測試之易用性測試
- 軟體測試計劃與測試方案
- 軟體測試員如何提取測試需求?
- 軟體穩定性測試的測試點
- 軟體測試經典測試題(4)
- 軟體測試面試問題_介面測試(二)面試
- 軟體測試入門【1】什麼是軟體測試
- 軟體測試書籍-學軟體測試最好的書
- 軟體測試真的很重要!——軟體測試的作用
- 軟體測試學習教程—軟體測試基本知識
- 軟體效能測試有哪些測試方法?靠譜的軟體測試公司推薦
- 軟體安全測試有哪些測試手段?軟體測試報告收費貴嗎?測試報告
- 軟體功能測試的測試流程有哪些?軟體測試公司排名分享
- 軟體效能測試常見指標。在哪裡測試測試?指標
- 軟體測試流程
- 【軟體測試】缺陷
- 軟體測試模型模型