2012-01-12 71 views
2

我一直在想如何在處理物理設備時進行CI風格的測試。使用物理設備進行持續集成測試

我想你有一套測試和一組設備可以運行它們。 此外:

  • 某些測試可能需要特定的設備型號。
  • 某些測試可能需要使用多個設備。

什麼CI服務器支持這個?

我對那些有本質上或通過插件的部分支持感興趣,因爲我對如何完成它感興趣。

+1

你可以更具體的術語物理設備?你在談論物理服務器還是移動設備? – andreadi 2012-01-13 12:38:35

+0

我在考慮更多的網絡連接設備。服務器可能會計算是否安裝了特定的第三方軟件/硬件,您的代碼必須經過測試。 – Lethargy 2012-01-13 15:58:40

回答

1

持續集成使團隊能夠整合&經常測試他們的工作。自動構建意味着編譯,鏈接和運行單元測試。您希望您的CI能夠快速運行,尤其是在每次入住時運行它。這就是爲什麼你想限制CI活動來單獨確認構建和單元測試。你所要求的似乎更多 - 沿着質量保證(QA)測試的路線......並且將質量保證(QA)故障混合到您的CI工作中會降低開發工作的進度。

因此,我更多的是與CI相關的印象活動不依賴最終的物理機器表示工作最終可能會遷移到。

現在......這並不意味着你不能採用CI編譯的軟件包並將其運行在最終的目標機器上......但是,這又被認爲是一項單獨的活動。

這似乎在以下article by Martin Fowler重新執行。

注意他沒有談論最終的目標設備......只有構建機器。

+1

您對即時反饋循環提出了一些優點。也許我應該把它當作一些其他形式的測試,例如迴歸。 – Lethargy 2012-01-17 10:31:09

+0

我們的構建機器可以在各種環境中執行CI並進行部署和測試,作爲連續交付管道的一部分,請參閱http://conneuousdelivery.com/ – blank 2012-01-17 15:22:21

1

我可以建議測試管理器是Microsoft的TFS套件的一部分。除了基於Windows的許多不同的環境,我還沒有嘗試過,但我知道有很多連接器。對於基於Windows的環境,我相信它會滿足大多數需求。

我使用它進行夜間測試來執行煙霧測試(打開它,看看是否有煙霧出來),但是你必須小心保持測試小,以便在幾小時內完成測試,而不是幾天,如果你想讓它成爲你的CI的一部分。

然後,當您具有足夠好的質量時,您可以根據需要進行迴歸測試和集成測試。

0

我不會太追趕CI系統應該做什麼或不做什麼。相反,我會專注於您正在嘗試解決的問題。聽起來這個問題是爲了促進在多個平臺上的開發。您可以使用持續集成的概念,併成功解決問題。我知道,因爲我過去做過。

我實現了一個代碼編譯系統,需要在4個不同的平臺上成功編譯和測試(nt,wince,linux-arm,linux-x86)。CI服務器會:

  • 使用一個Linux和WINNT構建服務器編譯(和交叉編譯)
  • 編譯測試,然後支撐庫將被複制到適當的設備和自動試運行執行。
  • 測試套件完成日誌將被複制回後,(或者它被寫入到一個網絡安裝FS)
  • 如果測試套件是成功的,我們將標籤的來源,並打包庫和可執行文件。

這個平臺在提交之前被重新用於開發者驗證。開發人員將運行部分構建和測試(只更新的源代碼將被重新編譯,然後重新運行這些測試)。 CI將執行完整版本(從頭開始)

我們的構建速度非常快,因爲我們擁有適合構建依賴關係的適當DAG。這允許在平臺構建中併發編譯。每個平臺構建也是併發的。結果部分構建花了幾秒鐘,完整構建花費了大約30分鐘。我們的構建服務器相當健壯(針對快速編譯進行了優化)並且代碼庫的大小適中(我不記得統計信息)

+0

我對第二點要點更感興趣:如何執行一套針對一些不同類型的設備進行測試。另外,單個測試可能需要多個設備。 – Lethargy 2012-01-21 21:51:51

+0

@Lethargy:測試被標記爲運行的平臺。特定平臺上的測試運行者只會運行爲該平臺標記的測試。儘管我們沒有跨多個平臺的單一測試運行。 – dietbuddha 2012-01-22 04:11:02