第311回: 「ALTAのテキストをつくろう」64 (テストツールの種類(前編))
◀前の記事へ 次の記事へ▶︎
≡ はじめに
前回は、JSTQBのALTAシラバスの「6. テストツールおよび自動化」の「6.2 キーワード駆動テスト」について書きました。
前回の要約は以下の通りです。
ユーザーがキーワードを決め、テスト自動化エンジニアがキーワードごとに自動化スクリプトのコードを作るという役割分担をする。
キーワード駆動自動化スクリプトの具体的なつくりかたには踏み込んでいませんでした。
前回の復習は以下で模擬試験問題の確認を通して行います。
今回はJSTQBのALTAシラバスの「6. テストツールおよび自動化」の「6.3 テストツールの種類」の前半について書きます。
≡ 前回の復習
以下は前回出題したJSTQB ALTAの模擬試験問題を𝕏にポストした結果です。

投票の結果、選択肢1の「ドメインの専門家がキーワード定義する」が79.3%と最も多く、正解も1です。
正解については「はじめに」に引用した前回の要約に入っているくらいなので良いとして、ここでは残りの選択肢について、どうするのが良いのか書きます。
まず、選択肢2の「ドメインの専門家がテストケース仕様を作成する」は、【テストエンジニア】がつくります。
たとえ、キーワード駆動テストで実施するテストが「ユーザーの業務シナリオテスト」であったとしても、ただ正常系の業務をシミュレートするのではなく、例外を発生させる、異常な値を入れてみる、なんらかの網羅をとるなどはテストエンジニアのスキルが必要なことだからです。
次に、選択肢3の「ドメインの専門家も自動化スクリプトのコードを理解する」は、実は微妙です。選択肢内の【自動化スクリプトのコード】が何を指すかによって意味が変わるからです。
【自動化スクリプトのコード】が、各キーワードを自動実行するための基になる自動化スクリプトのコードのことでしたら、ドメインの専門家は理解する必要がありません。キーワードの実装をドメインの専門家に隠すことがキーワード駆動テストの利点のひとつですから。
ところが、【自動化スクリプトのコード】が、キーワードを並べてつくった「自動実行テストスクリプト」のことを指しているのであれば、ドメインの専門家に理解してもらい、レビューしてもらうことが有効だからです。
しかしながら、問題文は「キーワード駆動テストの主な利点を受けるために必要な前提」を聞いています。ドメインの専門家に何かの前提(たとえば、基礎情報の知識くらいは持っていろよ)を求めるのではなく、誰でもレビューできるような「自動実行テストスクリプト」であるべきだからです。
具体的には、キーワード駆動テストのキーワードを用いたテストスクリプトをドメインの専門家にレビューをしてもらうには、if文やwhile文といった制御文はもちろんのこと、変数への代入も避けるべきです。ただ、キーワードが、並んでいるだけのものが、望ましいです。
最後に、選択肢4の「作った後はテスト対象の機能変更を受け付けない」は、今回のアンケートで選択した人が1人もいなかったので良いと思います。
テスト対象の機能変更によって、作成した自動テストスクリプトが止まってしまうことや誤った結果を出してしまうことはあるものの、これは、「機能変更を検出できた」と喜ぶべきことです。テストの目的はバグをみつけることであって、自動化を止めないことではないのですから。
復習は以上として、今回のnoteのテーマに移ります。
≡ テストツールの種類
まずは、シラバスにあるトピックセンテンスを丸ごと引用します。
多くのテストアナリストが担当する作業では、ツールを有効に使用する必要がある。この際、以下によってツールの有効性を高めることができる。
● 使用すべきツールを知っている
● ツールがテスト作業の効率を高められる(例えば、許容される時間内によりよいカバレッジを提供する一助になることによる)ことを知っている
まず、太字にしたように、ここでは「テストアナリストが担当する作業を効率化させるツール」に限定していることに注意してください。
テストマネジメントツールは非常に有効なツールですが、テストマネージャが主に使用しますのでここには書いてありません。
「テストアナリストが使用すべきツールについて知ってください」ということです。
日本ではASTERが「テストツールまるわかりガイド」Version 2.0.0を、2020年9月末日に公開しています。55ページのPDFが無償で手に入ります。知らなかった人はまずは「テストツールまるわかりガイド(ガイド部)」をクリックして読んでみてください。
テストアナリストに限らず、テストで使用すべきツールが網羅されています。

こうして、どのような種類のツールがあるのかを把握したら、「個別のテストツール」の方を参照します。
「個別のテストツール」の方は、適宜更新されています。
こちらは、「スプレッド形式」と「pdf形式」があり、実務でツールを選定するときに役に立ちます。(これだけの量と質の比較表を自分で作ろうとしたら大変です)
■ テスト設計ツール
ALTAシラバスでは「テスト設計ツール」と「テストデータ準備ツール」と「テスト自動実行ツール」の3種が「テストツールの種類」として載っています。
テスト設計ツールは、テスト技法を効率よく使うためのツールです。例えば、状態遷移テスト技法を使うために状態遷移図からテストケースを作りたいときや、ペアワイズテストをしたいときに使います。
基本的にツールは決まった作業を自動化するものですが、簡単な作業でも量が増えると人間は間違えますから、その意味で、ツールを使うとテストケースの品質(正確性や信頼性など)も上がります。
無償で利用できるツールではGIHOZとCEGTestがおすすめです。
GIHOZでは、「ペアワイズテスト」、「状態遷移テスト」、「デシジョンテーブルテスト」、「境界値分析」、「クラシフィケーションツリー」、「CFD法」の6つのテスト技法と、「テスト観点ツリー」を用いたテスト分析のためのツールを使えます。
また、最近「生成AIを活用しデシジョンテーブルをスピーディーに作成」するツールが使えるようになりました。
GIHOZでは、すべてのツールの全機能を無償で使うことができますが、仕事で使うとき用に、多くの人でテスト用のモデルを共有したり、IPアドレスを制限してセキュリティを高めた有料プランもあります。(下記)

次に、「CEGTest」ですが、原因結果グラフからデシジョンテーブルをつくるツールです。今回左記のリンクを探すのに手間取ってしまいました。
「ソフトウェアテストの勉強室」には、ダウンロード版もありますので、ダウンロードしておくことをお勧めします。
GIHOZとCEGTestについては、私のマガジンで詳しく書いています。
あと、ペアワイズのPICTをExcelから便利に使えるPictMasterも有名です。
≡ JSTQB ALTA試験対策
いつものことですが、まずは、「学習の目的」を確認します。
6.2 キーワード駆動自動化
TA-6.2.1 (K3)特定のシナリオで、キーワード駆動テストプロジェクトでのテストアナリストの適切な活動を判断する 。
(K2:理解、K3:適用、K4:分析)
《問題》
テストアナリストが主に使用する「テストツールの種類」では【ない】ものを選びなさい。
1. テスト設計ツール
2. テストデータ準備ツール
3. テスト自動実行ツール
4. テストマネジメントツール
答えは次回に書きます。
≡ おわりに
今回は、「6. テストツールおよび自動化」の「6.3 テストツールの種類」(前半)がテーマでした。
本文で紹介した「テストツールまるわかりガイド」は本当に力作ですので、おすすめします。
あと「テストマネジメントツール」(テストベース、テストケース、バグを管理するツール)と「テスト環境構築ツール」と「バグ情報取得ツール」が出てこないのはテストアナリストシラバスだからです。
さて、次回は「6. テストツールおよび自動化」の「6.3 テストツールの種類」(後半の「テストデータ準備ツール」と「テスト自動実行ツール」)について書きます。
