用例測試方法5,6:狀態遷移圖和因果圖

狀態遷移圖

通過描繪系統的狀態及引起狀態轉換的事件,來表示系統的行為

例如:訂機票

l向航空公司打電話預定機票—>此時機票信息處于

“完成”狀態

顧客支付了機票費用后—>機票信息就變為“已支付”狀態

旅行當天到達機場后,拿到機票后—>機票信息就變為“已出票”狀態

登機檢票后—>機票信息就變為“已使用”狀態

在登上飛機之前任何時間可以取消自己的訂票信息,

如果已經支付了機票的費用,則還可以得到退款,

取消后—>訂票信息處于“已被取消”狀態

轉換成遷移樹:

2.狀態遷移圖設計測試用例步驟:

1)畫出狀態遷移圖

2)通過狀態遷移圖畫出狀態轉換樹

3)從狀態轉換樹推導出測試路徑

4)根據測試路徑編寫合法(正常)測試用例或非法(異常)測試用例

注意:保證從狀態轉換樹的根節點到每個葉節點的每一條路徑都至少設計出一個測試用例

案例:打印機狀態

狀態遷移圖:

狀態遷移樹:

推到用例:

a.驗證打印完成

b.驗證打印完成(修復故障)

c.驗證打印完成(加紙)

2.因果圖

1)定義:因果圖提供了一個把規格轉化為判定表的系統化方法,從該圖中可以產生測試數據,其中,原因表示輸入條件,結果是對輸入執行的一系列計算后得到的輸出。

2)作用:因果圖方法最終生成的就是判定表,它適合檢查軟件輸入條件的各種組合情況。

3)因果圖中的約束:在實際問題中輸入狀態相互之間,輸出狀態相互之間可能存在某些依賴關系,稱為“約束”。對于輸入條件的約束有E,I,O,R四種約束,對于輸出條件的約束只有M約束。

?E約束(異):a和b中最多有一個可能為1,即a和b不能同時為1。
?I 約束(或):a、b、c中至少有一個必須為1,即 a、b、 c不能同時為0。
?O約束(唯一):a和b必須有一個且僅有一個為1。
?R約束(要求):a是1時,b必須是1,即a為1時,b不能 為0。
?M約束(強制):若結果a為1,則結果b強制為0。

4)因果圖中的四種基本關系:

在因果圖的基本符號中,圖中的左結點ci表示輸入狀態(或稱原因),右結點ei表示輸出狀態(或稱結果)。

ci與ei取值0或1,0表示某狀態不出現,1表示某狀態出現。

?恒等:若 c1 是1,則 e1 也為1,否則 e1 為0。

例如:有錢=富豪

?非:若c1是1,則e1為0,否則e1為1:;

5)因果圖轉換判定表的方法:

a.將因果圖中的所有條件(因)填入判定表的條件樁中;

b.將因果圖中的所有動作(果)填入判定表的動作樁中;

c.根據因果圖確定各個條件組合對應的動作,并且確定判定表中各個規則的條件項和動作項,在需要時優化判定表。

6)因果圖的步驟:

a.把大的系統規格劃分解成可以測試的規格片段;

b.分析分解后待測的系統規格,找出哪些是原因,哪些是結果

c.畫出因果圖

d.把因果圖轉化成判定表

e.簡化判定表

f.用判定表中每一列生成測試用例

7)因果圖的優缺點:

優點:

a. 等價類法盡管各個輸入條件可能出錯的情況都考慮 到了,但是多個輸入條件組合起來出錯的情況卻被 忽略了
b. 因果圖法能夠幫助我們按照一定步驟,高效的選擇 測試用例,設計多個輸入條件組合用例
c. 因果圖分析還能為我們指出,程序規格說明描述中 存在什么問題
缺點:
a. 輸入條件與輸出結果的因果關系,有時難以從軟件 需求規格說明書得到
b. 即使得到了這些因果關系,也會因為因果關系復雜 導致因果圖非常龐大,測試用例數目及其龐大

案例:
一個處理單價為5角錢的飲料的自 動售貨機。其規格說明如下:
若投入5角錢或1元錢的硬幣,押下〖橙汁〗或〖啤酒〗的按鈕,則相應的飲料就送出來。若售貨機沒有零錢找,則一個顯示〖零錢找完〗的紅燈亮,這時在投入1元硬幣并押下按鈕后,飲料不送出來而且1元硬幣也退出來;若有零錢找,則顯示〖零錢找完〗的紅燈滅,在送出飲料的同時退還5角硬幣

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

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

相關文章

linux 腳本解釋

if [ $? -ne 0 ]; thenecho "錯誤: 無法關閉現有 Tomcat 實例,終止啟動流程!" >&2exit 1fi$? 是shell中的特殊變量,表示上一個命令的退出狀態碼-ne 0 表示"不等于0"(在Unix/Linux中,0通常表示成功,非…

Glary Utilities(系統優化工具) v6.20.0.24 專業便攜版

GlaryUtilities 允許你清理系統垃圾文件,無效的注冊表,上網記錄,刪除插件,查找重復文件,優化內存,修理或刪除快捷方式,管理windows啟動程序,卸載軟件,安全刪除文件&#…

VScode鏈接服務器一直卡在下載vscode服務器/scp上傳服務器,無法連接成功

終極方案&#xff08;強力推薦&#xff0c;親測有效&#xff0c;鏈接只需5秒鐘&#xff09;&#xff1a;本地下載復制到mkdir -p ~/.vscode-server/bin/<commit_hash>里面 <commit_hash>可以從幫助->關于里面找到&#xff0c;如下所示 版本: 1.96.2 提交: fa…

基于Spring Boot的農村農產品銷售系統設計與實現

隨著現代農業的快速發展,傳統農產品的銷售模式逐漸暴露出信息閉塞、流通效率低和中間環節多等問題。為了打破這些瓶頸,我基于Spring Boot框架開發了一套農產品銷售系統,旨在構建一座連接農民與消費者之間的數字橋梁,讓優質農產品更高效地直達用戶餐桌。 一、項目背景與目標…

Mysql默認存儲引擎InnoDB和底層數據結構

在黑馬點評項目實戰中&#xff1a;談到了為什么不推薦使用mysql的字段自增作為訂單id傳遞給客戶端&#xff0c;讓我想到了Mysql的??存儲引擎??和??底層數據結構??究竟是什么&#xff1f;它是如何實現自增的&#xff1f;本文主要是深度解析 MySQL 默認存儲引擎 InnoDB 與…

原點安全簽約金網絡數科,共建一體化數據安全防護體系

金網絡正式攜手原點安全&#xff0c;基于原點安全一體化數據安全平臺&#xff08;uDSP&#xff09;&#xff0c;啟動企業數據安全平臺建設項目&#xff0c;圍繞數據資產盤點、敏感數據識別與分類分級、數據訪問權限管控、數據動態脫敏、數據安全審計與風險監測等關鍵能力建設&a…

mix-blend-mode的了解使用

mix-blend-mode 是 CSS 的一個屬性&#xff0c;用于控制元素的內容&#xff08;如文本、圖像、背景等&#xff09;如何與其 父元素 或 背景 進行混合。它類似于圖形設計軟件&#xff08;如 Photoshop&#xff09;中的圖層混合模式&#xff0c;可以實現各種視覺效果&#xff1b;…

vue自定義指令bug

問題描述&#xff1a;頁面加載時&#xff0c;報已下錯誤。同時&#xff0c;頁面數據不顯示環境介紹&#xff1a;已經添加了vue自定義指令permission&#xff0c;實現如下&#xff0c;用以控制元素顯示權限app.directive(permission, (el, binding) > {if (!store.hasPermiss…

Vue3 + WebSocket

Vue3與WebSocket結合能夠很好地滿足實時通訊的需求。通過合理設計和管理WebSocket連接的生命周期&#xff0c;以及實現必要的重連邏輯和心跳檢測機制&#xff0c;可以構建出響應迅速且穩定的實時應用。WebSocketWebSocket允許服務端主動向客戶端發送數據&#xff0c;無需客戶端…

IPSec和HTTPS對比(一)

IPSec&#xff08;Internet Protocol Security&#xff09;是網絡層&#xff08;OSI第3層&#xff09;的加密協議&#xff0c;其核心機制和與HTTPS的區別如下&#xff1a;&#x1f512; ?一、IPSec的核心機制解析??1. 安全封裝結構?┌──────────┬───────…

關于 c、c#、c++ 三者區別

1. 起源與定位語言起源時間開發者定位/特點C1972年Dennis Ritchie面向過程的編程語言&#xff0c;強調底層控制與高效性能C1983年Bjarne Stroustrup在 C 的基礎上加入 面向對象編程&#xff08;OOP&#xff09;C#2000年微軟&#xff08;Microsoft&#xff09;類似 Java&#xf…

項目總體框架(servlet+axios+Mybatis)

項目總體框架 先暫時這樣子&#xff08;后續發現錯誤的話就改&#xff09; com.hope-tieba/ ← 項目根 ├─ .idea/ ← IDEA 工程配置 ├─ src/ │ ├─ main/ │ │ ├─ java/ │ │ │ └─ com/hope/ │ │ …

RestTemplate 實現后端 HTTP 調用詳解

1. 方法簽名解析方法名和返回類型說明了這個方法的業務意圖和數據結構。Override 表示實現接口方法&#xff0c;利于規范開發和自動檢查。Override public List<RobotInfo> listRobots() {這里 RobotInfo 是假設的業務數據結構&#xff0c;實際項目中按你的類名即可。2. …

Python單例模式詳解:從原理到實戰的完整指南

引言 單例模式是軟件設計中最常用的模式之一&#xff0c;它確保一個類只有一個實例&#xff0c;并提供全局訪問點。在Python中&#xff0c;實現單例模式有多種優雅的方式&#xff0c;本文將詳細講解6種主流實現方法&#xff0c;包含完整代碼示例和注釋。 一、模塊級單例&#x…

拼團系統中的冪等性防護 , 前置性查詢,Redis 庫存預判

這段內容涉及兩個關鍵點&#xff1a;冪等性防護 和 拼團目標量判斷&#xff0c;下面我將分別解釋這兩個問題&#xff0c;并重點說明&#xff1a; “如果沒有攔截&#xff0c;最終訪問數據&#xff0c;也會有數量判斷攔截。” 這句話的意思。 ? 1. 查詢外部交易 outTradeNo 是…

【Python】LEGB作用域 + re模塊 + 正則表達式

文章目錄一 LEGB作用域二 re&#xff08;Regular Expression&#xff09;預覽1. re.match() —— 從字符串開頭匹配2. re.search() —— 搜索整個字符串3. re.findall() —— 返回所有匹配的字符串列表4. re.finditer() —— 返回所有匹配的迭代器5. re.sub() —— 替換匹配的字…

JavaSE -- 數據操作流

6. 數據操作流在執行文件存儲一個對象的時候&#xff0c;如果該對象只有少量屬性需要存儲&#xff0c;并且這些屬性的類型都是基本數據類型&#xff0c;此時則不需要對象序列化技術。使用數據操作流既可以實現。 DataOutputStreamDataInputStream 注意&#xff1a; 讀取數據的時…

GI6E 加密GRID電碼通信SHELLCODE載入

GI6E https://github.com/MartinxMax/gi6e 「它似乎能從特製的音訊信號中提取敏感資訊。」 HEX-GRID CODEX&#xff08;簡稱 HGC&#xff09;是一種自定義的 6 位元結構編碼系統&#xff0c;使用三位元的群組識別碼&#xff08;Group Bits&#xff09;加上三位元的索引識別碼…

實習十三——傳輸層協議

補充子網劃分的主要目的就是為了節約IP&#xff0c;降低成本&#xff0c;但是如果劃分私有IP網段&#xff0c;則完全沒有意義&#xff0c;因為私有IP可重復&#xff0c;不要錢&#xff0c;所以私有IP嚴禁進行子網掩碼劃分傳輸層協議TCP三次握手TCP協議數據格式第一次握手&#…

RPG59.玩家拾取物品三:可拾取物品的提示UI

1。以WarriorWidgetBase作為父類&#xff0c;創建一個子類的userwidget2.布局為兩個值都為1203。然后我們需要想辦法&#xff0c;在合適的位置&#xff0c;用bool來控制此控件的顯示與隱藏。情況為&#xff1a;當玩家觸發與可拾取物體的重疊時&#xff0c;我們將廣播一個bool值…