[go: up one dir, main page]

TWI322351B - - Google Patents

Download PDF

Info

Publication number
TWI322351B
TWI322351B TW95148661A TW95148661A TWI322351B TW I322351 B TWI322351 B TW I322351B TW 95148661 A TW95148661 A TW 95148661A TW 95148661 A TW95148661 A TW 95148661A TW I322351 B TWI322351 B TW I322351B
Authority
TW
Taiwan
Prior art keywords
program
source program
statement
domain
variable
Prior art date
Application number
TW95148661A
Other languages
English (en)
Other versions
TW200828011A (en
Inventor
Fred Chen
David Wang
Original Assignee
Inventec Besta Co Ltd
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 Inventec Besta Co Ltd filed Critical Inventec Besta Co Ltd
Priority to TW95148661A priority Critical patent/TW200828011A/zh
Publication of TW200828011A publication Critical patent/TW200828011A/zh
Application granted granted Critical
Publication of TWI322351B publication Critical patent/TWI322351B/zh

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Description

1322351 九、發明說明: 【發明所屬之技術領域】 [〇〇1]本發明係關於一種測試方 -域之程式測試方法。 ,特別是一種基於程序運行 【先前技術】 [002]軟體測試是軟體開發如 來做分_話,可时成建構性測I個大_。以測試型態 (System Testing) ^ 構性測試是屬於前置性的測試,主要r^pecial Testmg)。建 =保程式執行運作正常。系統二是屬=== 用者ΓΓΓ的,収疋以使用者的觀點為主,也就是模擬外界的使 =者會如何的使用產品。至於特殊測試所指的是,所進行的測試 而要化費更多的時間與人力才能完成。 、
陶就測試模式而言’可分為白盒測試(觀teB0XT 與黑盒測試⑽ckB0XTestmg>這兩種方式的測試方向是不同 的’白盒職是轉程序結盒觀是贿式的功能 為主。 _]白盒測試摘為賴性戦(strue_ Testing),⑽ 測試有兩大層面:科极程面(DataFWC_age)以及控制= 程面(Control Fk>w Coverage),資料流程面就是測試資料在系統 的進出入於程式内所經過的流程,控制流程面就是測試程式在執 行過程中每個階段的流程。 [005]進行黑盒測試時,測試人員並不需要對軟體的結構性有 1322351 著轉她㈣所以也 冉之為力此測式。為了要控制黑盒 - 須要按照測試案例(Test Cases)來逐—進订’測试人貝必 計的好壞就會直接影響到測試結果。仃’所以知Cases設 [〇〇6]軟體項目有其不同其他項目 視性、產品執行路徑的無窮性、 檢=如產⑽的不可 致軟體產品品質报難完美保證。對於項二完全性'導 不太高的項目而t,手工方彳^項目心小的或者對品質要求 著產峨的不斷龐雜 :求導致,考慮採用新_試方 [007]軟體產品的複雜性,導 門剛開始測試時’大量的錯誤及送交品質部 程師、測试工程師、開發主管、需要開發工 費大量的人力,物力等。狀主s、項目經理去處理,浪 _卜般而言,在產品送測初期產生的峋佔到她 左右’因此如何快速的、自動化的提早發娜里, 提高產品品質、縮短開發測試週期以及提高客戶滿意 疋 _]要檢驗開發的軟體是否有bug,可以採 列 試策略。但是,不論採用哪—種測試策略,設計 ^ 試階段最__。測試以前都需要從程序定義域中選 性的測試數據,這也是測試成功與否的關鍵。 域 【發明内容】 6 法[010]本發明係—種基於程式運行域分析的測試數據生成方 A其主要提出了一種基於程式功能域與運行域的測試數據自動 定方其透過分析每一個應用根源程式的變量類型,完成對應 2裎式功能域的取得’透過對應用程式本身運行語句進行分析广 ^獲取其私域,通過此法獲取有代紐㈣試S據去執行測 試’來發現程式中的問題點。 '卜_]根據本發明之一實施例之一種基於程式運行域之軟體 '、試方法首先取得—源程序之功能域,接著對源程序進行分析, 乂自源知序巾取得與—變量有_語句,以形成—等價源程序; 再根據等舰料,脉得等價料的運行域;最後比較源程序 之的功能域與等價程序之的運行域是否重和合。 ,[012]以上之關於本發明内容之說明及以下之實施方式之說 明係用財範與轉本發明之精神與顧,並且提供本發明之專 利申請範圍更進一步之解釋。 【貫施方式】 [013]以下在實施方式中詳細敘述本發明之詳細特徵以及優 ^ ’其内容足以使任何熟習相馳藝者了解本發明之技術内容並 據以貫施,且根縣說财所揭露之内容、申請專利範圍及圖式, 任何熟習相關技藝者可輕紐理解本發明蝴之目的及優點。 _]在開始說明本發明之前,先對本發明所使用 簡介盥報昍。 1322351 範圍,在源程序(source c〇de)中也會對每個相關參數聲明其具 m 1稱之為功能域。各個程式執行時都有其運行的覆蓋 -範圍,可稱之為運行域。 麗 - _】基於規範的功能測試和基於程式的結構測試是兩類常 用的叙體測式方法。功能測試根據規格說明書設計測試範例,檢 查备式的母—魏衫按照規範的要求正確地執行。它以軟體規 範為依據選取測試資料,其正確性依賴於規翻正確性。透過功 # 能域與程式運行域的不同範圍,可選擇有代表性的測試數據以對 程式進行帛m ’从量節省麵靡據的時間。 與[〇二]規格書疋對軟體輸入、輪出的定義,而軟體程式則說明 二現規乾的料法和數據結構。賴軟體規範規定了輸人變量的 輸入域)’但程式實現本身也定義了其定義域。系統在需求 认疋由功能域來定義的,而在開發和運作中是由運行域來描述 的。軟體規範給定的功能是定義在輸入空間的一個所謂功能域 了輸入空間的—個運行域。如果功能域 山、十不能完全重合,那麼軟體的故障或錯誤(bug)就可檢測 _]接著請參考『第i圖』,其繪示本發明所揭露之基於程 式運订域之軟體測財法之主要流程圖。 !>逸首先取得源辦P的功能域(步驟1GG),接著對源程序 2〇〇厂:析’留下與某一變量有關的語句,形成等價程序P,(步驟 ,其主要是基於輸人變量减生雜程序湖除與輸入變量 、f的吾句及函數。接著,根據等價程序p,,以取得等價程序p. 8 1322351 的運行域(步驟300)。 [020]最後比較源程序p的功能域與等價程序p,的運 驟4〇〇)疋否重合,以得到比較結果。如果功能域與運行域不铲 完全重合’那麼軟體的故障或錯誤(bug)就可檢測出來。匕 _續請參考『第2圖』,係繪示『第1圖』中取得源程序 P的功能朗流糊。 [022]首先逐行讀人源程序p之語句(步驟而),接著括取 源程序!>之函數,首先判斷讀入之語句是否為函數(步驟搬貝), 若不是函數,則繼續讀人源程序p (步驟繼)。如果是所读入之 源程序P為函數,則建立函數參數表(步驟貝 用表(步驟1〇4)、繼(步義)、與複合語句表(步驟= 步驟102至而步驟107係用以取职原程序p中之 至步驟106主要建立數據流分析所需的源程序的I觀錄竭103 [〇2繼顺懈撕㈣啊_ 束’則_建立複合語句表(步驟1〇6) 源程序!>是否讀取結束(步驟⑽),若^已',束,則判斷 #去6士击 右靖取結束,則結束(步驟 108) ’右未、..束’則回到步驟1G卜繼續讀人源程序卜 [024]續請參考『第3圖』,鱗示『第 P,的流程圖。 丁私伃/原紅斤 _首先,將掃时驟⑽所建立的變量表(步驟 以取得-個·(步驟111)β接著讀人源料行 驟112),並判斷所讀入之語句是與步驟! 旦二(乂 驟113),若無關,則繼續讀入源 卜欠里有關(步 的料,若«,則記錄 1322351 至源程序p,中。 [026] 接著判斷源程序P是否讀取結束(步驟ιΐ5),若未結 --束,則回到步驟m,繼續讀入源程序p。若讀取結束,則=斷= 量表中的變量是否讀取完畢(步驟116)。若讀取完畢,則結束, 若未讀取完畢,則繼續取得下-個變量後重複上述的步驟L至 步驟115。 [027] 如果函數中有一些表達式及其他—些數學函數,則應該 • 依據輸入空間的範圍進行選擇劃分。 〜 [〇28]一般而言,輸入空間可以劃分為四部份,即:υ E2UE3UE4,其中: [029] El={x |xGDfflDp} [030] E2={x |x^-] DfflDp} [031] Ε3={χ |xeDfri~j Dp} [032] E4={x |χ^Ί ϋίΠη Dp} 癱 [〇33]Df表不輸入變置的功能域’ Dp表示運行域。 [034] E1表示規範與程序有相同的輸入子域,但實現與說明 是否一致,還需進一步測試。 [035] E2表明程序產生了一個結果,但規範並沒有要求。對 於這種情況,可補充規範或者縮小其程序的運行域。 [036] E3表明規範的某些要求,程序沒有處裡。 [037] E4關於例外處理,即規範既未要求,程序也無從處理 對於規範未指明的輸入,程序可能產生不可預料的結果。因此, 在可靠的軟體程式中,例外處理為必要之程序。 [038]根據以上之說明書,源程序p以文件形式讀入,再建立 關於源程序P的各種變量紀錄,並依據紀錄提供的信息,從源程 序p中抽取出與輸入變量相關的部份,形成基於輸入變量的靜態 等價程序P',然後確定輪入變量的運行域。 卿]下面將對本發明進行舉例説明,首先給出源程序p,由 函數mam() ’ xP〇lnt(),f(),p〇wer〇组成,其輸人變量為χ, [040]給定一源程序ρ如下:
intpower(intX,inti) { intp; for(p=l; i>〇; -i) P = P*x; retum(p); } float f(float x) {
float y; y = ((x-0.5)*x+16.0)*x. 8〇 〇; retum(y); } float xpoint(float xl) { float y; y=xl *f(xl)/(f(xl+l.〇). f(3 453)y retam(y); 11 1322351
void main() int k; float x 5 y; printf("/n-----Print the value of function power-----/n”); for(k=0 ;k< 10 ;k++) printf(”%d%d°/〇d \n” ’ k,power(2,k),power(-3,k)); printf("/n-----Print the value of function xpoint-----/n");
Scan("%f' 5 &x}; while(x>0) y=xpoint(x); printf(n%f%r,x,y); scanf("%f' » &x); ,i041]基於輸人變量對上述M料P分析,以得到一 序,如下: 等價程 float f(float x) float y; y=((x-0.5)*x+16.0)*x、8〇 〇 retum(y); float xpoint(float xl) 1322351 float y; y=xl * f(xl) / (f(xl+1.0)-f(3.453)); retum(y); } void main() {
float x } y; scan("%f' > &x); while(x>0) y=xpoint(x); printf(,,%f%f',x,y). Scanf(”%r,&x);
_根據本發明,首絲得紀棘式中⑽ 量,此程式變量列表中只有變量1、^、卜 — _接著針賴量x触式分析,得程序p,,等價ι 中去掉了與輸人變1 χ無關的變量。^及其相關語句與函』 POWERf 1>中變ι與函數都與輸人變量X有關,並且與 HUt’ p肖p的運行域—致。但是,卩’只分析 入變量有關_份’有利於程式運行域的確定。 、 [4]接著分析F以確定運行域^對函數進行分析,例如, 二進行刀析’其變量為χΐ,類型為_,触型變量,其】 此域疋義為…咖挪8,MG期π%]同時函數中,其表$ 13 式中分母不能為ο,則可得xl内容不能▼於2453,如此綜〜 考其功能域及運行域範圍,可得其可執行〜 ,…,Η,0],[〇,η,2453),(2 3.4〇2823糊,測試其結果是否有誤。選擇如上一些特殊 結果’如此可不需每個變量值均去執行—遍,從而節約大 _]本發明係-種基於程_亍域分析的測試數據生成方 ^。其主要提出了—種基於程式功能域與運行__數據自動 確定方,其通過分析每-個__程柄變量麵,完 用程式魏域賴取’透爾_科切斯語句進行/ ^獲,其運贼’通過此域取錢紐的麟輯去 式’來發現程式中的問題點。 丁測 _賴本發明赠述之實施例縣如上,然其並 =發明。在不雌本發明之精神和範圍内,所為之更動盘限 句屬本發明之專利保護範圍1於 、飾’ 考所附之申料利翻。 ㈣界d㈣圍請參 【圖式簡單說明】 法之主為本發明所揭露之基於程式運行域之軟體測試方 H,係為第1圖中取得源程序Ρ的功能域的流程圖。 ^圖,係為第^中取得源程序Ρ,的流程圖。 L主要元件符號說明】

Claims (1)

1322351 十、申請專利範圍: 1. 一種基於程式運行域之軟體測試方法,包括有: ' 取得一源程序之功能域; 對該源程序進行分析,以自該振程序中取得與一變量有關 的語句’以形成一等價源程序; 根據該等價源程序,以取得等價程序的運行域;以及 比較該源程序之的該功能域與該等價程序之的運行威是 φ 否重和合。 2. 如申請專利範圍第1項所述之方法,其中更包括-取得該源程 序之函數步驟。 3·如申請專利範圍第2項所述之方法,其中該取得該源程序之系 數之步驟包括有: 逐行項入該源程序之逢句,以及 上若該讀入之語句為-函數’則根據該函數建立一函數參數 雛表、一函數調用表、一變量表以及一複合語句表。 4.如申請專利範圍第3述之方法’其中若該讀入之語句不為一系 數’則繼績讀入該源程序之語句之步驟。 5·如申請專利範圍第3項所述之方法,其中更包括有判斷該函數 是否結束之步驟。 6. 如申請專利範圍第!項所述之方法,其中更包括有判斷該_ 序之讀入是否結束之步驟。 7. 如申請專利範圍第3項所述之方法,其中該取得等價程序的運 行域之步驟包括: 〜 自該變量表中取得一變量; 讀入該源程序之一語句;以及 右該語句與該棚,則將該語句記錄至該賴源程序 中。 如申凊專利範圍第7項所述之方法,其中更包括有判斷該函數 是否結束之步驟。 如申請專利範圍第7項所述之方法’其中更包括有判斷該變旦 表是否讀取完畢之步驊。
TW95148661A 2006-12-22 2006-12-22 Software test method for program running domain TW200828011A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW95148661A TW200828011A (en) 2006-12-22 2006-12-22 Software test method for program running domain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW95148661A TW200828011A (en) 2006-12-22 2006-12-22 Software test method for program running domain

Publications (2)

Publication Number Publication Date
TW200828011A TW200828011A (en) 2008-07-01
TWI322351B true TWI322351B (zh) 2010-03-21

Family

ID=44817498

Family Applications (1)

Application Number Title Priority Date Filing Date
TW95148661A TW200828011A (en) 2006-12-22 2006-12-22 Software test method for program running domain

Country Status (1)

Country Link
TW (1) TW200828011A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI571737B (zh) * 2015-11-18 2017-02-21 財團法人資訊工業策進會 軟體測試系統、方法及其非暫態電腦可讀取紀錄媒體
TWI761917B (zh) * 2020-08-19 2022-04-21 鴻海精密工業股份有限公司 程式調試方法、裝置及可讀存儲介質

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI571737B (zh) * 2015-11-18 2017-02-21 財團法人資訊工業策進會 軟體測試系統、方法及其非暫態電腦可讀取紀錄媒體
TWI761917B (zh) * 2020-08-19 2022-04-21 鴻海精密工業股份有限公司 程式調試方法、裝置及可讀存儲介質

Also Published As

Publication number Publication date
TW200828011A (en) 2008-07-01

Similar Documents

Publication Publication Date Title
Porru et al. Blockchain-oriented software engineering: challenges and new directions
Lahiri et al. Nowcasting US GDP: The role of ISM business surveys
US8375364B2 (en) Size and effort estimation in testing applications
CA2391125C (en) Method for computer-assisted testing of software application components
Lenhard et al. Measuring the portability of executable service-oriented processes
Sun et al. Specification-driven automated testing of GUI-based Java programs
TW201017459A (en) Method and apparatus for debugging an electronic system design (ESD) prototype
Akca et al. Run-time measurement of COSMIC functional size for Java business applications: Is it worth the cost?
CN105677570A (zh) 一种基于事件响应函数树的gui软件测试用例生成方法
Barraood et al. Test case quality factors
Sung et al. A quality model for open source software selection
TWI322351B (zh)
Beck et al. Method execution reports: generating text and visualization to describe program behavior
Pavlov et al. Semi-automatic search-based test generation
Villalobos-Arias et al. Evaluation of a model‐based testing platform for Java applications
Joshi et al. Analyses of software testing approaches
Amyot et al. Generation of test purposes from Use Case Maps
Shivade et al. Usability analyzer tool: A usability evaluation tool for android based mobile application
Ismail et al. Quality excellence model: A review of researches in Developing countries
Weber et al. Detecting inconsistencies in multi-view uml models
Vieira et al. Metrics to measure the change impact in ATL model transformations
CN107301121A (zh) 一种编译器自动验证方法及装置
CN118152295B (zh) 一种bs架构产品测试系统
Emmert Method for improving design testability through modeling
CN111414194A (zh) 一种接口信息生成方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees