TOPシステム開発> 第1回:Javaの単体テストツールDBUnitって何? (1/3)




DBunitでテストの自動化

DBunitでテストの自動化

第1回:Javaの単体テストツールDBUnitって何?

著者:プロトシステム 広谷 嘉巳

公開日:2008/03/10(月)

DBUnitって何?

読者の皆さんはデータベースにアクセスするプログラムのテストはどのように行っていますか?

Javaの単体テストの場合、JUnitを利用している方が多いのではないでしょうか。では、DBUnitはご存知でしょうか。DBUnitとは、プログラムの単体テストツール、それもデータベースにアクセスするプログラムの単体テストツールです。

本連載では、このDBUnitを利用してテストを進めていく方法を解説していきます。分かりやすいよう実際にテストを行うテスト担当者や開発者の目線で書き進めていき、ポイントとなる点も解説していきます。

さて、第1回では「そもそもDBUntとはなんぞや」を明らかにしていきましょう。

近年のシステムの開発においてデータベースは切っても切れない関係です。というよりも、「システム開発=(イコール)データベース利用」といっても過言ではないでしょう。

ここで1つ質問です。読者の皆さんはデータベースに絡むプログラムをどうやってテストしていますか?

プロジェクトによってそれぞれ多少の違いはあると思いますが、大体図1のような手順ではないでしょうか。

まず事前作業としてテストに関係するテーブルにテストデータをセットします。この時、場合によっては既存データの退避、または初期化を行ってからテストデータをセットする必要もあるでしょう。

次に、テスト対象のプログラムを実行し、期待した値(データ)と合致しているかを表示されている画面を見て確認します(目で確認する作業は、とても大変です。間違いがある可能性もあります)。最後に、テストでセットしたデータを削除します。またテストのためにデータを退避していた場合は、データの回復という作業も発生します。テストを繰り返す場合は、再び上記作業を1から行う形となります。これは多大な労力が必要です。

このような作業を自動化してくれる大変便利なツールが「DBUnit」なのです。

図1

JUnitとの位置付け

そもそもDBUnitは一般的に広まっている単体テストツール「JUnit」を拡張したフレームワークです。そのためJUnitを知っている方ならすぐにDBUnitを理解できると思います。また本記事では基本から解説しますので、JUnitを知らない方でも本連載を読み終えた後は、すぐに実務で活用できるようになります。

さて、DBunitはJUnitを拡張したものであるため、JUnitの利点の1つである「自分が手を入れたプログラムは上手く動作したが、その他のプログラムが異常動作しないか(影響を受けてないか)」という不安も同じように払拭できます。

また、DBUnitを利用してテストを終えると「プログラム(クラス)間同士がJUnitと同じように関連性が希薄になる、すなわち疎結合になる」というとても良い副作用が発生します。

「JUnitじゃだめなのか?」という疑問を持たれる方もおられるでしょう。それらの疑問点について、次ページで説明していきましょう。 次のページ




株式会社プロトシステム  広谷 嘉巳
著者プロフィール
株式会社プロトシステム  広谷 嘉巳
ソリューション第二事業部 テクニカルマネージャー
Javaを使ったシステム開発に従事し、オブジェクト指向での設計から開発を得意としている。最近は設計中心でプログラミングは行っていないが、以前はデザインパターンを取り入れたクラス設計やリファクタリングでのコードの体質改善を中心に作業していた。しかし、自分の力がまだまだと自覚しており、現在もJavaやUMLの資格を積極的に取得し、日々勉強中。というか、奮闘中!
http://www.prsys.jp/


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。
ご意見、ご要望にお応えします! インプレスIT INSIDE

INDEX
第1回:Javaの単体テストツールDBUnitって何?
DBUnitって何?
  JUnitじゃだめなのか?
  DBUnitのメリット
サービスを守るネットワーク監視
第1回 Javaの単体テストツールDBUnitって何?
第2回 DBUnitのインストール
第3回 テストケースの作成と自動化

Think IT 過去人気記事

注目おすすめ情報

Think IT人気ライター BEST 5

IT製品/サービス資料ダウンロード
    おすすめのホワイトペーパー情報を準備中です