2014-09-12 50 views
2

我目前正在爲大型組織工作,其中約2k位開發人員在我們的IT部門工作。我們維持很多事情,包括我們的電子商務平臺,目前有大約30個項目正在影響這個平臺。維護大量Concordion腳本

最近,我們所有的團隊都被指示使用Concordion和Selenium Webdriver進行一系列自動化測試。一段時間以來,這一直進行得相當順利,許多測試已經創建,但最近維持現有的測試,而我們的電子商務平臺不斷變化一直是一個噩夢。我們有數以千計的測試腳本覆蓋了我們網站的許多部分,但Concordion似乎沒有任何功能將腳本分成可重複使用的隔間,然後可以維護一次,而不必爲一次更改更改數百個HTML文件。

其他人怎麼接近這個?

回答

2

感謝您與我們分享您的經驗。通過實例聽取/閱讀關於行爲驅動開發/規範的大規模應用是很好的。

可以幫助您的一種方法是關注關鍵示例(http://gojko.net/2014/05/05/focus-on-key-examples)。在規範研討會期間,整個團隊正在努力對新用戶需求和需求達成共識。然後你繼續編寫包含關鍵示例的規範文檔。在那裏你不應該試圖涵蓋所有的東西,而只是寫出儘可能多的例子來表達共同的理解。 此外,您應該嘗試確定示例所基於的概念。是否有一些與相似主題相關的例子 - 這可能是一個基本概念。如果他們只關注一個概念(例如驗證卡號),那麼理解這些例子通常會更容易。通常只用幾個例子就可以描述每個概念。

你有任何其他類型的自動化測試(例如單元測試)嗎?您是否遇到與其他測試相同的可維護性挑戰?您能否使用這些其他測試類型的良好實踐來改進您的Concordion方法?

你能告訴我們更多關於你的設置嗎?您公司內已創建多少個有效規格?

+0

嗨,謝謝你的詳細解答。我們的後端代碼通常都經過了單元測試。遺留代碼通常會在單元測試中遇到問題,因爲一個類中的更改有時會導致錯誤級聯到其他類中。我們遺憾地沒有實施測試第一策略,所以我們只有在它們導致構建失敗後才真正改變jUnits。 我們使用Concordion和Selenium WebDriver的組合來測試我們的前端。有一些代碼鏈接到一個存根環境中。目前我們公司有數千種規格。 – user524351 2014-09-29 10:33:37

3

Concordion的目標不是將測試腳本實現爲HTML,而是用HTML來描述您正在測試的行爲(您試圖實現的是什麼)。實現細節(它如何測試)是作爲Java代碼實現的。然後,可以使用適當的抽象級別構造此代碼,以便對被測試系統的每次更改只需要更改代碼的一部分。

您的HTML規範應該只需要在業務規則發生變化的罕見情況下進行更改。

這些概念在Concordion主頁的Hints and Tips選項卡上進一步描述。