2012-10-18 66 views
2

我需要一個BDD/ATTD /規範專家的建議。 (對不起了很長的文章,我不知道如何表達的問題較少的話)規格示例:如何管理低級別詳細信息

問題描述

我們一直都在一箇中等規模的項目約1年。 該團隊使用受驗測試驅動的基於流程的過程(以詳細測試用例的形式編寫)。

而現在,隨着需求的變化,我們開始遇到這些測試的可維護性問題。

  1. 他們是(非常)硬盤讀取一個絕對不作爲產品 規格多日的要求結果
  2. 稍有變化 重構的測試過於加上實施細則

我們怎麼看它解決

爲了解決我們要我們的測試轉化成可執行的規範問題。 所有的書/文章我讀過(例如,通過例如通過戈傑科·阿德齊奇規範)建議,我們不與低級別的詳細信息,告訴相當如何產品應當執行的,而不是什麼超載規格產品應該符合商業期望。

這似乎是合理的,因爲規格可能會更具可讀性和可維護性,並且反映了業務目標,而不是過分指定時的軟件設計。 但是,這些低級別的細節不能被丟棄 - 雖然它們並未被業務用戶明確地詢問,但它們仍然是可預期的。例如,如果用戶按下「處理按鈕」,則最好禁用並且「取消按鈕」被啓用,直到處理完成。像這樣的細節在規範中似乎是不必要的,但對於應用程序被客戶接受是必需的。

我們在每個級別使用(A)TDD,並且僅用於編寫代碼以進行測試。現在不用詳細的測試,我們會有更多的抽象可執行文件規範,而且根本不知道把低級細節放在哪裏。

問題

因此,能不能有人建議管理水平低的要求是不能去了說明書的好的做法呢?

回答

1

我想描述的步驟爲When user presses 'Process button'絕對是告訴我們系統應該如何實現,而不是描述什麼產品應爲企業做的。我們從這一步中知道什麼?只有我們在UI上的某處有按鈕(不是鏈接,不是其他控件),其上有文字Process。沒有關於商業。更糟糕的是,它非常脆弱。如果您將按鈕的文本更改爲Start,則此步驟將無效。如果您更改控制類型,則相同。

點擊按鈕不是商業目標。那麼,如何描述業務目標呢?我認爲When user starts processing bills是很好的步驟定義。如果您更改UI,則此行爲將保持不變。它不再脆弱。只有步驟的實施纔會改變。

+0

謝謝,但您的文章相當重複我所說的 - 過分規定不是一個好主意 - 但不回答我的問題。這樣的需求仍然需要檢查(因爲這是一個很好的應用程序的常識)。如果它不符合規範,那麼可能會在測試執行階段手動測試(然後將成爲手動迴歸套件的一部分) - 這不是我們想要的。我們是否應該與UI交互和模型保持一個單獨的規範?我們是否應該在單元測試級別或可執行規範背後的測試自動化層檢查這些東西? – olldman

+0

@olldman實際上我指出與UI相關的細節應該轉到步驟的實現(例如,如果您使用Speclfow細節將轉到步驟定義文件)。當領域專家將通過場景查看時,他將看到他是「用戶開始處理賬單」而非UI用戶員工的專家。我建議你閱讀這個很好的丹北文章主題http://dannorth.net/2011/01/31/whose-domain-is-it-anyway/ –

+0

我想我開始看到你的觀點。我仍然有點擔心的是,規範不僅適用於領域專家,還適用於將要實現該功能的人員。在您的項目中,您是否將這些細節留給開發人員處理?不應該在別處指定嗎? – olldman