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

ソフトウェアの品質、ソフトウェアテストなどについて学んだことを記録するブログです。

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)