摘要:AspectJ是一種基于Java、面向方面的程序設計語言,它使用pointcuts,advice和aspects來抽象實現面向方面的主要功能。切入點(PoIntCut)是一種表示連接點集合的表達式,專門用來在方面執行期間確定連接點集合的模型化結構。開發者在確定切入點時經常會寫出一些不正確的表達式而造成方面應用錯誤。故障模型詳細說明了使用AspectJ編寫程序時經常會遇到的一些錯誤。文章對切入點故障進行了詳細分析和歸納,以便進一步研究面向方面程序的測試。
關鍵詞:面向方面;AspectJ;故障模型;測試
0 引言
面向方面程序設計是最新流行的一種軟件開發技術,在軟件組件開發中有重要作用。它提高了程序的可讀性,可維護性。使用方面程序設計技術可以在不修改基礎代碼的情況下對基礎代碼的行為進行操作,如事務,日志等。然而面向方面作為一種新的編程技術也為現代的軟件開發引入了一些新的不可預知的問題,有些傳統的面向對象的測試架構和技術已經不再適用于測試面向方面的內容。因為方面不是獨立的測試單元,它會橫切其他的一些模塊,還會引入一些變量,給測試帶來很大的困難。為了對這種使用新方法編寫的程序進行測試,必須先分析這種技術的精髓,找出面向方面編程容易發生的故障、故障容易出現的位置以及故障發生的原因,然后才能對其進行有效測試。
Roger T Alexander等針對AspectJ的語法特點以及技術實現上容易出現的一些故障提出了9種故障模型,并對它們進行了分析。本文主要是對第一種故障模型:切入點的強弱不正確,進行了詳細的分析。
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。