零基礎自學軟件測試-軟件測試的概念和分類

QQ交流羣:929262679,免費領取測試資料,免費公開課,免費分享項目實戰經驗等

一、軟件測試的概念

1 經典定義

     軟件測試,在規定的條件下對程序進行操作,以發現程序錯誤,衡量軟件質量,並對其是否能滿足設計要求進行評估的過程。

2 標準定義

    軟件測試是使用人工或自動的手段來運行或測定某個軟件系統的過程,其目的在於檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差別。

3 測試目的

軟件測試的目的是發現問題,發現至今未發現的問題。檢查系統是否滿足需求。

二、軟件測試分類

1 按階段劃分

單元測試(Unit Testing)

單元測試是對軟件組成單元進行測試。其目的是檢驗軟件基本組成單位的正確性。測試的對象是軟件設計的最小單位:模塊。Findyou又稱爲模塊測試

測試階段:編碼後

測試對象:最小模塊

測試人員:白盒測試工程師或開發工程師

測試依據:代碼和註釋+詳細設計文檔

測試方法:白盒測試

測試內容:模塊接口測試、局部數據結構測試、路徑測試、錯誤處理測試、邊界測試

 

 集成測試(Integration Testing)

集成測試也稱聯合測試、組裝測試,將程序模塊採用適當的集成策略組裝起來,對系統的接口及集成後的功能進行正確性檢測的測試工作。阿旺主要目的是檢查軟件單位之間的接口是否正確。

測試階段:一般單元測試之後進行

測試對象:模塊間的接口

測試人員:白盒測試工程師或開發工程師

測試依據:單元測試的模塊+概要設計文檔

測試方法:黑盒測試與白盒測試相結合

測試內容:模塊之間數據傳輸、模塊之間功能衝突、模塊組裝功能正確性、全局數據結構、單模塊缺陷對系統的影響

 

 系統測試(System Testing)

將軟件系統看成是一個系統的測試。包括對功能、性能以及軟件所運行的軟硬件環境進行測試。時間大部分在系統測試執行階段

測試階段:集成測試通過之後

測試對象:整個系統(軟、硬件)

測試人員:黑盒測試工程師

測試依據:需求規格說明文檔

測試方法:黑盒測試

測試內容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

 

 驗收測試(Acceptance Testing)

驗收測試是部署軟件之前的最後一個測試操作。它是技術測試的最後一個階段,也稱爲交付測試。阿旺總結驗收測試的目的是確保軟件準備就緒,按照項目合同、任務書、雙方約定的驗收依據文檔,向軟件購買都展示該軟件系統滿足原始需求。

測試階段:系統測試通過之後

測試對象:整個系統(包括軟硬件)。

測試人員:主要是最終用戶或者需求方。

測試依據:用戶需求、驗收標準

測試方法:黑盒測試

測試內容:同系統測試(功能...各類文檔等)

 

2按是否查看代碼劃分  //重點掌握

黑盒測試(Black-box Testing)

黑盒測試也稱功能測試,測試中把被測的軟件當成一個黑盒子,不關心盒子的內部結構是什麼,只關心軟件的輸入數據與輸出數據。

 

白盒測試(White-box Testing)

白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基於代碼的測試。白盒指的打開盒子,去研究裏面的源代碼和程序結果。

 

灰盒測試(Gray-Box Testing)

灰盒測試,是介於白盒測試與黑盒測試之間的一種測試,灰盒測試多用於集成測試階段,不僅關注輸出、輸入的正確性,同時也關注程序內部的情況。

 3按是否執行程序劃分 

 靜態測試(Static testing)

靜態方法是指不運行被測程序本身,僅通過分析或檢查源程序的語法、結構、過程、接口等來檢查程序的正確性。對需求規格說明書、軟件設計說明書、源程序做結構分析、流程圖分析、符號執行來找錯。阿旺分析如下

檢查項:代碼風格和規則審覈;程序設計和結構的審覈;業務邏輯的審覈;走查、審查與技術複審手冊。

靜態質量:度量所依據的標準是ISO9126。在該標準中,軟件的質量用以下幾個方面來衡量,即功能性(Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可維護性(Maintainability)、可移植性(Portability)。 

動態測試(Dynamic testing)

動態測試方法是指通過運行被測程序,檢查運行結果與預期結果的差異,並分析運行效率、正確性和健壯性等性能。這種方法由三部分組成:構造測試用例、執行程序、分析程序的輸出結果。

 4按是否查看代碼劃分 //重點掌握

 手工測試(Manual testing)

手工測試就是由人去一個一個的輸入用例,然後觀察結果,和機器測試相對應,屬於比較原始但是必須的一個步驟。阿旺總結優缺點:

優點:自動化無法替代探索性測試、發散思維類無既定結果的測試。

缺點:執行效率慢,量大易錯。

自動化測試(Automation Testing)

就是在預設條件下運行系統或應用程序,評估運行結果,預先條件應包括正常條件和異常條件。簡單說自動化測試是把以人爲驅動的測試行爲轉化爲機器執行的一種過程。

自動化測試比如功能測試自動化、性能測試自動化、安全測試自動化。

通常所說的自動化是指功能測試自動化。

Findyou看AI技術的興起發展,類似可預見工作都有可能會被僞AI代替。

 5其他彙總

冒煙測試(Smoke Testing) //重點掌握

在《微軟項目求生法則》一書第14章“構建過程”關於冒煙測試,就是開發人員在個人版本的軟件上執行目前的冒煙測試項目,確定新的程序代碼不出故障。

冒煙測試目的是確認軟件基本功能正常,冒煙測試的執行者是版本編譯人員。

現基本執行對象爲測試人員,在正規測試一個新版本之前,投入較少的人力和時間驗證基本功能,通過則測試准入。

 

隨機測試(Ad-hoc Testing)

隨機測試主要是根據測試者的經驗對軟件進行功能和性能抽查。

根據測試說明書執行用例測試的重要補充手段,是保證測試覆蓋完整性的有效方式和過程。

隨機測試主要是對被測軟件的一些重要功能進行復測,也包括測試那些當前的測試用例(TestCase)沒有覆蓋到的部分。

 

安全測試(Security Testing)  

安全測試是在IT軟件產品的生命週期中,特別是產品開發基本完成到發佈階段,對產品進行檢驗以驗證產品符合安全需求定義和產品質量標準的過程 。

Findyou覺現在對安全知識的普及,大家意識都提上來了。比如現在越來越多的不支持HTTP協議,轉用HTTPS等。

 

探索性測試(Exploratory testing)

探索性測試可以說是一種測試思維技術。它沒有很多實際的測試方法、技術和工具,但是卻是所有測試人員都應該掌握的一種測試思維方式。探索性強調測試人員的主觀能動性,拋棄繁雜的測試計劃和測試用例設計過程,強調在碰到問題時及時改變測試策略。

探索性測試自動化暫時無法代替。Findyou也無法被代替。

敏捷測試(Agile testing) //重點掌握

Agile Testing --遵循敏捷宣言的一種測試實踐;

2001提出敏捷宣言—

個體與交互重於過程和工具;

可用的軟件重於完備的文檔;

客戶協作重於合同談判;

響應變化重於遵循計劃;

在每一對比較中,後者並非全無價值,但我們更看重前者。

敏捷測試強調從客戶的角度進行測試、重點關注迭代測試新功能,不再強調測試階段、儘早測試,不間斷測試,具備條件及測試,強調持續反饋、預防缺陷重於發現缺陷;

 

 

迴歸測試(Regression Testing) //重點掌握

迴歸測試是指修改了舊代碼後,重新進行測試以確認修改沒有引入新的錯誤或導致其他代碼產生錯誤。自動迴歸測試將大幅降低系統測試、維護升級等階段的成本。

在整個軟件測試過程中佔有很大的工作量比重,軟件開發的各個階段都會進行多次迴歸測試。通過選擇正確的迴歸測試策略來改進迴歸測試的效率和有效性是很有意義的。

 

接口測試Interface testing//重點掌握

接口測試是測試系統組件間接口的一種測試。接口測試主要用於檢測外部系統與系統之間以及內部各個子系統之間的交互點。測試的重點是要檢查數據的交換,傳遞和控制管理過程,以及系統間的相互邏輯依賴關係等。

 

α測試(Alpha Testing)   

α測試是由一個用戶在開發環境下進行的測試,也可以是公司內部的用戶在模擬實際操作環境下進行的測試。α測試的目的是評價軟件產品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。

大型通用軟件,在正式發佈前,通常需要執行Alpha和Beta測試。α測試不能由程序員或測試員完成。

 

β測試(Beta Testing)

Beta測試是一種驗收測試。Beta測試由軟件的最終用戶們在一個或多個客房場所進行。

α測試與Beta測試的區別:

測試的場所不同:Alpha測試是指把用戶請到開發方的場所來測試,beta測試是指在一個或多個用戶的場所進行的測試。

Alpha測試的環境是受開發方控制的,用戶的數量相對比較少,時間比較集中。beta測試的環境是不受開發方控制的,用戶數量相對比較多,時間不集中。

alpha測試先於beta測試執行。通用的軟件產品需要較大規模的beta測試,測試周期比較長。

                                                                         

                                                          

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章