制限事項と注意点
QaRandomizerは決して万能ではありません。改善の余地はたくさんあります。従って、使用にあたってはいくつか注意すべき点があります。
- 反復処理には時間がかかる:テストによっては、パフォーマンスの確認を目的としている場合もあります。つまり、予期した時間の枠内でコードが正しく動作するかどうかを確認するテストです。こうしたテストは、高速で猛然と処理を行うように設計されています。従って、反復処理の中でランダムデータを使用するテストを作成する場合、それもコードを何百回も反復するようなテストの場合には、他のテストの実効性を損なってしまうおそれが考えられます。
- 本物の住所データは郵便番号、州、市のみ:前述のとおり、QaRandomizerでは、米国の実際の郵便番号を基にした住所データを使用します。全米のすべての郵便番号のリストから、1つの番号をランダムに抽出したうえで、その番号に対応する州と市を、米国郵政公社によるリストから取得します。一方、街路名およびその付随項目として生成するデータは架空のものです。例えば、次のような住所が生成されたとします。
- ランダムデータは有用だが、一定のデータを使用した方がよい場合もある:単体テストでは、多くの場合にランダムデータが役立ちますが、すべての場合に当てはまるとは限りません。個別の要件や状況によっては、決まったデータを使用して、万全の動作であることを確認した方がよい場合もあります。そんな場合には、ぜひそうしてください。
こうした事態を避けつつ、テストの反復処理に必要な時間を確保するためには、反復を使用するテストを、別個のファイルの中のまとまりとして切り分けましょう。こうすることで、テストシナリオ全体をきめ細かく管理できるようになります。
123 Elm Street Suite 400 New York, NY 10001
現実には、郵便番号10001にElm Streetという住所はありませんのでご注意ください。また、実際に郵便物が届く住所の生成を期待してQaRandomizer.getAddress()を使用するのも避けてください。
まとめ
従来、ランダムデータを使用するのは、手間が大きすぎて価値に見合わない作業でした。しかし、QaRandomizerを利用し、この記事で紹介した手法と組み合わせれば、ランダムデータの威力をテストで簡単に生かせます。皆さまのプログラミング生活とコードの向上のお役に立てば幸いです。
コーディングに関する向上心を忘れずに、ランダムデータを活用してさらに前進を目指しましょう。
参考資料
- QaRandomizer APIのJavaDocs(ファイルを解凍し、まずindex.htmlファイルを参照してください)
- TestNG
- Easier testing with EasyMock(IBM developerWorks)
- dom4 - Everything for Your Web Site!
