2013-10-22 93 views
4

我正在使用Microsoft Test Manager 2012創建並運行自動和手動測試。我定義了2個配置:一個用於我的測試,應該在SQL Server上運行,一個用於運行在Oracle上的測試。自動化測試和多個配置

當我創建一個測試用例時,MSTM會自動創建兩個測試:一個用於Sql Server,一個用於Oracle。他們有相同的ID,這意味着他們是相同的測試。到現在爲止還挺好。那是應該發生的。

但我想自動化這兩個測試。當我創建我的代碼並將其與測試用例相關聯時,兩個測試都會獲得自動代碼。這很糟糕,因爲我想測試1在SQL上運行,測試2在Oracle上運行,並且它們共享相同的測試代碼。

這是否意味着我必須在測試中放入一些邏輯,以便他們知道應該在哪個數據庫上運行?有沒有更好的方法來避免這種情況?

+0

您是否有不同的環境來運行自動化測試:一個用於SQLServer,一個用於Oracle?你是否想爲兩者使用相同的測試代碼(僅使用不同的數據庫連接)? (我不確定你說的「測試1和測試2是否共享相同的代碼」是什麼意思。這些測試的延伸是一樣的嗎?) – Elena

+0

另一個問題是你將如何開始自動化測試? 使用DefaultLabTemplate11構建定義模板或從命令行(批處理腳本)調用tcm.exe? – Elena

+0

@Elena我只有1個環境來運行我的測試。我想對兩者使用相同的測試代碼,使用不同的數據庫連接或另一種技術。我正在使用DefaultLabTemplate11,但我可以更改它。 –

回答

1

選項1
創建不同測試用例,一個用於SQLServer的和一個用於Oracle,然後首先通過測試1和第二通過的Test2自動化。所以你可以通過單個構建定義來運行它們,它使用DefaultLabTemplate11

使用建議的方法測試代碼不會有實施以識別他們應該運行在哪個數據庫附加邏輯。

你說,你要使用的測試用例手動和自動測試,所以我想在測試用例你今天由幾個測試步驟描述如何手動運行測試。
在這種情況下,您可以複製現有測試用例和使用共享的測試步驟但你仍然需要更新兩個測試用例當你添加/刪除一些測試步驟 ...這將是唯一的建議方法的缺點。

爲了擺脫這種不利的,你可以創建「手動數據庫測試」 測試用例,分配兩個配置你已經有了它,使用它僅用於手動測試。此測試案例將包含測試器的所有測試步驟
然後創建兩個測試用例我已經在上面描述過了,將它們自動化並僅將它們用於自動化測試。

選項2
如果您的測試環境是你能避免創建兩個測試用例虛擬機:

  1. 存儲在您的測試環境中的文件的連接字符串,讓試讀這個文件。
  2. 創建兩個快照:第一個文件包含SQLServer連接字符串,第二個包含Oracle連接字符串。
  3. 創建兩個構建定義一個環境恢復到第一個快照,第二個恢復到第二個快照。

這種方式可以讓您單測試用例但有兩個生成定義如果生成定義應該部署和運行測試之前建立的源代碼可以變得不方便另一方面。

那麼......第三個選擇是在測試中實現附加邏輯,以便識別它運行在哪個數據庫上。
但是在這種情況下,您還必須創建兩個構建定義,因爲您有兩個配置,並且每個構建定義只能選擇一個。

(我希望我能夠很好地描述它,不要猶豫,問問題仍然不清楚)。