文章出處

最近聽我的導師-小螞蟻(博客地址: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

七、軟件測試經驗分享

文章中大概介紹了測試理論、測試策略及測試工具等,是比較入門級的,沒有深入介紹。這里要說一下,測試理論要結合實際情況,進行正確有效的應用,才能發揮它的作用,因此要多實踐,實踐出真知。對于測試工具而言,它不是萬能的,但是沒有工具是萬萬不能的,所以要學會什么情況下,使用什么樣的測試工具,進行什么樣的測試,這才是最重要的,不要為了使用工具而使用。

最后,對于測試而言,要善于總結測試工作,從總結中積累自己的測試經驗和特長。并且要積極主動,學會提問題,要讓別人知道你想問的信息是什么。當對測試工作有了一定的了解之后,就要對自己以后的測試工作進行規劃,有計劃的朝自己的目標努力。過程雖然比較辛苦,當收獲成長的時候,就會非常欣慰,感覺一切都值得。我們一定要趁著年輕,多學習,多積累,不要以后讓自己后悔。

好了,今天就啰嗦到這里了,關于測試,永遠有說不完的話題。。。未完待續

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()