開発寄りのエンジニアがテストを体系的に学ぶためにJSTQBのFoundation Levelを受験してみました
こんにちは。AWS事業本部モダンアプリケーションコンサルティング部に所属している今泉(@bun76235104)です。
みなさんテストの自動化してますか?(ご挨拶)
私は比較的小〜中規模のチームでのアジャイル(っぽい)開発経験が多いのですが、以下のようなことよくありませんか?
- 専任のQAエンジニアはいない
- (今回のことに直接は関係ありませんが)なんなら専任のインフラエンジニアもいない
- 開発エンジニアが頑張ってテストを書いている(自動化してCIを回している)
- ただとても頑張って日々の開発を回しているが、テストの目的や品質保証については後回しになっている
- エンジニアのレベルによってテストの書き方やテストケース自体のできがバラバラ
大きめの組織にはささらないかもしれませんが、上の文章をみてすごい勢いでうなずいている方も多いかと思います。
今回は上記のような悩みを直接解決するソリューションではありませんが、「QAのスペシャリストがいなくても、開発よりのエンジニアが良いテストを回せるようになりたいじゃない!」ということで、JSTQB認定テスト技術者資格を受験してきました。という記事となります。
さっそくまとめ
- 受験のメリット
- 受験した Foundation Levelは、品質保証活動の一環としてのテストの基本的な流れ・原則などについて学べる
- アジャイル開発における考え方、テストの自動化、シフトレフトの重要性などについても学べます
- 私も失礼ながら「最近の潮流は抑えられてないのでは」と少し思っていたのですが、そんなことはなかったです
- テストの7つの原則を学べて、これの言い回しをみるだけでも面白い
- 認定試験のシラバスに書いてあります
- 「同値分割」や「境界値分析」などの個々のテスト技法についても学べる
- 受験から結果の通知まで
- Pearson Vueで予約可能
- 予約したテストセンターで受験する
- 結果は2週間以内を目処にメールで通知される(私は4日程度で通知されました)
- 個人的に受験して嬉しかったこと
- 「何を目的に」日々のテストを回しているのか言語化および根拠の提示ができるようになった
- ISO/IEO 25010の品質モデルなどについて知ることで、「品質」とは何かを考えるきっかけになった
- 「実際の案件ではこういうところまでは自動化しておいた方が良さそうだな」と根拠を持って考えるようになった
今回私も受験をして、合格できたので流れや個人的な感想をまとめてみました。
認定試験について
試験の概要
そもそもJSTQBってなに?という点について、以下のように公式サイトに記載されています。
JSTQBとは、日本におけるソフトウェアテスト技術者資格認定の運営組織で、 各国のテスト技術者認定組織が参加しているISTQB(International Software Testing Qualifications Board)の加盟組織として2005年4月に認定されています。 ISTQBの加盟組織の各国団体は資格および教育・訓練組織認証について相互認証を行っています。つまり、JSTQBが運営するソフトウェアテスト技術者資格は海外でも有効な資格となっています。
ISTQBの加盟組織として実施要領に記載されているような認定試験を運用してくださっているようです。
少しだけ現在(2023/10/24)行われている試験がわかりにくかったのですが、基本的にテストはCBTとよばれるコンピュータベースで行われる試験のようです。
- 通年受験できる試験
- 指定された期間だけ受験できる試験
と分かれているようなので、実施要領を確認するのが良さそうです。
私はX(旧Twitter)でJSTQB広報ワーキンググループのアカウントをフォローしてみました。
※ アカウントのフォローなどは自己責任でお願いします。
Foundation Levelの試験内容
公式のシラバスに記載があるため、ご確認ください。
私の場合、上記シラバスを一読しつつ、書籍で学習しました。
書籍の感想や付箋を貼ったポイントなどについては、個人のブログとなりますが以下で公開しています。
試験の申し込み・会場の予約
Pearson Vueのサイトで、アカウント登録・試験予約を行いました。
こちらではCBT試験の形式に慣れていない方向けにサンプル問題なども公開されています。
私の場合、AWS認定資格でCBT試験に慣れていましたので特に問題なく予約まで完了しました。
受験した感想・学んだこと
試験の内容に関わることは言及できませんが、以下のようなことを学べました。
- テストの目的や品質保証の目的を明確にすることの重要性
- 「重要なのは当たり前じゃん」って思いますが、「なぜ」とか「何をもって」ということを言語化することは意外と難しい
- 「品質」って何?
- 「負荷試験」や「セキュリティテスト」など品質の特性は?
- 日々の自動テストは「品質特性」の何を目的にされているのか?
- 「何を守りたくて」テストをしているのか
- 「どのような観点で」テストをする必要があるのか、初期のうちに明確にすることの重要性
- 余談ですが、「テスト観点一覧表」を作成することで、テストの観点を整理できます
- 以下書籍にてサンプルの一覧表が記載されており、合わせて読むと非常に理解が深まります
- 「品質」って何?
- テストの7原則について知れた
- エンジニアって「〜の原則」って大好きじゃないですか?(偏見)
- 私は好きなので、刺さりました
- 「重要なのは当たり前じゃん」って思いますが、「なぜ」とか「何をもって」ということを言語化することは意外と難しい
- 個々のテスト技法の復習ができた
- 動的テスト・ブラックボックステストの技法と実際の問題演習
- 同値分割・境界値分析など
- 動的テスト・ブラックボックステストの技法と実際の問題演習
- 「〜のシフトレフト」ツールやSaaS製品の導入モチベーションがより鮮明になった
- たとえば、私は以前Snyk CodeとVSCodeで開発中コードのセキュリティスキャンをやってみたというブログを書きました
- これも「セキュリティのシフトレフト」という観点でも非常に有用なツールだと思います
- ただ、たんに「セキュリティの重要性」「早めに検知することの重要性」を語るよりも、品質特性や品質保証という観点からみた重要性も意識できるようになったと思います
個々の技法だけでなく、全体の流れや目的を整理しながら学べるので、非常に良い勉強になったと思います。
さいごに
テストエンジニアやQAエンジニアの方には常識でも、意外と開発エンジニアの方が言語化できないことも多いのではないかと思います。
目的をもってテストをする、どういう観点でテストをするのか、テストケースの書き方など幅広く基本的なことを学べるので、テストの基礎を学びたい方にこのテストはおすすめです。
私も上位レベルの試験なども合わせて受験を考えようと思います。
以上、最後までご覧いただきありがとうございました。