用例的前置條件聲明了啟動該用例之前系統必須滿足的條件。由于該條件由系統負責實施,并要求確定為真,是以在用例執行過程中,不必再對該條件進行檢查。通常,前置條件是指該條件已經通過其他用例的執行進行了設定。如我們說“建立訂單”依賴于“已經登入”這個前置條件,則應去查找是哪個用例設定了這個前置條件(這裡應尋找“登入”用例)。
在編寫前置條件時通常容易犯一個錯誤是,把經常是正确的但是不是必須的條件寫入前置條件。
假設我們正在編寫用例“索要保險賠償金總額”,主執行者是申請人。我們可以假設在索要保險金總額之前,申請人至少已經送出了一個申請或賬單。然而,情況并不是總是這樣,系統不能保證這個假設的正确性,實際上這不是一個必要條件。申請人應該能在任何時候索要他們的保險金額,是以諸如“申請人已經送出了一個賬單”這樣的前置條件是錯誤的。
最小保證是系統向系統項目相關人員作出的最低承諾,尤其是在主執行者的目标不能被滿足的情況下。當然,在目标被滿足的情況下它們仍然成立,但是當主要目标被放棄時它們就成為人們真正關心的事情。多數情況下,兩個或更多的項目相關人員必須在最小保證中被提及,例如可以有使用者、提高系統的公司,還可能有政府管理部門。不必在最小保證中不厭其煩地列舉用例的所有失敗情況。最常見的最小保證是“系統将其執行進度情況記入日志”。最小保證被寫成一些簡單的斷言形式,無論用例如何被執行,這些斷言最終都應為真。它表明每一個項目相關人員的利益都得到了滿足。在目标遭遇失敗的情況下,項目相關人員認可他們的利益得到保護,這是最下保證是否成功/失敗的測試标準。
成功保證說明了用例成功結束後項目相關人員的哪些人員得到了滿足,用例可以通過執行主場景獲得成功,也可以通過執行可選路徑獲得成功。成功保證通常是作為最小保證的添加内容。
觸發事件指明了啟動用例的事件。有時,用例執行過程中的第一步緊接着觸發事件發生,有時觸發事件就是用例中的第一步操作。
用例集是一個可以不斷展開下去的故事,有主執行者需要實作的目标組成。每一個用例都顯示了系統完成目标或放棄目标互相交織的情節。故事的主線表示為一個主成功場景,一些場景片段作為主線的擴充。每一個場景或場景片段都從一個觸發條件開始,這個觸發條件指明了什麼時候場景開始執行,并一直執行到完成目标或放棄目标。就像我們所看到的,目标大小雖然各不相同,但我們可以使用相同的編寫格式在不同的場景級别上描述各種大小不同的目标。
首先編寫一個自頂向下的描述,這個描述總包含一個容易了解的相當典型的場景,在該場景中,主執行者完成了目标,所有相關人員的利益都被滿足了。這個場景就是主成功場景。其他的成功場景和所有的錯誤的處理,都會在主成功場景的擴充中進行描述。
每個場景或片段被描述為由不同執行者完成目标的活動序列。
執行步驟是對用例的補充,并且都有統一的文法形式,在一個簡單活動中,執行者完成任務或向另外的執行者發送消息。
在主成功場景下,對于因為特别條件而出現行為分支的每個地方,寫出分支的條件以及處理分支的步驟。大多數擴充以重新與主成功場景彙合而結束。
擴充實質上是一個從主用例中被拆分的用例。擴充開始于一個與它相關的條件。它包含了一個執行步驟的序列,該序列描述了在這個條件下發生了什麼。擴充以完成或放棄擴充目标作為結束。使用這種方法,為了處理多個條件和轉移,可能會遇到擴充中又包含擴充的情況。
擴充條件是為了描述系統在不同情境下完成不同的動作。包括成功和失敗。
擴充說明了系統所完成的目标是不同的,但有時需要表達“有多種不同方法來完成相同目标”。系統所完成的目标是相同的,但是怎麼做可能不同。通常是因為技術的變化或輸入資料的不同。應該報這些變化寫到“技術和資料變化”清單中,而不是寫到擴充部分。