ソフトウェアの品質を学びまくる2.0

ソフトウェアの品質、テストなどについて学んだことを記録するブログです。旧ブログからゆっくり移行中です。http://blog.livedoor.jp/prjmng/

TABOK粗読による自動化の座学 - カテゴリー3「テスト自動化のツール」

 スキルカテゴリー3は「自動化ツール」。ツールの分類です。

www.kzsuzuki.com ここで初めて、TABOKガイドの対象としている「自動化」の範囲がなんとなくわかります。

A key skill in test automation includes understanding, using, and supporting the test automation tools that support all aspects of the testing lifecycle.

 ガイドでは、テストそのものを自動化するツールだけでなく、テストプロセスの改善・効率化に寄与するツールをまとめて、学ぶべき対象としているようですね。
 ガイドでは、ツールを以下の10タイプに分類しています。並び順が微妙ですが。
分類 役割
ソフトウェア構成管理 ソースコード・ドキュメントなど、ソフトウェア開発に関する成果物について、バージョン管理やベースライン化などを行う。
ビジネスとシステムのモデリング 論理設計や、システムの仕様を表現する図や表の作成をサポートする。
要件管理 システムの要件の集約・分析・管理を行う。
ユニットテスト フレームワークの中で、ユニットテストを自動化する。
テスト管理 ソフトウェアの要件・設計・構成と連携しながら、テストケースを管理する。
テストデータ生成 与えられたフォーマットに基づいて、テストデータを生成する。
欠陥管理 摘出された欠陥を蓄積し、対処の進捗を管理する。
コードカバレッジ分析 実装されたコードが、テストでどの程度実行されたかを計測する。
機能システムテスト自動化 現実のユーザの操作を真似て、ソフトウェアを操作・テストする。
性能テスト自動化 仮想的なユーザを生成して、ソフトウェアに負荷をかける。
 これを見て思い出すのが、JaSST '12 Tokyoのセッション「テストツール活用の処方」ですね。コチラのスライド(PDF)のp.29に、「テストツール体系」という表があり、以下のような分類をしています*1
  1. テスト分析
  2. テスト設計
  3. テスト実装
  4. コード解析
  5. テスト自動実行
  6. テスト実行管理
  7. テストウェア管理
  8. インシデント管理
 テストに特化している感じで、個人的にはコチラの方が好きです。
 
 両者の大きな違いとしてもう1つ。ガイドでは、ユニットテスト、機能システムテスト、性能テストのツールをそれぞれ別ものと扱っている点がありますね。カテゴリー2で触れたテストの分類に従っていて、確かにやれることが全然違うので、分けるのはよいなと思います。が、統合テストはどうなった。
 ちと気になったのは、普段なじみのあるいくつかのツールが、上の分類で行き場をなくしている点ですね。
 1つは、コーディング規約、欠陥につながる記述、脆弱性などをチェックしてくれる、静的解析ツール。これはユニットテストに入る?
 また、標準プロトコルを自前で実装する場合に、そのプロトコルの規約に従っていることを検証するためのツール。分類名がよくわからんのですが、どこに入れるのがいいですかね?*2
 
 この後、ツールのライセンスの分類として、フリーウェア・シェアウェア・オープンソース・商用について説明があって、カテゴリ3は終わりです。

*1:ところでこのときに言及されていた「小冊子」はリリースされたんだろうか・・・? 続きはwebで的に「テストツール 小冊子」とスライドP.17にあるけど、ヒットせぬ。。。読みたい!(2012/6/1)
6月頃公開との噂が・・・。(2012/6/16)。

*2:プロトコルへの適合を確認するテストは、「コンフォーマンス・テスト」っていうらしいですね。コチラで言及がありました。(2012/6/16)