999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

調(diào)用模式和正確調(diào)用模式語義在Prolog程序測(cè)試中的應(yīng)用

2008-01-01 00:00:00趙嶺忠錢俊彥

摘要:將基于調(diào)用模式語義和正確調(diào)用模式語義的程序分析技術(shù)應(yīng)用于Prolog程序的CPM測(cè)試。通過調(diào)用模式分析獲得內(nèi)部過程被調(diào)用和成功調(diào)用的條件,利用前者刪除不滿足調(diào)用條件的測(cè)試幀,或當(dāng)刪除條件不滿足時(shí)利用該條件更新測(cè)試規(guī)格中過程屬性的劃分準(zhǔn)則; 利用后者預(yù)測(cè)CPM測(cè)試的結(jié)果。該方法可較好地保持程序測(cè)試的質(zhì)量,改善Prolog程序的CPM測(cè)試過程。

關(guān)鍵詞:Prolog; 調(diào)用模式語義; 正確調(diào)用模式語義; 主屬性區(qū)分方法測(cè)試

中圖分類號(hào):TP311.1文獻(xiàn)標(biāo)志碼:A

文章編號(hào):1001-3695(2008)04-1008-05

0引言

Prolog是一種邏輯程序設(shè)計(jì)語言,可視為多種基于約束和基于邏輯的聲明式程序設(shè)計(jì)語言的基礎(chǔ)。Prolog是人工智能程序設(shè)計(jì)的主要語言工具之一,可方便地用于系統(tǒng)知識(shí)的表示和推理。給定目標(biāo)G,Prolog程序的執(zhí)行過程就是按照Prolog控制規(guī)則對(duì)G的推理過程。Prolog采用了最左文字優(yōu)先的文字選擇規(guī)則和按照子句在程序中的順序選擇匹配子句的子句選擇規(guī)則。按照該規(guī)則對(duì)目標(biāo)的推理被稱為目標(biāo)的SLD-推理。目標(biāo)G的調(diào)用模式是在G的SLD-推理過程中每一步所選擇的原子子目標(biāo); 正確調(diào)用模式是屬于成功SLD-推理路徑的調(diào)用模式[1]。調(diào)用模式信息通常被用于Prolog程序的優(yōu)化[2]。本文將該信息用于改善Prolog程序的CPM測(cè)試[3,4]。

傳統(tǒng)CPM測(cè)試對(duì)生成測(cè)試用例數(shù)目的控制依賴于待測(cè)試程序的功能規(guī)格。本文工作表明: 在已知待測(cè)試程序源代碼的情況下,可在生成CPM測(cè)試幀的基礎(chǔ)上采用基于實(shí)現(xiàn)的方法進(jìn)一步減少測(cè)試幀的數(shù)目,更新測(cè)試規(guī)格中過程屬性的劃分準(zhǔn)則,從而簡(jiǎn)化測(cè)試用例生成并較好地保持程序測(cè)試的質(zhì)量。此外,由于正確調(diào)用模式信息給出了調(diào)用模式成功的條件,可利用該信息對(duì)測(cè)試結(jié)果進(jìn)行預(yù)測(cè)。

假設(shè)需要測(cè)試程序P:{main(x,y):-x=5,sub(x,y).sub(x,y):-…}。其中sub是一個(gè)內(nèi)部過程。所謂內(nèi)部過程是指Prolog程序中那些不為用戶直接使用,而由程序設(shè)計(jì)人員用于構(gòu)造其他過程的過程。由于sub每次被調(diào)用時(shí)其第一個(gè)輸入?yún)?shù)x均被賦值為5,只需輸入與該性質(zhì)相一致的測(cè)試數(shù)據(jù),而不是在所有可能的數(shù)據(jù)上測(cè)試sub過程,即可要求輸入數(shù)據(jù)中對(duì)x的賦值不包含任何變量或更具體的x=5。以上處理過程所需的信息可從過程main的調(diào)用模式分析中獲取。該分析將表明sub(5,y)是在目標(biāo)main(x,y)的執(zhí)行過程中有關(guān)sub的惟一調(diào)用模式。

目前,已經(jīng)提出了多種方法用于改善Prolog程序的測(cè)試。比如Prolog測(cè)試系統(tǒng)PROTest Ⅱ?yàn)槊恳粋€(gè)待測(cè)試的程序增加過程參數(shù)類型和應(yīng)用模式信息,利用這些信息可以有效地實(shí)現(xiàn)程序的類型錯(cuò)誤分析和測(cè)試用例生成[5]。算法調(diào)試和功能測(cè)試系統(tǒng)IDTS利用程序調(diào)試的結(jié)果更新程序測(cè)試規(guī)格,不但提高了程序調(diào)試的效率,也改善了Prolog程序的測(cè)試[6]。在CPM測(cè)試方法的研究方面,文獻(xiàn)[7]建立了一種子屬性關(guān)系框架用于CPM測(cè)試中測(cè)試用例的生成;文獻(xiàn)[8]給出了一種基于Z語言規(guī)格的CPM測(cè)試幀生成方法。與以上方法不同的是,本文將利用Prolog程序調(diào)用模式分析的結(jié)果改善程序的CPM測(cè)試過程,關(guān)于該方法的文獻(xiàn)未見報(bào)道。本文假定讀者熟悉Prolog語言的基本語法和語義。

1基礎(chǔ)知識(shí)

1.1CPM測(cè)試

CPM是一種通用的程序功能測(cè)試方法,最早由Ostrand和Balker提出[3],Horváth 等人給出了該方法的一種形式化描述。CPM測(cè)試的基本思想如下:任意程序(或過程)的功能測(cè)試均不能覆蓋程序(或過程)參數(shù)的所有屬性,因而測(cè)試人員的首要任務(wù)是確定測(cè)試所關(guān)心的輸入?yún)?shù)的主屬性(categories)。每一個(gè)主屬性按照一定的劃分準(zhǔn)則被劃分為若干子屬性(choices),并要求這些子屬性所覆蓋的輸入數(shù)據(jù)集互不相交,且同一數(shù)據(jù)集中的任意兩個(gè)數(shù)據(jù)對(duì)測(cè)試目的而言是等價(jià)的。一旦確定了程序的主屬性及子屬性,測(cè)試程序?qū)⒆詣?dòng)產(chǎn)生所有可能的測(cè)試幀(test frames)。測(cè)試幀是子屬性的組合,每個(gè)測(cè)試幀包含且僅包含每個(gè)主屬性的一個(gè)子屬性。顯然過程p所有測(cè)試幀的集合也構(gòu)成了p輸入域上的一個(gè)等價(jià)關(guān)系,每個(gè)測(cè)試幀f均表示一個(gè)等價(jià)類,其對(duì)應(yīng)的p的輸入數(shù)據(jù)集表示為input(p, f)。一般情況下,在生成的測(cè)試幀中將包含大量的無用幀,即這些幀中的屬性組合是不可能或沒有實(shí)際意義的。無用幀可通過與子屬性相關(guān)聯(lián)的選擇表達(dá)式刪除。每個(gè)測(cè)試幀產(chǎn)生一個(gè)滿足該子屬性組合的測(cè)試用例。在這些測(cè)試用例的基礎(chǔ)上可生成測(cè)試腳本,運(yùn)行程序(或過程)進(jìn)行測(cè)試。

5結(jié)束語

本文給出了一種利用程序分析技術(shù)輔助Prolog程序CPM測(cè)試的方法。該方法利用調(diào)用模式信息減少內(nèi)部過程CPM測(cè)試中生成測(cè)試用例的數(shù)目,對(duì)過程子屬性進(jìn)行細(xì)分,預(yù)測(cè)測(cè)試結(jié)果,同時(shí)又較好地保持了程序測(cè)試的質(zhì)量。方法所需信息可通過基于調(diào)用模式語義的Prolog程序分析獲得。為此,可利用現(xiàn)有的Prolog程序分析技術(shù),如用于描述程序性質(zhì)的性質(zhì)描述語言[13~15]和調(diào)用模式分析技術(shù)[9]等。本文以文獻(xiàn)[9,12]中給出的調(diào)用模式語義和正確調(diào)用模式語義為例說明了該方法的有效性;此外,將調(diào)用模式信息用于CPM測(cè)試也擴(kuò)展了Prolog調(diào)用模式信息的應(yīng)用領(lǐng)域。

參考文獻(xiàn):

[1]GABBRIELLI M, LEVI G, MEO M C. Observable behaviors and equivalences of logic programs[J]. Information and Computation, 1995,122(1):1-29.

[2]GABBRIELLI M, GIACOBAZZI R. Goal independency and call patterns in the analysis of logic programs[C]//Proc of the 9th ACM Symposium on Applied Computing. New York: ACM Press, 1994:394-399.

[3]OSTRAND T J, BALKER M J. The category-partition method for specifying and generating functional tests[J]. Communications of ACM, 1988,31(6):676-686.

[4]BALCER M J, HASLING W M, OSTRAND T J. Automatic generation of test script from formal test specifications[C]//Proc of the 3rd ACM Annual Symposium on Software Testing, Analysis, and Verification. New York: ACM Press, 1989:210-218.

[5]BELLI F, JACK O. PROTest Ⅱ, testing logic programs[R].[S.l]: ADT, 1992.

[6]ALEXIN Z, GYIMTHY T, KKAI G. IDTS: integrated system for debugging and testing Prolog programs[EB/OL].(1997).http://www.inf.u-szeged.hu/~kokai/ idt.html.

[7]CHEN T Y, POON P L, TSE T H. A choice relation framework for supporting category-partition test case generation[J]. IEEE Trans on Software Engineering, 2003,29(7):577-593.

[8]AMMANN P, OFFUTT A J. Using formal methods to derive test frames in category partition testing[C]//Proc of the 9th Annual Conference on Computer Assurance. Gaithersburg, MD: IEEE Computer Society Press, 1994:69-80.

[9]SPOTO F, LEVI G. Abstract interpretation of Prolog programs[C]//Proc of the 7th International Conference on Algebraic Methodology and Software Technology, LNCS 1548. New York: Springer-Verlag, 1999:455-470.

[10]COUSOT P, COUSOT R. Abstract interpretation and applications to logic programs[J]. Journal of Logic Programming, 1992,13(2-3):103-179.

[11]ZHAO Ling-zhong, GU Tian-long, QIAN Jun-yan, et al. Designing Prolog semantics for a class of observables[C]//Proc of the 9th Paci-fic Rim International Conference on Artificial Intelligence, LNAI 4099. Berlin: Springer-Verlag, 2006:1052-1057.

[12]ZHAO Ling-zhong, GU Tian-long, QIAN Jun-yan, et al. A constraint-based correct call pattern semantics for prolog as an abstraction of decorated tree semantics[C]//Proc of the 18th International Conference on Software Engineering Knowledge Engineering. San Francisco, California: Knowledge System Institute, 2006:359-362.

[13]HOWE M, KING A. Efficient groundness analysis in Prolog[J]. Theory and Practice of Logic Programming, 2003,3(1):95-124.

[14]CHARLIER L, ROSSI S, HENTENRYCK van P. Sequence-based abstract interpretation of Prolog[J]. Theory and Practice of Logic Programming, 2002,2(1):25-84.

[15]VOLPE P. A first-order language for expressing sharing and type properties of logic programs[J]. Science of Computer Programming, 2001,39(1):125-148.

“本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文”

主站蜘蛛池模板: av在线5g无码天天| 久久天天躁狠狠躁夜夜2020一| 欧美亚洲国产一区| 国产精品尤物铁牛tv| 99re在线免费视频| 亚洲精品无码高潮喷水A| 在线观看热码亚洲av每日更新| 国产精品久线在线观看| 亚洲精品制服丝袜二区| 欧美一区中文字幕| 欧美日韩午夜| 国产99精品久久| 午夜少妇精品视频小电影| 宅男噜噜噜66国产在线观看| 久久公开视频| 欧美在线导航| 青青操视频免费观看| 日韩毛片基地| 亚洲国产第一区二区香蕉| 婷婷色中文网| 欧美区国产区| 国产欧美精品一区二区| 91亚洲视频下载| 青青青国产精品国产精品美女| 免费人成在线观看视频色| 国产成人精品免费视频大全五级| 美女裸体18禁网站| 欧美日韩亚洲综合在线观看| 亚洲an第二区国产精品| 怡红院美国分院一区二区| 精品综合久久久久久97| 国产精品伦视频观看免费| 成人无码区免费视频网站蜜臀| 色婷婷色丁香| h网址在线观看| 性欧美精品xxxx| 日韩欧美国产中文| 99热这里只有精品5| 国产日韩精品欧美一区灰| 亚洲国产成人综合精品2020| 一本无码在线观看| 激情网址在线观看| 亚洲综合18p| 日本高清有码人妻| 婷婷色狠狠干| 亚洲天堂网在线观看视频| 一级成人a毛片免费播放| 亚洲视频色图| 播五月综合| 国产精品19p| 亚洲综合第一页| 日本午夜影院| 成人免费网站在线观看| 亚洲aⅴ天堂| 九九久久精品免费观看| 免费jjzz在在线播放国产| 欧美日韩国产成人高清视频| 日本少妇又色又爽又高潮| 亚洲欧洲自拍拍偷午夜色无码| 无码 在线 在线| jizz亚洲高清在线观看| 精品中文字幕一区在线| 国产一区二区三区免费观看| 日韩色图区| 亚洲精品片911| 亚洲毛片网站| 大学生久久香蕉国产线观看| 永久免费AⅤ无码网站在线观看| 2022国产无码在线| 国产视频 第一页| 欧美综合在线观看| 国产真实乱人视频| 亚洲欧美色中文字幕| 在线一级毛片| 国产免费福利网站| 亚洲区一区| 动漫精品中文字幕无码| 国产欧美日韩在线一区| 99激情网| 最新国语自产精品视频在| 国产精品免费入口视频| AV在线麻免费观看网站 |