2013-08-21 16 views
1

您如何確定構建測試失敗的責任?我們有一個大約有80個模塊的maven java build,包含25000個測試。當我們每晚完成時,我們會列出現有和新的故障。格林先生在用刀研究 - 誰打破了構建?

當測試失敗時,我們有以下數據:自去年建立從單元測試失敗

  • 調用堆棧
  • 源代碼
  • Maven的依賴關係樹
    • 提交者我們可以基於以下內容進行分配:

      • 所有自上次測試誰犯
      • 誰最後一個接觸測試源文件
      • 誰最後一個接觸測試(找到調用堆棧測試,發現行,使用SVN怪來確定作者)

      我想要做的是確定爲什麼測試破裂,找到最好的調查員並讓他們修復它。但是,單元測試會執行一個操作,檢查並斷言,然後拋出。調用堆棧來自斷言,而不是問題發生的位置。

      我想我可以在斷言之前掃描文件並追蹤使用中的對象。

      • 查找該對象的源文件。我只會看我的對象不是第三方
      • 確定自上次通過測試以來是否被修改。
      • 用怪來識別作者

      有沒有人有一個更好的想法或知道處理一些或所有這些分析的插件?

      感謝

      彼得

    回答

    3

    如果你的測試,更好的命名和輸出更好的消息時,他們失敗了,理論上你不應該直接需要一個堆棧跟蹤問題的原因。它會啓發人們爲什麼/他們在做出我的承諾時如何破壞代碼。我不知道這是否是現實中的一種選擇,尤其是因爲情況更糟糕,您可能需要修改25,000個測試。

    這聽起來像你要求的工具已經是你使用的工具。你有自動化測試,以及構建失敗時誰承諾的列表。我認爲最大的問題是您的反饋環路需要一整晚。如果您有更多的單元測試頻繁運行,那麼當您破壞構建時會更明顯,因爲您會更快地通知它。

    +0

    對,我可以將構建分解成在CI中運行的單個模塊構建,並在一天中進行測試。我使用maven,所以配置不會那麼困難。 –