測試用例介紹

文章目錄

  • 一、測試用例基本概念
    • 1.1 測試用例基本要素
  • 二、測試用例的設計方法
    • 2.1 基于需求的設計方法
    • 2.2 等價類
    • 2.3 邊界值
    • 2.4 錯誤猜測法
    • 2.6 場景設計法
    • 2.7 因果圖
    • 2.5 正交排列
  • 三、綜合:根據某個場景去設計測試用例(萬能公式)
  • 四、如何使用Fidder操作網絡(測網速)
  • 五、測試接口

一、測試用例基本概念

1.1 測試用例基本要素

  1. 基本要素:測試環境、操作步驟、測試數據、預期結果等
    • 不是說就上面這四個,只是說只知道這幾個也行
  2. 測試用例的用處
    • 可作為測試執行者的依據輔助測試
    • 可作為自動化測試的基礎,把重復的工作簡化
    • 評估需求覆蓋率
      • 覆蓋率:用來計算測試的代碼范圍
        • 計算公式:測試的代碼行數/沒有測試的代碼行數
        • 可由工具輔助計算
    • 用例的復用:當要更新一個軟件時(由v1變為v2),在git操作上,我們會在v1基礎上創建一個dev分支,然后在該分支上迭代其為v2代碼,最后合并到master分支上。對于測試用例而言,我們需要寫v2新功能的測試用例,至于v1的老功能可以復用v1時的測試用例
      • 為什么還需要測試v1的代碼:因為我們無法保證開發人員在開發v2時,沒有更改v1的代碼,或者說新功能不會影響到老功能

二、測試用例的設計方法

這些設計方法都是針對【黑盒測試】的

2.1 基于需求的設計方法

  1. 根據需求來設計測試用例:設計出來的測試用例只是大概的,測試出來的軟件也是不完善的。但不可以沒有,因為它相當于是測試軟件的思路,如果直接用什么等價類、邊界值這種具體設計測試用例的方法,只會讓人覺得很沒有邏輯
    在這里插入圖片描述

2.2 等價類

  1. 分類:等價類主要分為【有效等價類】和【無效等價類】
    • 有效等價類:滿足用戶需求的數據集合,使用這些數據,程序不會報錯
    • 無效等價類:不滿足用戶需求的數據集合,使用這些數據,程序會報錯
  2. 如何通過等價類設計測試用例
    • 充分理解需求
    • 將需求劃分為【有效等價類】和【無效等價類】
    • 分別從【有效等價類】和【無效等價類】中抽取一個測試用例進行測試,只要被抽取的那個測試用例能夠通過,則認為所代表的等價類測試通過
      • 理解:吃東西我們只要吃一口,就可以判斷這道菜好不好吃了。此時,那一口就是被提出來的測試用例,整道菜就是該測試用例代表的等價類
    • 組合有效等價類和無效等價類
      • 組合規則
        • 有效等價類:一條測試用例盡可能的覆蓋所有有效等價類
        • 無效等價類:一條無效等價類與其他的有效等價類
  3. 好處:可以用較少的測試用例達到盡量多的功能覆蓋,解決了不能窮舉測試的問題
  4. 案例

在這里插入圖片描述

在這里插入圖片描述

2.3 邊界值

  1. 場景:因為邊界情況很容易出bug,所以我們要多測試
  2. 上點、離點、內點
    • 上點:對于開區間、閉區間、半開半閉區間來說,上點都是邊界上的點
    • 離點:對于開區間、閉區間、半開半閉區間來說,離點都是邊界內的點
    • 內點:邊界左右的一個點,如果是閉區間,離點是范圍外的點;如果是開區間,離點就是范圍內的點
      在這里插入圖片描述
  3. 使用邊界值法設計測試用例
    • 充分理解需求
    • 找上點、內點、離點
    • 針對上面這三點,結合等價類法去設計測試用例
  4. 案例
    在這里插入圖片描述

2.4 錯誤猜測法

  1. 什么是“錯誤猜測法”:這個方法基本靠測試經驗,測試人員根據經驗猜測大概哪種情況下容易出錯
  2. 缺點:難以系統化,并且過度依賴個人能力

2.6 場景設計法

  1. 如何利用場景設計法設計測試用例
    • 定位主事件流:主事件流就是用戶經常操作的步驟、行為,是個大模塊
    • 定位次事件流:主事件流里面,大都都會有很多意外
    • 將上述兩個事件流串起來形成場景:此時一個場景就是一個測試用例
  2. 案例
    在這里插入圖片描述

2.7 因果圖

  1. 為什么會有因果法:輸入的數據也是有邏輯關系的,如輸入的兩個條件必須要同時滿足才能通過測試,我們可以根據這個邏輯,去設計測試用例

  2. 因果圖VS判定表法:因為因果圖最終會轉為判定表,所以這里干脆從【判定表】的部分講,跳過中間部分,所以實際我們要學的其實是【判定表法】

  3. 邏輯關系種類

    • 恒等:條件為真,結果一定為真;條件為假,結果一定為假
    • :條件全為真,結果才為真
    • :條件全為假,結果才為假
    • :條件為假,結果才為真
  4. 如何根據判定表法設計測試用例

    • 充分理解需求
    • 分析所有可能的輸入和輸出
    • 找出輸入和輸出的對應關系
    • 判定表
    • 把判定表對應到每一個測試用例上
  5. 案例
    在這里插入圖片描述

  6. 缺陷:如果輸入和輸出十分復雜,制作判定表就十分麻煩,此時我們可以借助【正交表法】進行優化

2.5 正交排列

  1. 名詞解析
    在這里插入圖片描述

  2. 正交表性質
    在這里插入圖片描述

  3. 如何根據正交表法設計測試用例:通常是需要工具輔助我們生成一個正交表

    • 確定因素(變量)
    • 確定因素取值(水平)
    • 通過工具生成正交表
    • 將正交表轉換成測試用例
    • 補充正交表
  4. 案例
    在這里插入圖片描述

三、綜合:根據某個場景去設計測試用例(萬能公式)

  1. 設計思路:實際測試,我們不會專門去使用上面那些設計方法,而是使用【萬能公式】
  2. 萬能公式:功能、界面、易用性、兼容性、安全性、性能、網絡
    • 針對一個【物體】進行設計
      • 功能:這個物體經常被用來干什么
      • 界面:物體的形狀、顏色、大小……
      • 易用性:物體的設計符合人體工學
      • 兼容性:該物體除了本質功能,還可以做哪些事情
      • 安全性:物體不能對人的健康有損害
      • 性能:承受能力,如抗壓力、耐熱力、耐寒力等
    • 針對一個【軟件】進行設計
      • 功能:軟件的基礎功能(本職功能)是什么

      • 界面:界面的圖片布局、圖片大小、按鈕顏色、文字字體……

      • 易用性:軟件設計符合大眾操作習慣,能讓人操作流暢

        • 比如如果報警一般是紅色日志,綠色一般表示通過,黃色則一般表示警告
      • 兼容性:軟件可以在不同的平臺去部署、運行

        • 兼容對軟件十分重要,因為不同的用戶會用不同的設備去使用該軟件
        • 考慮到不同的設備(IOS、Android、PC)、以及對應的不同的版本(比如瀏覽器的版本、操作系統的版本……)
          • 蘋果手機和蘋果電腦的操作系統就是IOS,PC主要指電腦端,電腦的操作系統有Windows、Linux、Mac
        • 因為測試兼容多是重復性操作,所以我們可以用【自動化】來幫助我們提高測試的效率
      • 安全性:使用功能時,要防止黑客攻擊,沒有內存泄漏、SQL注入、xss漏洞等問題

        • xss漏洞:如果在輸入框輸入< script>代碼< /script>,如果存在xss漏洞,程序就會執行里面的代碼,如果代碼涉及金錢,就會十分危險。如果沒有,則是正常顯示這段話
        • SQL注入:主要是字符串拼接問題,如數據庫代碼是select * from list where id = 10 or 1 = 1, 但是輸入框輸入的是xxx or 1 = 1,此時會搜出全部的數據
      • 性能:吞吐量(軟件能夠同時間承載多少個用戶訪問)、響應時間(軟件渲染頁面所需的時間)……
        在這里插入圖片描述

      • 網絡:在不同網速下能否正常運行

  3. 設計水杯的測試用例:利用萬能公式有邏輯地求解,而不是想到什么測試點就說什么,每個部分至少能說出3,4個點
    • 注意:如果是大需求,就把其拆為小需求求解:如果是小需求直接用萬能公式
      • 功能:能泡茶、能加熱水、能保溫、容量為500ml……
      • 兼容:能裝酒、能裝化學物質、能裝飲料……
      • 易用性:便于攜帶、拿著舒服符合人體工學、水杯重量適中……
      • 安全:水杯的材質不會與水發生化學反應,從而產生有毒物質、杯蓋足夠緊,加熱水時不會漏液……
      • 界面:水杯上的圖案美觀、圖案不會褪色、容量刻度線明顯……
      • 性能:防摔、防爆、保溫效果好……
  4. 設計【微信發布朋友圈】的測試用例
    • 功能:能發送文本(再細分:能發送純漢字、能發送純英文、能結合、如果發送的文本過長超過了100字符,會有提示……)、能發送圖片(支持發送9張及以內的圖片、如果已經選中了9張圖片不能再選中第10張、圖片順序能夠調整……)、能發送視頻、能進行分享操作……
    • 兼容:對于平板來說,無論是IOS還是Android都能發送(包含了各個版本)、對于PC電腦來說Windows和Mac不能發送朋友圈……
    • 易用性:軟件操作流暢、軟件操作簡單
    • 安全:會自動過濾敏感詞、防止SQL注入、防止xss漏洞、防止黑客攻擊……
    • 界面:朋友圈頁面布局好看、小部件符合大眾習慣……
    • 性能:圖片渲染時間短、支持大量用戶同時發送朋友圈……

四、如何使用Fidder操作網絡(測網速)

  1. 概念:Fidder和Charles可以用來控制網絡,實現測網速等操作
  2. 方法
    在這里插入圖片描述
    在這里插入圖片描述

五、測試接口

  1. 測試方式:可以使用代碼測試,也可以使用可視化工具postman測試
  2. 測試方向
    • 針對接口方法測試:post、get、put、delete……(注,get方法里不能用post)
    • 針對參數測試:選取符合要求和不符合要求的參數,分別進行測試,如參數的個數、參數為空……
    • 針對業務測試:根據返回結果,判斷業務是否正確
      在這里插入圖片描述

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

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

相關文章

基于藍牙Beacon人員導航方案

基于藍牙Beacon人員導航方案 一、室內定位市場痛點與技術選擇 大型商場&#xff08;單層超2萬㎡&#xff09;和醫院&#xff08;科室超200個&#xff09;的復雜空間中&#xff0c;傳統GPS信號衰減超90%&#xff0c;用戶平均尋路耗時10-15分鐘&#xff0c;30%購物決策因“找店…

使用vue3 腳手架創建項目

1.創建項目 并 運行 1.1 創建項目 vue create abcd 1.2 運行 創建好項目后&#xff0c;命令行會提示你運行項目 npm run serve 2.介紹各個目錄 node_modules : 項目依賴包&#xff0c;其中包括很多基礎依賴&#xff0c;自己也可以根據需要安裝其他依賴 assets文件夾&a…

跨語言哈希一致性:C# 與 Java 的 MD5 之戰?

在跨平臺或異構系統集成的場景中&#xff0c;我們經常需要在不同的編程語言之間交換數據或驗證數據一致性。MD5 作為一種廣泛使用的哈希算法&#xff0c;就常常扮演著生成唯一標識或校驗數據完整性的角色。然而&#xff0c;不少開發者可能會遇到這樣一個令人困惑的問題&#xf…

基于RuoYi的WMS倉庫管理系統源碼級解決方案

基于RuoYi的WMS倉庫管理系統源碼級解決方案 項目地址 一、系統簡介 WMS&#xff08;Warehouse Management System&#xff09;倉儲管理系統是現代物流管理的核心系統&#xff0c;通過對倉庫業務的精細化管理&#xff0c;實現入庫、出庫、庫存等環節的高度自動化和智能化。 系…

研究:大模型輸出一致性:確定性與隨機性的場景化平衡

大模型在相同輸入下的輸出是否一致,本質上取決于其設計目標、任務性質以及技術實現方式。這一問題需要從技術原理、應用場景、用戶需求三個維度進行深度分析: 一、技術實現:確定性與隨機性的平衡 模型架構的確定性基礎 大模型的核心參數(如權重矩陣)在訓練完成后是固定的…

青年座談會的讀書匯報

今天&#xff0c;單位組織了一個五四青年座談會&#xff0c;我們室由于大家都在出差忙之類的&#xff0c;我必須要參加&#xff0c;還要我做一個匯報&#xff0c;我一新來的還沒深入到研發工作中&#xff0c;于是決定寫了一篇簡單的讀書筆記&#xff0c;再用deepseek潤色一下&a…

RabbitMQ安裝流程(Windows環境)

安裝資料鏈接&#xff1a;https://download.csdn.net/download/ly1h1/90705840?spm1001.2014.3001.5503 代碼案例鏈接&#xff1a;https://download.csdn.net/download/ly1h1/90706521 1.下載依賴&#xff0c;Downloads - Erlang/OTP 2.下載RabbitMQ安裝包&#xff0c;In…

vscode 使用gitcode團隊管理項目

1、下載安裝vscode https://code.visualstudio.com/Download 2、安裝git 3、在vscode中安裝GitLens插件 4、打開終端 點擊會顯示當前更改的項目 5、提交更改的文件&#xff0c;會提示輸入用戶名、密碼&#xff0c;這里的密碼即是令牌&#xff0c;令牌在第一次創建的時候顯…

el-input限制輸入只能是數字 限制input只能輸入數字

方法一&#xff1a; 通過設置type屬性&#xff1a;type“number”&#xff0c;這種方式一般會影響樣式&#xff0c;不建議使用&#xff0c;如下圖&#xff1a; <el-input type"number" v-model"aaa"></el-input>方法二&#xff1a; 通過綁定值…

【Python數據驅動決策】數據分析與可視化全流程實戰指南

目錄 前言技術背景與價值當前技術痛點解決方案概述目標讀者說明一、技術原理剖析核心概念圖解核心作用講解關鍵技術模塊說明技術選型對比二、實戰演示環境配置要求核心代碼實現案例1:銷售數據清洗案例2:月度銷售趨勢分析案例3:產品關聯分析(熱力圖)運行結果驗證三、性能對…

Spring的BeanFactory和FactoryBean的區別

? ?BeanFactory和FactoryBean在Spring框架中扮演著不同的角色&#xff0c;具有不同的功能和用途。? 定義與角色 ?BeanFactory?&#xff1a;BeanFactory是Spring IoC容器的核心接口&#xff0c;用于管理和維護Bean的定義、創建和生命周期。它是Spring IoC容器的基礎&…

Typecho博客使用阿里云cdn和oss:handsome主題進階版

Typecho使用阿里云cdn和oss 設置前需要保證阿里云cdn和oss已配置好且可以正常使用一、準備工作二、修改 Handsome 主題的靜態資源鏈接方法 1&#xff1a;直接修改主題文件&#xff08;推薦&#xff09;方法 2&#xff1a;通過主題設置自定義&#xff08;方便&#xff09; 三、處…

部署mongodb三幅本集群

背景&#xff1a;原先使用的mongodb采用的是SSPL協議&#xff0c;此協議客戶檢測到有bug&#xff0c;故需要替換mongodb的版本&#xff0c;原先采用helm部署的mongodb但是無法找到4.1.4版本的chart包&#xff0c;故手寫yaml部署 1、部署mongodb-arbiter服務 這個服務是用來選…

jdk1.8.0_05 在 SpringBootTest Debug模式下奔潰

之前好好的項目&#xff0c;最近換了之前的電腦&#xff0c;但是在使用SpringBootTest 啟動debug模式時&#xff0c;虛擬機就會奔潰&#xff0c;通過修改如果把 junit5 import org.junit.jupiter.api.Test; 修改為 junit4 ,就不奔潰了 import org.junit.Test; 但是這樣的…

QGIS+mcp的安裝和使用

QGISmcp的安裝和使用 安裝qgis_mcp 下載qgis_mcp&#xff1a; git clone https://github.com/jjsantos01/qgis_mcp.git安裝uv uv是一個由Rust語言編寫的python包管理工具&#xff0c;旨在提供比傳統工具&#xff08;如 pip&#xff09;更高效的依賴管理和虛擬環境操作。 p…

厚銅pcb生產廠家哪家好?

在為您的項目選擇厚銅PCB供應商時&#xff0c;技術實力、生產經驗與交付能力是決定產品可靠性的關鍵。隨著新能源汽車、工業電源、5G通信等領域對高電流承載、高效散熱的需求激增&#xff0c;厚銅PCB&#xff08;銅厚3oz以上&#xff09;的工藝門檻不斷提升。本文結合行業頭部企…

再見,物理刪除!MyBatis-Plus @TableLogic 優雅實現邏輯刪除

在開發應用程序時&#xff0c;我們經常會遇到需要刪除數據的場景。但直接從數據庫中物理刪除&#xff08;DELETE?&#xff09;數據有時并非最佳選擇。為什么呢&#xff1f; 數據恢復: 一旦物理刪除&#xff0c;數據通常難以恢復&#xff0c;誤操作可能導致災難性后果。審計追…

湖北理元理律師事務所:債務管理領域的平臺化創新探索

隨著中國居民負債率攀升至62%&#xff08;央行2023年數據&#xff09;&#xff0c;債務管理從個體需求演變為社會性課題。湖北理元理律師事務所通過“法律科技金融”的融合模式&#xff0c;構建了國內首個全鏈條債務管理平臺&#xff0c;其服務邏輯與行業價值值得深度剖析。 平…

【更新】LLM Interview (2)

字數溢出&#xff0c;不解釋 前文&#xff1a;llm interview (1) 文章目錄 強化學習專題1 什么是RL&#xff1f;2 RL和監督、非監督、深度學習的區別3 RL中所謂的損失函數與深度學習中的損失函數有何區別&#xff1f;4 RL歷史5 RL分類5.1 分類圖示5.2 根據智能體動作選取方式分…

高性價比手機如何挑選?

這四個關鍵點&#xff0c;助你找到心儀機~ 一、性能強者&#xff1a;游戲娛樂暢快到底 處理器相當于手機的 “大腦”&#xff0c;處理速度快、能力強&#xff0c;運行大型游戲毫無壓力。 搭配上大容量運存&#xff0c;多任務切換也能秒速完成&#xff0c;再也不怕游戲卡頓啦。…