QAにおけるテスターとは?QAエンジニアとの違い、業務内容、キャリアパス、役立つ資格などをわかりやすく解説!
ソフトウェアの品質が、人々の生活やビジネスの成功に大きな影響を与えることがあります。
品質の低いソフトウェアが導入された場合、社会インフラの機能停止やビジネスの機会損失が発生し、さらには人々の生命や経済にも重大な影響を及ぼす可能性があります。
たとえば、2021年から1年間に連続して発生したメガバンクのATMシステム障害は、利用者に不便を強いるだけでなく、金融取引ができない状況が生じ、経済に重大な影響を及ぼしました。
また、2023年には国内線旅客システムの不具合で航空機の欠航や遅延が発生し、利用者に多大な影響が及んだ事例は皆さんもご存じかもしれません。
このような問題を防ぐため、ソフトウェア開発ではQA(Quality Assurance = 品質保証)と呼ばれる活動を行います。この活動を推進する重要な役割として、QAエンジニアとテスターという2つの役割があります。
本記事では、QAエンジニアとテスターそれぞれの業務の内容、必要とされるスキル、キャリアパス、年収の比較と、役立つ資格をわかりやすく解説します。
ソフトウェア開発におけるQAやQAエンジニア、テスターに興味がある方は、最後までご一読ください。
そもそもQAとは?
QA(quality assurance)は日本語で「品質保証」と訳され、ソフトウェア開発の品質保証に関わるプロセスに焦点を当てた活動です。
ISTQB(International Software Testing Qualifications Board)のGlossaryでは「品質要件が満たされるという確信を提供することに焦点を当てた活動」と定義されます。
簡潔に表現すると、開発するソフトウェアが以下のような要件を満たす活動をすることです。
- 要求されたすべての機能が含まれること
- 仕様通りに動作すること
- 反応速度・性能が適切であること
ここでは、QA活動に関わるQAエンジニアとテスターのそれぞれの役割について解説します。
QAエンジニアとは
QAエンジニアは、ソフトウェアの品質目標達成のために、開発プロセス全体を通じて品質保証の活動を行うエンジニアです。
品質保証という言葉から、テスト実行がQAエンジニアのメインの業務であると誤解されがちですが、テスト実行は品質保証に関する業務のひとつに過ぎません。
テスト技術者認定制度のシラバス「1.2.2 テストと品質保証(QA)」でも以下のように述べられています。
「テスト」と「品質保証」(QA)という用語を同じように使う人が多くいる。しかし、テストと品質保証は同じではない。テストは品質コントロール(QC)の形式の1 つ。
具体的には、QAエンジニアの役割はテストの計画や設計、テストケースの作成、テスト結果の分析など、テストの上流が主要な役割です。
開発するソフトウェアによっては、テスト自動化の設計、セキュリティ面の担保、性能の担保など、エンジニアリングスキル(設計・プログラミングスキル)が求められる場合もあるでしょう。
テストの下流となるテスト実行は後述するテスターの役割で、QAエンジニアの主要な役割ではありません。ただし、企業やプロジェクトによってはQAエンジニアがテスト実行を担当するケースもあります。
テスターとは
テスターは企業やプロジェクトによってはテストエンジニアと呼ばれることもあり、テスト実行を担当するエンジニアです。
ISTQBのGlossaryでは「テストを実行する人」と定義されます。
テスターの役割は、ソフトウェアの動作仕様に従って作成されたテストケースをもとにテストを実行し、設計された仕様通りに動作することの確認です。
たとえば、検索画面をテストする場合を考えてみましょう。検索画面では、利用者に設定された検索条件に合致した検索結果が表示されなければなりません。
その動作を確認するためには、設定できる検索条件すべてのパターンに対して、正確に検索結果が表示されることを確認する必要があります。また、検索結果が0件になるときにその旨が表示されることの確認や、異常な検索条件(数字入力にテキスト文字を入力するなど)でもエラーが正しく表示できることの確認も必要です。
このようなソフトウェアの動作と確認方法が定義されたテストケースに従って、テスターは動作を実行して結果を確認します。
しかし、すべてのテストケースが期待した通りに動作するとは限りません。設計通りに動作しなければ、不具合として報告し、開発者へ情報をフィードバックします。
ただし、企業やプロジェクトによってはテスターがテスト設計、テストケース作成などQAエンジニアの役割の一部を担当することや、QAエンジニアがテスターを兼任することもあります。
QAエンジニア・テスターの違い
QAエンジニアとテスターは、求人サイトなどではしばしば同一のものとしてみなされてしまう場合がありますが、テスト業務を進める上での役割や求められるスキル、年収、キャリアパスなどに違いがあります。ここでは、その違いを比較して解説します。
主な業務内容
QAエンジニアとテスターの、それぞれの業務内容と業務での役割を解説します。
1.機能仕様と設計の理解と品質確保
QAエンジニアとテスターは開発するソフトウェアの要件・目標や、機能仕様と設計の深い理解が必要です。
機能仕様や設計を理解しないと、ソフトウェアがどのように動作すべきかわからず、精度の高いテストはできません。
さらに、QAエンジニアは機能仕様や設計の成果物である、機能仕様書や設計書の品質確保にも重要な役割を果たします。
これは、ソフトウェアの品質は機能仕様や設計の上流工程の品質で決まるからです。
このことは情報処理推進機構(IPA)の「高信頼化ソフトウェアのための開発手法ガイドブック」でも述べられています。
- 東京海上日動システムズ株式会社の事例:「2.1 取り組みの背景」
高品質なシステム開発のためには、システムの重要度にあわせたリスク評価・対応と、上流工程での要件の精度の向上や設計書・プログラムミスの削減が必要である。 - 日本ユニシス株式会社の事例:「4.1.2 テスト技術への取り組み」
上流工程での成果物品質をいかに高めるかに焦点が移ってきた。 - 富士通株式会社の事例:「6.1 取り組みの背景」
上流工程での問題発生は、プロジェクト失敗原因の多くを占める。
出典:「高信頼化ソフトウェアのための開発手法ガイドブック」https://www.ipa.go.jp/archive/publish/qv6pgp0000000zlp-att/000005144.pdf
QAエンジニアは、機能仕様や設計の成果物についてレビューによる検証プロセスを定義し、自らもレビューに参加し検証するなど、品質確保に努めなければなりません。
したがって、機能仕様の策定や設計の上流工程からソフトウェア開発に携わることが望ましいといえます。
2.テスト計画
QAエンジニアは、品質目標を達成するためのテスト計画を策定します。
ソフトウェアの品質を左右するテストの成功には、テストの計画が重要です。そのため、QAエンジニアの責任は重大といえるでしょう。
テスト計画では以下のような項目をテストレベル(単体テスト、結合テスト、システムテストなど)ごとに定義します。
- テストの目的:重点的に確認する品質特性
- テストの範囲:テスト対象の機能や要件
- テストの方法:手動テスト、自動テストなど適用するテスト方法
- テストの環境:テストを実施する環境(ハードウェア、OS、ミドルウェアなど)
- テストの観点:確認する品質特性に対応する切り口
- テストの目標指標:目標とする品質指標(テスト網羅度、エラー密度など)
- テストの完了基準:テスト完了の判断基準
- テストの成果物:テスト成績書、テスト結果報告書などのアウトプットとなるドキュメント
- テストの体制・スケジュール:テスト実行の担当や期間
なお、テスターはQAエンジニアが策定したテスト計画の内容を理解しなければなりません。
テスト計画を理解していないと、間違ったテスト実行を行ったり結果確認が正しくできなかったりするため、テスト精度の低下・やり直しなどが発生し、テスト効率の悪化となるでしょう。
3.テスト設計
QAエンジニアは、策定したテスト計画に沿ってテストで確認すべきことを考え、テストを設計します。
テスト設計が十分にできていないと、テスト実行の効率が悪くなる、確認すべきことの抜け漏れが発生するなど、以下のような問題が起こりかねません。
- テストケースの重複
同じ機能や条件を重複してテストしてしまうテストケースが作成され、テストの実行効率が悪化します。 - 重要なテストケースの欠落
条件やデータパターンが十分に設計されず重要なテストケースが欠落し、後工程で検出され修正コストが増加します。 - テスト結果分析が困難
不具合票の作成や不具合の管理方法が明確になっていないと、正確な不具合情報が残らず、テスト結果分析の効率悪化や精度低下につながります。 - テスト自動化の困難
テスト自動化を導入してもテストスクリプトでの重複ケースやケースの欠落が発生し、期待通りの効率化が得られません。
これらの問題を避けるため、テストケースの作成やテスト結果の分析のために以下の内容を設計します。
- テストマップ:テスト観点と機能の割り当て
- テストパターン:入力データや操作のバリエーション
- テストケース:テストの具体的な手順や、期待する結果
- テスト技法:効率的に不具合を検出できるテスト技法の選定
- 不具合の管理方法:不具合票の記載方法や管理方法
- 不具合の属性:原因区分などテスト結果の分析に必要な不具合の属性
- テストツール:テストで使用するツールやツールの使用条件など
なお、テスト設計はQAエンジニアだけではなく、スキルの高いテスターが対応するケースもあります。
これは、大規模で複雑なシステムやセキュリティテストなど特殊なテスト手法を適用する場合など、実際にテスト経験のあるスキルの高いテスターが設計することで、精度の高い設計ができるからです。
また、テスト自動化ツールを導入する場合、ツールのノウハウやテストスクリプト作成の経験のあるテスターが設計するケースもあります。
4.テストケース作成
QAエンジニア、またはテスターが、テスト設計に基づきテストケースを作成します。
テストケースには具体的なテストの手順、使用する入力データ、期待される結果を記載しますが、誰もが同じテスト手順で、同じように結果の確認ができなければなりません。テスターによってテスト手順や合否判定が異なると、品質確保は困難です。
作成したテストケースは、妥当性、網羅性、効率性などをレビューで検証し、適切であることを確認します。
5.テスト実行
テスターはテストケースに従って実際にテストを実行し、ソフトウェアの挙動と期待される結果を比較します。
具体的には以下の流れでテストを進めます。
- テスト実行:テストケースの手順に従いテスト実行
- テスト結果の確認:テストの結果と期待される結果を比較
- テスト結果の判定:テストケースに合否を記載
- 不具合の報告:不具合は不具合票を作成し報告
- テスト進捗の報告:テストの進捗、状況を定期的に報告
しかし、テストは必ずしも期待通りの結果になるとは限りません。期待通りの結果にならなかった場合は、テスターは不具合票を作成して開発者へフィードバックします。
開発者がソフトウェアを修正後にテスト実行し、期待された結果となれば不具合修正は完了です。
決められたすべてのテストケースのテスト実行が合格で完了したら、テスト実行は完了です。なお、QAエンジニアがテスト実行に対応するケースは少ないでしょう。
6.テスト結果の分析・評価
QAエンジニアはテストの結果を分析し、ソフトウェアの品質を評価します。
テストケースがすべて合格になったからといって品質が確保されているとはいえません。品質を確保するにはテストの結果から、目標品質仕様との予実差、不具合の傾向、目標品質指標との予実差などを分析し、ソフトウェアの品質が確保されていることを確認する必要があります。
分析・評価の手順は以下の通りです。
- テスト結果の収集:テスト結果、不具合票、テストログなどの収集
- データの整理:収集したテスト結果の整理、集計
- 結果の分析:整理・集計したデータを定量的、定性的に分析
- 分析結果の評価:分析結果からソフトウェアやプロセスの問題点、弱点の特定
- 問題点の改善:評価結果から問題点、弱点への対策・改善
精度の高い分析・評価を効率よく行うには、あらかじめテスト設計でテスト結果にどのようなデータを含め、集計するかを決めておかなければなりません。
テスト結果の分析に必要なデータが含まれていないからといって、テストを再実行するのはテスターの負荷やコストからいって難しいでしょう。
QAエンジニアはテスト結果の分析・評価から、ソフトウェアの品質確保や開発プロセスの改善が求められます。
精度の高い分析・評価をするためには、テスト設計で分析の方針や集計するデータを決めておくことが重要です。テスターは分析・評価を行いませんが、分析に必要な情報をQAエンジニアへ提供します。
7.テスト報告
QAエンジニアは最終的にテスト結果、分析・評価をまとめてテスト結果報告書を作成します。
テスト結果報告書はテスト工程におけるソフトウェアの品質確保の判断や出荷の判断のために重要なドキュメントです。QAエンジニアは作成したテスト結果報告書に基づき、プロジェクトマネージャーをはじめプロジェクト内外の関係者に品質の状況を報告します。
品質報告では以下のような内容も報告します。
- 不具合の発生状況
- 目標の品質指標値との予実差や差分の評価
- 分析で抽出したソフトウェアの弱点・問題点
- 弱点・問題点への対策と結果
- 今後の工程や出荷への影響
テストの報告では、プロジェクト内外の関係者で品質状況を共有しておくことが重要です。
QAエンジニアとテスターの対応業務のまとめ
QAエンジニアとテスターの主な業務を解説してきました。
業務内容からは、QAエンジニアがテストの上流工程である計画・設計、結果の分析を行い、テスターがテストケースの作成や実行の役割分担となっています。
以下に解説したQAエンジニアとテスターの業務の役割分担をまとめます。
<QAエンジニアとテスターの対応業務>
求められるスキル
QAエンジニアとテスターに求められるスキルは、レベル差はあるものの、ほとんど同じといえるでしょう。
それぞれに必要なスキルを詳細に説明します。
プログラミングスキル
QAエンジニアとテスターにはプログラミングのスキルが求められます。
プログラミングを直接行うわけではありませんが、テストケース設計・作成、テスト実行、不具合のフィードバックでは、プログラミングの知識があると問題点を炙りだすのにより効果的なテストケースを考えられます。
プログラミングのスキルがあると、動作仕様や設計からどのようなプログラミングになるか想定できます。プログラミングでありがちなミスを想像しながらテストを設計したり、バグがありそうな箇所をピンポイントでテストする探索的テストなどのアプローチを採ったりする場合に役立ちます。
他にも、自動テストツールを活用する場合にも、スクリプトや簡単なプログラミングが必要になるので、プログラミングスキルがあれば効率的に作業が進められます。ただし、近年はAutifyのようなノーコードの自動テストツールも増えてきており、テスト自動化そのものにはプログラミングスキルが求められない場合もあります。
ツール活用スキル
テスト設計やテスト実行の業務ではツールを活用するケースも多く、QAエンジニアとテスターはツール活用スキルが必要です。
ツールの活用により、テストケースやテストデータの作成、テスト実行が効率化され、精度も向上します。
ただし、ツールを使えるだけでは十分ではありません。ツールは自身だけでなく、他のテスターや開発者も利用できるように手順書の作成や教育も必要です。
ツール活用のスキルは、ただツールが使えるということではなく、導入するツールの調査、導入計画、ツールの教育までを含めたスキルになります。
ドキュメント作成スキル
QAエンジニアとテスターには、高いレベルのドキュメント作成スキルが求められます。
QAエンジニアは、テスト計画、テストケース、テスト報告書などのドキュメントの作成が必須になります。QA活動やテストの進捗報告、品質状況の説明は、論理的で明確に説明できなければなりません。
なぜなら、QA活動やテストの進捗報告、品質状況の説明は、プロジェクトメンバーだけでなくプロジェクト内外の関係者に明確に伝えることが重要で、その説明資料として論理的で要点を踏まえたドキュメントが必須となるからです。
また、テスターはテストケース、不具合票などのドキュメントを作成します。テストケースや不具合の状況は、テスターや開発者に正確に伝えなければなりません。
曖昧な状況や不正確だと、開発者のデバッグに時間や手間がかかり非効率です。
これを避けるためには、必要なことを正確かつ詳細に記載できるスキルが求められます。
QAエンジニアとテスターにとって、ドキュメント作成スキルは円滑なコミュニケーションにもつながるため重要なスキルといえます。
テスト技法スキル
効率よく精度の高いテストケースを作成するには、テスト技法のスキルが必要です。
テスト技法には同値分割テスト、境界値テスト、デシジョンテーブルテスト、状態遷移テスト、組み合わせテストなど多くの技法があります。
QAエンジニアやテスターはこれらの技法がどのようなものか、どのようなときに適用するのか理解しておかなければなりません。
これらのテスト技法の正しい活用により、効率よく精度の高いテストケースが作成でき、結果的にテスト実行の効率化につながります。
コミュニケーションスキル
QAエンジニアとテスターには、高いレベルのコミュニケーションスキルが求められます。
QAエンジニアは、プロジェクトメンバーへの適切な指示および正確な情報の聞き取りや、プロジェクト内外の関係者にソフトウェアの品質やテストの状況を説明するコミュニケーションが必要です。
テスターは、QAエンジニアからの指示・結果の報告や、開発者へ不具合のフィードバックのコミュニケーションが発生します。
適切にコミュニケーションを行うことができない場合、プロジェクト内外の関係者や開発メンバーに正確に情報が伝わらず、効率の悪化、問題解決の遅れとなりかねません。その結果、プロジェクトの成功が難しくなるでしょう。
論理的でわかりやすい説明や報告、相手の意見を正しく理解するために、高いレベルのコミュニケーションスキルが必要になるのです。
年収
QAエンジニアとテスターの役割の違いは会社や開発組織によって異なる場合があり、一概にどちらの年収が高いとは言えません。
参考までに、求人サイトのIndeedにおけるそれぞれの平均年収は、2024年3月時点でQAエンジニアの平均年収は約590万円、テスターは約468万円でした。
indeedのURL:https://jp.indeed.com/career/salaries
一般的に、QAエンジニアというポジションに求められるものは、テスト計画の策定、テスト設計、テスト分析・評価・報告を行うといった、品質保証の全体的なプロセスに関与し、品質改善をリードするといったものです。対して、テスターにはテスト実行などの限定的な部分のみを期待するため、カバー範囲の広さに応じて年収に差が出る場合はあります。
しかし、実際には企業の規模、勤務地、個人の経験やスキルレベルにも大きく左右されます。また、後述するQAやテストに関連する資格を取得することで、年収が高くなる可能性もあります。昇進の条件として資格取得を義務付けている企業もありますので、会社選びの際はこうした点もチェックしておくと良いでしょう。
キャリアパス
QAエンジニアとテスターのキャリアパスは多様で、経験とスキルに応じてさまざまな方向性があります。また、キャリアアップには後述するQAやテストに関連する資格取得も重要です。
ここでは、それぞれの具体的なキャリアパスの例を紹介します。
QAエンジニアのキャリアパス
QAエンジニアの主なキャリアパスは以下の通りです。
- シニアQAエンジニア
- QAマネージャー
- QAコンサルタント
- 品質部門マネージャー
- プロジェクトマネージャー
- プロダクトマネージャー
幅広いQAの知識を活かして、シニアQAエンジニア、QAマネージャー、QAコンサルタントへのキャリアアップを目指せます。
また、品質部門マネージャーとして社内のQA活動を推進する役割のキャリアだけでなく、QAの経験を活かしてソフトウェア開発のプロジェクトマネージャーやプロダクトマネージャーへのキャリアを目指すことも可能です。
テスターのキャリアパス
テスターの主なキャリアパスは以下の通りです。
- テストマネージャー
- テストアナリスト
- QAエンジニア
- システムエンジニア
- プログラマー
テスターで経験を積みスキルを高めることで、QAエンジニア、テストマネージャーなどテストに関する上位職が目指せます。
また、テスターの経験を活かして、プログラマーやシステムエンジニアなどソフトウェア開発のキャリアを目指すことも可能です。
出典:
https://www.geekly.co.jp/column/cat-position/test-engineer-career-path/#--18
https://doda.jp/engineer/guide/it/061.html
https://freelance.levtech.jp/guide/detail/861/
将来性
ソフトウェアは今後も高い品質が求められ、QAエンジニアやテスターは必須の職種です。
ソフトウェア開発の技術の多様化や複雑性が増すにつれ、QAエンジニアとテスターの需要は増加しています。
さらに、ソフトウェア業界全体で人材不足の中、QAエンジニアやテスターも希少性があり将来性は高いといえるでしょう。
一方、ソフトウェア開発の世界は変化が非常に激しく、日々新しい技術が生まれます。QAエンジニアやテスターは新しい技術にキャッチアップしながら、それらをどのようにテストするかを考えておかなければなりません。例えば、AIを組み込んだ製品のテストは、一般的なソフトウェアのテスト技法だけでは足りないので、メタモルフィック・テストなどのAIに特化した技法を習得する必要があります。
また、テストの技術や品質の考え方についても、常に最新の動向を習得し適応していくことが必要です。
たとえば、AIテストツールの登場によりテスト自動化の流れが急速に進んできています。テストケース作成、テスト実行、テスト結果の分析など、テスト業務の一部をAIテストツールが対応していくことになるでしょう。
その結果、AIテストツールを有効に活用しQA全体を考えテストを計画、推進できる人材が評価され求められます。そのような人材はまだ希少で、その価値は今後も高まっていくのは確実です。
QAエンジニアやテスターの業務に将来性はありますが、QA・テストの知識習得や、進化する技術への適応が将来性を左右します。
テストの知識の習得は後述するテストに関する資格取得が有効なので、参考にしてください。
QAエンジニアとテスターの違いのまとめ
ここまでQAエンジニアとテスターの違いについて業務内容、スキル、年収、キャリアパス、将来性について解説してきました。
それぞれの違いを表でまとめます。
<QAエンジニアとテスターの違い>
QAエンジニア・テスターの価値を高める資格
「将来性」の項目で述べたように、QAエンジニアもテスターも独自の専門知識の習得とスキルの向上が不可欠です。網羅的な知識の習得を目指したり、スキルを客観的に証明する手段として、資格取得はとても効果的です。
特におすすめな資格は、JSTQB(Japan Software Testing Qualifications Board)の認定テスト技術者資格です。
入門レベルのCore Foundationから、専門知識が必要なCore Advanced、特定分野に特化したSpecialist、近年のソフトウェア開発で取り入れられるアジャイル開発分野のテスト知識も網羅しています。
他にも、QA資格としてはJCSQEソフトウェア品質技術者認定資格(JCSQE)やIT検証技術者認定試験(IVEC)もあり、これらはQA分野での認知度も高く有効な資格です。
それぞれの資格について詳しくみていきましょう。
JSTQB認定テスト技術者資格
JSTQB認定テスト技術者資格は、日本のソフトウェア技術者がテスト技術を向上させるための資格認定制度です。
ソフトウェアの品質や信頼性、安全性の確保が急務とされるソフトウェア開発において、テスト技術の向上を図る手段として位置付けられています。
出典:https://jstqb.jp/committee.html
JSTQBは国際的なテスト技術者資格であるISTQBの加盟組織として2005年に創立されました。そのため、JSTQBの資格はISTQBの資格と相互認証され、JSTQBは国際的にテストスキルを有することを証明できる資格です。
4つのレベルの認定資格が定義され、キャリアやスキルに応じて受験できます。
- Core Foundation:ソフトウェアテストの基本的なレベル
- Core Advanced:テストマネージャー、テストアナリストレベル
- Specialist:AIやテスト自動化など、特定の領域に特化したレベル
- Agile:アジャイル開発に特化したレベル
※2024年3月時点でAgileについてはJSTQBでは実施されていません。
なお2022年度、2023年度の各レベルの合格率は以下の通りです。
<JSTQBの合格率> ※カッコ内は受験者数
出典:https://www.juse.or.jp/sqip/qualification/jstqb/result.html
試験の問題数はレベルにより異なりますが、回答は選択式で合格ラインはすべての認定レベルでおよそ65%です。
それぞれのレベルについて詳しく解説します。
Core Foundation
Core Foundationの認定対象者は、ソフトウェアテスト分野に関わるエンジニアです。
資格取得の目的は、ソフトウェアテストの基礎的な概念と手法を把握し、効果的なテスト計画と実行のスキルを習得することです。
学習項目はCore Foundationのシラバスに定義されています。
Core Foundationのシラバス:https://jstqb.jp/syllabus.html#syllabus_corefoundation
求められる知識は以下の通りです。
- テストの基礎:テストが必要な理由、テストの主要原則
- ソフトウェア開発ライフサイクルにおけるテスト:テストのレベルとタイプ、保守テスト
- 静的テスト:静的テストの概念、レビュープロセス
- テスト分析と設計:主要テスト技術、ブラックボックス、ホワイトボックス、経験ベースの技術
- テストの管理:テスト計画作成、リスク管理
- テストツール:テストツール、テスト自動化の利点とリスク
基本的なテスト知識が理解できていれば、比較的取得しやすい資格レベルといえます。
Core Advanced
Core Advanced認定対象者は、ソフトウェアテストの上級レベルのエンジニアです。
テストマネージャーとテストアナリストの2つの認定があり、それぞれに該当するポジションに就いている人や、それらを目指す人に適しています。
資格取得の目的は、Core Foundationで習得した知識を拡張し、テストマネージャーやテストアナリストとしての役割を果たすための能力を身に付けることです。
学習項目はCore Advancedのシラバスにテストマネージャー、テストアナリストのスキル別に定義されています。
Core Advancedのシラバス:
https://jstqb.jp/syllabus.html#syllabus_advanced_altm
求められる知識は以下の通りです。
- テストマネージャー: テストプロジェクトの全体管理、リスク分析、テスト計画の策定・実施、テスト活動の監視・管理、プロセス改善など
- テストアナリスト: 要件分析、テスト設計、実施、結果の評価、品質リスク評価、テスト環境構築、ツール選定・利用、性能・セキュリティテスト、自動化など
なお、受験資格としてCore Foundationの認定と実務経験3年が必要です。Core Foundationと比較すると難易度は高く設定されています。
Specialist
Specialist認定対象者は、特定分野に特化した知識が必要なテスト技術者、テストマネージャー、品質保証担当者、およびソフトウェア開発者です。
FoundationレベルとAdvancedレベルが定義されます。
- Foundationレベル:AIテスティング、 自動車ソフトウェアテスト担当者、モバイルアプリケーションテスト担当者、性能テスト担当者
- Advancedレベル:テスト自動化エンジニアの分野があります。
資格取得の目的は、特化した分野のソフトウェア開発における特有の要求と標準に基づいたテストプロセスの理解と適用能力を身につけることです。
ただし、JSTQBでは2024年3月現在、自動車ソフトウェアテスト担当者しか実施されていません。
学習項目はSpecialistのシラバスに自動車ソフトウェアテスト担当者を含めて、特化された分野別に定義されています。
Specialistのシラバス:
https://jstqb.jp/syllabus.html#syllabus_specialist
求められる知識は以下の通りです。
- 自動車ソフトウェアテストの基本となる標準(Automotive SPICE、ISO 26262)の理解
- E/Eシステムのテストに関する標準
- 仮想環境でのテスト(モデルインザループ、ソフトウェアインザループ、ハードウェアインザループ)
- 自動車ドメイン固有の静的および動的テスト技法
- MISRAガイドライン、要件レビュー、条件テスト、バックツーバックテスト、フォールトインジェクションテストなどの適用
なお、受験資格としてCore Foundationの認定が必要です。
Foundationレベルとはいえ、Core Foundationと比較すると難易度は高く設定されています。
Agile
Agileは、アジャイル開発プロジェクトにおけるテスト活動に関与するテスト技術者が対象です。FoundationとAdvancedのレベルで定義され、アジャイル環境でのテストやツールに関する知識を深めたいQAエンジニア、QAマネージャー、テスター、テストマネージャー、QA部門のスタッフが該当します。
資格取得の目的はアジャイル開発プロセスにおけるテストの役割と責任を理解し、アジャイルチーム内で効果的にテストを実施するためのスキルを習得することです。
ただし、JSTQBでは2024年3月現在、Agileの認定は実施されていません。この記事ではISTQBの試験概要をお伝えします。
学習項目はAgileのシラバスに定義されています。
Agileのシラバス:
https://jstqb.jp/syllabus.html#syllabus_agile
求められる知識は以下の通りです。
- Foundationレベル:アジャイルソフトウェア開発の基本、アジャイルアプローチの特徴、アジャイルテストの基本的な原則、プラクティスおよびプロセス、アジャイルテストの方法、技法、およびツールなど
- Advancedレベル:要求工学、アジャイルにおけるテスト、コード品質、テスト自動化、デプロイメントとデリバリーなど
成長、拡大が期待されるアジャイル開発なので、JSTQBでもAgileの認定の実施が期待されます。
JCSQEソフトウェア品質技術者認定資格
JCSQEソフトウェア品質技術者認定資格(JCSQE)は、一般財団法人日本科学技術連盟(日科技連:JUSE)が主催する、ソフトウェア品質に関する知識を身につけた技術者を認定する資格制度です。
ソフトウェア品質工学の主要な概念、プロセス、技法を網羅する包括的な知識体系の理解が問われます。
日科技連は一般財団法人として、科学技術と経営管理技術の振興に必要な諸事業を総合的に推進する団体で1946年に創立されました。品質管理を中心とした教育・研修、表彰・資格認定、大会・シンポジウム、ISOマネジメントシステム審査登録、国際交流などの活動を行っています。
JCSQEは、初級、中級、上級の3つのレベルに分かれており、初級は年に2回(6月と11月)、中級は年に1回(11月)に試験が実施されます。ただし、上級レベルは2024年3月時点では実施されていません。
試験は、初級は40問の選択式、中級は60問の選択式・記述式です。試験の出題範囲はそれぞれシラバスに定義されています。
シラバスに定義された知識は「ソフトウェア品質知識ガイド SQuBOK Guide」に詳しく解説されていて、このガイドをしっかり理解しなければなりません。
合格ラインは初級、中級ともに70%程度となっています。
合格率は、初級は実施回により25%〜55%程度とばらつきはありますが概ね40%程度、中級は概ね15%程度です。
<JCSQEの合格率> ※カッコ内は受験者数
出典:https://www.juse.jp/jcsqe/past/ (リンク先では第1回からこれまでの合格率が参照できます。)
求められる知識範囲が広いため、初級、中級ともに難易度は高く、特に中級は難関です。
QAエンジニアは中級、テスターは初級の取得を目指しましょう。
IT検証技術者認定試験
IT検証技術者認定試験(IVEC)は、一般社団法人IT検証産業協会(IVIA)が認定するテストエンジニアの資格試験です。
テストの知識だけでなく実務を重視する資格なので、JSTQB、JCSQEと比べるとテスター向けの資格といえるでしょう。
出典:https://www.ivia.or.jp/item43
IVIAは、ソフトウェアテスト(IT検証)に関連する企業を主な会員とする業界団体です。
2005年に創立され、よりよいIT検証サービスを目指して研鑽し、業界の健全なる発展を促進するとともに、日本の社会・経済の発展に寄与することを目的としています。
IVECはレベル1からレベル7までの7つのレベルが定義されていますが、レベル6、レベル7の試験は2024年3月時点では実施されていません。試験は年2回(5月、11月)に開催され、それぞれ記述式の試験です。
なお、試験では回答にOpenOfiiceの表計算ソフトCalcを使用します。
各レベルの概要は以下のように定義されます。
<IVECの認定対象者と受験資格>
出典:https://www.ivia.or.jp/item43/item207
アシスタントからデザイナーまではテスターの業務に近く、このことからもテスター向けの資格といえるでしょう。
学習資料としてはシラバス、学習テキスト、過去問題がIVIAのWebサイトに公開されています。
出典:https://www.ivia.or.jp/item43/item38
試験の出題範囲は以下のテスト・検証に関する知識やスキルなどです。
- テスト実行計画
- テスト環境準備
- テストケース準備
- テスト実行
- テスト実行記録
- 不具合報告
- テスト実行報告
- プロジェクト管理
合格ラインは公式には公開されていません。
2023年秋の合格率はレベル1〜4が60%〜70%の範囲、レベル5は15%〜30%の範囲で、詳細は以下の表の通りです。
<IVECの合格率> ※カッコ内は受験者数
出典:https://www.ivia.or.jp/item43/item46
デザイナー(旧レベル4)まではテスターに必須の資格といえるでしょう。
まとめ
この記事ではQAエンジニアとテスターの違いについて業務内容、スキル、キャリアパス、資格取得の観点で解説しました。
- QAエンジニアはテストの計画、設計、分析、報告を、テスターは具体的なテスト実行が主な業務
- QAエンジニア、テスターは、高品質なソフトウェア開発業界での需要が高く、エンジニアの人材不足から希少性もあり、将来性が高い
- QAエンジニア、テスターとして活躍を続けるには、QAに関する知識や最新の技術へのキャッチアップが必要
- JSTQB、JCSQE、IVECのテスト資格取得はスキルアップに有効
QAエンジニアやテスターは、ソフトウェアに高い品質が求められる中、品質保証という重要な領域で活躍するエンジニアです。
単にソフトウェアの動作確認をするエンジニアではありません。ソフトウェアの技術の進化や多様化にあわせて、今後も需要が見込まれ、将来性は高いといえます。
ただし、キャリアアップのためにもQAの知識やテスト技術の向上を見据えて、QA分野での資格取得や専門知識の習得が望まれます。
ソフトウェア開発のQAに興味がある方、QAエンジニアやテスターからのキャリアアップを目指す方は、この記事を参考に新たな一歩を踏み出してみてください。