主頁 >  其他 > 第五講 測驗技術與用例設計

第五講 測驗技術與用例設計

2022-08-11 12:44:15 其他

5.1 認識基本術語

5.1.1術語一:

動態測驗(dynamic testing)

通過運行軟體的組件或系統來測驗軟體(實際運行被測軟體/系統)【需要進行操作】

靜態測驗(static testing)

對組件的規格說明書進行評審,對靜態代碼進行走查 (不實際運行被測軟體/系統,通過對需求規格說明書進行走查、閱讀等動作,代碼進行備注走查)【主要以看為主】

正式評審(formal review)

對評審程序及需求檔案的一種特定評審 (也就是會議評審,一般公司會對需求進行正式的評審)如:

1、代碼評審:當前迭代功能相關的代碼進行評審

2、介面評審:前后端需要進行資料互動;如電商商家在后臺添加商品

度量(metric)

測量所使用的方法或標準

評審員(reviewer)

參與評審的人

記錄員(scribe)

記錄評審會議上的會議紀要

5.1.2 術語二:

◆技術評審(Technical Review)

同行間對技術進行的評審,目的是技術實作達成共識,

◆走查(Walkthrough)

由檔案作者逐步陳述檔案內容,以收集資訊并對內容達成一致 ,(即產品經理在講解需求檔案的時候,大家各抒己見,最后達成一致意見的程序.)

◆復雜性(complexity)

系統或組件的設計或內部結構比較復雜, 導致難以理解,維護或驗證的程度(與代碼相關,用圈復雜度來體現) 

◆圈復雜度(Cycloramic complexity)

程式中獨立路徑的數量,可以衡量一個組件模塊的判定結構的復雜程度,(用來衡量代碼的復雜程度,代碼越復雜,圈復雜度越高;反之越低) 

◆控制流(Control Flow)

執行組件或系統的一系列順序的路徑

◆資料流(Data Flow)

表示資料物件的順利或狀態發生變化的程序()

5.1.3術語三:

◆控制流圖概念

(CFG,Controlflowgraph)也叫控制流程圖,是一個程序或程式的抽象表現,

◆圈復雜度

圈復雜度是一種代碼復雜度的衡量標準,程式中獨立路徑的數量,可以衡量一個組件模塊的判定結構的復雜程度,數量上表現為獨立現行路徑條數,即合理的預防錯誤所需測驗的最少路徑條數,圈復雜度大說明程式代碼可能質量低且難于測驗和維護,根據經驗,程式的可能錯誤和高的圈復雜度有著很大關系,

計算物件是結構圖或程式圖,而程式圖又包括控制流圖與流程圖,

?圈復雜度第一個計算公式:V(G)=E-N+2(E表示控制流圖中的邊數;N表示控制流圖中節點數)

?圈復雜度(反映了“判定條件”的數量)第二個計算公式:V(G)=(控制流圖)區域數

?圈復雜度第三個計算公式:V(G)=P(判定節點數)+1

 

5.2 常見的用例設計方法

5.2.1等價類定義(重點)

等價類指某個輸入域的集合,在集合中各個輸入的條件都是等效的,

字符:指類字形單位或符號,包括字母、數字、運算子號、標點符號和其他符號,以及一些功能性符號,

5.2.2等價類分析方法

?使用范圍:適用于有無限多種輸入

?目的:使用較少的測驗用例盡可能將更多的功能點覆寫全通常等價類劃分為2種情況:

?有效等價類:對程式規格說明有意義的、合理的輸入資料

?無效等價類:對程式規格說明無意義的、不合理的輸入資料

5.2.3等價類劃分舉例

?規定了輸入值的范圍或值的個數(如:0<a<100或輸入6-10個字符)

?輸入值為布林值(如:真或假、是或否、對與錯不存在無效等價例)

?規定了輸入資料的一組值(如文化程度:初中、高中、大學)

?規定了輸入規則時,可以劃分出一個有效的等價類(符合規則)和若干個無效等價類(從不同角度違反規則)

常見的能夠劃分等價類的地方

1.數值范圍 2. 重復次數 3. 字串長度

4. 字串組中字符的個數 5. 檔案命名 6. 檔案大小

7. 螢屏的顏色種類 8. 超時時間

等價類劃分的設計用例思路

1. 找輸入條件 2. 為每個輸入條件找有效、無效等價類

3. 為每個等價類編號 4. 用最少的用例覆寫最多的有效等價類

5. 每一個無效等價類都是一個用例

6. 并非所有有效等價類都有無效 7. 等價類的覆寫可以重復覆寫

等價類設計用例覆寫的原則 

?每個用例盡可能多的覆寫多個有效的等價類

?每個用例只能覆寫一個無效等價類

等價類的優缺點

優點:是考慮了單個輸入域的各類情況, 避免

了盲目或隨機選取輸入資料的不完整性和覆寫

的不穩定性,

缺點:方法雖然簡單易用,但是沒有對組合情況

進行充分的考慮,需要結合其他測驗用例設計的

方法進行補充,比如邊界值

→測驗用例撰寫如:

輸入值           有效等價類         無效等價類

日期型別及長度     6位數字字符(1)   非數字型別(6)

                                      大于6位(7)     

                                      小于6位(8)

                                    注意:不能合寫

年份范圍           1990-2049(2)       大于2049(9)

                                      小于1990(10)

月份范圍           01-12(3)       小于01  0特殊(11)

                                      大于12(12)

前4位表示年       前四位為年(4)    前四位不為年(13)

后2位表示月       后兩位為月(5)    后兩位不為月(14)

------   -----   -----   ----    ------

有效輸入值:199101  202207   (滿足1、2、3、4、5)

無效輸入值:二零220705 (6、7)  2207(8)  

205007(9) 189907(10)

◆測驗用例

?面試題:用例中包含哪些內容?  包括用例編號、用例標題、前置條件、操作步驟、預期結果、用例等級

?用例標題:只能用陳述句,不能出現是否等判斷性的文字,簡單且清晰明了

5.2.4邊界值(重點)

邊界點定義

?上點:邊界上的點        ?內點:在域范圍內的點

?離點:離上點最近的點(即上點左右兩邊最鄰近的點)

 

邊界條件分析

? 輸入條件明確了一個值的取值范圍或規定了值的個數

?輸入條件明確了一個有序集合邊界值分析法:滿足a

eg.正整數值域[66,88]上點:66、88 內點:77離點:65,89

eg.正整數值域(66,88)上點:66、88 內點:77離點:67,87

★注:內點一般取中間值

★區別:閉區間上點有效,離點無效;開區間上點無效,離點有效,

邊界值分析原則

?如果輸入(輸出)條件規定了取值范圍,則應該以該范圍的邊界內及邊界附近的值作為測驗用例

?如果輸入(輸出)條件規定了值的個數,則用最大個數,最小個數,比最小個數少一,比最大個數多一的數作為測驗資料

?如果程式規格說明中提到的輸入或輸出是一個有序集合,應該注意選取有序集合的第一個和最后一個元素作為測

試資料

5.2.5判定表

?判定表定義: 分析和表達多邏輯條件下執行不同操作的情況

 

?適用范圍:遇到復雜業務,可以使用判定表來梳理業務之間的邏輯關系,

結構:由4個部分組成

1)條件樁(condition stub):列出問題的所有條件(通常條件次序無關緊要),條件(輸入)需求規格說明書定義的被測物件所有值, 

2)條件項(condition entry):列出針對它條件的取值(所有情況下的真偽值)

3)動作樁(action stub):列出問題規定可采取的動作(順序無約束),動作(輸出)針對條件,被測物件可能采取的所有操作, 

4)動作項(action entry):列出條件各種情況的應采取的動作,針對動作樁,被測物件所有的可能取值,

◆設計判定表的步驟:

1、理解需求、確定條件樁、動作樁

2、確定規則的個數;若有N個條件,每一個條件下面有2個值,則有2^n種規則,

3、設計判定表并列出所有條件樁與動作樁,               

4、輸入條件項和動作項得到初始判定表

5、根據判定表種輸入結果的表現,進行判定表并入,簡化得出結果并理清業務邏輯(合并相似規則)6、撰寫測驗用例

  ◆判定表法測驗用例

1、畫出判定表2、簡化得出清晰的業務邏輯 3、轉化為測驗用例

條件樁

 

1

2

3

4

用戶欠費?

 

Y

Y

N

N

用戶關機?

 

Y

N

Y

N

規則條數統計

4

1

1

1

1

動作樁

 

 

 

 

 

允許主被叫

 

 

 

 

禁止主被叫

 

 

注:判定表每一行/每一列都是一條測驗用例

1、簡化得出清晰的業務邏輯(合并相似規則)

用例編號    用戶是否欠費   用戶是否關機  預期結果

1            是            是        禁止主被叫

2            是            否        禁止主被叫

3            否            是        禁止主被叫

4            否            否        允許主被叫

2、轉化為測驗用例

用例編號 用例標題 前置條件 操作步驟 預期結果 優先級

5.2.6因果圖

◆因果圖定義

因果圖用畫圖的方式來表達輸入條件和輸出結果的直接關系,因果圖提供了一個把規格轉化為判定表的系統化方法,從該圖中可以產生測驗資料,其中,原因是表示輸入條件,結果是對輸入執行的一系列計算后得到的輸出,

?因果圖方法最終生成的就是判定表,它適合于檢查軟體輸入條件的各種組合情況

 

因(原因):輸入條件      果(結果):輸出結果

因果圖中的四種基本關系

在因果圖的基本符號中,圖中的左結點ci 表示輸入狀態(或稱原因),右結點ei表示輸出狀態(或稱結果),ci與ei取值0或1,0表示某狀態不出現,1則表示某狀態出現,

?恒等關系:==當原因出現的時候,結果一定出現

?非關系:~ not ≠   當原因出現的時候,結果不一定出現

?或關系:V or / | || 多個原因中有一個原因出現時,則結果一定出現

?與關系:^ 和 且 and  多個原因同時出現,則結果才能出現

因果圖中約束符號

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

?E約束(異): a和b中最多有一個可能為1,即a和b不能同時為1(兩個可以都不選,但是如果要選只能選一個)

?I約束(或):a、b、c中至少有一個必須為1,即a,b,c不能同時為0(所有原因中最少選一個,但不能同時都不選或同時都選)

?ΦΟ約束(唯一):a和b必須有一個且僅有一個為1(只能選一個,不能同時都選或同時都不選)

?R約束(要求):a是1時,b必須是1,即a為1時,b不能為0(深圳市,出現的時候必須要求出現廣東省)

?M約束(強制):若結果a為1,則結果b強制為0(輸入胡蘿卜,結果強制為蔬菜)

因果圖的步驟:

1.把大的系統規格劃分解成可以測驗的規格片段

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

哪些是結果

3.畫出因果圖            4.把因果圖轉換成判定表

5.簡化判定表    6.用判定表中的每一列生成測驗用例

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

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

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

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

◆因果圖設計測驗用例

找出原因結果并進行編號:

 

畫出因果圖:

 

面試題:你在上一家公司是怎么使用因果圖設計測驗用例的?

an:我在上一家公司一般不會畫因果圖,但是對于需求檔案當中有因果關系的需求時,我們會把因果圖的原因放到判定表的條件樁中,再把因果圖中的結果放入到判定表的動作樁中,從而把因果圖轉為了判定表,可以防止用例的漏寫和漏測,

→因果圖的優點  

1.等價類法盡管各個輸入條件可能出錯的情況都考慮到了,但是多個輸入條件組合起來出錯的情況卻被忽略了

2.因果圖法能夠幫助我們按照一定步驟,高效的選擇測驗用例,設計多個輸入條件組合用例

3.因果圖分析還能為我們指出,程式規格說明描述中存在什么問題

→因果圖的缺點:

?輸入條件與輸出結果的因果關系,有時難以從軟體需求規格說明書得到

?即使得到了這些因果關系,也會因為因果關系復雜導致因果圖非常龐大,測驗用例數目及其龐大

◆場景法設計測驗用例:

基于用戶場景梳理業務邏輯,再挑選最合適的方法設計測驗用例,為的是盡可能的去還原用戶全部真實操作,

◆業務需求方面:對所測軟體的重要功能,業務邏輯(系統要干什么,怎么去實作這個程序)和行業背景進行深入了解

◆技術層面:基于等價類劃分

?有效等價類:用戶的一個正確操作場景

?無效等價類:用戶的一個錯誤操作場景

◆核心概念:

?基本流(正確,有效流):模擬用戶的正確操作程序

?備選流(錯誤,無效流):模擬用戶的錯誤操作程序

5.3 黑盒用例設計方法

黑盒測驗也稱功能測驗,它是通過測驗來檢測每個功能是否都能正常使用,

在測驗中,把程式看作一個不能打開的黑盒子,在完全不考慮程式內部結構和內部特性的情況下,在程式介面進行測驗,它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能適當地接收輸入資料而產生正確的輸出資訊,

黑盒測驗著眼于程式外部結構,不考慮內部邏輯結構,主要針對軟體界面和軟體功能進行測驗,

黑盒測驗是以用戶的角度,從輸入資料與輸出資料的對應關系出發進行測驗的,很明顯,如果外部特性本身設計有問題或規格說明的規定有誤,用黑盒測驗方法是發現不了,

黑盒測驗用例設計方法包括等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅動法、正交試驗設計法、功能圖法、場景圖法等,目前黑盒測驗的常用測驗用例設計方法有5種:等價類劃分、邊界值分析、錯誤推測法、因果圖、功能圖

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/501516.html

標籤:其他

上一篇:二手車價格預測 | 構建AI模型并部署Web應用 ?

下一篇:Spring Security靜態資源過濾(11)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more