2011-07-01 83 views
5

關於代碼測試的文章很多。但是,我們如何確保我們的設計在功能上正確呢?就像我們有用於測試Java代碼的JUnit一樣,是否有一些工具可用於測試基於UML的設計,其中測試以功能需求的形式表達?設計的可測試性

這些是一些模糊的想法,但想知道是否有一種方法,可自動化的方法來首先測試設計。換句話說,我們是否也有'測試驅動設計'?

+0

我認爲'正式驗證'是你正在尋找的。 – leppie

+0

是的,但採用更「可編程」和「可自動」的方式。因此,我想知道我們是否可以想出像'UMLUnit'這樣的東西 - 允許編寫和執行UML設計的測試。 – shrini1000

+0

爲什麼不能驗證程序化和自動化? – leppie

回答

1

有趣的話題!首先,我的個人網絡中沒有任何軟件架構師使用UML作爲設計他們系統的唯一方式,而且我也不知道任何軟件架構師在執行機械測試所需的詳細程度上創建UML。其次,我個人對UML建模工具很不喜歡。如果實施了這種形式化的驗證方法,那麼很可能會出現像Rational Rose這樣的問題 - 我很久以前就發誓我再也不會去任何地方了。然而,儘管如此 - 在正式的軟件商店中,通常具有需求可跟蹤性,通常實現爲在一個軸上顯示業務需求的矩陣,以及設計工件。通過這種方式,您可以查看是否有任何要求與相應的解決方案不匹配,或者解決方案中是否存在不符合特定業務要求的元素。保持這個矩陣的更新是一件很痛苦的事情,所以它不常用在敏捷團隊中,但是如果你爲銀行或航天飛機構建軟件,這是一種有價值的技術。

這告訴你你的設計是否完整 - 但不是它是否「正確」。

我沒有辦法知道在沒有構建和測試的情況下設計是否「正確」,或者依賴於人類的經驗和知識。

2

是否有一些工具,可以用來測試一個基於UML設計,其中測試是在功能要求形式來表達?

由於功能需求的滿足依賴於實現,而不是在設計你無法測試基於功能需求的設計。

換句話說,你可以按照一個不好的設計,同時滿足該組的功能需求,如果你實現所需的行爲(無限可能的設計的任意一個)。