2008-09-16 52 views
3

我正在尋找一種迴歸測試工具,用於我們正在構建的一套設備。黑盒迴歸測試的測試框架

當前的概念是,您可以爲工具創建一個輸入文件(text/csv),以指定被測系統的輸入。該工具然後捕獲系統的輸出並將輸入和輸出記錄到輸出文件。

輸出採用與原始輸入文件相同的格式,可用作後續工具運行的輸入,測量輸出與前一次運行的值相匹配。

兩次運行的結果不會完全匹配,有一些時間差異取決於電池的狀態,或取決於設備的其他內部狀態。

我們必須編寫我們自己的接口來將工具中的命令傳遞到設備並捕獲設備的輸出。

這是一個相對簡單的任務,但我正在尋找一個現有的工具/包/庫,以避免重新發明輪/偷經驗教訓。

回答

0

您可以使用任何測試框架。最困難的部分是編寫工具來從您的測試系統發送/檢索數據,而不是實際的字符串比較。

你的測試將只是一切是這樣的:

x = read_input_file(ifilename); 
y1 = read_expected_data(ofilename); 
send_input_file_to_server(); 
y2 = read_output_from_server(); 
checkequal(y1, y2) 
2

我最近建立這樣一個系統上的git(http://git.or.cz/)的頂部。基本上,編寫一個程序,將所有輸入文件,發送到服務器,讀取輸出,並將其寫入一組輸出文件。第一次運行後,將輸出文件提交給git。

對於未來的運行,你的成功是由運行完成後git倉庫是否乾淨確定:

test 0 == $(git diff data/output/ | wc -l) 

作爲獎勵,你可以使用所有的Git工具比較差,如果提交它們事實證明這種差異是一種改進,所以未來的運行將會通過。在分支之間合併時它也很有用。

+0

這是一個創造性的方式來做到這一點。 – kizzx2 2010-06-10 08:14:34

1

我不確定會有一個完全適合您需求的包裝。您需要考慮以下幾點:

  1. 如何將數據傳遞到設備以及如何收回設備。這是非常特定於應用程序的,但通常很好的選擇是舊的非常好的串行端口(RS232),對於任何編程語言都有一個簡單的實例存在。
  2. 如何運行測試。單元測試框架絕對可以幫助你。現有的框架具有許多基本功能 - 選擇要運行的測試,選擇報告的詳細級別(對於稍後的詳細調試和後期的生產階段PASS/FAIL分析非常重要)。我從使用測試嵌入式設備的Perl和Python測試框架中獲得了很好的經驗。
  3. 您還必須決定如何進行比較。正如您正確指出的那樣,結果將不相同。這是您的領域知識的來源。通常,它只是使用適用於您的域的誤差範圍來實現。當然,你將無法使用基本的diff工具,並且必須編寫一個智能腳本。