最近聽我的導師-小螞蟻(博客地址:http://www.blogjava.net/lijun_li/)給大家講的軟件測試基礎知識,感覺講的挺好的,把原文貼出來跟大家共享!!!
一、軟件測試概念
什么是軟件測試?百度百科上,軟件測試的經典定義是:在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,并對其是否能滿足設計要求進行評估的過程。
其實說直白一點,就是找bug。
二、軟件測試目的
軟件測試的目的,就是基于概念而言的。其目的大概分為以下幾種:
1.發現軟件的缺陷
2.提高軟件質量
3.軟件開發,測試過程改進
4.評估軟件質量
5.降低公司對軟件的維護成本
6.降低軟件發布后,對公司負面影響的風險
三、軟件測試模型
常見的軟件測試模型包括V模型、W模型、H模型、X模型和前置模型。這里暫且介紹常用的V模型及W模型。
1.V模型
V模型是最具有代表意義的測試模型。V模型是軟件開發瀑布模型的變種,它反映了測試活動與分析和設計的關系 。
用戶需求 驗收測試
需求分析和系統設計 確認測試和系統測試
概要設計 集成測試
詳細設計 單元測試
編碼
1)從左到右,描述了基本的開發過程和測試行為,非常明確地標明了測試過程中存在的不同級別,并且清楚地描述了這些測試階段和開發過程期間各階段的對應關系 。
2)左邊依次下降的是開發過程各階段,與此相對應的是右邊依次上升的部分,即各測試過程的各個階段。
優點:V模型的價值在于它非常明確地標明了測試過程中存在的不同級別,并且清楚地描述了這些測試階段和開發過程期間各階段的對應關系。
缺點:僅僅把測試過程作為在需求分析、系統設計及編碼之后的一個階段;忽視了測試對需求分析,系統設計的驗證,一直到后期的驗收測試才被發現。
2.W模型
W模型由Evolutif公司公司提出,相對于V模型,W模型增加了軟件各開發階段中應同步進行的驗證和確認活動。W模型由兩個V字型模型組成,分別代表測試與開發過程,明確表示出了測試與開發的并行關系。
W模型中測試與開發對應關系如下:
開發:需求分析、概要設計、 詳細設計、 編碼、 軟件集成、系統集成、部署
↑ ↑ ↑ ↑ ↑ ↑ ↑
測試:需求評審、概要設計評審、詳細設計評審、單元測試、集成測試、系統測試、驗收測試
優點:測試伴隨著整個軟件開發周期,而且測試的對象不僅僅是程序,需求、設計等同樣要測試,也就是說,測試與開發是同步進行的。W模型有利于盡早地全面的發現問題。
例如,需求分析完成后,測試人員就應該參與到對需求的驗證和確認活動中,以盡早地找出缺陷所在。同時,對需求的測試也有利于及時了解項目難度和測試風險,及早制定應對措施,這將顯著減少總體測試時間,加快項目進度。
局限性:在W模型中,需求、設計、編碼等活動被視為串行的,同時,測試和開發活動也保持著一種線性的前后關系,上一階段完全結束,才可正式開始下一個階段工作。這樣就無法支持迭代的開發模型。對于當前軟件開發復雜多變的情況,W模型并不能解除測試管理面臨著困惑。
四、軟件測試基本流程
根據上述的W模型,軟件測試基本流程包括如下:
1.測試需求分析
2.測試計劃
3.測試設計(測試策略、測試用例)
4.測試執行(手工測試、測試工具)
5.缺陷跟蹤
6.回歸測試
7.編寫測試報告
這里要注意,一般產品有需求之后,會有需求評審會,測試會一并參加,并需要在會議上積極發言,提出自己不清楚或有疑問的需求點。這樣更有利于后期測試用例的編寫。
測試流程是這樣,但是,還是要真正動手測試,才能更加深刻的理解軟件測試流程中的每個階段含義。
五、軟件測試的基本方法
1.測試技術原理
1)黑盒測試,主要有等價類劃分法、場景法等
2)灰盒測試
3)白盒測試,主要有靜態測試、動態測試
4)探索性測試
2.測試策略
測試策略大概分為以下幾種:
數據和數據庫完整性測試、接口測試、集成測試(業務流程測試)、功能測試、用戶界面測試(用戶友好性測試)、性能測試、瀏覽器兼容性測試、負載測試、強度測試、安全性和訪問控制測試、故障轉移和恢復測試、配置測試、安裝測試。
我們要根據測試處于開發、測試的對應階段,分析測試需求,合理的去應用測試技術原理和測試策略。要具體情況具體分析。
六、軟件測試工具
1.功能測試工具
1)WinRunner(Mercury公司)
2)Robot、XDE tester(IBM公司)
3)TestComplete
4)Ruby+watir(開源)
2.單元測試工具
1)DUnit(Delphi)
2)JTest、Junit(java)
3)NUnit(.NET)
3.性能測試工具
1)LoadRunner(Mercury公司)
2)Apache Jmeter(開源)
3)Siege(開源)
4)Robot(IBM公司)
5)eHealth
4.缺陷跟蹤管理工具(開源)
1)Bugzilla
2)禪道
3)redmine
4)Bugfree
5)Mantis
5.用例管理工具
1)TestLink
2)TestManager(Rational測試解決方案中,推薦的測試用例管理工具)
3)禪道
6.自動化測試工具(app)
1)monkeyrunner
2)appium
3)Robotium
4)UI Automator
七、軟件測試經驗分享
文章中大概介紹了測試理論、測試策略及測試工具等,是比較入門級的,沒有深入介紹。這里要說一下,測試理論要結合實際情況,進行正確有效的應用,才能發揮它的作用,因此要多實踐,實踐出真知。對于測試工具而言,它不是萬能的,但是沒有工具是萬萬不能的,所以要學會什么情況下,使用什么樣的測試工具,進行什么樣的測試,這才是最重要的,不要為了使用工具而使用。
最后,對于測試而言,要善于總結測試工作,從總結中積累自己的測試經驗和特長。并且要積極主動,學會提問題,要讓別人知道你想問的信息是什么。當對測試工作有了一定的了解之后,就要對自己以后的測試工作進行規劃,有計劃的朝自己的目標努力。過程雖然比較辛苦,當收獲成長的時候,就會非常欣慰,感覺一切都值得。我們一定要趁著年輕,多學習,多積累,不要以后讓自己后悔。
好了,今天就啰嗦到這里了,關于測試,永遠有說不完的話題。。。未完待續
文章列表