TW200846903A - Method for generating software test cases - Google Patents
Method for generating software test cases Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
- G06F11/3684—Test 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)
- 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
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)
| 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)
| 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 | 郑州云海信息技术有限公司 | 一种基于虚拟化平台的测试用例管理容灾方法及系统 |
-
2007
- 2007-05-16 TW TW096117334A patent/TWI347519B/zh active
- 2007-09-27 US US11/863,009 patent/US8056058B2/en active Active
Cited By (2)
| 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 |