TWI322351B - - Google Patents
Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 24
- 150000001875 compounds Chemical class 0.000 claims description 3
- 238000012360 testing method Methods 0.000 description 45
- 238000004458 analytical method Methods 0.000 description 8
- 239000000463 material Substances 0.000 description 5
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 241001674044 Blattodea Species 0.000 description 1
- 101100126165 Escherichia coli (strain K12) intA gene Proteins 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011981 development test Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000011990 functional testing Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012029 structural testing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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項所述之方法’其中更包括有判斷該變旦 表是否讀取完畢之步驊。
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)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI571737B (zh) * | 2015-11-18 | 2017-02-21 | 財團法人資訊工業策進會 | 軟體測試系統、方法及其非暫態電腦可讀取紀錄媒體 |
| TWI761917B (zh) * | 2020-08-19 | 2022-04-21 | 鴻海精密工業股份有限公司 | 程式調試方法、裝置及可讀存儲介質 |
-
2006
- 2006-12-22 TW TW95148661A patent/TW200828011A/zh not_active IP Right Cessation
Cited By (2)
| 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 |