[go: up one dir, main page]

TW200846903A - Method for generating software test cases - Google Patents

Method for generating software test cases Download PDF

Info

Publication number
TW200846903A
TW200846903A TW096117334A TW96117334A TW200846903A TW 200846903 A TW200846903 A TW 200846903A TW 096117334 A TW096117334 A TW 096117334A TW 96117334 A TW96117334 A TW 96117334A TW 200846903 A TW200846903 A TW 200846903A
Authority
TW
Taiwan
Prior art keywords
test data
condition
software
tracking
necessary
Prior art date
Application number
TW096117334A
Other languages
English (en)
Other versions
TWI347519B (en
Inventor
Chin-Yu Huang
Jun-Ru Chang
Chih-Tung Shu
Original Assignee
Nat Univ Tsing Hua
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nat Univ Tsing Hua filed Critical Nat Univ Tsing Hua
Priority to TW096117334A priority Critical patent/TWI347519B/zh
Priority to US11/863,009 priority patent/US8056058B2/en
Publication of TW200846903A publication Critical patent/TW200846903A/zh
Application granted granted Critical
Publication of TWI347519B publication Critical patent/TWI347519B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

200846903 九、發明說明: 【發明所屬之技術領域】 本發明係關於一種軟體測試資料之產生方法,尤指一種具有 較少的測試資料且能達到高涵蓋率(coverage)要求之軟體測試 資料之產生方法。 【先前技術】 在開發一套軟體時’軟體測試(software testing)是彳艮重要的一 環。通常程式設計師會針對程式修改的部分,根據自己的經驗 設計一些測試資料,以驗證修改的部分是否正確。但往往因為 測試時間不足,程式設計師會將進行測試的時間給縮短,造成 軟體品質(software quality)降低。因此如何在有限的時間内找到 必須要測試的測試資料(test cases)以進行測試是一报重要的課 題。 「涵蓋率」一詞係用來衡量測試資料對程式碼偵錯的涵蓋程 度。計算涵蓋率有很多種方法,像是程式碼涵蓋率(statement coverage )、分支涵蓋率(branch coverage )、條件涵蓋率(c〇nditi〇n coverage )、判斷式結果涵蓋率(decision coverage )、條件/判斷 式結果涵蓋率(condition/decision coverage )、修正條件/決定涵 蓋率(modified condition/decision coverage ; MC/DC)和路徑涵 蓋率(path coverage)。在美國測試飛航系統時,針對mc/DC準 則係要求需達到1 〇〇%的涵蓋率,以減少隱藏錯誤的個數。因此 要如何找出較少的測試資料且達到高涵蓋率的要求是本發明所 要探討的方向。 【發明内容】 200846903 本發明揭示一種具有較少的測試資料,且仍能達到高涵蓋率 要求之軟體測試資料之產生方法。 本發明揭示一種軟體測試資料之產生方法,該方法之第一實 施例包含提供複數個初始測試資料之步驟。依據該軟體的判斷 式設定條件成立時的複數個參考點,其中該條件式包含η個條 件,η為正整數,且該複數個參考點位於該η個條件所對應之2η 個節點之内。之後,比對任一之該複數個初始測試資料及其相 鄰節點,若其中一個為參考點而另一個不是參考點,則設定該 初始測試資料及其相鄰節點為追踪配對。其次,尋找所有追踪 配對内出現在各個條件下之次數最多的初始測試資料,並將該 初始測試資料設定為必要測試資料。進而將在各條件下和該出 現次數最多的初始測試資料構成追踪配對之節點亦設為必要測 試資料。 本發明方法之第二實施例依據該軟體的判斷式設定條件成立 時的複數個參考點。之後,比對任一之該複數個初始測試資料 及其相鄰節點,若其中一個為參考點而另一個不是參考點,則 設定該初始測試資料及其相鄰節點為追踪配對。其次,在該追 踪配對内篩選出必要測試資料。進而若有一條件未發現任何追 踪配對,則由該篩選出之必要測試資料之相鄰節點尋找遺漏之 必要測試資料。 ’ 【實施方式】 本發明之以下實施例係以MC/DC涵蓋率為例,然並非排除適 用於其他的涵蓋率計算準則,本發明之技術思想及權利範圍仍 可適用於/及涵蓋其他涵蓋率計算準則。首先,本實施例將 200846903 MC/DC定義如下:第一,在跑完所有測試資料時,每行程式碼 都要執行過;第二,判斷式結果的所有情況至少要跑過一次; 第三,判斷式中的每個條件的所有情況至少要執行過一次;第 四,當其中一個條件改變而其他條件不變時,判斷式的結果也 跟著改變。例如有一判斷式為A and B or C,其包含三個條件: A、B和C。根據第二項定義,必須存在至少兩個測試資料,其 中一個會使這個判斷式的值為假,另一個使判斷式的值為真。 根據第三項定義,會有一些測試資料可以讓A、B和C所有的情 況(真和假)都出現過一次。最後,若有兩個測試資料,其中一個 會使A、B、C和判斷式結果的值為(真、真、真、真),而另一個 會使A、B、C和判斷式結果的值為(假、真、真、假)。根據第四 項定義,例如當A的值改變而其他條件的值固定時,需造成判斷 式最後的結果改變。只要測試資料可以讓每個條件都達到該項 結果,就可以滿足第四項定義。 圖1(a)係本發明之第一實施例,其假設一判斷式為AandB or C,且包含A、B和C三個條件。由於有三個條件,因此有23個變 化,且可利用3-立方體的方式以具體表示。例如有一節點的二 進位值是001,表示A的值為假,B的值為假,而C的值為真。因 此當A、B、C的值分別為001、011、101、110和111時,可使該 判斷式的值為真。其對應的節點稱為參考點,如圖1(a)之黑點所 示。 假設表1係程式設計師依其經驗所提出之初始測試資料。 表1 7 200846903 A B C 測試資料#1 1 1 1 測試資料#2 1 0 1 測試資料#3 0 1 1 測試資料#4 0 0 0 測試資料#5 1 0 0 如圖1(b)所示,比對任一之該複數個初始測試資料及其相鄰 節點,若其中一個為參考點(即黑點)而另一個不是參考點(即 白點),則設定該初始測試資料及其相鄰節點為追踪配對 (tracing pair or MC/DC pair ) 13。表 2 為追踪配對的結果。 表2 條件 追踪配對 A 無 B (#5, 110) C (#2, #5),(#3, 010),(#4, 001) 在各個條件中,可能會有一個以上的追踪配對,因此需選出 初始測試資料出現在各個條件的追踪配對次數最多者,以得到 最多條件的追踪配對。以表1為例,測試資料#5在條件B和C時 均出現於追踪配對,因此將該測試資料#5設定為必要測試資 料。之後,將在各條件下和該出現次數最多的初始測試資料構 成追踪配對之節點亦設為必要測試資料。例如測試資料#2和測 試資料#5為條件C的追踪配對,所以把測試資料#2放入必要的測 試資料。而節點110和測試資料#5為條件B的追踪配對,所以把 節點110納入必要的測試資料。 200846903 之後要找出遺漏的測試資料。首先將位於該必要測試資料内 之非初始測試資料設定為追踪點,例如節點110。若有一條件未 發現任何追踪配對(例如條件A),且若該追踪點110和條件A方 向之相鄰節點010所構成之配對14,其一者為參考點(黑點)而 另一者不是參考點(白點),則設定該相鄰節點〇1〇為必要測試 資料。因此要測試過測試資料#2、測試資料#5、點110以及點010 這四個測試資料後才能滿足MC/DC準則的要求。
圖2(a)係本發明之第二實施例,其假設一判斷式Z=AxorBor C。當 A、Β、C的值分別為 001、010、011、100、101和 111 時, 可使判斷式Z的值為真。此時的對應節點為參考點,如圖2(a)之 黑點所示。 假設表3係程式設計師依其經驗所提出之初始測試資料。 表3 A B C Z 測試育料# 1 0 0 0 0 測試資料#2 0 1 0 1 測試資料#3 0 0 1 1 測試資料#4 0 1 1 1 如圖2(b)所示,比對任一之該複數個初始測試資料及其相鄰 節點,若其中一個為參考點(即黑點)而另一個不是參考點(即 白點),則設定該初始測試資料及其相鄰節點為追踪配對23。表 4為追踪配對的結果。 表4 條件 追踪配對 200846903 A (#1,100)、(#2, 110) B (#1,#2) C (#1,#3)
由表4得知,測試資料#1存在於三個條件的追踪配對内,因此 測試資料#1是必要的。由於測試資料#2可以和測試資料#1構成 條件B的追踪配對,而測試資料#3和測試資料#1可以構成條件C 的追踪配對,因此測試資料#2和#3也是必要的。最後在找出遺 漏的測試資料時,由於測試資料#1和100或是測試資料#2和110 可以構成A的追踪配對。因此程式人員必須要尋找測試資料可以 讓這個判斷式中條件A、B和C的值為(真、假、假)或是(真、真、 假)。
圖3(a)係本發明之第三實施例之函式資訊。本發明可在軟體 之各判斷式前加上一些函式以取得必要資訊,例如每個判斷式 的前置表示法、紀錄判斷式中的條件值等。如圖3(a)顯示插入的 資訊在經由一判斷式(A and not B) or (C xor D)後可以得到該判 斷式位在哪個等級、功能中、位在程式碼那一行、前置表示法、 測試資料對條件值的影響等資訊。 圖3(b)係本發明之第三實施例之4-立方體的表示方式。圖3(c) 係一待測試軟體,其中第6和第8行的資料曾經過修改,因此必 需針對修改過的部分產生測試資料。假設表5係初始測試資料。 表5 \ #1 #2 #3 #4 #5 條件A 1 1 0 0 0 條件B 1 0 1 1 1 200846903 條件C 0 0 0 0 1 條件D 0 0 0 1 0 結果 0 1 0 1 1
當用表5的測試貨料跑圖3 (c)程式中第7行的判斷式,習知之^ NASA測試方法會選取測試資料#1、#2、#4、#5和(〇〇11)來作剛 試。但是該習知之NASA測試方法沒辦法找到A、C和D的追踪配 對,因此一旦這三個條件有隱藏性錯誤時就無法發現。而以本 發明之方法來尋找必要測試資料時,會得到測試資料#1、#2、 #3、#4、#5和(0000)。雖然本發明之測試資料的數目會比習知 NASA的方法多一些,但是本發明之方法可以保證所有條件的追 踪配對都不會遺漏。
圖4顯示本發明和習知NASA方法之測試資料個數和涵蓋率對 應的分佈圖。本發明選取測試資料個數之規則如下;當數量為^ 時,選擇(〇〇〇〇);當數量為2時,選擇(〇⑽〇)和(〇〇〇1);當數量為 3時,選擇(0〇〇〇)、(0001)和(0010),並以此類推。由圖4可以觀 察到當測試資料數量大於11時,習知NASA方法的涵蓋率會降到 50% ’然本發明仍可維持在100〇/〇。 本發明之技術内容及技術特點已揭示如上,然而熟悉本項技 術之人士仍可能基於本發明之教示及揭示而作種種不背離本發 明精神之替換及修飾。因此,本發明之保護範圍應不限於實施 例所揭示者,而應包括各種不背離本發明之替換及修飾,並為 以下之申請專利範圍所涵蓋。 【圖式簡單說明】 圖Ua)係本發明之第一實施例; 11 200846903 圖1(b)顯示第二實施例之追踪配對; 圖2(a)係本發明之第二實施例; 圖2(b)顯示第二實施例之追踪配對; 圖3 (a)係本發明之第三實施例之函式資訊 圖3(b)係本發明之第三實施例之4-立方體的表示方式; 圖3(c)顯示一待測試軟體;以及 圖4顯示本發明和習知NASA方法之測試資料個數和涵蓋率 對應的分佈圖。 【主要元件符號說明】 11 參考點 12 非參考點 13 追踪配對 14 遺漏的追踪配對 21 參考點 22 非參考點 23 追踪配對 12

Claims (1)

  1. 200846903 十、申請專利範圍: 1. 一種軟體測試資料之產生方法,該軟體包含至少—判斷 式’該軟體測試資料包含以下步驟: 提供複數個初始測試資料; 依據該軟體的判斷式設定條件成立㈣複數個 點,其中該條件式包含n個條件,n為正整*,且該複數個 參考點位於該11個條件所對應之2n個節點之内; 比對任-之該複數個初始測試資料及其相鄰節點… 其中-個為參考點而另一個不是參考點,則設刀: 試資料及其相鄰節點為追踪配對; 始凋 尋找所有追踪配對内出現在各個條件下之次數 :始:Γ料’並將該初始測試資料設定為必要㈣資 將在各條件下和該出現次數最多的勒始測 追㈣對之節點亦設為必要測試資料。、構成 2.根據請求項!之軟體測試資料之產生 步驟: /、另包含下列 將位於該必要測試資料 踪點;以及 胃㈣之非初始測試資料設定為追 若有-條件未發現任何追踪配對, 條件下之相鄰節點所構成配對之 夫:'下點和該 不是參考點,則設定該相鄰節為,考點而另-者 3护媸&本5 , 叫即點為必要測試資料。 3.根據靖求項1之軟體測試資料之產 軟體之判斷式前加上 、,其另包含在該 飞以取仔必要資訊之步驟。 13 200846903 4·根據請求項3之軟體測試資料之產生方法,其中該函气為 該判斷式的前置表示法或紀錄該判斷式中的條件值。 5.根據請求項1之軟體測試資料之產生方法,其係應用於修 正條件/決定涵蓋率(MC/DC)。 6·根據請求項1之軟體測試資料之產生方法,其另包含下列 步驟: 若一條件下有兩個以上的必要測試資料所組成的追踪 配對,則可任選其中一者之相鄰節點。 μ • 7· 一種軟體測試資料之產生方法,包含以下步驟: 提供複數個初始測試資料; 依據該軟體的一條件式設定條件成立時的複數個參考 點; ' 冗對孩複數個初始測試資料及其相鄰節點,若其中一 個為參考點而另-個不是參考點,則設定該初始測試資 料及其相鄰節點為追踪配對;以及 在該追踪配對内篩選出必要測試資料。 8·根據請求項7之軟體測試資料之產生方法,其另包含 步驟: 若有:條件未發現任何追踪配對,則由該篩選出之必 測試資料之相鄰節點尋找遺漏之必㈣試資料。 求項7之軟體測試資料之產生方法,其另包含在該 人姑之判斷式前加上—函式以取得必要資訊之步驟。 10.根據請求項9之軟體測叫眘刹^ + 該判齡々& 法’其中該函式為 ,的别置表示法或紀錄該判斷式中的條件值。 200846903 1J·根據請求項7之軟體測試資料之產生方法,其係應用於修 正條件/決定涵蓋率(MC/DC)。 U·根據請求項7之軟體測試資料之產生方法,其另包含下列 步驟: 若一條件下有兩個以上的必要測埒咨 受列忒貝枓所組成的追踪 配對,則可任選其中一者之相鄰節點。
    15
TW096117334A 2007-05-16 2007-05-16 Method for generating software test cases TWI347519B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW096117334A TWI347519B (en) 2007-05-16 2007-05-16 Method for generating software test cases
US11/863,009 US8056058B2 (en) 2007-05-16 2007-09-27 Method for generating test cases for software program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW096117334A TWI347519B (en) 2007-05-16 2007-05-16 Method for generating software test cases

Publications (2)

Publication Number Publication Date
TW200846903A true TW200846903A (en) 2008-12-01
TWI347519B TWI347519B (en) 2011-08-21

Family

ID=40028809

Family Applications (1)

Application Number Title Priority Date Filing Date
TW096117334A TWI347519B (en) 2007-05-16 2007-05-16 Method for generating software test cases

Country Status (2)

Country Link
US (1) US8056058B2 (zh)
TW (1) TWI347519B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI564714B (zh) * 2012-02-14 2017-01-01 Alibaba Group Services Ltd Code coverage method and system, code covers detection methods and systems
TWI611291B (zh) * 2015-12-01 2018-01-11 Chunghwa Telecom Co Ltd 用於自動化生成軟體測試資料之電腦程式產品及其方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8612938B2 (en) * 2009-01-05 2013-12-17 Tata Consultancy Services Limited System and method for automatic generation of test data to satisfy modified condition decision coverage
EP2381367A1 (en) * 2010-04-20 2011-10-26 Siemens Aktiengesellschaft Method and apparatus for the performing unit testing of software modules in software systems
CN101950271B (zh) * 2010-10-22 2012-01-25 中国人民解放军理工大学 一种基于建模技术的软件安全性测试方法
US8819634B2 (en) * 2012-09-28 2014-08-26 Sap Ag System and method to validate test cases
JP6316120B2 (ja) * 2014-06-30 2018-04-25 日立オートモティブシステムズ株式会社 テストケース生成システム及びテストケースを記録した記録媒体
CN106708724B (zh) * 2015-11-16 2019-06-14 致伸科技股份有限公司 测试系统
CN107729187A (zh) * 2017-11-03 2018-02-23 郑州云海信息技术有限公司 一种基于虚拟化平台的测试用例管理容灾方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI564714B (zh) * 2012-02-14 2017-01-01 Alibaba Group Services Ltd Code coverage method and system, code covers detection methods and systems
TWI611291B (zh) * 2015-12-01 2018-01-11 Chunghwa Telecom Co Ltd 用於自動化生成軟體測試資料之電腦程式產品及其方法

Also Published As

Publication number Publication date
US20080288925A1 (en) 2008-11-20
TWI347519B (en) 2011-08-21
US8056058B2 (en) 2011-11-08

Similar Documents

Publication Publication Date Title
TW200846903A (en) Method for generating software test cases
KR20120118475A (ko) 물리적 복제불가 기능을 포함한 실리콘 집적 회로 및 이러한 회로를 테스트하기 위한 방법 및 시스템
US8966355B2 (en) Apparatus and method for comparing pairs of binary words
US8433175B2 (en) Video comparing using fingerprint representations
US11709764B2 (en) Creating test cases for testing software using anonymized log data
CN101075208B (zh) 应用于白盒路径测试的测试用例生成方法
US8868564B1 (en) Analytic comparison of libraries and playlists
US6931335B2 (en) Jitter histogram approximation
US20100037191A1 (en) Method of generating reliability verification library for electromigration
CN116859210A (zh) 通信芯片可靠性测试方法、装置和系统
Zhou et al. Flattery in Motion: Benchmarking and Analyzing Sycophancy in Video-LLMs
Polo Usaola Quantum software testing
Basak et al. PiRA: IC authentication utilizing intrinsic variations in pin resistance
Cucala Intensity estimation for spatial point processes observed with noise
CN107451002A (zh) 针对修改区块体数据的区块链的主动验证方法及系统
Zhang et al. Training Data Attribution: Was Your Model Secretly Trained On Data Created By Mine?
CN110675014B (zh) 国产电子器件替代验证项目确定方法及设备
TWI240558B (en) Method and apparatus for determining video signals
JP3169930B2 (ja) テストパタン自動生成装置及びテストパタン自動生成方法
CN106802856A (zh) 游戏应用程序的性能测试方法、服务器和游戏应用客户端
KR100261301B1 (ko) 케이-스트롱 에프에스엠에서의 시험열 생성방법
Singh et al. A Comparative Studies Of Software Quality Model For The Software Product Evaluation
KR102563160B1 (ko) 사용자의 정보를 활용하여 독서 모임 서비스를 추천하는 방법, 장치 및 컴퓨터 프로그램
Pramanick Delay testing and design for testability for delay faults in combinational logic circuits
US7590954B2 (en) Test solution development method