(計算機軟件與理論專業(yè)論文)基于uml20圖的cbd軟件集成測試方法研究.pdf_第1頁
(計算機軟件與理論專業(yè)論文)基于uml20圖的cbd軟件集成測試方法研究.pdf_第2頁
(計算機軟件與理論專業(yè)論文)基于uml20圖的cbd軟件集成測試方法研究.pdf_第3頁
(計算機軟件與理論專業(yè)論文)基于uml20圖的cbd軟件集成測試方法研究.pdf_第4頁
(計算機軟件與理論專業(yè)論文)基于uml20圖的cbd軟件集成測試方法研究.pdf_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

(計算機軟件與理論專業(yè)論文)基于uml20圖的cbd軟件集成測試方法研究.pdf.pdf 免費下載

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

中文摘要 面向構(gòu)件的軟件開發(fā)方法己成為軟件工程領域的熱點。目前7 0 的軟件都是基 于構(gòu)件開發(fā)的,它秉誠“購買而不創(chuàng)建,組裝即成”的開發(fā)哲學,從根本上改變了軟 件開發(fā)方式,提高了軟件復用性和開發(fā)效率。c b d 軟件開發(fā)的核心是構(gòu)件組裝。軟 件集成測試是組裝工作是否有效的檢驗者,它關系至i j c b d 軟件開發(fā)工作的成敗。由 于c b d 軟件具有源代碼未知,應用環(huán)境復雜等特點,傳統(tǒng)的軟件集成測試技術,對 于解決這些問題,將會面臨嚴峻的挑戰(zhàn)。相比之下,基于u m l 模型的c b d 軟件集成 測試技術取得了不錯的成果,國內(nèi)外已有不少關于這方面的成果,但基本上都是基 于u m l l x n 交互圖生成測試用例而進行測試,都沒有充分整合u l 2 0 各種模型的 新特性而進行更有效的測試。因此,研究基于u m l 2 0 模型的c b d 軟件集成測試方法 具有重要意義。 本文首先在對u m l 2 0 模型中的狀態(tài)機進行分析的基礎上,結(jié)合構(gòu)件圖將狀態(tài)機 擴展為具有事件語義的模型( e c s m ) 。并將“順序”定義為強順序和弱順序以解決 u m l 2 0 順序圖( s d ) q u 的“順序”所描述語義的不準確性問題。然后將e c s m 和s d 進行 有機集成,給出了一種可描述構(gòu)件交互的模型( 可擴展的構(gòu)件交互模型e c s d ) 。由 于e c s d 包含的信息量多而不便于分析,文中構(gòu)造了可以簡化e c s d 模型的消息交互 流程圖模型( m i s g ) ,給出了基于m i s g 模型生成測試場景和測試覆蓋準則的算法。 同時,分析了c b d 軟件的測試數(shù)據(jù)準備生成策略,設計了一種的基于m i s g 模型的測 試用例生成方法,并以a t m 系統(tǒng)為例,使用r a t i o n a lr o s e 對a t m 系統(tǒng)進行建模和分 析,得到m i s g 模型,在此基礎上生成了測試用例,達到了預期的效果。最后,本文 提出了一種基于u m l 2 0 模型的c b d 軟件集成測試框架( c s i t f ) ,并進行了框架總 體設計,關鍵模塊設計及核心算法設計。該模型對設計c b d 軟件集成測試工具提供 了一種思路。 關鍵詞:構(gòu)件測試;u m l 2 0 ;集成測試框架;m i s g ; a b s t r a c t c o m p o n e n t 。o r i e n t e d s o f t w a r e d e v e l o p m e n t m e t h o dh a sb e c o m ea r e s e a r c hh o ti nt h ef i e l do f s o f t w a r ee n g i n e e r i n g n o w7 0 o ft h es o f t w a r ei s c o m p o n e n t - b a s e dd e v e l o p m e n t i ti si ng o o df a i t h r a t h e rt h a nc r e a t i o nb u t p u r c h a s ea n do n l ya s s e m b l y ,w h i c hf u n d a m e n t a l l yc h a n g e dt h ew a yo f s o f t w a r ed e v e l o p m e n t ,a n d i m p r o v e de f f i c i e n c yo f s o f t w a r er e u s a b i l i t y c o m p o n e n ta s s e m b l yi st h ec o r eo ft h ec b ds o f t w a r ed e v e l o p m e n t w h e t h e r t h e c o m p o n e n t sa s s e m b l yw o r ke f f e c t i v e l y o rn o t ,s o f t w a r ei n t e g r a t i n g t e s t i n gi sr e l a t e dt ot h es u c c e s so rf a i l u r eo fc b d s o f t w a r ed e v e l o p m e n ta sa c h e c k e r d u et ot h ec h a r a c t e r i s t i c st h a tc b ds o f t w a r es o u r c ec o d ea r e u n k n o w n ,a n dc o m p l e xa p p l i c a t i o ne n v i r o n m e n t s ,t h et r a d i t i o n a ls o f t w a r e t e s t i n gt e c h n i q u e sw i l lf a c es e v e r ec h a l l e n g e s i nc o n t r a s t ,u m l - b a s e d i n t e g r a t i o nt e s t i n gf o rc o m p o n e n t - b a s e ds o f t w a r eh a sa c h i e v e dg o o dr e s u l t s , t h e r ea r ea c h i e v e m e n t si nt h i sa s p e c t ,b u tb a s i c a l l ya l la r eb a s e do nt h e i n t e r a c t i v ed i a g r a p hu m l1 xt og e n e r a t et e s tc a s e sa n dt h e nt e s t ,n om o r e e f f e c t i v et e s t i n gc a nb ep r o c e s s e dw i t h o u tu t i l i z i n gn e wf e a t u r e so ff u l l y i n t e g r a t e dm o d e lu m l 2 0 t h u s ,r e s e a r c ho fu m l 2 0 - b a s e dc b ds o f t w a r e i n t e g r a t i o nt e s t i n gh a st h ev i t a ls i g n i f i c a n c e i nt h i sp a p e r ,b a s e do nt h ea n a l y s i so ft h es t a t em a c h i n eo fu m l 2 0 ,t h e s t a t em a c h i n ef o re v e n ts e m a n t i c sm o d e l ( e c s m ) w i t ht h ec o m b i n a t i o no f c o m p o n e n t d i a g r a p hi se x p a n d e d f o rs o l v i n gt h en o n - s e m a n t i ca c c u r a c yo f “s e q u e n c e d e s c r i b e di ns d ,s e q u e n c e sa r ed i v i d e di n t os t r o n ga n dw e a k , a n dam o d e ld e s c r i b i n gt h ei n t e r a c t i v ec o m p o n e n t s ( e x t e n s i b l ec o m p o n e n t i n t e r a c t i o nm o d e le c s d ) i sc o n s t r u c t e db yi n t e g r a t i n ge c s ma n ds d s i n c e t h ee c s dc o n t a i n sg r e a ta m o u n to fi n f o r m a t i o na n dn o te a s yf o ra n a l y s i s ,a n e wf l o wc h a r to fi n t e r a c t i o n ( m i s g ) m o d e li sp r o p o s e dw h i c hc a r ls i m p l i f y e c s d ,a n daa l g o r i t h mf o rt h et e s t s c e n a r i oa n dt e s t c o v e r a g e c r i t e r i a g e n e r a t e db a s e do nm i s gm o d e li sp r o p o s e d a tt h es a m et i m e ,t h et e s td a t a i l l i sa n a l y z e df o rp r e p a r a t i o nt og e n e r a t es t r a t e g i e so fc b ds o f t w a r e a n da t m s y s t e mi st a k e na sa ne x a m p l e ,a n dr a t i o n a lr o s ei su s e df o rt h em o d e l i n g a n da n a l y s i s ,t h ed e s i r e dr e s u l t sh a sb e e na c h i e v e do nt h eb a s i so ft e s tc a s e s w h i c hh a v eb e e ng e n e r a t e d f i n a l l y ,t h i sp a p e rp r o p o s e su m l 2 0 一b a s e dc b d s o f t w a r ei n t e g r a t i o nt e s t i n gf r a m e w o r k ( c s i t f ) ,a n dd e s i g n st h ea r c h i t e c t u r e o ff r a m e w o r k , t h ec o r em o d u l e sa n dt h ec o r ea l g o r i t h m s t h ef r a m e w o r k p r o v i d e san e ww a yf o rt h ed e s i g no fc b ds o f t w a r ei n t e g r a t i o nt e s t i n gt o o l s k e y w o r d s :c o m p o n e n tt e s t i n g ; u m l 2 o : i n t e g r a t i o nt e s t i n gf r a m e w o r k ; s g : i v 聲明戶明 本人鄭重聲明:所呈交的學位論文,是本人在指導教師的指導下, 獨立進行研究所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文 不包含其他個人或集體已經(jīng)發(fā)表或撰寫過的科研成果。對本文的研究 做出重要貢獻的個人和集體,均已在文中以明確方式標明。本聲明的 法律責任由本人承擔。 作者簽名: 日期:弓幽l 關于學位論文使用權的說明 本人完全了解太原科技大學有關保管、使用學位論文的規(guī)定,其 中包括:學校有權保管、并向有關部門送交學位論文的原件、復印 件與電子版;學??梢圆捎糜坝 ⒖s印或其它復制手段復制并保存 學位論文;學校可允許學位論文被查閱或借閱;學校可以學術交 流為目的,復制贈送和交換學位論文;學??梢怨紝W位論文的全 部或部分內(nèi)容( 保密學位論文在解密后遵守此規(guī)定) 。 作者簽名: 導師簽名: 期 期 日 日 第章緒論 第一章緒論 1 1 課題研究背景和意義 軟件測試是對軟件規(guī)格說明、軟件設計和編碼的最后審核,其目的是在產(chǎn)品交 付前盡可能發(fā)現(xiàn)軟件中潛伏的錯誤【1 1 。大量統(tǒng)計表明,軟件測試工作量往往占軟件開 發(fā)總工作量的4 0 以上【2 】,對于一些要求高可靠性、高安全性的軟件,其測試費用可 能相當于整個軟件開發(fā)總費用的3 至5 倍1 3 1 。因此,研究可靠的軟件測試方法和實用 有效的軟件測試工具是提高軟件開發(fā)效率,降低軟件成本的重要的環(huán)節(jié)。 隨著軟件設計方法學的發(fā)展,面向構(gòu)件的軟件開發(fā)方法正在逐步取代傳統(tǒng)的面 向?qū)ο蟮能浖_發(fā)方法,并將成為新的趨勢【5 1 。截至目前為止,大約有8 0 的軟件系 統(tǒng)都是基于構(gòu)件技術的【6 】。由于構(gòu)件具有獨立功能,獨立發(fā)布,遵循特定構(gòu)件規(guī)范, 支持可復用和可集成的二進制的功能塊【4 】等特點,使得基于構(gòu)件的軟件工程更具優(yōu) 勢。但同時構(gòu)件的跨平臺,跨語言和源代碼不可知的特點,導致了構(gòu)件化軟件系統(tǒng) 的測試難度非常大。 其實,對于構(gòu)件化軟件而言,軟件測試的問題實質(zhì)上集中在構(gòu)件集成測試的問 題上。通過學者觀察和研究,7 0 以上的測試問題都來源于構(gòu)件的交互。所以構(gòu)件交 互測試是c b d 軟件的集成測試的重點。而o m g 組織的u m l 2 0 模型能對c b d 軟 件進行建模,建模過程中能得到各種u m l 2 0 圖形,這些圖形很好的表達了構(gòu)件化 軟件的動態(tài)交互過程【引。因此,研究基于u m l 2 0 模型的可測試模型,并研究構(gòu)件集 成測試方法具有重要意義。 1 2 國內(nèi)外研究現(xiàn)狀 近幾年來,構(gòu)件化軟件開發(fā)方法在國內(nèi)外得到了充分的發(fā)展,北京大學,中科 院軟件研究所等發(fā)表了不少論文,普元公司,北大青鳥公司,上海構(gòu)件庫等在工程 方面取得較好的成果。而關于c b d 軟件的集成測試的研究主要在國外展開。目前主 要成果有以下幾個: ( 1 ) 基于u m l l x 的構(gòu)件化軟件的集成測試技術。目前有兩種基于這種測試技術 的方法:基于狀態(tài)的測試技術1 2 】【1 3 】【1 4 】f 1 7 】【1 9 】【4 1 1 和基于事件流的測試技術【1 5 】【1 6 1 。前一 種主要是根據(jù)u m l l x 的狀態(tài)圖得到構(gòu)件在交互過程中的狀態(tài)改變情況,而進行分 析,構(gòu)造基于狀態(tài)的測試模型。這種方法的缺點是:狀態(tài)信息并不能充分表達系統(tǒng) 基于u m l 2 0 圖的c b d 軟件集成測試方法研究 真實運行時的情況,例如:構(gòu)件間可能發(fā)生了交互,但交互沒有導致構(gòu)件狀態(tài)的變 化,這種情況就無法在狀態(tài)圖中反映出來。后一種測試方法主要是根據(jù)u m l l x 模 型中的順序圖協(xié)作圖來分析交互過程,得到事件流,從而得到相關的可用計算機處 理的模型。在這方面比較有代表性的有:j e a l l 等9 1 ,h o i j i n ( 盯,f r a i k i i l 【2 0 】和y e 【2 1 】它 們都是都是通過分析序列圖來構(gòu)造測試模型的。這種方法的缺點是:它完全基于事 件序列圖來構(gòu)造測試模型,而沒有充分的反映構(gòu)件每次事件作用后的狀態(tài)信息。因 此,考慮怎樣把兩種方法有機的結(jié)合起來,是基于這種方法研究的核心。本文的研 究就是基于這個想法來展開的。 ( 2 ) 基于序列的技術【3 3 】這種技術主要是基于數(shù)據(jù)流圖的思想,從兩個方面來 對構(gòu)件軟件進行測試的:對于單個構(gòu)件的測試和對于整個構(gòu)件組合的測試。第一個 方面主要是根據(jù)構(gòu)件相關的規(guī)格說明文檔及第三方提供的說明書,進行信息提取, 從而畫出數(shù)據(jù)流圖,生成測試序列。后一個方面主要是分析構(gòu)件間的事情交互情況, 得到事件的傳播過程,從而推導出事件的交互序列。然后綜合這兩個方面來進行測 試。這種方法的缺點是:如果構(gòu)件化系統(tǒng)中的構(gòu)件數(shù)據(jù)非常大的時候,獲取方法序 列的難度非常巨大。 ( 3 ) 基于構(gòu)件交互圖( c i g ) 的構(gòu)件系統(tǒng)測試技術【2 7 】這種方法的思想是:通過分析 得知構(gòu)件系統(tǒng)中最容易出現(xiàn)問題的地方就是構(gòu)件間的交互問題,所以它就從這個方 面來分析構(gòu)件間的交互所引起的問題。主要是采用靜態(tài)分析交互情況和動態(tài)跟蹤構(gòu) 件實際運行過程的方法,從而得到各種相關的流圖,然后對這些流進行建模和分析, 得到測試用例。這種方法的優(yōu)點是不需要知道構(gòu)件的源代碼就可以進行。缺點是: 如果被測試的構(gòu)件化軟件規(guī)模非常大,分析交互就非常復雜。 ( 4 ) 基于構(gòu)件軟件流圖( c b s f g ) 的測試技術1 2 引,這種測試技術的主要思想是借 助于數(shù)據(jù)流圖和控制流程圖的思想,將c b d 軟件圖形化。這個過程主要是通過規(guī)格 說明文檔來推導的一些可視化信息,并能通過圖形來表示的。這種方法的優(yōu)點:它 不是用單獨的白盒測試或者黑盒測試,而是綜合兩者來提取一切可視化的信息來構(gòu) 造c b s f g 圖,缺點是這種圖形化表示的信息不是非常準確,有時也不好把握,隨著 構(gòu)件化軟件規(guī)模的擴大,難度也隨著增加。 ( 5 ) 基于內(nèi)建式的測試技術( b u i l d i nt e s t ( b i t ) ) 【2 2 】【2 3 】【2 4 】這種測試方法的思 想是:構(gòu)件可測試性的構(gòu)件,它將一些可用來幫助測試的方法編寫好后,植入到構(gòu) 件的內(nèi)容,當程序啟動時,就可以根據(jù)這些方法來跟蹤和檢驗測試過程,并將信息 2 第一章緒論 記錄下來,從而進行分析。這種方法的優(yōu)點是:可以非常具有可行性和可操作性。 缺點是:植入那些方法,這些方法是否參測試造成影響等都無法預測。 ( 6 ) 基于t d s ( t e c h n i q u ed e v e l o p m e n tf r a m ew o r d s ,a n dq u a l i t ya s s u r a n c e s c h e m e s ) 【2 9 】的測試技術。這種技術的思想是:根據(jù)構(gòu)件的接口以及接口中的事件, 根據(jù)這些信息利用相應的算法進行歸納整理,從而產(chǎn)生測試用例。這種方法的優(yōu)點 是:提出了構(gòu)件測試充分性的判定條件。缺點是通過這種方法得到的測試信息并足 夠,真正實現(xiàn)充分性的測試的難度比較大。 1 3 研究內(nèi)容及論文結(jié)構(gòu) 本文在對c b d 軟件的集成測試和基于u m l 2 0 測試的相關理論的認真研究的基 礎上,首先使用u m l 2 0 對c b d 軟件建模,得到c b d 軟件的構(gòu)件圖,狀態(tài)機和交 互圖,將構(gòu)件圖和狀態(tài)圖所描述的信息進行整合,構(gòu)造一種具有事件語義的可描述 構(gòu)件交互的模型( e c s m ) ,然后著重探討了順序圖中所描述的構(gòu)件交互語義具有比 較大的局限性的問題,并采用將描述的交互場景細化為強弱順序關系來解決這個問 題。由于e c s m 和c d 間具有事件語義上的聯(lián)系,將兩者有機的集成起來,構(gòu)造成 一個可充分描述構(gòu)件間的交互能力的模型( 擴展的構(gòu)件順序圖模型e c s d ) ,但是這 種模型是完全圖形化的,并且信息量大不便于處理。因此,在此基礎上又提出了一 種可用于處理的消息交互數(shù)據(jù)流模型( m i s g ) ,并分析出了基于m i s g 模型的測試覆 蓋準則以及基于m i s g 模型生成測試場景的方法。根據(jù)文中的模型以及構(gòu)件的規(guī)格 說明,產(chǎn)生了測試準備數(shù)據(jù),然后提出了一種基于m i s g 模型生成測試用例的方法, 并通過a t m 系統(tǒng)來驗證了該方法具有可行性。最后本文提出了一種基于u m l 2 0 模 型的c b d 軟件的集成測試框架,并進行了框架總體設計,關鍵模塊設計,核心算法 設計及核心數(shù)據(jù)結(jié)構(gòu)。該測試框架為解決c b d 軟件集成測試的核心問題提供了一種 思路,同時也為開發(fā)c b d 軟件測試工具提供了參考。 本文共分六章,具體章節(jié)的內(nèi)容按如下的順序編排: 第二章c b d 軟件集成測試的有關問題。首先分析了構(gòu)件的相關理論,包括構(gòu) 件的定義,構(gòu)件標準。然后分析了c b d 軟件的特點,以及c b d 軟件集成測試的相 關問題。 第三章u m l 2 0 及其測試。首先分析了u m l 2 0 相關的新特性,并將u m l 2 0 與u m l l x 進行了比較。然后重點分析了u m l 2 0 對構(gòu)件的支持。最后分析了基于 u m l 2 0 的構(gòu)件化軟件的建模方法。 3 基于u m l 2 0 圖的c b d 軟件集成測試方法研究 第四章一種基于u m l 2 0 圖的生成測試用例的場景模型。首先分析了構(gòu)件圖對 于測試的優(yōu)點。接著介紹了構(gòu)件狀態(tài)機的特點以及用于集成測試中的不足,并結(jié)合 構(gòu)件對狀態(tài)機進行了擴展。然后介紹了構(gòu)件順序圖,并重點分析了“順序”所描述的 語義具有的局限性。最后,通過分析兩者的聯(lián)系,并將兩者集成起來,并生成可處 理的消息流程圖模型,以及生成測試用例的方法。 第五章基于u m l 2 0 的c b d 軟件集成測試的框架。介紹了c s i t f 的功能描述, 原型設計,核心功能的實現(xiàn),以及相關的數(shù)據(jù)結(jié)構(gòu)。 第六章總結(jié)與展望??偨Y(jié)語,對系統(tǒng)開發(fā)過程中取得的成果和存在的問題進行 系統(tǒng)的總結(jié)和分析,并對下一步的研究方向和策略進行展望。 4 第一章c b d 軟件的集成測試中若干問題 第二章c b d 軟件的集成測試中若干問題 構(gòu)件是按照一定規(guī)范編寫的具有特定功能的可復用的程序模塊。構(gòu)件的廣泛應 用,使得c b d 軟件的測試和維護問題越來越受到人們的重視。c b d 軟件主要是復用 已有構(gòu)件或者c t o s 構(gòu)件構(gòu)造新的軟件系統(tǒng),從而提高開發(fā)效率和質(zhì)量,因此構(gòu)件 化構(gòu)件系統(tǒng)的集成測試就顯得非常重要了,只有做好集成測試,才能保證新系統(tǒng)的 正確性和可靠性。本章將主要討論當前的主流構(gòu)件標準,以及構(gòu)件化軟件集成測試 中存在的各種問題。 2 1 構(gòu)件的定義 構(gòu)件正處于發(fā)展階段,所以目前還沒有一個明確的定義。s z y p e r s k i 2 5 】把構(gòu)件定 義為“軟件構(gòu)件是一個僅帶特定契約接口和顯式語境依賴的結(jié)構(gòu)單元”,同時他還寫 道:t - 軟件構(gòu)件可以獨立部署,易于第三方整合。著名的b r o w n 2 7 1 和w a l l n a u 2 8 1 描述 構(gòu)件為“一個非平凡的、幾乎獨立的、可替換的系統(tǒng)組成部分,它在定義完善的體系 結(jié)構(gòu)環(huán)境中實現(xiàn)某一清晰的功能”。c l e m e n s 2 9 1 認為:構(gòu)件是一個獨立部署的的單元, 是一個第三方合成的單元,構(gòu)件沒有一致性的狀態(tài)。g a r t n e rg r o u p 3 川認為軟件是運 行時軟件,它是一個可動態(tài)綁定的、含一個或多個程序的軟件包,它作為一個獨立 單位,通過運行時可辨別的文檔化接口加以管理和存取。下面本文將給出構(gòu)件的定 義: 構(gòu)件定義構(gòu)件是一個具有獨立功能的可復用的功能模塊,它通過接口向外提供服 務。構(gòu)件可以定義為一個六元組: s p e ,i m p ,d e p ,s t a ,p a e ,t e s t ) ,其中s p e 為構(gòu)件 說明,i m p 為構(gòu)件實現(xiàn)體,d e p 表示可被組裝,s t a 為構(gòu)件模型,p a c 表示可包裝,t e s t 表示可被測試。 ( 1 ) 構(gòu)件說明。它是構(gòu)件定義中最重要的部分。構(gòu)件說明主要包括:構(gòu)件的 適用環(huán)境及使用方法說明,接口定義,構(gòu)件所具有的功能說明,構(gòu)件的組裝規(guī)格說 明。 ( 2 ) 構(gòu)件實現(xiàn)體。構(gòu)件一般是由一方定義,一方開發(fā),另一方使用的流程。由 于功能需求不同,所以需要產(chǎn)生多個構(gòu)件實現(xiàn)體。使其具有更強的復用性。 ( 3 ) 可被組裝。構(gòu)件的設計目的就是為了能用構(gòu)件快速組裝成新的系統(tǒng)。可組 裝主要包括:構(gòu)件組裝的基礎設施說明,組裝時順序要求,組裝時的異常處理說明, 組裝有效的驗證工作。 5 基于u m l 2 0 圖的c b d 軟件集成測試方法研究 ( 4 ) 構(gòu)件模型由于構(gòu)件最終的目的是為了大量復用,因此在開發(fā)時需要選擇 盡量通用的構(gòu)件模型來做開發(fā),構(gòu)件模型定義了關于發(fā)重用軟件構(gòu)件和構(gòu)件之間相 互通信的一組標準的描述。應具有自描述性,可集成性和可定制性。 ( 5 ) 可包裝。這點主要是從功能組合來考慮的。通過對不同的構(gòu)件進行包裝或 者改造,能具有新的功能。 ( 6 ) 可測試性。由于一般是商業(yè)構(gòu)件,因此能夠?qū)?gòu)件設計成可測試的,對將 來復有時有著很多的支持。 2 2 構(gòu)件標準 目前軟件行業(yè)內(nèi)的構(gòu)件標準有四個:o m g 提出的c o r b a ( c o m m o no b j e c t r e q u e s tb r e a k e ra r c h i t e c t u r e ) ,微軟提出的c o m ( c o m p o n e mo b j e c tm o d e l ) ,還有s a i l 公司提出的e j b ( e n t e r p r i s ej a v ab e a n ) 和w e b 服務。 c o r b a 的優(yōu)點在于其與開發(fā)語言無關的語言獨立性,與開發(fā)者無關的廠商獨立 性以及與操作系統(tǒng)無關的平臺獨立性,即提供跨平臺的能力,其缺點在于其技術規(guī) 范十分復雜,而且沒有規(guī)定實現(xiàn)細節(jié)。因此不同版本的c o r b a 產(chǎn)品互不相同,會 帶來互操作性與移植的大量問題。另外,c o r b a 開發(fā)工具相對而言比較缺乏,開發(fā) 難度較大。其體系結(jié)構(gòu)圖如圖2 1 所示 圖2 - lc o r b a 體系結(jié)構(gòu) f i 9 2 - 1a r c h i t e c t u r eo fc o r b a c o m 體系結(jié)構(gòu)如圖2 2 所示,其優(yōu)點在于開發(fā)容易、商品化構(gòu)件多和易于使用, 其缺點在于其技術為微軟專有。技術上的壟斷帶來的結(jié)果就是c o m 技術只能在 w i n d o w s 平臺上實現(xiàn),代碼的可重用性和跨平臺性能相對較差。c o m + 把c o m , d c o m 和m t s ( m i c r o s o f tt r a n s a c t i o ns e r v e r ) 組合在了一起,使c o m + 成為一個完整 6 第二章c b d 軟件的集成測試中若干問題 的構(gòu)件體系結(jié)構(gòu)。三者有機地統(tǒng)一起來,同時新增了一些服務如負載平衡、內(nèi)存數(shù) 據(jù)庫、事件模型、隊列服務等,形成一個概念新、功能強的構(gòu)件體系結(jié)構(gòu)。 耵s c o 叼、t a c t l v e 夏d m r e c x ! cc n p o u n d d o c u m e n t1 0 l e ) :翌! 一 ! 塑 c 儺工r 正r a s t r u c 吒1 1 r e 圖2 - 2c o m c o m + d c o m 體系結(jié)構(gòu) f i 薩2a r c h i t e c t u r eo fc o m c o m + d c o m e j b 體系結(jié)構(gòu)如圖2 3 所示。它是由這兩種核心分布式技術演化來的,提供一個 標準的分布的、基于o o 的組件架構(gòu),屏蔽復雜的系統(tǒng)級功能需求,w r i t eo n c e ,r t l na n y w h e r e ,與非j a v a 應用程序之間的互操作n p , j 3 。 i r o k e 耵b c o n ta i n e r e j bs e r v e r 耵bc l i e m ;:= k = e t = h o = d s = = :, , 一、 :。 l t v v k ee 丁b t h o d s = = = = = = = , 圖2 - 3r m i e 3 b 體系結(jié)構(gòu) f i g2 - 3a r c h i t e c t u r eo f r m i e j b w e b 服務是一套構(gòu)件開發(fā)標準,如果2 - 4 所示,它主要包括s o a p ,w s d l ( w e b 服 務描述語言) ,u d d z ( 通用描述發(fā)現(xiàn),集成) 和w s i l ( w e b 服務檢查語言) 有三個 獨立的角色:服務提供者,服務請求者和服務代理者。三個角色通過服務的發(fā)布, 查找,綁定進行交互。服務提供者通過用代理者的發(fā)布接口讓客戶能訪問服務來通 知代理者服務存在。發(fā)布信息描述了服務并說明服務定位在o j i j j l 。服務請求者詢問 代理者服務的定位。根據(jù)從代理者獲得的服務信息,請求者可以綁定或者調(diào)用這個 服務。 b i n d k 呈! 二竺夕心竺竺:! 蘭竺夕 l 。八 f i n d 圖2 - 4 w e b 服務體系結(jié)構(gòu) 7 基于u m l 2 0 圖的c b d 軟件集成測試方法研究 f i g2 - 4a r c h i t e c t u r eo f w e bs e r v i c e 2 3c b d 軟件的集成測試的特點 由于c b d 軟件具有與傳統(tǒng)軟件不同的新特性 2 1 1 3 :( 1 ) 由源代碼不可見的構(gòu)件組 裝的高松耦合的系統(tǒng)。( 2 ) 構(gòu)件更換容易,系統(tǒng)演化速度快。( 3 ) 系統(tǒng)的可靠性高度依 賴于構(gòu)件及其構(gòu)件間的交互。( 4 ) 系統(tǒng)具有很好的擴展性和復用性1 4 j 。從而導致了構(gòu) 件系統(tǒng)測試難度大。而構(gòu)件通常是通過接口向外提供服務的,客戶端只能通過接口 來調(diào)用相關方法得到服務。一般用來構(gòu)造系統(tǒng)的構(gòu)件都是經(jīng)過完整的單元測試,但 是當它們構(gòu)造系統(tǒng)時可能會產(chǎn)生各種交互錯誤,還有可能是接口提供的功能大于當 前新系統(tǒng)的功能,而且這些錯誤不易被觀察到。本文主要是從構(gòu)件使用的角度來分 析c b d 軟件的集成測試。我們從以下幾個方面來探討基于構(gòu)件的開發(fā)對軟件測試的 影響,以及基于構(gòu)件的軟件測試的特點。 ( 1 ) 構(gòu)件是c b d 軟件的最小組成單位c b d 軟件是復用已有的或自行開發(fā)的構(gòu) 件而組成的。構(gòu)件是封裝了數(shù)據(jù)和方法的功能休。我們可以認為構(gòu)件是構(gòu)成c b d 軟 件的基本單位,構(gòu)件質(zhì)量的好壞直接影響到c b d 軟件的質(zhì)量。 ( 2 ) 需要兩種不同目的的測試工作c b d 軟件的開發(fā)過程就是將現(xiàn)有的構(gòu)件進 行集成的過程。其中,構(gòu)件可能是自行開發(fā)或者是第三方提供的。如果是自行開發(fā), 為了保證構(gòu)件的質(zhì)量,需要測試人員對構(gòu)件進行單元測試。如果是第三方提供的也 需要進行功能驗證【3 3 】【4 0 1 。當把構(gòu)件進行組裝時則需要進行集成測試,集成測試是保 證新軟件系統(tǒng)質(zhì)量的關鍵。兩種測試工作雖然出發(fā)點不一樣,但都得做好,這樣才 能確保最終的系統(tǒng)質(zhì)量。 ( 3 ) 測試方法的選擇 由于出于公司效率等的考慮,在開發(fā)c b d 軟件時,一般 會考慮從構(gòu)件庫中檢索合適的商業(yè)構(gòu)件或者開源構(gòu)件,這樣的構(gòu)件可能源代碼不可 得到或者文檔不全等,如果要在組裝前對構(gòu)件進行白盒測試,難度會非常大。但可 以考慮進行功能驗證測試。即黑盒測試比較可行,也可以進行基于模型的測試【2 3 1 。 2 4 構(gòu)件化軟件系統(tǒng)的集成測試中的問題 c b d 方法相對于傳統(tǒng)的開發(fā)方法體現(xiàn)出了許多新優(yōu)勢,但它的新特點也給軟件 測試帶來了新的挑戰(zhàn)。我們從兩個方面分析構(gòu)件及構(gòu)件軟件的測試問題。 ( 1 ) 從構(gòu)件生產(chǎn)者來看,主要是包括以下的問題: a 測試是否充分性的判定。由于構(gòu)件規(guī)模和構(gòu)件類型等不同,很難有個確定的 判定依據(jù)說明測試的程度。 8 第二二章c b d 軟件的集成測試中若干問題 b 測試準備數(shù)據(jù)的產(chǎn)生是否充分。由于對于單個構(gòu)件的測試類似于白盒測試, 所以很難設計出充分的測試數(shù)據(jù)。 c 搭建構(gòu)件的測試環(huán)境。對單個構(gòu)件進行測試,需要模擬出構(gòu)件運行的環(huán)境。 構(gòu)造測試驅(qū)動器和打樁對于構(gòu)件的多線程,死鎖,跨平臺,跨語言等特殊情 況很難模擬。 d 構(gòu)件的可復用性測試。由于構(gòu)件設計的目的就是要重復使用可能需要在多種 環(huán)境中應用。所以也要測試。 ( 2 ) 從構(gòu)件使用者角度來看,對構(gòu)件化軟件測試面臨如下的問題: a 測試是否充分的問題依然存在。 b 構(gòu)件的測試順序問題。如果采用自底向上的集成測試方法,則每次的測試都 是建立在相對正確的基礎上的,但如果采用其他的集成測試方式則需要驅(qū)動 模塊和打樁。 c 冗余測試問題。由于在組裝過程中,每新增加一個構(gòu)件,理論上應該重測以 前的工作,但是工作量大,而且很多是重復工作,所以怎樣取舍而進行回歸 測試也很復雜。 d 源代碼是否可用。因為很多構(gòu)件都是第三方提供的,只可能提供一些文檔, 因此測試難度也比較大。 e 編程語言、操作系統(tǒng)平臺、硬件結(jié)構(gòu)的混雜性。由于構(gòu)件設計時就是盡可能 被復用,而復用的環(huán)境可能會是不同的操作系統(tǒng),不同的語言環(huán)境和不同的 硬件平臺,因此對于這些環(huán)境中的測試難度比較大。 f 測試分布式軟件時的監(jiān)控問題。由于分布式軟件一般部署在不同的硬件平臺 上,所以在測試過程中,跟蹤就比較復雜。 g 事件重構(gòu)。系統(tǒng)中可能存在異步消息和同步消息,僅僅對系統(tǒng)做常規(guī)的測試 是不充分的,需要對系統(tǒng)做一些重構(gòu)而進行測試。 h 構(gòu)件的競爭和死鎖。這類問題非常難處理。 i 多線程問題??赡艽嬖谟行┕δ茉诙嗑€程下可以運行但在單線程下無法運行。 而且這種問題不好判斷。 j 容錯測試問題。許多系統(tǒng)要求有高度的容錯能力,如核電站、宇宙飛船等, 因為在測試時有些錯誤很難出現(xiàn),因此可以使用故障注入技術引入缺陷,觀 察系統(tǒng)的錯誤處理代碼能否正常工作。但引入的錯誤不一定會激發(fā),有時要 9 基于u m l 2 0 圖的c b d 軟件集成測試方法研究 控制或改變系統(tǒng)的流程來激發(fā)這些錯誤。而且故障發(fā)生后不一定立刻表現(xiàn)為 失效,當運行到后續(xù)模塊,甚至是幾天之后才表現(xiàn)為軟件失效,為查找出錯 誤的根源帶來困難。 1 0 第三章u m l 2 0 理論及j 測試 第三章u 池2 0 理論及其測試 u m l 2 0 ( u n i f i e dm o d e l i n gl a n g u a g ev e r s i o n2 0 ) 是一種定義良好、易于表達、功能 強大且普遍適用的建模語言【3 5 1 。它溶入了軟件工程領域的新思想、新方法和新技 術。它為高質(zhì)量的軟件開發(fā)與測試提供了有力的保障。本章將介侶u m l 2 0 的新特 性,設計目標,主要組織特征,基于u m l 的傳統(tǒng)軟件測試方法,以及基于u m l 2 0 面向構(gòu)件( ( o b j e c t o r i e n t e dc o m p o n e n to o c ) 開發(fā)與測試方法。 3 1u m l 介紹 u m l 是由著名的面向?qū)ο蠹夹g專家o r a d yb o o c h 、i v a rj a c o b s o n 和j a m e s r u m b a u g h 發(fā)起,在b o o c h 表示法、o o s e ( o b j e c t - o r i e n t e ds o f t w a r ee n g i n e e r i n g ) 方法 和o m t ( o b j e c tm o d e l i n gt e c h n o l o g y ) 方法的基礎上,廣泛征求意見,集眾家之長, 反復修改而完成的。在美國,u m l 已經(jīng)獲得工業(yè)界和學術界的廣泛支持。使用u m l 模型,是當前軟件界成功地進行軟件開發(fā)所不可缺少的關鍵環(huán)節(jié)。據(jù)專家預測,在 未來1 5 2 0 年內(nèi),u m l 將是軟件開發(fā)的支柱技術。 u m l 提供了一種對伙伴系統(tǒng)進行可視化,詳述構(gòu)造和文檔化的工業(yè)標準機制。 但這種靜態(tài)定義卻無法描述u m l 驚人的發(fā)展速度。u m l 利用一套動態(tài)的,支持不 斷發(fā)展的特征組織其思想。這種不斷發(fā)展的思想已經(jīng)使u m l 經(jīng)歷了v e r s i o n1 0 ,1 1 , 1 2 ,1 3 ,1 4 ,發(fā)展到了今天的v e r s i o n2 0 ,并且提供的功能發(fā)生了很大的變化。 u m l 2 0 還使u m l 的發(fā)展延伸到一些新領域。 3 1 1u l 2 0 設計目標 u m l 2 0 繼承了u m l l x 的思想,就是要讓設計者設計出高復用性,高準確性和 高擴展性的軟件系統(tǒng)。所以u m l 2 0 在開始設計前就提出了設計目標。 a 使得該語言對軟件實體進行建模變得更加可行。 b 對流程和動作建模提供更健壯的機制, c 為不同工具之間的通信創(chuàng)建一個標準。 d 在一個標準的建??蚣軆?nèi)協(xié)調(diào)u m l 。 e 支持基于組件的開發(fā),包括插件可替代性的完整定義。 f 允許軟件進行上下文的較完整的建模,尤其是隨著中間件和w e b 應用技術的不 斷增長,非常需要進行此項功能。 g 提供用于重要語言的標準用戶配置文件或擴展。 基于u m l 2 0 圖的c b d 軟件集成測試方法研究 h 支持通過交互模式的自動實現(xiàn)。 i 增強u m l 對運行時體系結(jié)構(gòu)的支持,包括對內(nèi)部結(jié)構(gòu)的建模支持,由包括對內(nèi) 部結(jié)構(gòu)的動態(tài)行為的描述。 j 利用更清晰的規(guī)范來描述行為鏈接和特化規(guī)則,從而進一步改進狀態(tài)機。 k 利用更好的控制流和數(shù)據(jù)特征改進活動圖。 l 支持交互機制的組合,定義交互,可選交互和并行執(zhí)行的順序。 3 1 2u m l 2 0 與u m l l x 的區(qū)別 u m l 2 0 作為o m g 組織的傾力之作,它更正和擴展了以前的版本。尤其是描述 構(gòu)件的能力大大增強。通過筆者比較和分析u m l l x 和u m l 2 。0 ,歸納了了兩者的 主要區(qū)別,主要表現(xiàn)在以下幾個方面: a 順序圖現(xiàn)在還有多個片斷,允許在一個順序圖上顯示更復雜的選擇。順序圖片斷 支持順序圖元素的重用。 b 新增兩種交互圖;時序圖和交互概觀圖,為用戶查看系統(tǒng)的動態(tài)行為提供新工具。 c 圖現(xiàn)在表達一流的思想,不再與狀態(tài)機合在一起了新的活動圖包括對大量附加 流特征的支持,并且不再把重點放在各種狀態(tài)轉(zhuǎn)換上,而是放在沿著各個活動沿 流動的令牌流上。 d 擴展方面,u m l 2 0 著重強調(diào)用戶配置文件的使用,以及各個模型級別,以便各 個模型把重心放在各自的主要目的上,并使人們利用通用方法來解決各種問題, 這些擴展更易于人們利用某些級別的模型生成代碼。 e 方面的擴展:復合結(jié)構(gòu)的引入使得用戶可以顯示高層類別之間的連接,以及該類 別所需要的運行時元素。 f 對組件的環(huán)境需求提供明確規(guī)則,協(xié)議狀態(tài)機和端口提供了在量支持組件開發(fā)的 特征。 g 用于定義某個類別的內(nèi)部結(jié)構(gòu)的規(guī)則更加明確,使得人們更容易于分解一個類 別。 h u m l l x 的協(xié)作圖現(xiàn)在已經(jīng)不使用了,變成了通信圖。 3 1 3u m l 的定義 u m l 是一種標準的圖形化建模語言,它是面向?qū)嵗治雠c設計的一種標準表 示。它不是一種可視化的程序設計語言,而是一種可視化的建模語言;不是工具或 知識庫的規(guī)格說明,而是一種建模語言規(guī)格說明,是一種表示的標準。u m l 的定義 1 2 第三章u m l 2 0 理論及j # 測試 包括u m l 語義和u m l 表示法兩個部分:u m l 語義描述基于u m l 的精確元模型定 義。元模型為u m l 的所有元素在語法和語義上提供了簡單、一致、通用的定義性說 明,使開發(fā)者能在語義上取得一致,消除了因人而異的表達方法所造成的影響。對 于u m l 可以從以下幾個方面來理解。 a 不是過程,也不是方法,但允許任何一種過程和方法使用它; b 使用、表達能力強,進行可視化建模; c 與具體的實現(xiàn)無關,可應用于任何語言平臺和工具平臺; d 與具體的過程無關,可應用于任何軟件開發(fā)的過程; e 簡單并且可擴展,具有擴展和專有化機制,便于擴展,無需對核心概念進行修改; f 面向?qū)嵗脑O計與開發(fā)中涌現(xiàn)出的高級概念( 例如協(xié)作、框架、模式和組件) 提供 支持,強調(diào)在軟件開發(fā)過程中,對架構(gòu)、框架、模式和組件的重用; g 可升級,具有廣闊的適用性和可用性; h 。有利于面向?qū)嵗ぞ叩氖袌龀砷L; 3 1 4u l 2 0 主要組織特征 視圖( v i e w ) :它顯示了被建系統(tǒng)的各個方面,它是由多個圖組成的一個抽象模型。 在建立系統(tǒng)時需要建立多個視圖,來顯示多個方面的特征,從而描繪一個完整的系 統(tǒng)。主要包括:用例視圖,邏輯視圖,實現(xiàn)視圖,進程視圖和部署視圖。 圖( d i a g r a m ) :它包括描述u m l 視圖內(nèi)的各種圖形元素。通過圖的相互組合提 供被建模系統(tǒng)的所有視圖。主要包括:用例圖,類圖,對象圖,狀態(tài)機( 行為狀態(tài)機, 協(xié)議狀態(tài)機1 ,活動圖,順序圖,通信圖,組件圖,部署圖和復合結(jié)構(gòu)圖。 模型元素( m o d e le l e m e n t ) :它代表普通面向?qū)ο蟮母拍钜约八鼈冮g的關系:關 聯(lián)、依賴和泛化關系。同一個模型可以在不同的u m l 圖中使用,都保持其原有的特 性。 通用機鋁l j ( g e n e r a lm e c h a n i s m ) :它可為元素提供一些額外的注釋,信息或語 義,還可提供擴展機制對u m l 擴展。主要包括:修飾,注釋,規(guī)格說明。擴展包括 構(gòu)造型,標記和約束。 模型驅(qū)動架構(gòu)( m o d e ld r i v e ra r c h i t e c h u r e ,m d a ) :將u m l 封裝在一個m d a 中, 它力求u m l 模型變得更加可行,并且能與開發(fā)支持工具更好發(fā)集成。 3 2 基于u m l 的軟件測試 基于u m l 的軟件測試屬于基于規(guī)格說明的軟件測試。u m l 模型在指導測試方面 1 3 基于u s l 2 0 圖的c b d 軟件集成測試方法研究 有如下優(yōu)點【”】: ( 1 ) 通用性:u m l 作為軟件工程領域內(nèi)的標準建模語言,目前己被廣大軟件設 計者廣泛使用,并取得了好評,同時也有很多商業(yè)軟件工具來支持它。比如r a t i o n a l r o s e ,o p e n u m l 等。 ( 2 ) 可迭代性:可以盡早開始測試活動( 包括測試計劃的制定、測試大綱與測試 用例的設計等) ,并隨著設計活動的細化,并不斷細化生成的測試制品。這樣,軟件 開發(fā)與測試開發(fā)可以并行進行,并在整個測試過程中進行持續(xù)測試活動。眾所周知, 越早開始測試越好。綜合上述原因,我們認為u

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論