功能測試中常見的面試題-二

二、測試設計與用例編寫題

  1. 解釋等價類劃分 (Equivalence Partitioning) 和邊界值分析 (Boundary Value Analysis)?并舉例說明。

    • 等價類劃分 (EP):?將輸入域劃分為若干組(等價類),假設同一組內的數據對揭露程序錯誤具有等效性。只需從每個等價類中選取一個代表值進行測試即可。

      • 例子:?測試一個輸入年齡(1-120歲)的文本框。

        • 有效等價類: [1, 120] (如 30)

        • 無效等價類: < 1 (如 0, -5) 和 > 120 (如 121, 200)

    • 邊界值分析 (BVA):?是對等價類劃分的補充,關注輸入域邊界及其附近的值。因為經驗表明,邊界處最容易出錯。

      • 例子:?同上年齡輸入框 (1-120)。

        • 有效邊界值: 1, 120 (邊界點), 2, 119 (邊界內鄰點)

        • 無效邊界值: 0 (剛好小于下界), 121 (剛好大于上界)

    • 通常結合使用:?先劃分等價類,再針對每個等價類的邊界設計測試用例。

  2. 什么是決策表測試 (Decision Table Testing)?適用于什么場景?

    • 回答:?決策表是一種系統性的方法,用于測試由多個輸入條件組合決定的不同輸出結果(動作)?的業務規則或邏輯。它以表格形式列出所有可能的條件組合及其對應的預期輸出。

    • 適用場景:?復雜的業務邏輯、規則引擎、具有大量布爾條件(真/假)組合的功能。

      • 例子:?信用卡申請審批規則(條件:年齡、收入、信用分;動作:批準/拒絕/需人工審核)。

  3. 什么是狀態轉換測試 (State Transition Testing)?適用于什么場景?

    • 回答:?這種方法適用于系統或對象的行為依賴于其當前狀態,并且狀態會因特定事件或條件而改變的場景。通過繪制狀態轉換圖或狀態轉換表,設計測試用例來覆蓋有效的狀態轉換路徑(正常流)和無效的轉換(異常流)。

    • 適用場景:?具有明確狀態和狀態轉換的系統,如登錄/登出流程、訂單狀態機(待支付、已支付、發貨中、已完成、已取消)、工單狀態、游戲角色狀態等。

  4. 什么是錯誤推測法 (Error Guessing)?

    • 回答:?一種基于測試人員經驗、直覺和對系統弱點的理解來推測程序中可能存在的錯誤,并針對性地設計測試用例的方法。它依賴于測試人員的技能和對類似系統常見缺陷的了解。

    • 例子:?測試文件上傳功能時,推測可能的錯誤:上傳超大文件、上傳0字節文件、上傳非法格式文件、上傳文件名包含特殊字符的文件、網絡中斷時上傳等。

  5. 一個好的測試用例應包含哪些要素?

    • 回答:?通常包含:

      • 用例ID:?唯一標識符。

      • 用例標題/描述:?清晰、簡潔地說明測試目的(What to test?)。

      • 前置條件:?執行該用例前系統必須滿足的狀態(如:用戶已登錄,特定數據已存在)。

      • 測試步驟:?詳細、可執行的操作步驟(How to test?)。

      • 測試數據:?執行步驟所需的具體輸入值。

      • 預期結果:?每一步或整個用例執行后,系統應有的正確響應或狀態(What should happen?)。

      • 后置條件:?執行后系統的狀態(可選,常用于清理或為后續用例準備)。

      • 優先級:?標識用例的重要程度(高/中/低)。

      • 所屬模塊/功能:?方便組織和管理。

  6. 如何為一個登錄功能設計測試用例?

    • 回答:?這是非常經典的場景題!考慮以下方面:

      • 功能正確性:

        • 輸入正確用戶名和密碼 -> 登錄成功(跳轉到正確頁面,創建有效Session)。

        • 輸入正確用戶名+錯誤密碼 -> 登錄失敗,提示“密碼錯誤”。

        • 輸入錯誤用戶名+正確密碼 -> 登錄失敗,提示“用戶名不存在或密碼錯誤”(安全考慮,避免提示太明確)。

        • 輸入錯誤用戶名+錯誤密碼 -> 登錄失敗。

        • 用戶名/密碼為空 -> 登錄失敗,提示“用戶名/密碼不能為空”。

        • 用戶名/密碼包含空格(前/中/后) -> 處理是否合理(通常應Trim前后空格)。

      • 輸入驗證 (等價類 & 邊界值 & 特殊字符):

        • 用戶名/密碼長度限制(過短/過長/恰好邊界)。

        • 用戶名/密碼允許的字符類型(字母、數字、特殊字符@#$_等,需根據需求)。

        • 輸入SQL注入/XSS嘗試字符串 -> 應被阻止或轉義。

      • 用戶體驗:

        • 錯誤提示信息是否清晰、友好、無技術術語。

        • 登錄失敗后,密碼是否被清空(安全考慮)?用戶名是否保留(方便用戶)?

        • 是否有“忘記密碼”、“注冊”等鏈接?是否可用?

        • 是否有“記住我”功能?是否有效?

      • 安全性:

        • 傳輸是否加密(HTTPS)?

        • 登錄失敗多次是否有鎖定機制(防暴力破解)?

        • 登錄成功后Session管理是否安全(Cookie HttpOnly, Secure)?

        • 錯誤信息是否泄露敏感信息(如明確提示“該用戶不存在”)?

      • 其他:

        • 不同瀏覽器/設備上的表現(兼容性)。

        • 網絡中斷時登錄。

        • 同時多點登錄(同一賬號在不同地方登錄)的處理。

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

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

相關文章

SOLi-LABS Page-4 (Challenges)--54-65關

sql-54 翻譯一下頁面&#xff0c;得知我們只有十次機會。id參數是單引號閉合。 ?id-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schemadatabase()-- 我得到的表名是igsyiz2p7z。&#xff08;每個人得到的應該都不一樣&#…

docker代碼如何在vscod上修改

基于 docker-compose.yml文件&#xff08;包含 ??emqx??&#xff08;MQTT服務&#xff09;、??backend??&#xff08;后端服務&#xff09;、??mysql??&#xff08;數據庫&#xff09;&#xff09;的詳細運行、調試、增改刪操作說明&#xff0c;結合流程圖示意&…

HTML5 CSS3 從入門到精通:構建現代Web的藝術與科學

本文將帶你系統地學習掌握現代Web前端的基礎與核心&#xff0c;最終能夠獨立構建語義清晰、布局靈活、交互豐富的專業級網站。 第一章&#xff1a;夯實基礎 - HTML5語義化與結構藝術 1.1 告別<div>混沌&#xff1a;語義化標簽的力量 <header><h1>網站標題…

C# 微軟依賴注入 (Microsoft.Extensions.DependencyInjection) 詳解

文章目錄 前言 核心原理 三大生命周期 核心接口與類 基礎使用示例 關鍵特性詳解 1、構造函數注入 2、作用域管理 3、服務解析方法 4、延遲加載 常見問題解決 問題1:循環依賴 問題2:多實現選擇 性能優化技巧 擴展方法示例 前言 微軟的依賴注入框架是 .NET Core/5+ 的核心組件…

【車聯網kafka】Kafka核心架構與實戰經驗(第四篇)

一、社團扛把子不為人知的秘密 香港社團里&#xff0c;Kafka 是整個組織的名號&#xff0c;ZooKeeper 就是說一不二的長老團&#xff0c;各個片區的 “話事人” 就是 broker&#xff0c;而能統領所有片區的 “扛把子”&#xff0c;就是 Kafka 里的控制器。? 1.1 選舉的秘密 每…

Scala重點(基礎、面向對象、高階函數、集合、模式匹配)

1. 基礎語法1.1. 注釋和java一樣我是單行注釋 /* 我是多行注釋 我是多行注釋 */ /** * 我是文檔注釋 * 我是文檔注釋 */1.2. 語句語句可以不以分號結尾一條語句獨占一行 println("Hello World!")多條語句在一行 println("Hello World!"); println("He…

明遠智睿T113-i核心板:工業設備制造領域的革新利器

在工業設備制造這片充滿挑戰與機遇的領域&#xff0c;技術革新如同一股洶涌浪潮&#xff0c;不斷重塑著市場競爭的格局。隨著技術持續進步&#xff0c;市場競爭愈發激烈&#xff0c;制造商們面臨著如何在保證產品卓越性能的同時&#xff0c;有效控制成本這一關鍵難題。在此背景…

122-基于Flask的校園霸凌數據可視化分析系統

校園霸凌數據可視化分析系統 - 基于Flask的全棧數據分析平臺 本文詳細介紹了一個基于Flask框架開發的校園霸凌數據可視化分析系統&#xff0c;從技術架構到功能實現&#xff0c;為數據分析項目開發提供參考。 &#x1f4cb; 目錄 項目概述技術架構核心功能代碼結構技術棧詳解核…

Docker 網絡設置方式詳解

Docker 網絡是容器通信的核心基礎&#xff0c;它允許容器之間、容器與主機之間以及容器與外部網絡之間進行數據交互。Docker 提供了多種網絡驅動類型&#xff0c;適用于不同場景&#xff0c;下面詳細介紹 Docker 網絡的設置方式。一、Docker 網絡的基本概念 Docker 網絡通過驅動…

export default和export function的作用及export的含義

在 JavaScript 中&#xff0c;export 是一個關鍵字&#xff0c;用于將模塊中的變量、函數、類等導出&#xff0c;以便其他模塊可以導入和使用。export default 和 export&#xff08;非默認導出&#xff09;是兩種不同的導出方式&#xff0c;它們在使用場景和語義上有明顯的區別…

免費 ollama 可用地址共享 內含免費 deepseek,gpt,bge,llama,Qwen,embed 大模型等

ollama 共享 介紹 集ollama地址的批量添加&#xff0c;批量校驗&#xff0c;批量獲取 &#xff0c;api接口調用于一體 演示地址&#xff1a;ollama格式化工具 開源地址&#xff1a;https://gitee.com/web/ollama-share 使用說明 index.php 通過提交table 批量提交ollama地…

Android Audio實戰——獲取活躍音頻類型(十五)

在 Android Audio 開發中,很多場景需要獲取當前正在播放的音頻類型,而在音頻管理器 AudioManager 中并沒有發現類似的接口,這一篇文章就來看一下實現獲取活躍音頻類型的方式。 一、音頻類型獲取 對于獲取當前活躍音頻流類型,在《硬按鍵調節音量》中是通過 getActiveStream…

Verilog功能模塊--SPI主機和從機(02)--SPI主機設計思路與代碼解析

前言 上一篇文章介紹了SPI的四種工作模式及其時序特性&#xff0c;相信各位同學已經掌握了SPI通信的核心原理。 本文用純Verilog設計了功能完整的4線SPI主機&#xff0c;并詳細說明了模塊編碼思路和使用注意事項&#xff0c;最后分享了源碼。 一、模塊功能 本Verilog功能模塊—…

Decoder模型 向量模長表示什么

Decoder模型 向量模長表示什么 詞和其他詞的關系的強弱和關聯程度;生僻詞模長小 從實驗結果來看,Qwen2-7B-Instruct的向量模長規律與之前的預期(“模長與語義豐富度、確定性正相關”)完全相反,這反映了Decoder-only模型(尤其是指令微調模型)的表征特性與Encoder-only模…

STL容器及其算法

C 標準庫容器詳解&#xff1a;特性、用法與場景選型容器是 C 標準庫&#xff08;STL&#xff09;的核心組件&#xff0c;用于存儲和管理數據。不同容器因底層實現不同&#xff0c;在性能、功能和適用場景上差異顯著。本文系統梳理vector、list、set、map等常用容器&#xff0c;…

MySQL ZIP安裝教程:從解壓到啟動

金金金上線&#xff01; 話不多&#xff0c;只講你能聽懂的前端知識 前言 我這里不能下載安裝程序的mysql&#xff0c;由于電腦安全限制&#xff0c;安裝時會彈出需要管理員賬號密碼權限&#xff0c;此路行不通&#xff0c;所以琢磨著免安裝版本怎么個流程&#xff0c;好&#…

p2p打洞

p2p網絡穿透庫,它的C++版本目前只支持linux,不支持win,它最新版本的穿透用的tcp,老版本支持tcp/udp: https://libp2p.io/ P2P-udp的穿透教程: https://edu.51cto.com/lesson/731596.html 目前打洞機制最好的庫是webrtc,其次是libnice,它是輕量級的專門打洞的庫。 libni…

『“無恙心寬”,梗痛不常』——愛上古中醫(12)(健康生活是coder抒寫優質代碼的前提條件——《黃帝內經》伴讀學習紀要)

養心護心氣血通&#xff0c;無痛無梗全身松。 筆記模板由python腳本于2025-08-10 15:54:46創建&#xff0c;本篇筆記適合至少通曉一門語言&#xff0c;熟悉基本編程范式的coder翻閱。 學習的細節是歡悅的歷程 博客的核心價值&#xff1a;在于輸出思考與經驗&#xff0c;而不僅僅…

Spark 運行流程核心組件(一)作業提交

1、Job啟動流程1、Client觸發 SparkContext 初始化 2、SparkContext 向 Master 注冊應用 3、Master 調度 Worker 啟動 Executor 4、Worker 進程啟動 Executor 5、DAGScheduler 將作業分解為 Stage&#xff1a; 6、TaskScheduler 分配 Task 到 Executor 2、核心組件組件職責Spar…

MySQL 臨時表與復制表

一、MySQL 臨時表臨時表是會話級別的臨時數據載體&#xff0c;其設計初衷是為了滿足短期數據處理需求&#xff0c;以下從技術細節展開說明。&#xff08;一&#xff09;核心特性拓展1.生命周期與會話綁定會話結束的判定&#xff1a;包括正常斷開連接&#xff08;exit/quit&…