優れたソフトウェアアーキテクトなら誰でも、誰かが新しいプロジェクトを最初から構築するとき、最初は境界線(データベース、GUI、外部サービスなど)を持ち歩いてはならないことに同意するでしょう。実際、彼はソフトウェアの心臓部を独立して構築する必要があります。バックエンドは、アプリケーションへの単なる「プラグイン」と考えてください。
TDDと受け入れテストは、新機能ごとにそれを促進します。
- 機能の不合格の受け入れテスト(エンドツーエンド)を作成します
- いくつかの単体テストのおかげで、コード設計を推進して完了します
- 検収試験に合格するとすぐに終了します。
ただし、多くの記事では、受け入れテストは、GUI(ブラウザー(たとえば、Seleniumを使用)またはその他のインターフェース)を含む実際のエンドツーエンドのテストであると説明しています。
受け入れテストは、アプリケーションのHEARTに基づいており、境界に依存しないようにする必要がありますか?たとえば、GUIについて考える必要があります...:s
良い習慣は何ですか?機能ごとに2種類の受け入れテストを作成しますか?1つはビジネスロジック用で、もう1つはGUIが正常に機能することを確認しますか?