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