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將不會增加面向對象框架的復雜性。
圖-1 BIT面向對象框架
值得一提的是,對于一個基于最終用戶的BIT框架來說,已經存在FRFs、PRFs(部分)和全局BIT子系統的BITs。因此一旦有新的BITs加入,我們需要將它與原有的BITs進行整合。通過這個途徑,一個理想的、可測試的、測試繼承的和可復用的面向對象框架將得以實現。由于BITs面向對象框架內建測試機制,因此維護人員和終端用戶無須在測試和維護階段重新分析代碼,設計測試用例和使用這些用例進行測試。
3. BITs面向對象框架的重用
3.1對象級別的BITs復用
BIT對象的方法(函數)按常態模式和測試模式進行分類。前者對應的方法(函數)實現的是代碼的可復用而后者實現的是測試重用。
在常態模式下,BIT對象擁有同普通對象相同的方法(成員函數)。對象的靜態和動態行為也與普通的對象毫無差異。它們以ObjectName::FunctionName; 的方式被調用。BITs對對象的效率不造成任何影響。
在測試模式下,內建的BITs通過調用測試用例被激活,其激活方式為ObjectName::TestCaseI。每個TestCaseI由一個BIT驅動器(BIT Driver)和測試用例構成。測試結果能夠自動地被BIT驅動器報告。
圖-2 BIT對象結構
3.2 面向對象框架級別的BITs復用
與BIT對象相似,一個帶有可復用BITs的面向對象框架亦擁有常態模式和測試模式之分。該框架能夠實現代碼重用和測試重用。
在常態模式下,一個BIT面向對象框架與普通的面向對象框架在功能上并無差別。它的靜態和動態行為也與普通的面向對象框架無差異。BIT框架內TRF,PRF和ASF功能能夠以ObjectName::FunctionName; 的形式進行調用。BIT類和子系統不影響面向對象框架的運行效率。
BIT面向對象框架內建測試機制,因此以及面向終端用戶的BIT對象框架能夠在測試模式中被調用和重用?蚣艿氖褂谜哌可以在該系統中添加BITs聲明和類。
圖-3 BIT框架結構
文章來源于領測軟件測試網 http://www.kjueaiud.com/