2015-07-03 74 views
0

假設我有一堆單元測試,集成測試和覆蓋我的應用程序的e2e測試。對這些產品持續運行是否有意義,例如每10分鐘?當測試生產環境持續有意義

我在想,不,原因是這樣的: 我的測試已經在每次產品部署之後運行。如果他們通過並且之後沒有代碼改變,他們應該繼續通過。所以之後測試它們是沒有意義的。

我真的想不斷測試的是我的基礎架構 - 它還在運行嗎?在這種情況下,每10分鐘運行一次API集成測試來檢查我的API是否仍然有效。所以我正在處理我的測試套件的一個子集 - 那些測試我的基礎設施可用性(集成+ e2e)而不是單個代碼位(單元測試)的測試套件。所以在實踐中,我是否有單獨的測試套件來測試prod正常運行時間,而不是用來測試部署前/後部署的套件?

+0

在代碼更改與監視基礎結構完全不同的情況下,我會保存測試。即使你的代碼幾周沒有變化,你也應該在一定的時間間隔內監控基礎設施的正常運行時間 – Marged

+0

我已經設置了類似的東西。對於監控速度快且有用的測試用標籤「BVT」 - 構建驗證測試進行標記。在部署期間首先運行BVT(如果出現問題,請更快地進行反饋),然後執行其餘測試。 BVT也可以定期完成以監控應用程序。 – Brendan

回答

0

這樣的「冗餘」驗證(它們也可以包括建築,不僅僅是測試)提供額外的數據點,提高了實際生產過程的監控精度。

根據您的生產環境的複雜程度,即使是簡單的「它正在運行嗎?」問題可能沒有一個簡單的答案,驗證的子集/快捷方式版本可能不會削減它 - 你只會涵蓋這些版本,而不是實際的生產版本。

例如,僅僅因爲構建服務器已啓動並不意味着它也能夠成功構建產品,所以您需要檢查構建本身的每個方面:每個工具的可用性,存儲,依賴關係, OS資源等等。對於複雜的構建,僅僅執行構建本身可能比管理代碼可靠地更簡單檢查構建是否可行;)

有2個生產過程屬性可以從更多精確的監測(以及哪個子集/快捷方式驗證將不適合):

  • 可靠性/穩定性 - 類型,occurence率和間歇性故障的根本原因(是的,那些討厭的驚喜這可能使會議的發佈日期或不之間的差異)
  • 性能 - 的平均/各種驗證的最小/最大持續時間;尤其重要的是,如果驗證在所涉及的持續時間/資源方面昂貴;趨勢可能希望用於規劃,預算,生產的ETA等

唐諾如果上述任何適用於或有你的情況下可接受的成本/效益比,但他們絕對是最非常大/複雜的SW項目重要。

相關問題