摘要:需要結合其他測試用例設計的方法進行補充。比如邊界值邊界值在軟件中邊界值測試方法是發(fā)現(xiàn)錯誤能力最強的一種。其中,原因是表示輸入條件,結果是對輸入執(zhí)行的一系列計算后得到的輸出。與取值或,表示某狀態(tài)不出現(xiàn),則表示某狀態(tài)出現(xiàn)。
一、測試基本術語認識
動態(tài)測試(dynamic testing):通過運行軟件的組 件或 系統(tǒng)來測試軟件
靜態(tài)測試(static testing):對組件的規(guī)格說明書 進行 評審,對靜態(tài)代碼進行走查
正式評審(formal review):對評審過程及需求文 檔的 一種特定評審(組內(nèi)評審和交叉評審)
度量(metric):測量所使用的方法或標準
評審員(reviewer):參與評審的人
記錄員(scribe):記錄評審會議上的會議紀要
技術評審(Technical Review):同行間對技術進行的評審, 目的是技術實現(xiàn)達成共識
走查(Walkthrough):由文檔作者逐步陳述文檔內(nèi)容,以 收集信 息并對內(nèi)容達成一致
復雜性(complexity):系統(tǒng)或組件的設計或內(nèi)部結構比較 復雜, 導致難以理解,維護或驗證的程度
圈復雜度(Cycloramic complexity):程序中獨立路徑的數(shù) 量。可 以衡量一個組件模塊的判定結構的復雜程度
控制流(Control Flow):執(zhí)行組件或系統(tǒng)的一系列順序的路 徑
數(shù)據(jù)流(Data Flow):表示數(shù)據(jù)對象的順利或狀態(tài)發(fā)生變 化的過程
(1)狀態(tài)變更:待支付—已支付—待發(fā)貨—已發(fā)貨–待簽收—已簽收–待評價—已評價
(2)金額的流動:綁卡(客戶)—充值(平臺)平臺對接的銀行—理財(理財平臺或你選擇的平臺)平臺對接的銀行轉出到你理財項目的對應賬戶---- 平臺的資金減少
控制流圖與圈復雜度
控制流圖的概念 ? 控制流圖(CFG,Controlflowgraph)也叫控制流 程圖,
是一個過程或程序的抽象表現(xiàn)
圈復雜度:
程序中獨立路徑的數(shù)量,可以衡量 一個組件模塊 的判定結構的復雜程 度。
? 計算對象是結構圖或程序圖,而程 序圖又包括控 制流圖與流程圖
if (x>100&&y>500) then
score=score+1
else if (x>=1000||z>5000)then
score=score+2
三種方法計算圈復雜度:
(1)圈復雜度=區(qū)域數(shù)
圈復雜度=3
(2)圈復雜度=邊數(shù)-節(jié)點數(shù)+2
圈復雜度=v-e+2
圈復雜度=7-6+2=3
(3)圈復雜度=判定節(jié)點+1
圈復雜度=2+1
================================================
二、用例設計方法
1、等價類
等價類:指某個輸入域的集合,在集 合中各個輸 入的條件都是等效的。
通常等價類劃分為2種情況:
(1)有效等價類:對程序規(guī)格說明有意義 的、合理 的輸入數(shù)據(jù)
輸入手機號碼:11位 15949613302
(2)無效等價類:對程序規(guī)格說明無意義 的、不合 理的輸入數(shù)據(jù)
案例1:輸入手機號碼:11位 159496133021 (超過11位)
案例2:輸入手機號碼:11位 159496133 (少于11位)
案例3:輸入手機號碼:11位 15949613:qq (不是純數(shù)字)
(3)等價類劃分的設計用例思路:
案例練習:
現(xiàn)有一個檔案管理系統(tǒng),容許用戶通過輸入年月對檔案文 件進行 檢索,系統(tǒng)對查詢條件年月的輸入限定為1990年1 月~2049年12月,并規(guī)定:日期由6位數(shù)字字符組成,前4 位表示年,后2位表示月。
找出條件:(1)1990年1月-2049年12月(總)(2)6位數(shù)字 (3)前四位是年 (4)后兩位是月
常見的能夠劃分等價類的地方:
等價類的優(yōu)缺點
優(yōu)點:是考慮了單個輸入域的各類情況, 避免 了盲目或隨機選取輸入數(shù)據(jù)的不完整 性和覆蓋 的不穩(wěn)定性。 缺點:方法雖然簡單易用,但是沒有對組 合情 況進行充分的考慮。需要結合其他測 試用例設 計的方法進行補充。比如邊界值
================================================
邊界值
(1)在軟件中邊界值測試方法是發(fā)現(xiàn)錯誤能力最強的一種。
qq 賬號
閉區(qū)間:
上點: 5 13
離點: 4 14
內(nèi)點:6到12 8代表
開區(qū)間:
上點: 5 13
離點:6 12
內(nèi)點: 7-11
(2)邊界條件分析:
(3)邊界值分析原則 1. 如果輸入(輸出)條件規(guī)定了取值范圍,則應該 以該范 圍的邊界內(nèi)及邊界附近的值作為測試用例 2. 如果輸入(輸出)條件規(guī)定了值的個數(shù),則用最 大個數(shù), 最小個數(shù),比最小個數(shù)少一,比最大個 數(shù)多一的數(shù)作為 測試數(shù)據(jù) 3. 如果程序規(guī)格說明中提到的輸入或輸出是一個有 序集合, 應該注意選取有序集合的第一個和最后 一個元素作為測 試數(shù)據(jù)
案例:輸入貸款金額的輸入框:100-5000
閉區(qū)間
上點:100 5000
離點:99 5001
內(nèi)點:101-4999
==================
開區(qū)間
上點:100 5000
離點:101 4999
內(nèi)點:102-4998
===============================
判斷表:(針對于組合情況)
(1)判定表定義: 分析和表達多邏輯條件 下的執(zhí)行不同操作的情況
(2)結構:由4個部分組成
1)條件樁(condition stub):列出問題 的 所有條件(通常條件次序無關緊要)。
2)條件項(condition entry):列出針 對 它條件的取值(所有情況下的真假值)
3)動作樁(action stub):列出問題規(guī) 定 可采取的動作(順序無約束)。
4)動作項(action entry):列出條件各 種情況的應采取的 動作
創(chuàng)建步驟:
1)確定規(guī)則的個數(shù):若有N個條件,每一 個條件下有2個值,則有2^n種規(guī)則。
2)列出所有條件樁與動作樁。
3)輸入條件項。
4)輸入動作項得到初始判定表。
5)簡化(合并相似規(guī)則)
6)編寫測試用例
案例:
2個條件,2個值(填不填) 2的2次方 =4
案例1:
對功率大于50馬力的機器、維修記錄不全或已運行10年以上的機器,應給予優(yōu)先的維修處理……”。
理解:1、 功率大于50馬力的機器 和維修記錄不全(優(yōu)先)
2、已運行10年以上的機器(優(yōu)先)
備注:條件3個 2的3次方=8次, 8次可以覆蓋所有的組合情況
案例:
簡化初始判定表:
判定表的作用: 利用判定表將復雜的問題按照 各種可能的 情況全部列舉出來, 能針對不同邏輯條件 的組合值, 分別執(zhí)行不同的操作
==============================
因果圖
(1)因果圖:因果圖提供了一個把規(guī)格轉化為判定表的系 統(tǒng)化方法,從該圖中可以產(chǎn)生測試數(shù)據(jù)。其 中, 原因是表示輸入條件,結果是對輸入執(zhí) 行的一系 列計算后得到的輸出。
因果圖方法最終生成的就是判定表。它適合 于檢查軟件輸入條件的各種組合情況 (重點)
(2)因果圖中的4種基本關系 在因果圖的基本符號中,圖中的左結點ci 表示輸入狀態(tài) (或稱原因),右結點ei表示輸出 狀態(tài)(或稱結果)。ci與 ei取值0或1,0表示某 狀態(tài)不出現(xiàn),1則表示某狀態(tài)出現(xiàn)。
?恒等:若 c1 是1,則 e1 也為1,否則 e1 為0。
?非:若 c1 是1,則 e1 為0,否則e1為1。
?或:若 c1 或 c2 或 c3 是1,則 e1 為1,否則 e1 為0。
?與:若 c1 和 c2 都是1,則 e1 為1,否則 e1 為0。
因果圖中的約束 在實際問題中輸入狀態(tài)相互之間、輸出狀 態(tài)相互之間可能存在某些依 賴關系,稱為“約 束”。對于輸入條件的約束有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
(3)因果圖的步驟:
1.把大的系統(tǒng)規(guī)格劃分解成可以測試的規(guī) 格片段
2.分析分解后待測的系統(tǒng)規(guī)格,找出哪些 是原因,哪些是結果
3.畫出因果圖
4.把因果圖轉換成判定表
5.簡化判定表
6.用判定表中的每一列生成測試用例
因果圖案例:
一個處理單價為5角錢的飲料的自 動售貨機。 其規(guī)格說明如下: 若投入5角錢或1元錢的硬幣,押下〖橙汁〗 或〖啤酒〗的按鈕,則相應的飲料就送出來。 若售貨機沒有零錢找,則一個顯示〖零錢找完〗 的紅燈亮,這時在投入1元硬幣并押下按鈕后, 飲料不送出來而且1元硬幣也退出來;若有零錢 找,則顯示〖零錢找完〗的紅燈滅,在送出飲 料的同時退還5角硬幣。”
(4)因果圖轉換判定表的方法:
(5)因果圖的優(yōu)點/缺點 優(yōu)點:
案例;
某軟件規(guī)格說明書包含這樣的要求:第一列字符必須是A或B,第二列字符必須是一個數(shù)字,在此情況下進行文件的修改,但如果第一列字符不正確,則給出信息L;如果第二列字符不是數(shù)字,則給出信息M。
解答:
根據(jù)題意,原因和結果如下:
原因:
1——第一列字符是A;
2——第一列字符是B;
3——第二列字符是一個數(shù)字。
結果:
21——修改文件;
22 ——給出信息L;
23——給出信息M。
其對應的因果圖如下:
11為中間節(jié)點;考慮到原因1和原因2不可能同時為1,因此在因果圖上施加E約束。
場景法 :
(1)場景法主要是針對測試場景類型的,顧也稱場景流程分 析法。
流程分析是將軟件系統(tǒng)的某個流程看成路徑,用路徑分 析的方法來設計測試用例。根據(jù)流程的順序依次進行組 合,使得流程的各個分支都能走到
舉例說明:
1》人事考勤系統(tǒng):離職流程有哪些?
(2)網(wǎng)購商品流程有哪些?
練習:
練習1: 針對ATM機的取款流程進行測試 其基本流程如下:
利用xmind 工具畫出思維導圖:
(1)xmind工具:
(2)流程分析步驟:
===============================
正交表
正交試驗
正交試驗設計法,是從大量的試驗點中挑選 出適量的、有代表性的點,應用依據(jù)迦羅瓦 理論導出的“正交表”,合理的安排試驗的 一種科學的試驗設計方法
正交常用的術語
指標:通常把判斷試驗結果優(yōu)劣的標準叫做 試驗的指標
因子:所有影響試驗指標的條件
水平值:影響試驗因子的取值
因子:3
水平值 :2
2的3次方 8種
公式: 實驗數(shù)=因子*(水平數(shù)-1)+1
3*(2-1)+1=4 種
案例:
因子:7
水平數(shù):2
實驗數(shù): 7*(2-1)+1 =8 種
正交表特點:
1》整齊可比性 在同一張正交表中,每個因素的每個水平出現(xiàn)的次數(shù)是完全相同的。 由于在試驗中每個因素的每個水平與其它因素的每個水平參與試驗 的機率是完全相同的,這就保證在各個水平中最大程度的排除了其 它因素水平的干擾。
2》均衡分散性 在同一張正交表中,任意兩列(兩個因素)的水平搭配(橫向形成 的數(shù)字對)是完全相同的。這樣就保證了試驗條件均衡地分散在因 素水平的完全組合之中,,因而具有很強的代表性,容易得到好的 試驗條件。
用正交表設計測試用例的步驟:
(1)有哪些因素(變量或條件)
(2) 每個因素有哪幾個水平(變量或條件的取值)
(3) 為了滿足整齊可比性,選擇一個合適的正交表
(4) 把變量的值映射到表中(建議第1行是全真或全假)
(5) 把每一行的各因素水平的組合做為一個測試用例
(6) 加上你認為可疑且沒有在表中出現(xiàn)的組合
===============================
狀態(tài)遷移圖
定義:通過描繪系統(tǒng)的狀態(tài)及引起系統(tǒng)狀態(tài)轉換的 事件,來表示系統(tǒng)的行為
案例:
l向航空公司打電話預定機票—>此時機票信息處于 “完成”狀態(tài)
l顧客支付了機票費用后—>機票信息就變?yōu)椤耙阎Ц丁?狀態(tài)
l旅行當天到達機場后,拿到機票后—>機票信息就變 為“已出票”狀態(tài)
l登機檢票后—>機票信息就變?yōu)椤耙咽褂谩睜顟B(tài)
l在登上飛機之前任何時間可以取消自己的訂票信息,
如果已經(jīng)支付了機票的費用,則還可以得到退款,取 消后—>訂票信息處于“已被取消”狀態(tài)
狀態(tài)遷移圖設計測試用例步驟:
1.畫出狀態(tài)遷移圖
2.通過狀態(tài)遷移圖出狀態(tài)轉換樹
3.從狀態(tài)轉換樹推導出測試路徑
4.根據(jù)測試路徑編寫合法(正常)測試用例或非法 (異常)測試用例
注意:保證從狀態(tài)轉換樹的根節(jié)點到每個葉節(jié)點的每 一條路徑都至少設計出一個測試用例。
案例2:
黃 紅 藍 三種顏色,都可以互相轉換
狀態(tài)遷移圖:
狀態(tài)遷移樹:(3)推導出測試路徑:
紅----黃—紅
紅---- 黃—藍
紅—藍---黃
紅-----藍----紅
練習:
1、狀態(tài)遷移圖:
2、轉換成遷移樹
3、推導出測試用例
==============================================
黑盒測試方法:
等價類
邊界值
判定表
因果圖
正交表
場景法
狀態(tài)遷移法
===============================
經(jīng)驗測試方法:
(1)錯誤推測法
錯誤推測法也叫錯誤猜測法,就是根據(jù) 經(jīng)驗猜想,已有的缺陷,測試經(jīng)驗和失 敗數(shù)據(jù)等可能有什么問題并依此設計測 試用例
(2)異常分析法
系統(tǒng)異常分析法就是針對系統(tǒng)有可能 存在的異常操作、軟硬件缺陷引起的 故障進行分析,依此設計測試用例。 主要針對系統(tǒng)的容錯能力、故障恢復 能力進行測試
(3)隨機測試
隨機測試指的是測試中的所有的輸入數(shù)據(jù)都 是隨機生成的,其目標是模擬用戶的操作。
實際工作中:
真實環(huán)境中,尤其是軟件剛剛發(fā)布時,會有 成千上萬的人在上面亂敲亂試;因此在發(fā)布 軟件前,用模擬用戶的隨機測試就可能發(fā)現(xiàn) 其它方式漏掉的軟件缺陷
===============================
測試用例設計的綜合策略
一、使用各種測試方法思路
1.在任何情況下都必須使用邊界值分析方法,經(jīng)驗表明用這種方 法設計出測試用例發(fā)現(xiàn)程序錯誤的能力最強;
2.必要時用等價類劃分方法補充一些測試用例;
3.用錯誤推測法再追加一些測試用例(依靠經(jīng)驗);
4.如果程序的功能說明中含有輸入條件組合情況,則可選用因果 圖/判定表;
5.對業(yè)務流程場景清晰的系統(tǒng),使用場景法貫穿;
6.檢查已設計的測試用例的覆蓋程度;
7.最后要考慮異常分析,再進行綜合使用
二、測試用例的設計步驟 1.構造根據(jù)設計規(guī)格得出的基本功能測試用例 2.邊界值測試用例 3.狀態(tài)轉換測試用例 4.錯誤猜測測試用例 5.異常測試用例 6.其它測試類型測試用例(如性能測試,易用 性測試,安全測試等)
三、優(yōu)化測試用例的方法
利用設計測試用例的10種方法不斷的 對測試用例進行分解與合并
===============================
白盒測試
定義:
白盒測試也叫透明盒測試,檢查程序內(nèi)部結構及路徑一是否符合規(guī)格說明,二是否符合其代碼規(guī)范。
因此,也叫結構測試或者邏輯驅動測試
(1)白盒測試常見方法:
1、語句覆蓋;
2、判斷覆蓋(也稱“分支覆蓋”)
3、條件覆蓋;
4、判斷、條件覆蓋
5、條件組合覆蓋;
6、路徑覆蓋 :
6.1z路徑
6.2獨立路徑
==============
詳解:
(1)語句覆蓋:
指設計若干個測試用例,使得程序運行時,每個可執(zhí)行語句至少被執(zhí)行一次。
(2)判斷覆蓋(分支覆蓋):
指設計若干個測試用例,使得程序運行時,每個判斷條件的真假分支至少被執(zhí)行一次
(3)條件覆蓋
指設計若干個測試用例,使得程序運行時,每個判斷條件中的每個判斷式的真、假值至少被執(zhí)行一次
(4)判斷、條件覆蓋
指設計若干個測試用例,使得程序運行時,每個判斷條件中真、假值分支至少被執(zhí)行一次,且每個判斷條件的內(nèi)部判斷式的真、假值至少被執(zhí)行一次
(5)條件組合覆蓋
指設計若干個測試用例,使得程序運行時,每個判斷條件的內(nèi)部判斷式的各種真假組合都至少被執(zhí)行一次;是邏輯覆蓋測試
中“覆蓋能力”最強的
(6)路徑覆蓋
旨在保證程序中每一個特定的路徑方案都能正常運行
路徑覆蓋方法:
a、獨立路徑覆蓋
即覆蓋所有的獨立路徑的測試,所謂獨立路徑應至少包含一條在其它路徑中從未有過的邊
b、Z路徑覆蓋
是一種將實際項目中復雜的程
序減少其循環(huán)次數(shù)的路徑覆蓋方法,即:不考慮循環(huán)體實際需要執(zhí)行多少次,只考慮通過循環(huán)體0次和1次這兩
種情況
0次循環(huán):直接跳過循環(huán)體,從循環(huán)體入口直接到出口
1次循環(huán):通過一次循環(huán)體即可
==============
白盒測試方法的優(yōu)點:
1.深入程序內(nèi)部,測試粒度較細。
2.是測試用例設計方法的組成部分,也是黑盒測試方法的有力補充。
3.為自動化測試與性能測試奠定基礎。
白盒測試方法的缺點:
1、.過分關注代碼本身,容易偏離SRS實際需求
2、.對相應的編程語言要求較高,人力成本較大
==============
黑盒測試+白盒測試+基于經(jīng)驗
測試黑盒測試+白盒測試+基于經(jīng)驗的測試
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122377.html
摘要:白盒測試白盒測試又稱結構測試,透明測試,邏輯驅動測試,或基于代碼的測試。 測試分類: 一、按開發(fā)階段劃分 1、單元測試 2、集成測試 3、系統(tǒng)測試 4、驗收測試 二...
摘要:一介紹了解全稱意思應用程序,理解就是手機軟件,主要是指安裝在智能手機上面的軟件,完善原始安卓系統(tǒng)的不足和多樣性,或者說個性化,以此滿足各個人群的需求,例如微信抖音這些,都是。測試測試就是要找出中的。可以更好的模擬用戶操作,確保的穩(wěn)定性 ...
摘要:前面我們寫過了的一篇文章開始對進行單元測試而提供了非常有用的工具去幫助我們進行的測試。接下來,會增加一些內(nèi)容寫測試用例接下來我們可以開始進行測試了,我們在命令行工具里輸入下面的命令我們將下面的代碼粘貼到中去。 showImg(https://segmentfault.com/img/bVx65M); 緊隨前文如何對Angular Controller進行單元測試,但是我們也提到了前文工...
摘要:函數(shù)內(nèi)的變量被稱為局部變量,這是與全局變量相反的概念。有一些進行函數(shù)式編程的機制。繼承以通用的類為基礎建立專門的類對象。 6.4.5 參數(shù)收集的逆過程 假設有如下函數(shù): def add(x,y): return x+y 比如說有個包含由兩個相加的數(shù)字組成的元組: params = (1,2) 使用*運算符對參數(shù)進行分配,不過是在調(diào)用而不是在定義時使用: >>> add(*params)...
閱讀 1240·2021-11-22 13:54
閱讀 1425·2021-11-22 09:34
閱讀 2698·2021-11-22 09:34
閱讀 4008·2021-10-13 09:39
閱讀 3342·2019-08-26 11:52
閱讀 3361·2019-08-26 11:50
閱讀 1529·2019-08-26 10:56
閱讀 1913·2019-08-26 10:44