自動測試:變化多端的輸出

發表于:2014-12-17來源:uml.org.cn作者:不詳點擊數: 標簽:自動測試
在自動測試系統中, 經常會遇到輸出測試報告的問題。報告內容類型是一定的,大致可以分為: 測試的集合的名稱

  在自動測試系統中, 經常會遇到輸出測試報告的問題。報告內容類型是一定的,大致可以分為:

  測試的集合的名稱

  測試開始的時間

  測試結束的時間

  測試用例的名稱

  測試結果

  測試數據

  測試日志

  ...

  這樣看上去,好像并不存在什么問題,因為報告內容類型可以被定義清楚,并且也不存在變化的需求。所以,只需在需要輸出測試報告的地方將內容輸出就可以了。

  但是,現實往往不如人所愿,隨著測試系統的擴展,原先我們將這些輸出是以本文格式文件的信息存儲在本地。而現在為了與另一個測試系統交互,我們必需將輸出的形式由文本格式文件轉變成為XML格式的輸出。這可是個不大不小的麻煩,我們必需修改那些原來“需要輸出的地方”的代碼??上攵?,這些代碼已經被層層的包圍在測試邏輯中間了。

  這真是一件簡單、暴力的活動。誰也不原意做第二次, 不過,放眼望去,“第二次”并不遙遠。數據庫式的集中存儲正向我們招手。輸出到數據庫已經被提上議程。我們不得不考慮將報告輸出的邏輯與測試的邏輯分離開。其實,這個不是什么困難的事,我們只需根據報告內容類型定義一個接口,并實現兩種不同的輸出方式,文本格式輸出和XML格式輸出。

Output class diagram I

  在需要有新的輸出方式的時候, 我們只需要添加一個新的輸出方式的實現。同時,為了能使輸出方式的可配置,還需為它設計一個簡單工廠。這樣,出輸格式的擴展性就得到了保證,還可以通過配置文件還選擇不同的輸出。

OutputterFactory
1
package my.cnblog.output; 2
3
/*The Interface of Outputter*/ 4
5
public interface IOutputter { 6
public boolean StartSuite(String suiteName); 7
public boolean EndSuite(); 8
public boolean TestResult(String result); 9
/* 10
* other interfaces 11
*/ 12
} 13
14
package my.cnblog.output; 15
16
/*one implement of Outputter*/ 17
18
public class TXTOutputter implements IOutputter { 19

原文轉自:http://www.uml.org.cn/Test/200902127.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97