摘要: 面向對象框架將軟件的復用級別從代碼模型擴展到了體系結構和域信息層次。本文更進一步地將這種擴展延伸至內建自測試(built-in tests 簡稱:BITs)的面向對象框架開發中來。在對象和面向對象框架中嵌入BITs的方法將被著重介紹。本文還仔細分析了在常態模式和測試模式中帶有BITs的對象和框架的行為,并系統地提供了在面向對象框架開發可重用BITs的方法。在本文所述的這種開發模式最引人注意的還是面向對象框架中的BITs能夠象普通面向對象的代碼一樣被繼承和重用。因此我們可以通過BIT方法來提高自測試面向對象框架的可測試性和可維護性。BIT方法可以用于面向對象框架的分析、設計、編程等階段。
關鍵詞: 軟件工程,面向對象技術,框架,模式,代碼重用,框架重用,測試重用,內建測試,可測試軟件
1. 介紹
面向對象框架的設計方法在[1-4]中已經被多次討論。面向對象軟件測試的特征和方法在[5-10]得以極大地擴展。本文所要闡述的是在面向對象框架開發中使用BIT方法和重用BITs。
普通的軟件測試常常是基于應用規范,因而較難重用,商用化的模塊或包尤為甚。即使是在一個軟件開發組織中,由于程序設計和測試分布于不同的部門并用不同的文檔來進行描述。這使測試重用變得十分困難[5,11,12]。
在[5,13-15]中BIT的概念曾得以介紹,而且在面向對象中運用可繼承和可重用的測試方法的思路在[16,15]中亦被提及。本文將更進一步地提出一實用的途徑,該途徑結合了BIT方法和重用技術。通過該途徑,在面向對象框架開發中應用中可復用BITs能夠系統地被拓展。
2. 面向對象框架中的內建測試
BITs是一種新型的軟件測試途徑。 BITs在軟件中以源代碼(成員函數,方法)的形式出現。BITs在常態模式下是獨立的并在測試模式下被激活。面向對象框架將軟件的可復用度從代碼模型擴展到了體系結構和域信息方面?蓮陀玫腂ITs方法更進一步地延展了這種軟件的可重用性。
BIT是一種設計可測試軟件新思維。傳統的面向對象測試著眼于為已經存在的對象和框架編寫測試代碼,生成測試用例?蓽y試的面向對象框架則著眼于為對象和框架建立可測試性。BIT技術最引人入勝的特色在于測試能夠被繼承和重用。BIT方法可以用于面向對象框架的分析、設計、編程。
2.1 對象級別的BITs
通過在傳統的對象結構[18]中嵌入測試聲明和測試用例。生成的BIT對象的原型如標記A所示
Class class-name {
// interface
Data declaration;
Constructor declaration;
Destructor declaration;
Function declarations;
Tests declaration; // Built-in test declarations
// implementation
Constructor;
Destructor;
Functions;
TestCases; // Built-in test cases as new
// member functions (methods)
} TestableObject;
標記A BIT對象
BITs方法作為BIT對象的組成成分。BITs與普通對象中標準的構造函數和析構函數一樣有著相同的語法形式,因此 BITs如同類的方法(成員函數)一樣能夠被繼承和重用。BITs能夠融入對象和模型對象框架中并能輕易的實現為C++,JAVA等語言。
BIT對象如同普通對象一樣在常態模式下可以調用正常的方法(函數),在測試模式中BITs被調用。其調用形式如下所示:
TestableObject :: TestCase1;
TestableObject :: TestCase2;
......
TestableObject :: TestCaseN;
因而,BIT對象能夠自動地被測試并報告響應結果。
2.2 框架級別的BITs
事實已經證明:如果每一個對象都能夠被測試,那么包容這些對象的系統也能夠被自底向上地被測試。因而這種方法同樣能夠擴展到面向對象框架級別。一個面向對象的框架具有一個BIT子系統和眾多BIT類。圖-1是一個帶有BIT子系統和BIT類的框架。模塊1,3 和 2 分別為可測試、部分可測試和應用規范子系統的BIT類集合。子系統4是一個全局的子系統,通過預設的事件驅動線程和場景對整個系統進行測試。BIT類和子系統可能會給類間的測試增加額外的耦合。通過限定測試模式中耦合的激活數,采用BIT將不會增加面向對象框架的復雜性。
文章來源于領測軟件測試網 http://www.kjueaiud.com/