OK、私は近年、開発にアジャイル プラクティスを公然と採用している会社で働いています。単体テストとコードの品質は向上しています。私たちが今も取り組んでいる領域の 1 つは、自動化された受け入れテストの分野で最適なものを見つけることです。よく形成されたユーザー ストーリーを使用して、テスト駆動型の方法でコードを実行したいと考えています。これにより、自動化できる各ユーザー ストーリーの受け入れレベル テストも得られます。
これまでに、Fit、Fitnesse、Selenium を試しました。それぞれに利点がありますが、実際の問題もありました。Fit と Fitnesse については、物事が複雑すぎると感じずにはいられず、それらを使用して多くの技術的な問題が発生しました。ビジネスはこれらのツールを完全に取り入れているわけではなく、常にスクリプトを維持することに特に熱心ではありません (また、テーブル スタイルの大ファンでもありません)。Selenium は非常に優れていますが、速度が遅く、リアルタイムのデータとリソースに依存しています。
現在検討中のアプローチの 1 つは、JUnit フレームワークを使用して同様の機能を提供することです。JUnit を使用して小さな作業単位だけをテストするのではなく、それを使用して (JUnit フレームワークを使用して) テストを作成し、アプリケーションの受け入れレベルの範囲をカバーしてみませんか? つまり、新しいストーリー (「ユーザーとして、ポリシーの基本的な詳細を確認したい...」) を取り上げ、JUnit でテストを作成します。これは、ポリシーの詳細リンクのエントリ ポイントでアプリケーション コードの実行を開始しますが、すべてのコードをカバーします。そして、スタブ化されたデータ アクセス レイヤーにロジックを落とし、アプリケーションの次のページに転送するポイントに戻り、そのページでユーザーに表示されるデータをアサートします。
これには次の利点があるように私には思えます。
- シンプルさ (追加のフレームワークは不要)
- 継続的インテグレーション ビルド サーバーとの統合に手間がかからない (既に JUnit テストを処理しているため)
- チームにはすでに完全なスキルセットが存在します (結局のところ、単なる JUnit テストです)
そして欠点は次のとおりです。
- 顧客の関与が少ない (ただし、受け入れテストが作成される最初の場所で、ユーザー ストーリーの作成に深く関与しています)
- おそらく、JUnit クラスのユーザー ストーリーと受け入れ基準を理解する (または理解させる) ことは、Fit や Fitnesse のフリーテキスト仕様よりも難しいでしょう。
だから、私の質問は本当に、この方法を試したことがありますか? 考えたことはありますか?あなたの考えは何ですか?このアプローチの好きなところと嫌いなところは何ですか? 最後に、このアプローチよりも好きな理由または嫌いな理由を説明できる場合にのみ、代替フレームワークについて言及してください。