測試分類:詳解各類測試方式與方法

前言:

為什么要將測試進行分類呢?

軟件測試是軟件生命周期中的?個重要環節,具有較高的復雜性,對于軟件測試,可以從不同的角度加以分類,使開發者在軟件開發過程中的不同層次、不同階段對測試工作進行更好的執行和管理測試的分類方法。

按照測試目標進行分類

界面測試

肉眼所能看見的任何元素都要進行測試。

  • 驗證界?內容顯示的完整性,?致性,準確性,友好性。?如界?內容對屏幕大小的自適應,換 行,內容是否全部清晰展示;
  • 驗證整個界?布局和排版是否合理,不同板塊字體的設計,圖?的展示是否符合需求;
  • 對界?不同控件的測試,比如,對話框,?本框,滾動條,選項按鈕等是否可以正常使用,有效 和無效的狀態是否設計合理;
  • 界面的布局和?調符合當下時事的發展。

功能測試

功能測試就是對產品的各功能進行驗證,根據功能測試用例,逐項測試,檢查產品是否達到用戶要 求的功能。

如何進行功能測試? 設計功能測試用例,參考產品規格說明書進行用例的編寫,具體的測試用例需要使用黑盒設計測試用例的方法,如等價類、邊界值、判定表法、正交法、場景法、錯誤猜測法等。

性能測試

我們在使用軟件的時候有時會碰到軟件網頁打開時越來越慢,查詢數據時很長時間才顯示列表,軟件運行越來越慢等問題,這些問題都是系統的性能問題引起的。

要進行軟件產品的性能問題,要對產品的性能需求進行分析,然后基于系統的性能需求和系統架構, 完成性能測試的設計和執行,最后要進行持續的性能調優。

可靠性測試

可靠性(Availability)即可用性,是指系統正常運行的能力或者程度,一般用正常向用戶提供軟件 服務的時間占總時間的百分比表示。?可靠性=正常運行時間/(正常運行時間+非正常運行時間)*100%

系統?正常運?的時間可能是由于硬件,軟件,網絡故障或任何其他因素(如斷電)造成的,這些因素能讓系統停止?作,或者連接中斷不能被訪問,或者性能急劇降低導致不能使?軟件現有的服務 等。

可用性指標?般要求達到4個或5個“9”,即99.99%或者99.999%,如果可用性達到99.99%,對于?個全年不間斷(7*24的?式)運行的系統,意味著全年 (252600min)不能正常?作的時間只有52min,不到?個小時。如果可用性達到99.999%,意味著全年不能正常?作的時間只有5min。不同的應?系統,可用性的要求是不?樣的,非實時性的信息系統或?般網站要求都很低,99%和 99.5%就可以了,但是軍事系統,要求則很高;

安全性測試

安全性是指信息安全,是指計算機系統或網絡保護用戶數據隱私,完整,保護數據正常傳輸和抵御 黑客,病毒攻擊的能力。

  • 安全性測試屬于非功能性測試很重要的?個方面,系統常見的安全漏洞和威脅如下
  • 輸?域,如輸?惡性或者帶有病毒的腳本或長字符串;
  • 代碼中的安全性問題,如SQL/XML注?
  • 不安全的數據存儲或者傳遞
  • 數據文件,郵件文件,系統配置文件等??有危害系統的信息或者數據;
  • 有問題的訪問控制,權限分配等
  • 假冒ID:?份欺騙
  • 篡改,對數據的惡意修改,破壞數據的完整性

安全性測試的方法有代碼評審,滲透測試,安全運維等,常?的靜態安全測試工具有,Coverity, IBM、Appscan、Source,HPFortify,常用的動態安全測試有OWASP的ZAP,HP、WebInspect等。其 中靜態安全測試是常用的安全性測試的方法。

易用性測試

許多產品都應用人體工程學的研究成果,是產品在使用起來更加靈活和,舒適。軟件產品也始終關注用戶體驗,讓用戶獲得舒適,易?的體驗,針對軟件這方面的測試稱之為易用性測試。

易?性在ISO25020標準中指容易發現,容易學習和容易使?。易?性包含七個要素:符合標準和規范,直觀性,?致性,靈活性,舒適性,正確性和實?性。我們主要討論以下幾個方面

1.標準性和規范性

對于現有的軟件運?平臺,通常其UI標準已經不知不覺地被確?了,成為?家的共識。多數用戶已 經習慣并且接受了這些標準和規范,或者說已經認同了這些信息所代表的的含義。?如安裝軟件的 界?的外觀,在什么場合使?恰當的對話框等。

所以用戶界?上的各中信息應該符合規范和習慣,否則用戶使?起來會不舒適,并得不到??的認 可。測試?員需要把與標準規范,習慣不?致的問題報告為缺陷

舉個例子:八寶粥都是罐裝的,你一下整個盒裝的,用戶已經潛移默化的適應了罐裝的,這時候就容易出現用戶反饋。

2.直觀性?

用戶界面的直觀性,要求軟件功能特性易懂,清晰。用戶界?布局合理,對操作的響應在用戶的預期 之中。比如數據統計結果?報表的形式(條形圖,扇形圖等)展?清晰直觀;現在主流的很多搜索引 擎和日歷的設計也有直觀性的特點;

3.靈活性

軟件可以有不同的選項以滿?不同使?習慣的??來完成相同的功能。但是靈活性的設計要把握好 度,不然可能由于太多的??狀態和?式的選擇,增加了軟件設計的復雜性,和程序實現的難度。

例如 ?機鍵盤有九宮格和全鍵盤,還?持?寫,滿?了不同??的需求

4.舒適性

舒適性主要強調界?友好,美觀,操作過程順暢,?彩?運恰當,按鈕的?體感等。例如左??標的 設置給習慣?左?的?帶來了便利,也為右??分勞累時提供了另?種途徑; 舒適性主要強調界?友好,美觀,操作過程順暢,?彩?運恰當,按鈕的?體感等。例如左??標的 設 置給習慣?左?的?帶來了便利,也為右??分勞累時提供了另?種途徑;

按照執行方式進行分類

靜態測試

靜態測試 就是不運行程序,而是通過檢查代碼、設計文檔或者其他軟件結構來找出潛在的問題。就像你在做作業之前,先認真讀一遍題目,確保每個細節都沒錯。這種方式的好處是你不用實際運行程序,就能找到一些明顯的錯誤。

動態測試

動態測試 則是實際運行程序,輸入數據,查看輸出結果是否符合預期。這就像你完成了作業后,直接去考試,看看自己在實際情境下表現得如何。動態測試是大多數軟件測試的主要方式。

按照測試方法進行測試

白盒測試

白盒測試也稱為結構測試或邏輯測試,主要關注程序內部結構,通過分析程序的邏輯路徑來設計測試用例。它的目的是確保軟件的各個邏輯路徑被覆蓋,程序能夠按照預期運行。

常見的白盒測試方法

  • 語句覆蓋:確保程序中的每個語句至少被執行一次。

  • 判定覆蓋:測試程序中的條件判斷語句,確保每個條件都得到了測試。

  • 路徑覆蓋:確保程序的每條執行路徑都被測試。

  • 條件組合覆蓋

  • 條件覆蓋

?

總結

  • ?盒測試主要應?于單元測試階段
  • 先執?靜態設計?例的?法,再執?動態設計測試?例的?法
  • 設計?例?般使?路徑測試,重點模塊追加使?邏輯覆蓋?法

黑盒測試

黑盒測試與白盒測試不同,它不關注程序的內部實現,而是關注軟件的功能是否滿足需求。黑盒測試的重點是驗證軟件的輸入和輸出是否符合預期,確保軟件能夠按照需求正常工作。

常見的黑盒測試方法

  • 等價類劃分:通過將輸入數據分為多個等價類來減少測試數據的數量。

  • 邊界值分析:特別關注輸入數據的邊界值,比如最大值、最小值、越界值等。

  • 因果圖法:根據需求規格定義輸入和輸出之間的關系,設計測試用例。

舉個例子:假設你有一個登陸表單,黑盒測試時,你會測試以下幾種情況:

  • 輸入正確的用戶名和密碼,檢查是否能夠成功登陸。

  • 輸入錯誤的用戶名或密碼,檢查是否會給出錯誤提示。

灰盒測試

灰盒測試是介于白盒測試和黑盒測試之間的一種方法。它通常用于集成測試階段,不僅關注輸出和輸入的正確性,還會檢查程序的內部情況。灰盒測試可以基于部分內部實現進行設計,但不需要完全了解程序的內部結構。

舉個例子:你正在測試一個電商平臺的購物車功能,灰盒測試人員知道購物車和支付模塊如何交互,但不需要完全了解支付模塊的內部實現。測試的重點是確保數據能夠正確從購物車模塊流向支付模塊。

按照測試階段進行分類

單元測試

與編碼同步進?,針對軟件最?組成單元進?測試,主要采??盒測試?法,從被測對象的內部結構出發設計測試?例

所謂的最小單元就是人為規定的方法、接口、功能。

  • 測試階段:編碼后或者編碼前(TDD)
  • 測試對象:最小模塊
  • 測試?員:白盒測試?程師或開發?程師
  • 測試依據:代碼和注釋+詳細設計?檔
  • 測試?法:?盒測試
  • 測試內容:模塊接?測試、局部數據結構測試、路徑測試、錯誤處理測試、邊界測

集成測試

集成測試也稱聯合測試(聯調)、組裝測試,將程序模塊采?適當的集成策略組裝起來,對系統的接?及集成后的功能進?正確性檢測的測試?作。集成主要?的是檢查軟件單位之間的接是否正確。

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

系統測試

在軟件開發生命周期中,系統測試是確保軟件系統整體功能和性能達到預期要求的關鍵環節。它不僅驗證了軟件各個模塊的正確性,還確保不同模塊之間的協作無縫進行,從而提升了軟件的可靠性和穩定性。

系統測試的目標

  • 全面檢查功能:系統測試的首要目標是驗證軟件是否按照需求文檔所描述的功能執行。

  • 驗證集成模塊的協同工作:系統測試會檢查所有子系統或模塊是否能夠順利協作,確保系統在集成后的運行效果。

  • 性能與安全性驗證:除了基本功能外,系統測試還包括對性能的測試(如負載測試、壓力測試)以及安全性的檢測。

系統測試的分類

系統測試通常分為幾類不同的測試方式:

  1. 冒煙測試(Smoke Testing)

    • 定義:冒煙測試又稱為基本功能測試,通常在開發過程中或新版本發布時進行,目的是驗證軟件是否能夠順利啟動并且執行最基本的操作。

    • 目的:通過冒煙測試,開發團隊能夠迅速發現顯而易見的重大問題。

    • 實施方式:通常由開發人員進行,測試的重點是是否能順利打開系統,執行一些基本的功能。

  2. 回歸測試(Regression Testing)

    • 定義:回歸測試用于確認新代碼的變更沒有破壞現有功能。

    • 目的:保證代碼的修改沒有引入新的問題,確保軟件的穩定性。

    • 實施方式:每當系統更新時,回歸測試會重新測試相關功能,確保系統在更新后依舊能夠正常工作。

驗收測試

針對??需求,對通過系統測試的軟件進?交付性測試,以確定系統是否滿?驗收標準,由??或其他授權機構決定是否接受系統。驗收測試是部署軟件之前的最后?個測試操作。它是技術測試的最后?個階段,也稱為交付測試。驗收測試的?的是確保軟件準備就緒,按照項?合同、任務書、雙?約定的驗收依據?檔,向軟件購買都展?該軟件系統滿?原始需求。

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

單元測試,集成測試,系統測試,回歸測試之間的關系

類比開上小汽車的過程

造?需要原材料,如?輪、發動機等零部件不是?企??制造出來的,?是通過購買零部件來造?。對買來的零部件進?檢查,零部件是否符合造?標準(單元測試)

零件確認完畢,接下來就是復雜的造??藝,將零部件集成起來構成了?輛?,并初步檢查拼?的?是否能正常運作(集成測試)

?輛?成型之后并不意味著就可以直接銷售給客?了,需要?企專業的測試?員進?詳細?完整的測試。(系統測試)

專業的測試?員對企業測試完畢,通過測試的汽?將會在?展或者4S店進?展?,供??進?選擇和購買。??在選擇汽?的過程中也會對?外觀以及性能等??進?校驗(驗收測試)

按照是否手工測試

手工測試

??測試就是由?去?個?個的輸??例,然后觀察結果,和機器測試相對應,屬于?較原始但是必須的?個步驟。

自動化測試

就是在預設條件下運?系統或應?程序,評估運?結果,預先條件應包括正常條件和異常條件。簡單說

?動化測試是把以?為驅動的測試?為轉化為機器執?的?種過程。

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

?動化測試按照測試對象來分,還可以分為接

測試、UI測試等。接?測試的ROI(產出投??)要?UI測試?。(這?了解?下,等到將?動化的時候再詳細展開)

測試類型優點缺點
自動化測試- 節省成本 - 提高測試人員執行工作效率 - 保障軟件的質量- 對測試人員技術要求較高 - 不能進行發散性測試
手工測試- 對測試人員技術要求較低 - 可以進行發散性測試- 效率低 - 人員和時間成本較高,相比自動化測試更為昂貴

按照實施組織劃分

α測試

β測試

測試類型Alpha測試Beta測試
實施地點在公司內部進行在用戶環境中進行
測試人員內部開發團隊或QA團隊真實用戶或外部參與者
測試階段軟件開發的初期階段接近產品發布時進行
測試目標檢查核心功能和性能收集用戶反饋,檢查軟件是否滿足用戶需求
測試規模小規模、內部測試大規模、面向真實用戶
技術要求對測試人員的技術要求較高測試人員的技術要求較低,主要關注用戶體驗

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/917198.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/917198.shtml
英文地址,請注明出處:http://en.pswp.cn/news/917198.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

新手docker安裝踩坑記錄

最近在學習docker,安裝和使用折騰了好久,在這里記錄一下。下載# 依賴安裝 sudo apt update sudo apt install -y \ca-certificates \curl \gnupg \lsb-release# 使用清華鏡像源(Ubuntu 24.04 noble) echo \"deb [arch$(dpkg …

TOGAF指南1

1.TOGAF標準簡介 TOGAF(The Open Group Architecture Framework)就像是一個企業架構的“操作手冊”。它幫助企業設計、搭建和維護自己的“系統地圖”,確保不同部門、技術、業務目標能像齒輪一樣協調運轉。 它的核心是: 用迭代的方…

[Linux入門] Linux 防火墻技術入門:從 iptables 到 nftables

目錄 一、防火墻基礎:netfilter 與 iptables 的關系 1??什么是 netfilter? 2??什么是 iptables? 二、iptables 核心:五鏈四表與規則體系 1??什么是 “鏈”(Chain)? 2?? 什么是 “…

函數fdopendir的用法

以下是關于 fdopendir 函數的詳細解析,結合其核心功能、參數說明及典型應用場景:🔍 ?一、函數功能與原型??核心作用?將已打開的目錄文件描述符(fd)轉換為目錄流指針(DIR*),用于后…

[源力覺醒 創作者計劃]_文心4.5開源測評:國產大模型的技術突破與多維度能力解析

聲明:文章為本人真實測評博客,非廣告,并沒有推廣該平臺 ,為用戶體驗文章 一起來輕松玩轉文心大模型吧👉 文心大模型免費下載地址 一、引言:文心4.5開源——開啟多模態大模型新時代 2025年6月30日&#x…

微信小程序無法構建npm,可能是如下幾個原因

安裝位置的問題,【npm安裝在cd指定位置】小程序緩存的問題退出小程序,重新構建即可

從 MyBatis 到 MyBatis - Plus:@Options 注解的那些事兒

在 MyBatis 以及 MyBatis - Plus 的開發過程中,注解的使用是提升開發效率和實現特定功能的關鍵。今天我們就來聊聊 Options 注解,以及在 MyBatis - Plus 中它的使用場景和替代方案。 一、MyBatis 中的 Options 注解 在 MyBatis 框架中,Option…

轉換圖(State Transition Diagram)和時序圖(Sequence Diagram)畫圖流程圖工具

針對程序員繪制狀態轉換圖(State Transition Diagram)和時序圖(Sequence Diagram)的需求,以下是一些好用的工具推薦,涵蓋在線工具、桌面軟件和基于文本的工具,適合不同場景和偏好。這些工具在易…

基于php的在線酒店管理系統(源代碼+文檔+PPT+調試+講解)

課題摘要在旅游住宿行業數字化轉型的背景下,傳統酒店管理存在房態更新滯后、預訂渠道分散等問題。基于 PHP 的在線酒店管理系統,憑借其開發高效、兼容性強的特點,構建集客房管理、預訂處理、客戶服務于一體的綜合性管理平臺。 系統核心功能包…

視頻質量檢測中卡頓識別準確率↑32%:陌訊多模態評估框架實戰解析

原創聲明本文為原創技術解析,核心技術參數與架構設計引用自《陌訊技術白皮書》,禁止未經授權的轉載與改編。一、行業痛點:視頻質量檢測的現實挑戰在實時流媒體、在線教育、安防監控等領域,視頻質量直接影響用戶體驗與業務可信度。…

流式輸出阻塞原因及解決辦法

流式輸出不懂可看這篇文章:流式輸出:概念、技巧與常見問題 正常情況,如下代碼所示: async def event_generator():# 先輸出數字1yield "data: 1\n\n"# 然后每隔2秒輸出數字2,共輸出10次for i in range(10):…

linux系統----Ansible中的playbook簡單應用

目錄 Playbooks中tasks語法使用 1、file 創建文件:touch 創建目錄:directory 2、lineinfile 修改文件某一行文本 3、replace 根據正則表達式替換文件內容(指定換字符串) 5、template/copy 模板作用類似于copy&#xff0…

bmcweb工作流程

在openbmc中,bmcweb是一個web服務程序,類似于lighttpd,提供web服務。本文將簡單介紹這個服務進程的執行流程。 bmcweb的入口函數main(). main() -> run() run()先注冊routes,最后調用app.run(). 第一個注冊的route為crow::webassets:requestRoutes(). crow::webasse…

傘狀Meta分析重構癌癥幸存者照護指南:從矛盾證據到精準決策

還記得你第一次做出Meta分析時的成就感嗎?那種從海量文獻中抽絲剝繭,最終得出可靠結論的感覺,簡直不要太爽!但是,時代在進步,科研在卷動,Meta分析也有它的"升級版"——傘狀Meta分析&a…

IOMMU Client設備DMA配置過程分析(九)

1.設備樹 cp0_pcie0是一個PCIe RC控制器,使用SMMU將PCIe設備的IOVA轉換成物理地址,使用iommu-map-mask和iommu-map定義PCIe設備使用的Stream ID。設備樹定義如下所示。 [arch/arm64/boot/dts/marvell/armada-ap80x.dtsi] smmu: iommu100000 {compatibl…

使用node-cron實現Node.js定時任務

1. 簡介 node-cron 是一個輕量級的Node.js庫,用于在指定時間或間隔執行任務。它是Unix系統cron工具的JavaScript實現,適用于需要定時執行腳本的場景(如數據備份、定期爬蟲等)。 2. 安裝 npm install node-cron # 或 yarn add node…

前綴和-525.連續數組-力扣(LeetCode)

一、題目解析1、只包含0、1的二進制數組2、找到含有相同數量的0和1,并返回其子數組長度二、算法原理解法1:暴力枚舉 時間復雜度O(N^2)解法2:前綴和哈希表對于統計子數組中的0和1的數量有點困難,我們可以將其轉化一下轉化&#xff…

汽車電子控制系統開發的整體安全理念

1. 摘要在汽車制造商和一級供應商避免責任的背景下,公認的技術規則作為法律要求的標準具有重要的實際意義。道路車輛電子控制單元的安全性目前主要通過 ISO 26262 的要求和流程來保障。特別是隨著道路交通自動化程度的不斷提高以及現代車輛隨之而來的復雜性&#xf…

IDEA重新安裝常用設置

IDEA重新安裝常用設置 展示固定導航欄 項目構建和運行操作委托給maven 參考:IDEA build委托到Maven build

微服務的編程測評系統9-競賽新增-競賽編輯

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄前言1. 競賽新增1.1 競賽基本信息增加-后端開發1.2 競賽新增題目-后端1.3 競賽基本信息-前端1.4 競賽新增題目-前端2. 競賽編輯2.1 競賽詳情-后端2.2 競賽詳情-前端2…