一種基于合約的構(gòu)件易測(cè)試性設(shè)計(jì)方式論文
認(rèn)識(shí)到應(yīng)該把質(zhì)量做到軟件產(chǎn)品中或至少預(yù)防軟件“產(chǎn)品質(zhì)量問(wèn)題。因此,軟件測(cè)試呈現(xiàn)向軟件開(kāi)發(fā)的前軟件復(fù)用是提高軟件產(chǎn)品質(zhì)量與生產(chǎn)效率的關(guān)期發(fā)展、與軟件開(kāi)發(fā)的設(shè)計(jì)和編程階段相融合的趨鍵技術(shù)。軟件構(gòu)件概念的提出為軟件復(fù)用提供了技勢(shì),軟件的易測(cè)試性設(shè)計(jì)正在成為新的研究熱點(diǎn)。構(gòu)術(shù)基礎(chǔ)。構(gòu)件的高質(zhì)量是構(gòu)件能被成功復(fù)用的前提。件測(cè)試一個(gè)重要的發(fā)展方向是基于合約的構(gòu)件易測(cè)構(gòu)件測(cè)試是保證構(gòu)件質(zhì)量的重要手段之一。構(gòu)件的試性設(shè)計(jì)。開(kāi)發(fā)者和復(fù)用者必須對(duì)構(gòu)件進(jìn)行充分的測(cè)試,以確本文提出一種基于合約的構(gòu)件易測(cè)試性設(shè)計(jì)方保它在新的環(huán)境中正常工作。
例如1996年Ariane5法,在構(gòu)件的設(shè)計(jì)和編碼階段由設(shè)計(jì)人員和編程人運(yùn)載火箭的飛行失敗表明,復(fù)用的構(gòu)件在新的環(huán)境員在構(gòu)件的接口和內(nèi)部根據(jù)構(gòu)件的規(guī)約增加構(gòu)件的中未經(jīng)過(guò)充分測(cè)試會(huì)引起災(zāi)難性的后果。合約,然后由工具自動(dòng)檢查合約語(yǔ)法、語(yǔ)義的正確與傳統(tǒng)的軟件測(cè)試相比,構(gòu)件測(cè)試有其自身的性,插裝合約檢查代碼,以便在軟件運(yùn)行時(shí)自動(dòng)對(duì)固有特點(diǎn):⑴不能?對(duì)構(gòu)件的執(zhí)行環(huán)境和用戶的使用合約進(jìn)行檢查,當(dāng)發(fā)生合約違反時(shí)自動(dòng)拋出異常。模式進(jìn)行完全準(zhǔn)確的預(yù)測(cè),故構(gòu)件開(kāi)發(fā)者不能完全、本文還開(kāi)發(fā)相應(yīng)的支持工具,并且進(jìn)行實(shí)驗(yàn)。徹底地對(duì)構(gòu)件進(jìn)行測(cè)試,并且很難確定何時(shí)結(jié)束測(cè)_試;(2)構(gòu)件復(fù)用者和第二方測(cè)試人員通常無(wú)法翻構(gòu)件的源代碼及詳細(xì)的設(shè)計(jì)知識(shí),故通常只能對(duì)構(gòu)軟件的易測(cè)試性是一個(gè)系統(tǒng)或構(gòu)件有利于建立件進(jìn)行黑盒測(cè)試,即調(diào)用構(gòu)件的方法后只能通過(guò)觀測(cè)試準(zhǔn)則和執(zhí)行測(cè)試以便確定該測(cè)試準(zhǔn)則是否被滿察執(zhí)行的結(jié)果判斷構(gòu)件的行為是否正確,無(wú)法檢查足的難易程度Pl。
直觀上我們也可以將軟件的易測(cè)試執(zhí)行過(guò)程中的構(gòu)件的內(nèi)部狀態(tài),使得構(gòu)件執(zhí)行過(guò)程性理解為對(duì)軟件進(jìn)行測(cè)試以保證其無(wú)缺陷和滿足其中的一些故障被隱藏。這些困難對(duì)構(gòu)件測(cè)試提出了規(guī)約的難易程度。軟件的易測(cè)試性包括可控制性、可嚴(yán)峻的挑戰(zhàn)。傳統(tǒng)的軟件測(cè)試技術(shù)不能完全適用于觀察性、可操作性、可分解性、簡(jiǎn)單性、穩(wěn)定性等幾個(gè)構(gòu)件測(cè)試。方面,其中可控制性是通過(guò)軟件的輸入來(lái)控制它的長(zhǎng)期以來(lái),雖然人們將軟件測(cè)試作為一種重要輸出,而可觀察性是通過(guò)輸出能更好地分析測(cè)試的的軟件質(zhì)量保證手段,但是通常都是在軟件開(kāi)發(fā)的結(jié)果。
后期,即編碼階段結(jié)束之后才開(kāi)始對(duì)軟件進(jìn)行測(cè)試。軟件的易測(cè)試性是衡量軟件質(zhì)量的一項(xiàng)重要指此時(shí)已為時(shí)太晚,軟件已經(jīng)開(kāi)發(fā)成型。近年來(lái),人們標(biāo)。對(duì)軟件的易測(cè)試性的研究可以分為軟件的易測(cè)試性分析和易測(cè)試性設(shè)計(jì)兩個(gè)方面。常,便于就近定位故障。軟件的易測(cè)試性分析研究如何對(duì)軟件的易測(cè)試DBC方法不僅能夠讓用戶按一定的格式書(shū)寫(xiě)合性進(jìn)行度量,其目的為:(1)為軟件的.易測(cè)試性度約,而且提供相應(yīng)的機(jī)制自動(dòng)對(duì)合約進(jìn)行處理和檢量提供有效手段;(2)為軟件的測(cè)試提供指導(dǎo);查,并且當(dāng)程序在運(yùn)行過(guò)程中違反合約時(shí)及時(shí)給出(3)為軟件的易測(cè)試性設(shè)計(jì),進(jìn)而為軟件的設(shè)計(jì)提出錯(cuò)信息。軟件的內(nèi)建式測(cè)試方法是在程序中添加供幫助。額外的測(cè)試機(jī)制,使軟件能夠工作在測(cè)試模式下。軟軟件易測(cè)試性設(shè)計(jì)即是在軟件的設(shè)計(jì)和編碼件的內(nèi)建式自測(cè)試方法就是在此基礎(chǔ)上再增加測(cè)試中考慮測(cè)試問(wèn)題,它借鑒了硬件易測(cè)試性設(shè)計(jì)的用例生成機(jī)制。思想。軟件易測(cè)試性設(shè)計(jì)的目的是在不增加或者
2.軟件合約的定義方法少增加軟件復(fù)雜性的基礎(chǔ)上,將易于測(cè)試的原則現(xiàn)在主要有二種定義軟件合約的方法,第一種融合到設(shè)計(jì)和編碼之中。軟件易測(cè)試性設(shè)計(jì)符合方法利用面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言的繼承機(jī)制專門設(shè)軟件測(cè)試的一個(gè)原則:盡早開(kāi)始軟件測(cè)試工作,計(jì)一個(gè)負(fù)責(zé)測(cè)試的超類、第二種方法在程序代碼不斷進(jìn)行軟件測(cè)試工作。軟件易測(cè)試性設(shè)計(jì)體現(xiàn)的注釋中嵌入合約,并且使用預(yù)處理器在編譯之前軟件測(cè)試的如下觀點(diǎn):軟件產(chǎn)品的質(zhì)量是生產(chǎn)對(duì)程序進(jìn)行插裝;第〒種方法設(shè)計(jì)一種獨(dú)立的語(yǔ)言(包括分析、設(shè)計(jì)、編碼、測(cè)試)出來(lái)的,而不是框架,它所描述的合約與目標(biāo)程序設(shè)計(jì)語(yǔ)言相分僅僅依靠軟件測(cè)試來(lái)保證。軟件易測(cè)試性設(shè)計(jì)也離。體現(xiàn)了軟件測(cè)試的一個(gè)發(fā)展趨勢(shì):向軟件開(kāi)發(fā)的嵌入式合約語(yǔ)言的原型是C語(yǔ)言中的assert。目前期發(fā)展,與軟件開(kāi)發(fā)的設(shè)計(jì)和編碼階段相融合。前比較有代表性的嵌入式合約語(yǔ)言包括ANNA(AN-易于測(cè)試的軟件本身所包含的缺陷也會(huì)減少。軟Notated燗da)141、APP(Annotation燩re-Processor)爘51、件易測(cè)試性設(shè)計(jì)將有效地提高軟件測(cè)試的效率和Nan#以及Eiffel等。質(zhì)量,提高軟件設(shè)計(jì)和編程的質(zhì)量,進(jìn)而提高軟ADL(Assertion燚efinition燣anguage)171是一種獨(dú)立件產(chǎn)品的質(zhì)量。的語(yǔ)言框架,它是一組可以翻譯成不同編程語(yǔ)言語(yǔ)軟件的易測(cè)試性設(shè)計(jì)方法包^合約式設(shè)計(jì)法的通用概念。AD1VC是專為C語(yǔ)言接口設(shè)計(jì)的(Design燘y燙ontract,簡(jiǎn)稱DBC)、內(nèi)建式測(cè)試ADL框架。ADL/Java擴(kuò)展了燗DL方法,使之適應(yīng)面(Built-in燭esting,簡(jiǎn)稱BIT)和內(nèi)建式自測(cè)試等幾向?qū)ο蟮母拍,如繼承、多態(tài)、重載等。
種方法。盡管第一種方法容易實(shí)現(xiàn)、易于理解,但是它存合約是管理對(duì)象之間交互的一組規(guī)則,其主要在以下缺點(diǎn):對(duì)于某些不支持多繼承的程序設(shè)計(jì)語(yǔ)來(lái)源是軟件的規(guī)約。常見(jiàn)的表達(dá)合約的種類有:前言(例如java),該方法不能從未插裝類進(jìn)行特化;更置條件、后置條件、不變式、斷言、循環(huán)變式、循嚴(yán)重的是,當(dāng)父類中的方法在子類中被重新定義后,環(huán)不變式和軌跡等。例如,在一個(gè)求平方根的方法父類的方法中的合約將被遺忘|81。float燬quareRoot(float爊um)中定義的合約為:米用嵌人式合約語(yǔ)目設(shè)計(jì)合約可以提高可觀察@爌re爊um>=0性,使得軟件失效與軟件故障點(diǎn)更加接近,從而節(jié)省@爌ost燤ath.abs((result*result)-num)<=0.001測(cè)試和調(diào)試的開(kāi)銷,并且還能夠保持合約隨程序代合約表明了過(guò)程調(diào)用方(客戶方)與實(shí)現(xiàn)方相互碼同步更新,不會(huì)產(chǎn)生歧義。的職責(zé)和利益:客戶方只有在滿足前置條件的情3一種基于合約的構(gòu)件易測(cè)試性設(shè)計(jì)方法后置條件指明的工作將被完成,并且不變式仍然滿我們定義了描述構(gòu)件合約的巴科斯-諾爾范式足。合約可用于區(qū)分軟件失效時(shí)的責(zé)任:如果前置條(BNF范式)、然后在此基礎(chǔ)上提出一種基于合約的件被違反,則應(yīng)該在客戶方尋找錯(cuò)誤;如果后置條件構(gòu)件易測(cè)試性設(shè)計(jì)方法;虿蛔兪奖贿`反,責(zé)任在實(shí)現(xiàn)方。
合約有助于減少冗3.1構(gòu)件合約信息的表達(dá)余的檢查代碼,提高軟件設(shè)計(jì)的效率和運(yùn)行的性能;為了便于用戶定義合約,我們?cè)贘ava語(yǔ)言語(yǔ)法利用自動(dòng)檢查合約的工具,能夠減輕用戶的負(fù)擔(dān),減的基礎(chǔ)上提出了如圖1所示的描述構(gòu)性令約的巴科少用戶犯錯(cuò)誤的機(jī)會(huì);并且合約被違反時(shí)將引發(fā)異斯-諾爾范式。牬雍顯急澩鍤講喚隹梢允遣級(jí)表達(dá)式,還可以是初始標(biāo)量的語(yǔ)句,這使得invariant(循環(huán)不變式)和forall(全稱量詞)表達(dá)式(描述一個(gè)集合中的元素同variant(循環(huán)變式)的表達(dá)式中可以具有更加復(fù)雜的時(shí)滿足某個(gè)條件)、exist(存在量詞)表達(dá)式(描述一語(yǔ)句,增強(qiáng)了爈oop合約的描述能力。由于Sun燡DK1.4個(gè)集合中存在滿足某個(gè)條件的元素),以及implies提供了斷言檢查的check語(yǔ)句,故我們?cè)趫D1中沒(méi)(蘊(yùn)涵)表達(dá)式(描述當(dāng)某一條件滿足的時(shí)候,另一個(gè)有提供斷言的描述。條件必須滿足)。增加的這幾種表達(dá)式的類型增強(qiáng)了3.2基于合約的構(gòu)件易測(cè)試性設(shè)計(jì)方法合約的描述能力,使得用布爾表達(dá)式很難表達(dá)的意犜諫鮮雒枋齬辜合約的巴科斯-諾爾范式基礎(chǔ)思能夠較為簡(jiǎn)潔地表達(dá)出來(lái)。
同時(shí),loop合約(包括上,我們所提出的基于合約的構(gòu)件易測(cè)試性設(shè)計(jì)方循環(huán)不變式和循環(huán)變式)在循環(huán)之前具有設(shè)置循環(huán)法包括以下步驟:5結(jié)束語(yǔ)Pacific燬oftware燛ngineering燙onference,燤acau燬AR,燙hina,2001.431-434.構(gòu)件測(cè)試是保證構(gòu)件質(zhì)量的重要技術(shù)手段之牎2丨ANSIAEEE爏td610.12.營(yíng)EEE燬tandard燝lossary爋f燬oftware一。本文提出一種基于合約的構(gòu)件易測(cè)試性設(shè)計(jì)方Engineering燭enninology,1990.法’在構(gòu)件的設(shè)計(jì)和編碼階段由設(shè)計(jì)人員和編程人.[3]燤artins燛’燭_a燙燤’燳anagawa燫燣.燙cmstrucUng爏elf-testable員在構(gòu)件的接口和內(nèi)部根據(jù)構(gòu)件的規(guī)約增加構(gòu)件的牐:1"5comp°nnents,th;2001mnaiConlerence爋n燚ependable燽ystems燼nd燦etworks,燝oteborg,燬weden,合約,提高了構(gòu)件的易測(cè)試性。本文所提出的方法將2001151_160營(yíng)EEE構(gòu)件的質(zhì)量保證活動(dòng)向構(gòu)件開(kāi)發(fā)的前期發(fā)展、與構(gòu)[4]燣uckham燚燙,爒on燞enke燜燱.燨verview爋f燗NNA,燗燬pecification件開(kāi)發(fā)的設(shè)計(jì)和編碼階段相融合,從而能夠更好地燣anguage爁or燗da.營(yíng)EEE燬oftware,1985,2(2):9-22.保證構(gòu)件的質(zhì)量。
本文還開(kāi)發(fā)相應(yīng)的支持工具JD-【5】Rosenblum燚燬.燗燩ractical燗pproach爐o燩rogramming爓ithBCT,并且進(jìn)行了實(shí)驗(yàn),驗(yàn)證了我們所提出的方法有燗sserti°ns’IEEE燭ransac,ions°n燬oflware燛ngineering‘1995’21(1):效性和燡DBCT牭耐酚瞇浴[6]燤aker燩燡.燝NU燦ana-燯ser'爏燝uide(version2.4).燭echnical目前JDBCT能夠支持的合約的類型包括前置report,燬chool爋f營(yíng)nformation燭echnology,燦orthern燭erritory條件、后置條件、不變式、循環(huán)變式和循環(huán)不變式,下University,爅uly1998.一步將提供對(duì)軌跡等類型合約的支持。
構(gòu)件的合約燵7]燬ankar燬,Hayes燗DL:燗n營(yíng)nterface燚efinition燣anguage爁or來(lái)源于軟件的規(guī)約,可以作為我們進(jìn)行測(cè)試工作的燬pedfying311(1燭esting‘ACM燬IGPLAN燦otices'I994,29f8V13—21依據(jù)。在今后的工作中,我們將進(jìn)一步完善我們藤⑷Jezequel風(fēng)Dev飄D燭raon燳燣.燫eliable爋bjefts燯ghtweight出的方法,并&研究如何與變異測(cè)試技術(shù)相結(jié)合,即TeSting爁or00燣anguages.營(yíng)EEE燬oftware,2001,18(4):76-83研究如何針對(duì)構(gòu)件合約進(jìn)爁T變異測(cè)試。
【一種基于合約的構(gòu)件易測(cè)試性設(shè)計(jì)方式論文】相關(guān)文章:
探究基于構(gòu)件技術(shù)的信息管理系統(tǒng)的設(shè)計(jì)論文10-31
基于RFID物品防盜系統(tǒng)的設(shè)計(jì)方式論文11-17
基于RFID物品防盜系統(tǒng)的設(shè)計(jì)方式的論文11-13
對(duì)網(wǎng)站易訪問(wèn)性設(shè)計(jì)的理念分析論文07-17
基于學(xué)習(xí)興趣的角度設(shè)計(jì)教學(xué)的方式創(chuàng)新論文09-06
反思性學(xué)習(xí)方式論文04-12
一種基于傳感器的智能谷倉(cāng)的設(shè)計(jì)論文11-15