知識點暴擊匯總:一篇文章幫你理清軟體測試方法

2021-01-09 牛鷺學院軟體測試

在談論軟體測試分類的時候,分類的結果五花八門。因為大家將各個維度劃分的內容都集中到一起了,再加上各自不同的見解與補充,就有各種衝突存在。

軟體測試基本定為4類測試(最多5類,自動化或者兼容性單獨提出來):功能測試、性能測試、安全測試、特性測試。大家化繁為簡,轉為自己理解的分類,避免死記硬背帶來的理解不深入,遺漏測試範圍。測試4類劃分如下:

功能測試:關注功能正常(包含兼容性測試),除了下面分類都測;性能測試:關注(比如前端性能、後端性能);安全測試:關注傳輸、存儲等安全;特性測試:特性指平臺差異(即部分兼容性測試),如PC端滑鼠,鍵盤操作特性(Tab鍵等);如手機觸屏操作,橫豎屏,中斷恢復(來電)等。牛鷺學院對軟體測試分類進行梳理,詳見下文。

軟體測試概念

經典定義:

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

標準定義

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

測試目的

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

Grenford J.Myers觀點(1)測試是程序的執行過程,目的在於發現錯誤;(2)一個好的測試用例在於能發現至今未發現的錯誤;(3)一個成功的測試是發現了至今未發現的錯誤的測試;

測試的對象

程序、數據、文檔。

軟體錯誤佔比

據業界著名的統計公司的統計表明,屬於需求分析和軟體設計錯誤的約佔64%,屬於程序編寫錯誤的僅佔36%。

其他基礎知識

V模型RAD(Rap Application Development,快速應用開發)模型是軟體開發過程中的一個重要模型,由於其模型構圖形似字母V,所以又稱軟體測試的V模型,V模型大體可以劃分為以下幾個不同的階段步驟:需求分析、概要設計、詳細設計、軟體編碼、單元測試、集成測試、系統測試、驗收測試。

軟體測試分類

測試級別:

單元測試、集成測試、接口測試、系統測試、驗收測試

測試方法:

動態測試、靜態測試;黑盒測試、白盒測試、灰盒測試。

測試類型:

安裝測試、兼容性測試、冒煙測試、回歸測試、驗收測試、 alpha測試、beta測試、功能測試和非功能測試、持續測試、破壞性測試、軟體性能測試、可用性測試、可達性測試、安全測試、開發測試、A/B測試、並發測試、一致性測試

綜合整理分類:

按階段劃分

√ 單元測試(Unit Testing)

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

測試階段:編碼後測試對象:最小模塊測試人員:白盒測試工程師或開發工程師測試依據:代碼和注釋+詳細設計文檔測試方法:白盒測試測試內容:模塊接口測試、局部數據結構測試、路徑測試、錯誤處理測試、邊界測試

√ 集成測試(Integration Testing)

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

測試階段:一般單元測試之後進行測試對象:模塊間的接口測試人員:白盒測試工程師或開發工程師測試依據:單元測試的模塊+概要設計文檔測試方法:黑盒測試與白盒測試相結合測試內容:模塊之間數據傳輸、模塊之間功能衝突、模塊組裝功能正確性、全局數據結構、單模塊缺陷對系統的影響

√ 系統測試(System Testing)

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

測試階段:集成測試通過之後測試對象:整個系統(軟、硬體)測試人員:黑盒測試工程師測試依據:需求規格說明文檔測試方法:黑盒測試測試內容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

√ 驗收測試(Acceptance Testing)

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

測試階段:系統測試通過之後測試對象:整個系統(包括軟硬體)。測試人員:主要是最終用戶或者需求方。測試依據:用戶需求、驗收標準測試方法:黑盒測試測試內容:同系統測試(功能...各類文檔等)

按是否查看代碼劃分

√ 黑盒測試

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

√ 白盒測試

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

√ 灰盒測試

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

按是否執行程序劃分

√ 靜態測試

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

檢查項:代碼風格和規則審核;程序設計和結構的審核;業務邏輯的審核;走查、審查與技術覆審手冊。靜態質量:度量所依據的標準是ISO9126。在該標準中,軟體的質量用以下幾個方面來衡量,即功能性(Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可維護性(Maintainability)、可移植性(Portability)。

√ 動態測試

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

按是否查看代碼劃分

√ 手工測試

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

優點:自動化無法替代探索性測試、發散思維類無既定結果的測試。缺點:執行效率慢,量大易錯。

√ 自動化測試

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

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

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

其他匯總

√ 冒煙測試

就是開發人員在個人版本的軟體上執行目前的冒煙測試項目,確定新的程序代碼不出故障。

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

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

√ 隨機測試

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

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

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

√ 安全測試

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

√ 探索性測試

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

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

√ 回歸測試

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

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

√ α測試

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

大型通用軟體,在正式發布前,通常需要執行Alpha和Beta測試。α測試不能由程式設計師或測試員完成。

√ β測試

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

alpha測試與Beta測試的區別:

測試的場所不同:Alpha測試是指把用戶請到開發方的場所來測試,beta測試是指在一個或多個用戶的場所進行的測試。Alpha測試的環境是受開發方控制的,用戶的數量相對比較少,時間比較集中。beta測試的環境是不受開發方控制的,用戶數量相對比較多,時間不集中。alpha測試先於beta測試執行。通用的軟體產品需要較大規模的beta測試,測試周期比較長。

總結:

測試種類過多,導致測試及非測試人員老是談不到一個點,希望此文對大家梳理分類有所幫助。

如前言所說,我認為測試分4類(5類)足以覆蓋:功能測試、安全測試、性能測試、特性測試、自動化測試。

相關焦點

  • 知識點暴擊匯總:一篇文章幫你理清軟體測試方法
    測試級別:單元測試、集成測試、接口測試、系統測試、驗收測試測試方法:動態測試、靜態測試;黑盒測試、白盒測試、灰盒測試。其目的是檢驗軟體基本組成單位的正確性。測試的對象是軟體設計的最小單位:模塊。又稱為模塊測試測試階段:編碼後測試對象:最小模塊測試人員:白盒測試工程師或開發工程師測試依據:代碼和注釋+詳細設計文檔測試方法:白盒測試測試內容:模塊接口測試、局部數據結構測試、路徑測試、錯誤處理測試、邊界測試
  • MAP測試是什麼,一篇文章讓你懂!
    二、靈活的自適應機考如果將MAP測試考綱裡的知識點當作一個個籃子,那對應每個知識點的籃子都會被裝上大量的題目,每個題目還會被標上不同的難度值。考生在考試的時候,相當於是從這些籃子裡隨機挑出題目。這就是MAP測試另一個顯著的特點:自適應考試機制。
  • 想入門軟體測試?看這篇文章就夠了
    我在頭條中寫了太多關於測試技術的文章,眾多測試小白表示強烈的抗議!於是我準備了這篇介紹測試相關基礎知識非常適合測試小白的文章。如果你想踏入測試領域,文章中所有的知識點請你務必牢記!因為他們都是初級測試工程師的必會知識點。本文涉及的理論知識都是在具體實踐工作中能夠使用到的相關知識點,因此更具有針對性。
  • 我是如何使用 Mac 寫作和發布一篇文章的?
    今天跟大家分享一下,工作日常中我是如何在這臺 Mac 上完成一篇公眾號文章的。並且價格相比 Photoshop 來說太便宜了,對了這款軟體最近還在打折中(¥188)。這款軟體可以把視頻製作成 GIF 動圖,有很多參數可以設置。
  • 一篇文章告訴你方法
    一篇文章告訴你方法其實概念很簡單,DAPP之於區塊鏈正如同APP之於IOS,Android作業系統,都是基於底層區塊鏈開發平臺上運行的。一篇文章告訴你方法以近期「空投」大火的uniswap為例,如果將這個應用的中文版的網站放置到Imtoken錢包進行搜索,它就會顯示「請求連結錢包」的提示字眼,這個時候就需要授權用戶的Imtoken地址才能進行登錄了。
  • 接口測試系列文章之接口測試面試必問的知識點(二)
    接口測試系列文章之接口測試面試必問的知識點(二) 今天我們以python發送http接口為例,在python中通過requests模塊進行http接口測試工作。
  • 閱途方法丨如何寫一篇優秀的Book Report?一篇文章幫你搞定!
    Book Report & Review 能夠有效檢驗學生對圖書內容理解程度和寫作能力水平,因此在讀完書後,很多老師喜歡讓學生寫一篇 Book Report or Review 來鍛鍊學生的閱讀和寫作能力。L醬曾經在《Book Report & Review:小文章見大世界!
  • 一篇文章總結可用性測試方法
    之前總結過一版互動設計流程圖,主要是想給自己以後做設計梳理一下過程,但是那份流程裡面只有枝幹,並沒有枝葉,所以針對每個方法我都會撰寫一份方法總結,或者說指導,目的就是為以後實踐做準備。不過耐心看完肯定會有所收穫)作者|@Autumn阿秋來源|人人都是產品經理(微信公眾號woshipm)1.可用性測試的過程可用性測試的過程主要有七個步驟:測試前思考、製作測試原型、撰寫測試腳本、招募測試者、設置測試環境
  • 如果你剛入門PS 請看這篇文章 幫你理清學習思路
    以下是我在設計教學生涯中,總結出來的幾個要點,希望能幫你理清思路,更好入門學習:一、首先明白PS是一個圖片處理、圖片創意合成的軟體,也是淘寶美工必用的一個排版設計軟體。以上是我想對初學者說的話,如果你準備開始學習PS,可以考慮關注我發表的視頻教程,有問題可留言或私信,我將知無不言。
  • 王者榮耀:一篇文章讀懂暴擊效果和暴擊率,原來暴擊效果有上限
    #2020百度APP遊戲年度盛典#百度搜索「遊戲年度盛典」,為你心目中的年度影響力投票吧還有小度音箱、定製周邊等高能福利等你來拿哦!文 | 可兒遊戲說 原創文章,抄襲必究連雨不知春去,一晴方覺夏深。暴擊機率可以通過裝備來疊加,最高疊到100%,超過的部分沒有意義。暴擊率越高那麼你每一發普攻暴擊的概率就越大。有一點要注意的是,普攻攻擊觸發暴擊是一個隨機事件,並不是說你有50%暴擊率就可以每兩下普攻必定觸發暴擊,每一次攻擊觸發暴擊的概率都是一次獨立事件。
  • 人教英語第一單元《Hello》知識點匯總+課時習題+單元測試卷
    知識點總結下面有一套本單元的測試卷,孩子們學習後一定要做一做與課堂學習內容相關的練習題,這樣幫助孩子們更好地鞏固知識點。文末有聽力及word資料的領取方式!親愛的家長,今天的內容先為大家更新到這裡,謝謝大家的支持和轉發,你的點讚和轉發是我們持續更新下去的唯一動力。
  • 初中數學思維導圖全匯總 輕鬆幫孩子快速理清所有知識點
    找到好的學習方法,養成良好習慣,數學其實是可以很簡單的。數學是一門很重要的學科,不僅初中、高中、甚至大學裡一大半的專業還需要學習高數,所以逃避和認命都不是方法,需要徹底攻克數學,也能提高孩子學習的自信,對於孩子的成長至關重要。下面呢,就與大家分享下,整個初中數學學科,每個章節的重要知識點,薄弱的地方。學好數學先從學習計劃開始。
  • 測試入門Python必會的21個知識點
    在這裡梳理了一下測試小白想要入門python編碼必備的知識點,大家可以按照這個知識點進行深入學習,每一個知識點網上都有大量的資料,這裡就不一一列舉了!重要的是大家在了解知識點以後,要真正上手編碼,出現問題,解決問題,如此往復才能使自己的編碼能力得到本質的提升!
  • 這份自查清單幫你理清思路
    你應該了解到:問題的本質(有監督的 / 無監督的,分類問題 / 回歸問題)。你可以開發的方案類型。應該用什麼指標來度量性能?機器學習是解決這個問題的正確方法嗎?解決該問題的手動方法。該問題固有的假設。步驟 6:優化你選出的模型並檢查相關方法這是你更加接近最終解決方案的關鍵步驟之一,具體步驟如下:用交叉驗證優化超參數;用隨機搜索或網格搜索等自動調整方法來找出最佳模型的最佳配置;測試相關方法,比如集成學習等;用儘可能多的數據測試模型;
  • 測試入門Java必會的27個知識點
    前面我給大家總結了上手python的21個知識點: 。在這裡我又總結了功能測試小白想擺脫測試點點點入門java編碼必備的27個知識點,大家可以按照這個知識點進行深入學習重要的是大家在了解知識點以後,要親自上手編碼,出現問題,調試問題,解決問題,如此往復才能使自己的編碼能力得到本質的提升!
  • 高中物理,萬有引力與航天知識點與解析匯總,物理提分很快!
    各位同學,家長大家好,今天我們來說說高中物理的萬有引力與航天這部分知識點怎麼學才能學好,希望對你有所幫助!小編整理了「高中物理的萬有引力與航天知識點與解析匯總」聲明:免費領取獲取方式:點擊頭像關注或(私信我,「文件」兩字)獲取更多免費詳細資料。
  • 教師招聘考試信息技術學科—計算機應用領域知識點匯總
    教師招聘考試信息技術學科—計算機應用領域知識點匯總>>>教師招聘考試信息技術學科-計算機應用領域習題為了幫助考生梳理知識點,中公教師特意為大家準備了信息技術教師招聘考試中計算機應用領域部分的常考點,希望這部分知識點匯總能為學員備考提供參考。
  • 如何有效精讀一篇英語文章?
    作為一名「英語精讀」的受益者,堅持精讀文章七年,我有這個責任將「精讀」推廣給更多的人。精讀作為英語學習的重要方法之一,不管是英語專業,還是英語愛好者們,如何「有效精讀」似乎成了迫切要解決的問題。不是所有的英語文章都適合精讀,但如果能把一篇文章精讀透,好處自然不必多說。
  • 一篇文章學會可用性測試方法(長文慎入!)
    之前總結過一版互動設計流程圖,主要是想給自己以後做設計梳理一下過程,但是那份流程裡面只有枝幹,並沒有枝葉,所以針對每個方法我都會撰寫一份方法總結,或者說指導,目的就是為以後實踐做準備。我期望的效果是,假如一個沒有接觸過該方法的人看到這份總結,可以按照這個總結一步步完成實驗。這就是我最大的目的。下面就是第一份總結《可用性測試方法總結》。(預警:長文慎入!不過耐心看完肯定會有所收穫)可用性測試的過程主要有七個步驟:測試前思考、製作測試原型、撰寫測試腳本、招募測試者、設置測試環境、預測師、正式測試以及測試結果統計分析。
  • 370道能讓你進大廠的Java面試題+答案(僅限今日)
    所以小編根據身邊進了大廠的朋友給的資料結合網上一些大牛的文章總結出了一套大約 10 萬字的內容對 Java 的核心知識點和常見的 500 多道面試題,做了詳細的介紹,也就是本專欄中你所看到的全部內容。4 篇文章,除了會深入講解 Java 中的各種類和接口的相關內容,還會深入講解淺克隆和深克隆的各種實現方式,以及配合各種圖片讓你更形象地理解深/淺克隆的本質。