SHOEISHA iD

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

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

テスト自動化研究会の『システムテスト自動化 標準ガイド』を15倍あなたの力にする話

『システムテスト自動化 標準ガイド』の第5章 ~ テストウェアアーキテクチャって何かカッコいいね!

テスト自動化研究会の『システムテスト自動化 標準ガイド』を15倍あなたの力にする話 【第5回】

  • X ポスト
  • このエントリーをはてなブックマークに追加

4つの課題への取り組み

 ギア本では、課題の発生によってアンコントローラブルになる事象に対し、可能な限りコントロールを行って、システムテスト自動化を成功に導くためのノウハウを提供しています。ノウハウは原著者がプロジェクトの中で実践し、効果を発揮したものですが、状況が変われば対処も変わります。あらゆる現場にフィットするわけではないでしょう。しかし、各自の現場に最適なテスト自動化の方法を模索する中で、ギア本が提供するノウハウが役に立ち、テストウェアアーキテクチャが出来上がっていくことになります。

 ここからは、ギア本で説明されているテストウェアアーキテクチャの興味深い概念やノウハウを紹介します。

テストウェアセット

 テストウェアアーキテクチャを構成する基本的な要素として、ギア本では「テストウェアセット」という概念を導入しています。このテストウェアセットには、「テストセット」「スクリプトセット」「データセット」「ユーティリティセット」という種類があります。それぞれ、テストウェアを種類で分割した論理的な集合となっています。

 中でも基本となるのがテストセットです。テストセットは1つ以上のテストケースを含みます。テストセットに含まれるテストケースがスクリプトやデータを必要とする場合、それらもテストセットに含まれます。ただし、それらのスクリプトやデータがそのテストケース固有のものかどうかには注意が必要です。

 例えば、「ファイルをオープンする」というスクリプトをテストケースで使っているとして、このスクリプトが行っていること(ファイルのオープン)は、そのテストケース固有といえるでしょうか? おそらく、他のテストケースでも行っているでしょう。そのようなスクリプトは、再利用性のためにテストセットから取り出し、共有可能なスクリプトセットを構成しなければなりません。これはテストデータについても同様です。

 テストセット以外のテストウェアセット(スクリプトセット、データセット、ユーティリティセット)は再利用を目的に作られた、特定のテストセットに依存しない形で共有のテストウェアの集合です(図3)。

図3:テストウェアセット
図3:テストウェアセットの概念図

テストスイート

 では、実際にテストを実行するときには、テストウェアセットをどうやって管理するのでしょうか?

 ここで登場する概念が「テストスイート」です(図4))。テストスイートは、実行するテストの目的に合わせて、必要なテストセットおよび、依存関係のあるスクリプトセット、データセット、ユーティリティセットを集めて、テスト実行可能な論理的な集合を構成します。例えば、回帰テスト用のテストスイートや、新機能確認用テストスイート、バグフィックス対応テストスイートなどを構成します。

図4:テストスイート
図4:テストスイートのイメージ(クリックで拡大)

テストウェアライブラリ

 「テストウェアライブラリ」は、テストウェアセットやテストスイート全体を管理する単位です。テストウェアライブラリは、テストウェア全体を管理する最上位の概念であり、テストウェアアーキテクチャに対し、ただ1つだけ存在します。逆に見れば、テストウェアライブラリの中には、複数のバージョンのテストウェアセットが含まれているといえます。

図5:テストウェアライブラリ
図5:テストウェアライブラリのサンプル

 重要なのは、テストウェアライブラリから必要なテストウェアセットを取得する作業は、できるだけ簡単で短時間で行えて、かつ、ミスの入る余地がないようにしなければならないということです。これが守られていれば、テストをしたいときに、例えばボタンをクリックするだけで、必要なテストがすべて自動で実行されるはずです。そうでない場合には、そこに解決すべき問題があります。特に、自動化の取り組みがうまくいけばいくほど、テストウェアライブラリの中に含まれる情報は膨大になっていくので、簡単にかつ正しくアクセスする方法が構築されていないと致命的な混乱が起きるでしょう。

 ギア本には、テストウェアライブラリの実装サンプルが記載されています。ただし、その内容がそのまま適用できるとは限りません。先人の知恵の1つとして参考にしてみるとよいと思います。

おわりに

 ギア本には、テストウェアアーキテクチャに関して、実装例を含めて様々な知見が紹介されています。一度読んだだけでは理解しづらい部分があるかもしれませんが、机上の空論ではなく、実際に運用していった上でのノウハウが詰まっています。一通り目を通されることをお勧めします。

 また、説明されている内容が、そのまま皆さんの現場に当てはまるとは限りません。各自の組織に合わせて取捨選択することで、ギア本がより良いテストウェアアーキテクチャを実装するための参考書になると信じています。

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
テスト自動化研究会の『システムテスト自動化 標準ガイド』を15倍あなたの力にする話連載記事一覧

もっと読む

この記事の著者

吉村 好廣(ヨシムラ ヨシヒロ)

フリーランス。テストをキーワードにプロジェクトを渡り歩いているが、テストだけにこだわらず、上流工程からプログラミングやDBチューニング、インフラ構築まで手掛けるマルチタレント。

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8871 2015/08/03 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング