軟件測試概念學習

功能測試

功能測試是針對應用程序的業務需求而進行的測試類型。它涉及完整的集成系統,以評估系統是否符合其指定要求。基於功能規範文檔,將執行此類測試。在實際測試中,測試人員需要驗證代碼的特定操作或功能。

軟件測試

定義

軟件測試就是利用測試工具按照測試方案和流程對產品進行功能和性能測試,甚至根據需要編寫不同的測試工具,設計和維護測試系統,對測試方案可能出現的問題進行分析和評估。執行測試用例後,需要跟蹤故障,以確保開發的產品適合需求。

測試目標

發現一些可以通過測試避免的開發風險;實施測試來降低所發現的風險;確定測試何時可以結束;在開發項目的過程中將測試看作是一個標準項目。

測試原則

  1. 測試應該儘早進行,最好在需求階段就開始介入,因爲最嚴重的的錯誤是系統不能滿足用戶的需求
  2. 程序員應該避免檢查自己的程序,軟件測試應該有測試人員負責。
  3. 設計測試用例時應考慮到合法的輸入和不合法的輸入以及各種邊界條件,特殊情況下不要製造極端狀態和意外狀態。
  4. 應該充分注意測試中的羣集現象。測試發現問題越多的地方,也是存在錯誤最多的地方。
  5. 測試的對策是對錯誤結果進行確認的過程。
  6. 制定嚴格的測試計劃。
  7. 妥善保存測試計劃、測試用例、出錯統計和最終分析報告,爲維護提供方便。

測試過程

一般來說,開發過程與測試過程是一個相互對應的過程。測試一般從模塊(單元)測試開始,然後是整體測試,確定測試,知道系統測試完結,其針對編碼、設計、需求和系統及各部分。
在這裏插入圖片描述

測試數據流程

測試階段數據流有別於測試的過程步驟,它是測試數據流動狀況。一個完整的測試一般要經過測試,評價和糾錯三個過程。其入口流是系統配置和測試配置。系統配置是指系統產品在不同階段時期的組合,這種組合隨着開發工作的警醒而不斷變化。測試配置包括測試計劃、測試工具、測試用例和測試結果期望值。一般測試配置包含在系統配置中。
在這裏插入圖片描述

系統測試方法

黑盒測試

黑盒測試也稱功能測試,它通過測試來檢測每個功能是否都能正常使用。在測試中,把程序看作一個不能打開的黑盒子,在完全不考慮程序內部結構和內部特性的情況下,在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當地接收輸入數據而產生正確的輸出信息。黑盒測試着眼於程序外部結構,不考慮內部邏輯結構,主要針對軟件界面和軟件功能進行測試。

白盒測試

與黑盒測試相反,白盒測試重點側重於程序的結構,即用解剖的方法,透視的方法瞭解程序的結構,從而發現程序存在的問題和錯誤所在。它是一種針對程序細節進行的測試和檢查,通過測試不同邏輯路徑來確定程序與需求設計期望值是否一致。

灰盒測試

灰盒測試,是介於白盒測試與黑盒測試之間的測試。灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不像白盒那樣詳細、完整,只是通過一些表徵性的現象、事件、標誌來判斷內部的運行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。

靜態分析

靜態測試不要求在計算機上實際執行所測程序,主要以一些人工的方式和技術對軟件進行分析和測試。應該指出,靜態分析也包括對需求說明書、概要設計說明書、詳細設計報告、測序代碼、測試計劃等進行的靜態審查;而軟件的動態測試是通過輸入一組預先按照一定的測試準則構造的實例數據來動態運行程序,而達到發現程序錯誤的過程。在動態分析技術中,最重要的技術是路徑和分支測試。

系統測試的策略

單元測試

單元測試,是指對軟件中的最小可測試單元進行檢查和驗證。單元就是人爲規定的最小的被測功能模塊。單元測試是在軟件開發過程中要進行的最低級別的測試活動,軟件的獨立單元將在與程序的其他部分相隔離的情況下進行測試。

整體測試

整體測試就是討論組裝軟件的系統測試技術,按設計要求把通過單元測試的各個模塊組裝在一起之後,進行整體測試以便發現與接口有關的各種錯誤。

確認測試

整體測試之後,軟件已組裝完成,接口方面的錯誤也已排除,軟件測試的下一步工作是確認測試。確認測試的目的是向未來的用戶表明系統能夠像預定要求那樣工作。

有效性測試

有效性測試的目的是通過測試,以及與需求的比較,發現軟件與需求定義之間的差異和不同。有效性測試的依據是需求分析說明書,而不是合同的規定,這是有效性測試與確認測試的區別。

系統測試

系統測試與有效性測試與確認測試不同,它由若干個不同測試組成,目的是充分運行系統,驗證系統各部件是否都能正常工作並完成所賦予的任務。

驗收測試

驗收測試,系統開發生命週期方法論的一個階段,這時相關的用戶和/或獨立測試人員根據測試計劃和結果對系統進行測試和接收。它讓系統用戶決定是否接收系統,是一項確定產品是否能夠滿足合同或用戶所規定需求的測試。這是管理性和防禦性控制。

非功能測試

它涉及完整的集成系統,以評估系統是否符合其指定要求。基於功能規範文檔,將執行此類測試。在實際測試中,測試人員需要驗證代碼的特定操作或功能。非功能測試包括性能、負載、安全、可靠性和其他很多方面。
國際標準化組織(ISO)在 ISO 9216 和 ISO 25000:2005 中定義了幾個非功能屬性。這些屬性包括:

可靠性

軟件使用者期望軟件能夠無誤運行。可靠性是度量軟件如何在主流情形和非預期情形下維持它的功能,有時也包括軟件出錯時的自恢復能力。

可用性

如果用戶不明白應該如何使用,那麼,即使是零差錯的軟件也會變得毫無用處。可用性測量的是用戶學習和控制軟件以達到用戶需求的容易程度。進行可用性研究、重視顧客反饋意見和對錯誤信息和交互內容的檢查都能提高可用性。

可維護性

可維護性描述了修改軟件而不引入新錯誤所需的工作量。產品代碼和測試代碼都必須具備高度的可維
護性。團隊成員對代碼的熟悉程度、產品的可測性和複雜度都對可維護性有影響。

可移植性

可移植性指一種計算機上的軟件轉置到其它計算機上的能力。軟件移植是實現功能的等價聯繫,而不是等同聯繫。從狹義上講,是指可移植軟件應獨立於計算機的硬件環境;從廣義上講,可移植軟件還應獨立於計算機的軟件,即高級的標準化的軟件,它的功能與機器系統結構無關,可跨越很多機器界限。

性能測試

性能測試目的是驗證軟件系統是否能夠達到用戶提出的性能指標,同時發現軟件系統中存在的性能瓶頸,優化軟件,最後起到優化系統的目的。性能測試類型包括壓力測試、負載測試,強度測試,容量測試等。因爲各屬性之間在範圍上有重疊,很多非功能屬性的名字是可以通用的。

壓力測試

一般來說,壓力測試的目的是要通過模擬比預期要大的工作負載來讓只在峯值條件下才出現的缺陷曝光。內存泄漏、競態條件、數據庫中的線程或數據行之間的死鎖條件、和其他同步問題等等,都是壓力測試能發掘出來的常見缺陷。 壓力測試主要是爲了測試硬件系統是否達到需求文檔設計的性能目標,譬如在一定時期內,系統的 cpu 利用率,內存使用率,磁盤 I/O 吞吐率,網絡吞吐量等。

負載測試

負載測試是要探討在高峯或高於正常水平的負載下,系統或應用軟件會發生什麼情況。例如,一個網絡服務的負載測試會試圖模擬幾千名用戶同時連線使用該服務。測試的主要是軟件系統的性能,譬如軟件在一定時期內,最大支持多少併發用戶數,軟件請求出錯率等。

平均無故障時間(MTBF)測試

MTBF 測試是測量系統或應用軟件在出錯或當機前的平均運行時間。這一測試有幾個變體,包括平均無錯時間(MTTF)或平均無當機時間(MTTC)。技術含義略有不同,但實踐上,這些詞彙都是一個意思。

低資源測試

低資源測試是要確定當系統在重要資源(內存、硬盤空間或其他系統定義的資源)降低或完全沒有的情況下會出現的狀況。重要的是要預估將會發生什麼,例如爲文件存盤而無足夠空間、或一個應用程序的內存分配失敗時將會發生什麼。

容量測試

與負載測試非常相似,容量測試一般是用來執行服務器或服務測試。目的是要確定系統最大承受量,譬如系統最大用戶數,最大存儲量,最多處理的數據流量等。容量模型通常建立在容量測試數據基礎上。有了這些數據,營運團隊(Operations)就能定計劃什麼時候增加系統容量:要麼增加單機資源,如 RAM、CPU 和磁盤空間等;要麼乾脆增加計算機數目。

重複性測試

重複性測試是爲了確定重複某一程序或場景的效果而採取的一項簡單而“粗暴”(brute force)的技術。這個技術的精髓是循環運行測試直到達到一個具體界限或臨界值,或者是不妙的境況。

兼容性測試

兼容性測試是指測試軟件在特定的硬件平臺上、不同的應用軟件之間、不同的操縱系統平臺上、不同的網絡等環境中是否能夠很友好的運行的測試。主要測試軟件是否能在不同的操作系統平臺上兼容,或測試軟件是否能在同一操作平臺的不同版本上兼容;軟件本身能否向前或向後兼容;測試軟件能否與其他相關的軟件兼容;數據兼容性測試,主要是指數據能否共享等。

安全性測試

安全性測試是檢查系統對非法侵入的防範能力。主要包括用戶認證、系統網絡安全和數據庫安全方面的測試。安全測試期間,測試人員假扮非法入侵者,採用各種辦法試圖突破防線。

輔助功能測試

輔助功能測試保證軟件公司開發的軟件能被傷殘人使用。其中任何應用程序都必須測試的特性包括:操作系統的設置測試、“內置”輔助特性的測試(包括 Tab 鍵順序、熱鍵和快捷鍵)、編程訪問的測試、以及輔助的技術工具的測試。輔助功能測試的一個重要方面就是使用輔助功能工具去測試應用程序, 這些工具包括,屏幕閱讀器、放大鏡、語音識別或者其他輸入程序。

本地化測試

本地化就是將軟件版本語言進行更改,本地化測試的對象是軟件的本地化版本。本地化測試的目的是測試特定目標區域設置的軟件本地化質量。本地化測試的環境是在本地化的操作系統上安裝本地化的軟件。從測試方法上可以分爲基本功能測試,安裝/卸載測試,當地區域的軟硬件兼容性測試。測試的內容主要包括軟件本地化後的界面佈局和軟件翻譯的語言質量,包含軟件、文檔和聯機幫助等部分。

配置測試

配置測試就是測試軟件是否和系統的其他與之交互的元素之間兼容,如瀏覽器、操作系統、硬件等,驗證被測軟件在不同的軟件和硬件配置中的運行情況。配置測試執行的環境是所支持軟件運行的環境。測試環境適合與否嚴重影響測試結果的真實性和正確性。硬件環境指測試必須的服務器、客戶端、網絡連接設備、打印機等,軟件環境指被測試軟件運行時的操作系統、軟件平臺、數據庫其他應用軟件構成的環境。

可用性測試

可用性測試是在產品或產品原型階段實施的通過觀察或訪談或二者相結合的方法,發現產品或產品原型存在的可用性問題,爲設計改進提供依據。可用性測試不是用來評估產品整體的用戶體驗,主要是發現潛在的誤解或功能在使用時存在的錯誤。

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