受入テスト
基本的には顧客が主体となる受入チームのタスク。
最近、受入テストが一番の肝だと思うようになってきた。
JavaのWebアプリ作成プロジェクトにおいて、受入テストをちゃんと実施するための作戦を考え中。WebStoryUnitというものが便利そうなので使ってみようと思う。
1.ストーリーのシナリオから、以下のものを作成 前提条件 →テストデータ 内容・結果 →HTML(モック) Ex.ストーリー概要が 「顧客番号入力して、表示ボタンを押すと顧客情報画面が表示される。」 といったような場合、 テストデータは 顧客、ユーザー(ログイン用)、必要であれば各種マスタ、トランザクション HTMLは 顧客番号入力画面のHTML 顧客情報表示画面のHTMLの2つ を用意する。 ※モックHTMLは仕様確認にもなる。 2.WebStoryUnitを使用して、受入テストコードを作成 2-1.シナリオに従ったHTTPリクエストを受けて、モックHTMLをレスポンスとして 返すようなモックアプリケーションの仕掛けを作成。 そのアプリケーションで、WebStoryUnitを使ってテストコードを生成する。 2-2.ブラウザから、モックアプリケーションに対してシナリオに従い操作を行う。 →テストコードが生成される。 2-3.生成したテストコードに以下を補完(拡張?仕掛けを考える) ・テストデータ挿入ロジック ・生成できないテストロジック 3.テスト実施 3-1.モックアプリケーションに対して、テスト実施。 (データの挿入は行わなくていい???) All Greenになることを確認。 3-2.本番アプリに対して、テスト実施。 (モックアプリケーション用のURLを本番用にうまく変換する仕掛けが必要?) 正しく実装されているところは、Green。 とはいえ疑問: シナリオの前提のテストデータに対する記述が難しい。 └あいまいな日本語から、テストデータまで持っていくところにギャップがでそう? テストデータの妥当性は? シナリオのの前提からデータ作成するところは顧客では無理。 └システム屋側でやるにしても結構大変? 仕様変更などでDBの変更は結構あると思うし。 受入チーム、開発チーム両方に精通している人間がやらないと回らない。 あとは、DB変更に伴って、既存テストデータをさくっとまとめて変更する仕掛けが必要 シナリオをきっちり網羅することができるのか? └でもやらないと。 自動テストができないところに対して └たぶん出てくる。 うまく管理していかないと。 モックHTMLを全画面作ることができるのか? └でも、システムテスト仕様をつくってレビューして、イテレーション毎に実施 するのとどっちがどのくらい大変なのか。 これもやらなければ。 ほかにうまい方法があるだろうか。
まだまだ試行錯誤しよっと。