SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Javaの単体テストでランダムなデータを活用する

QaRandomizerを利用し、ランダムデータを用いた単体テストを実行

制限事項と注意点

 QaRandomizerは決して万能ではありません。改善の余地はたくさんあります。従って、使用にあたってはいくつか注意すべき点があります。

  • 反復処理には時間がかかる:テストによっては、パフォーマンスの確認を目的としている場合もあります。つまり、予期した時間の枠内でコードが正しく動作するかどうかを確認するテストです。こうしたテストは、高速で猛然と処理を行うように設計されています。従って、反復処理の中でランダムデータを使用するテストを作成する場合、それもコードを何百回も反復するようなテストの場合には、他のテストの実効性を損なってしまうおそれが考えられます。
  •  こうした事態を避けつつ、テストの反復処理に必要な時間を確保するためには、反復を使用するテストを、別個のファイルの中のまとまりとして切り分けましょう。こうすることで、テストシナリオ全体をきめ細かく管理できるようになります。

  • 本物の住所データは郵便番号、州、市のみ:前述のとおり、QaRandomizerでは、米国の実際の郵便番号を基にした住所データを使用します。全米のすべての郵便番号のリストから、1つの番号をランダムに抽出したうえで、その番号に対応する州と市を、米国郵政公社によるリストから取得します。一方、街路名およびその付随項目として生成するデータは架空のものです。例えば、次のような住所が生成されたとします。
  • 123 Elm Street
    Suite 400
    New York, NY 10001
    

     現実には、郵便番号10001にElm Streetという住所はありませんのでご注意ください。また、実際に郵便物が届く住所の生成を期待してQaRandomizer.getAddress()を使用するのも避けてください。

  • ランダムデータは有用だが、一定のデータを使用した方がよい場合もある:単体テストでは、多くの場合にランダムデータが役立ちますが、すべての場合に当てはまるとは限りません。個別の要件や状況によっては、決まったデータを使用して、万全の動作であることを確認した方がよい場合もあります。そんな場合には、ぜひそうしてください。

まとめ

 従来、ランダムデータを使用するのは、手間が大きすぎて価値に見合わない作業でした。しかし、QaRandomizerを利用し、この記事で紹介した手法と組み合わせれば、ランダムデータの威力をテストで簡単に生かせます。皆さまのプログラミング生活とコードの向上のお役に立てば幸いです。

 コーディングに関する向上心を忘れずに、ランダムデータを活用してさらに前進を目指しましょう。

参考資料

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Bob Reselman(Bob Reselman)

Edmunds Incのシニアテクニカルライター兼テクニカルエディター。Edmunds Inc.は、多彩な情報と高い可用性を誇る、最先端のJavaベースの各種自動車情報Webサイトを運営する大手パブリッシャーである。http://www.edmunds.com/およびhttp://www.insid...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4908 2010/03/03 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー