ISTQB CTFL-AT (Agile Tester) 受験記

まとめ

  • この文章は ISTQB CTFL-AT というアジャイル開発向けテスターの基礎を問う試験の受験記。日本語の情報が乏しいので書いた。
  • 英語なのはちょっとネックかもしれないけど簡単でしょと踏んだら案外苦労した。
  • PearsonVue で iSQI または Brightest を選択すると申込み可能。非英語ネイティブ向けに試験時間を延長できる制度があるが、試験申し込みとは別の申請が必要。
  • 実際の試験はシラバスと参考書の模擬試験よりも難しい。それが有用な難しさなのかは疑問。
  • 知識が得られたというよりは、理解が浅いことがわかった、疑問が増えたという方が近い。

⬛️ 背景

職務経歴書を書いているときに資格を追加したい気分になりました。「英語で試験を受けるなんて面白いかも?でも中身は簡単そうなのがいいな~…もちろん勉強になりそうなものを」という軽い動機で候補を考えたところ、以前に取得した JSTQB FL の延長線上にある ISTQB CTFL-AT という試験があることに気づき、受けることにしました。

CTFL-AT とは Certified Tester Foundation Level - Agile Tester を表し、基礎レベルのアジャイルソフトウェア開発向けテスターの資格を意味します。 私は特にアジャイルソフトウェア開発向けテスターを目指しているわけではありません。 ですが、この前提資格である CTFL を勉強したときに、それまでの歯抜けな知識が補完されたり、識者と話せるようになったり、実務にも役立ったという利点を実感したので、CTFL-AT についてもきっと良いものだろうと期待しました。 CTFL を前提とした試験は他にもありますが、それらの中ではアジャイルが一番長持ちする基礎になりそうで、英語での試験なので中身は簡単そうなものにしようと考えて選びました。

JSTQB が日本語の CTFL-AT 試験を提供していたら、学習はしても試験を受けはしなかったかもしれません。*1

⬛️ 試験提供の仕組みと申し込み方法

さて、ISTQB の試験を受けるべく ISTQB のサイトから申し込みの窓口を探したのですが、なかなかわかりませんでした。 また、非ネイティブ話者は試験時間を25%延長することができますが、この方法も少し手間がかかるものでした。申し込み方法を以下にまとめます。

  1. PearsonVUE の試験プログラムの選択欄で iSQI または Brightest を選択し、アカウントを作る
    • 私は iSQI を選択しました。どちらでもいいと思います。
  2. https://home.pearsonvue.com/isqi/contact にある iSQI Extra Time Request Form という PDF に、作ったアカウントのID、受ける試験、個人情報を記入する。
  3. 作った PDF を timeextension@isqi.org へ送ると iSQI から延長を認めた旨が返信される
  4. PearsonVUE 日本拠点のカスタマーサービス にある電話番号へ、試験時間を延長して受験したい旨とメールアドレスを連絡する。
  5. 連絡したメールアドレスに PearsonVUE 日本拠点のカスタマーサービスから、iSQI から試験時間延長が認められた証拠を提供するよう連絡が届く。そのメールに、iSQI から試験時間延長が認められたメールのスクリーンショットを添付する。
  6. そのスクリーンショットを PearsonVUE 日本拠点のカスタマーサービスが確認すると、希望試験日時と支払い方法などを聞かれる。答えれば予約完了。
  7. 予約完了がメールで通知される。

まず、ISTQB 自体が試験を提供しているわけではなく、ISTQB の策定した試験要綱に準拠した試験問題を作成している団体として iSQI や Brightest があるようです。 また、日本ではオンラインで試験を受けることになるので、PearsonVUE というオンラインの試験環境を提供している団体を介する必要があります。 そして、実際に試験を受ける場所は日本各地にある試験施設であり、PearsonVUE と連携しているようです。

たぶん各団体には、ISTQB(試験要綱策定)→iSQIなど(試験問題作成)→PearsonVUE(オンライン試験予約と試験実施環境の提供)→試験施設(試験会場の提供)、という関係があるのだと思いますがはっきりはわかりません。

試験時間を延長するには上記のように面倒な手続きをこなす必要があります。 ですが、本番の試験は模擬試験より難しかったので、延長しておいて良かったと実感しています。 試験時間を延長しない場合は、電話やメールをせずとも PearsonVUE のサイトで予約できます。 予約の途中で試験会場と空き日時を確認できる画面があります。 延長する場合でも、この画面で希望する会場と日時を確認してから PearsonVUE のカスタマーサービスへ電話するのがよいでしょう。

⬛️ 学習方法

試験の学習には、合格するための学習と、活かせる知識を得るための学習があり、両者は重なるところも異なるところもあると捉えています。 ここに示すものはどちらかといえば合格するための学習であることにご注意ください。

使った学習材料は次の通りです。

学習のプロセスは次の通りです。

  • シラバスの日本語版を、学習目的と用語を把握できる程度に荒く読む。
  • 日本語版で把握した学習目的と用語が、英語版でどのように表現されているか確かめる程度に荒く読む。以降は英語版を使う。
  • シラバスで把握した学習目的と用語が公式模擬試験の問題にどのように登場するか確かめる。解かなくてもよい。
  • シラバスにある馴染みのない概念の記述を Agile Testing Foundations と Agile Testing with Lisa Crispin と Agile Testing Condensed Japanese Edition から探し、熟読して理解する。特に、図や例による解説を重視する。章末のサンプル問題も解く。
  • 馴染みのない概念がシラバスでどう解説されているか確かめるために熟読する。
  • 既知の概念がシラバスでどう解説されているか確かめるために熟読する。疑問があれば Agile Testing Foundations と Agile Testing with Lisa Crispin と Agile Testing Condensed Japanese Edition も併用する。
  • 公式模擬試験と Agile Testing Foundations にある模擬試験を解く。誤った問題はもちろん、正答した問題についても各選択肢の解説と自分の考えを比較する。
  • シラバスの学習目的に対して自分で説明できるか確かめる。
  • シラバスを熟読する。

合格を第一に考えるなら演習問題をこなすことが必要と考えて問題を探しました。 しかし、公式模擬試験をコピーしただけの粗悪な mock exam がいくつも出てきたので、結局は公式模擬試験と Agile Testing Foundations の問題のみ解きました。

⬛️ 試験の難しさ

公式模擬試験と Agile Testing Foundations の模擬試験では9割正答できましたが、本番では7割でした。 問題そのものが難しかったように思えます。 理解を問うための適切な難しさを感じられる問題もありますが、どちらかといえば誤答させるためにひねっている印象でした。 学習者の理解向上のために有用な難しさなのかは疑問が残ります。

実際の問題は紹介できませんので、問題を難しくする要素という抽象化した形で以下にまとめます。 例は私が考えたもので、出題されたものではありません。

  • どの選択肢も誤りではないが、最も適切なものを選ぶ必要がある
    • 例: Which of the following statements best reflects the Agile software development approach?
      • a) A set of practices including iterative process, automated testing and kanban board.
      • b) A collaborative and progressive approach performed by software engineers and business representatives focusing on delivering value to customers.
    • a) は誤りではありませんが b) の方がよりアジャイルソフトウェア開発を表しています。
    • 実際には4つ以上の選択肢があり、全ての選択肢を読んで比較する必要があります。
    • best reflects の類似形として most likely もあります。その反対として least likely もあります。もちろん not true もあります。true の選択肢を選べという素直な問題の方が少ない印象でした。
  • シラバスにおける複数の節と学習目的が混合されている
    • 例:
      • アジャイルテストの4象限と探索的テストの混合問題
      • ふりかえりの内容からシラバスにある有効なプラクティスを選択する問題
      • プランニングポーカーにチーム外の独立テスターが例外的に参加しており、チーム内のテスターと大きく異なる見積もりをした状況を設定し、独立テスターの有効性を正しく説明した文を選択する問題
    • シラバスには学習目的ごとに FA-1.2.3 といった番号が付与されており、だいたいは1問につき1つの学習目的が対応するように思えますが、複数の学習目的が対応するように見える問題もありました。
  • シラバスを逸脱した知識領域が問題文で解説され、シラバス範囲内の知識領域と混合されている
    • 例:
      • 問題文で累積フロー図(cumulative flow diagram)を説明し、バーンダウンチャートと合わせた問題
      • 問題文でキーワード駆動テスト(keyword driven testing)を説明し、アジャイルテストの4象限と合わせた問題
    • 結局はシラバスの範囲内の知識で正答できるように作られているはずですが、迷うものがありました。
  • うまくいっていない状況、またはシラバスで説明されたセオリーから外れた状況が提示される
    • 例:
      • POが不在のままプランニングポーカーを繰り返す
      • プランニングポーカーにおいてチームメンバーごとの見積もりの差は少ないが、ストーリーに関するタスクを終えられずにイテレーション終了を迎えることが何回もある
      • テスター不在のアジャイルチームが受け入れ基準を明確にできなかった結果、顧客から多くのバグを指摘される
      • 自動テストの結果が偽であることが増えたため、POが自動テストに疑いを持ち始めている
      • リスク分析の結果、何のリスクも見いだせなかった
    • 考えさせる良い題材と思えるものもあれば、本当に1つの正答があるのか疑わしいものがありました。
  • CTFLシラバスの内容も要求される
    • 例:
      • 振り返り会にて、あなた(テスター)以外のメンバーは、以前あなたが教えたアジャイルテストの4象限をもとに、最近よく見つかっている欠陥を効率的に発見するためのテスト強化策を考えている。それらの欠陥は、曖昧なユーザーストーリー、コンポーネント間インターフェースの不整合が多くを占めることがわかっている。あなたがテスターとしてこの状況を踏まえた提言をするとき、最初に提言することが適切なものを選べ。
        • a) Q2 に相当する自動の機能テストと統合テストの強化を提言する
        • b) Q3 に相当する受け入れテストの強化を提言する
        • c) Q4 に相当する性能テストの強化を提言する
        • d) アジャイルテストの4象限は動的テストのみ扱うことと、それらの欠陥は静的テストでの検出が向いていることを提言する。
    • この例は、CTFLシラバスに記載されている静的テストの方が検出しやすい欠陥と、アジャイルテストの4象限は動的テストのみ扱うことを合わせた問題で、正答は d) です。
    • 公式模擬試験にはCTFLで扱われるテスト技法を選択させる問題があります。ほか、テストの7原則とテストプロセスも CTFL-AT の内容と合わせて問われうると考えています。
  • 正答を左右する表現
    • 例:
      • "Test automation reduce regression risk." であれば正しく、"Test automation eliminate regression risk." であれば誤り。この例が参考書にあれば、「自動テストは回帰リスクを軽減できても排除できない」と解説されるでしょう。
      • "Testers are generally not involved in writing unit tests." であれば正しく、"Testers must not be involved in writing unit tests." であれば誤り。この例が参考書にあれば、「アジャイルはチーム全体アプローチであり、テスターと開発者がペアを組んでユニットテストを書くことはありうる。」と解説されるでしょう。
  • 出題されやすい題材のアプリ
    • 銀行、保険、小売、飛行機やホテルの予約に関する Web アプリがほとんどに見えます。
    • アプリが決まっていると、おのずと題材になりやすい機能も決まっているように見えます(例: アカウントの作成、アカウントの無効化、入出金のトランザクション、割引の条件、カートの上限、購入履歴の閲覧、予約のキャンセル、支払い方法やお気に入り品などのアカウントごとの情報保存)
    • なので、それらの題材に関連する語彙を知っておいたほうがよいでしょう (例: deposit, withdraw, bank teller, voucher, retail)
  • やや難しい単語
    • 例えば、公式模擬試験には In an agile project, which of the following would best denote product quality at the end of iteration 6 of a new system release consisting of 8 iterations? という問題文があります。ここに出てくる denote という単語がわからなかったので正答できませんでした。represent が使われていたら正答できたかもしれません。Weblio によると denote は英検準1級の単語だそうです。
    • 模擬試験でも実際の問題でも、1,2問は回答を左右する未知の単語が出てくるように感じました。
    • シラバスと参考書に出てくる未知の単語は覚えておくのがよいと思います。

⬛️ 役立つ知識が得られたのか

受かりはしましたが、果たして役立つ知識が得られたのかを改めて考えてみました。 ここだけ深掘りすると何本も書けそうなのですが、今回は印象論にとどめておきます。 総じて、知識が得られたというよりは、理解が浅いことがわかった、疑問が増えたといった方が近いように思えます。

  • アジャイルアプローチにおけるテストの方法を短くまとめた国際的な文書が手に入りやすいことは価値があると思います。だったら Agile Testing Condensed の方が解説があって良いじゃないの?とも思えるけど、問題で理解を確かめられる点は ISTQB に分があるとも考えられます。
  • テストに焦点を当てる場合でも whole team approach と early and frequent feedback が中核なのだろうと思います。
  • テスト担当者の役割に多くの記述を割いているので、役割分担の材料になると思います。
  • CTFL-AT に限った話ではないんですけど business representatives って具体例が浮かばないんですよね。プロダクトマネージャーか商品企画者ならわかるので、いつもそう置き換えています。特定企業向けソフトウェアの開発なら、その企業のビジネス代表者が出てくるのではないかと想像できますが、そういう開発をやったことがないのであくまで想像です。power of three の原典を読むと理解が進むかもしれません。
  • これはそもそも CTFL からそうなんですが、独立したテスト担当者であるからこそ効果的な欠陥検出ができるっていうのに納得していないんですよね。なので、CTFL-AT にある独立性の選択肢の部分について、選択肢があることは理解できますがそれぞれ固有の効果があることは理解できていません。
  • リリース計画は最初期に立てる、という説明しかなく、リリース計画を繰り返したり見直すことの説明がありません。新規開発のせいぜい半年くらいしか想定しておらず、何年も継続的にプロダクトを育てる視点で書いていないのではないか?と疑いました。
  • 継続性についてはもう1つ気になることがシラバスに書いてあります。
    • 2.2.2 テスト担当者は各イテレーションで、以前および現在のイテレーションの手動テストケースおよび自動テストケースをレビューし、回帰テストスイート用の候補を選択し、関連性のなくなったテストケースを削除する時間を確保する必要がある。
    • 3.1.4 デリバリー済みの機能と特性についての継続的なテスト戦略を可能とするには、根底にある機能とフィーチャの間のすべての依存関係を識別することが重要である。
    • 確かにイテレーティブな活動を継続するにはこれらは重要なんですけど、難しいことに思えます。より上級の試験範囲に入ってるんでしょうか。
  • 選択問題では「testable なユーザーストーリーはこれ」と選べました。でも実際は testable かどうかって、ある文章が論理的か?と同じように主観的なもので、チームのプロダクトに対する理解によって何かテスト条件を省略しても testable と思えるか、あるいは詳細に書き下すかが異なってくるものではないでしょうか。
  • うまくいっていない状況への対処を考えさせる問題は応用力がつきそうです。試験対策の問題集だけでなく、そういった問題集があれば実務者に役立つと思います。
  • ATDD は全く経験がなく BDD も個人で動かして「動いた!ふーん…」で終わったので、気が向いたら他の解説を読んでみようと思います。
  • テストピラミッドって言葉と図を作ってまで言う価値があることなのか、さっぱり理解できませんでした。これも原典を読めばわかるのかもしれません。
  • 4象限は最初のうちは雑に見えたのですが良さそうに思えました。未熟なうちはどこかの象限がぽっかり空いたり、Q2とQ3の区別がつかないのではないでしょうか。そして成熟してどこも埋まるようになっても、今のイテレーションで注力することのベースとして4象限は使い続けられると思います。ただし、Q1が左下で右回りなのは誤解を生むと思います。なんで数学の座標平面と違って右上から左回りじゃないんでしょうね。
  • 英語で勉強して英語の試験を受けると英語の能力が伸びるかというと、実感はありません。単純に実感を伴うほどの量に足りないからだと思います。きっとこの小さな努力の10倍を積むとちょっと実感できそうです。

8年前に CTFL を学習したときは「最初のうちは盲信してもいい」といえるほどの基礎知識が得られた覚えがあります。しかし CTFL-AT についても同じかというとそうではありません。CTFL を勉強したときは今よりも知識がなかったから盲信してもいいと思えて、今は疑問を持てるだけの知識がついたから盲信してもよいと思えなくなったのかもしれません。 …と、さくっと書くつもりが長文になって疲れたので自分を褒めて終わります。

*1:ISTQB(International Software Testing Qualifications Board) とはソフトウェアテストの国際資格組織であり、いくつかのレベルと種類に分けられた複数の資格試験を提供しています。ISTQB は各国のソフトウェアテスト資格認定団体と相互認証する制度を設けており、日本には JSTQB という International が Japan になった名前の団体があります。相互認証によって、JSTQB の日本語による試験に合格して得た資格は ISTQB の該当する資格に相当することを意味します。JSTQB は ISTQB の扱う試験を一部を提供しています。CTFL-AT の試験要綱(シラバス)は提供されていますが、試験自体は実施されていません。