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格式閱讀原文”

主站蜘蛛池模板: 亚洲日韩精品欧美中文字幕| 亚洲无码视频喷水| 精品久久国产综合精麻豆| 四虎亚洲精品| 91精品国产丝袜| 亚洲精品第一页不卡| 2021国产乱人伦在线播放| 久久久黄色片| 深爱婷婷激情网| 88国产经典欧美一区二区三区| 国产精品一老牛影视频| 久久精品嫩草研究院| 亚洲成AV人手机在线观看网站| 免费三A级毛片视频| 国产va视频| 国产亚洲男人的天堂在线观看| 99热最新在线| 宅男噜噜噜66国产在线观看| 欧美成人免费一区在线播放| 国产无码在线调教| 9啪在线视频| 日日拍夜夜操| 免费不卡视频| 久久免费视频播放| 漂亮人妻被中出中文字幕久久| 亚洲人成日本在线观看| 国产性爱网站| 亚洲最大福利视频网| 欧美 国产 人人视频| 欧美色丁香| m男亚洲一区中文字幕| 欧美激情网址| 久久久久久尹人网香蕉 | 国产一区二区精品高清在线观看| 欧美日韩亚洲国产| 亚洲综合第一页| 国产亚洲精久久久久久久91| 欧美亚洲国产视频| 亚洲中文字幕在线精品一区| 中文字幕乱码中文乱码51精品| 57pao国产成视频免费播放| 欧美视频在线第一页| 久草性视频| 亚洲乱码在线播放| 黄色网址免费在线| 亚洲黄色成人| 91成人免费观看在线观看| 欧美不卡视频在线观看| 女人18一级毛片免费观看| 中文字幕亚洲综久久2021| 爆乳熟妇一区二区三区| 欧美不卡视频在线| 国产精品天干天干在线观看| 久久国产乱子伦视频无卡顿| 欧美高清国产| 久久人妻系列无码一区| 91在线精品麻豆欧美在线| 亚洲美女操| 日韩毛片在线播放| 亚洲精品国产精品乱码不卞| 国产极品粉嫩小泬免费看| 国产精鲁鲁网在线视频| 99国产精品国产高清一区二区| 国产老女人精品免费视频| 高潮爽到爆的喷水女主播视频 | 日韩一区二区在线电影| 呦系列视频一区二区三区| 日韩毛片免费观看| 亚洲国产理论片在线播放| 国产乱子伦视频三区| 久久久精品无码一二三区| 看国产一级毛片| 波多野结衣一区二区三区四区视频 | 国产麻豆福利av在线播放 | 免费观看无遮挡www的小视频| 免费人成视频在线观看网站| 中文无码精品A∨在线观看不卡| 二级特黄绝大片免费视频大片| 国产91精品调教在线播放| 伊人网址在线| 亚洲黄网在线| 欧美日韩成人|