
QAエンジニアについて
QAエンジニアは製品の動作確認やサービスの品質保証をミッションとした、テストやレビューなどをメインに行うエンジニアです。システムやアプリケーションが仕様に沿った動作をしていることをレビューやテストで確認し、開発者に問題点をフィードバックしてソフトウェアの品質を確保します。
QAエンジニアのQAは、Quality Assuranceの頭文字で「品質保証」を表す言葉です。品質保証エンジニアとも呼ばれます。
1. QAエンジニアとテストエンジニアの違いについて

QAエンジニアは、システム開発において、「品質計画(テスト設計)」「動作テスト」「品質管理」「品質改善」「品質保証」の工程を担当します。
QAエンジニアが行う動作テストは、開発工程で実施される単体テストや結合テストのように単体のプログラムやその結合体に行うのではなく、完成したソフトウェア全体に対して行います。完成品に対するテストとなるので、ユーザー環境を構築して行う動作テストや耐久テスト、動作仕様テストなどが主な試験内容となります。
一方、テストエンジニアは、プログラムが正常に動作するか、不具合がないかといった観点でテストを行います。そのため変数の戻り値やクラスの動作を確認する単体テストや、関数同士の連携や動作を確認する結合テストといった業務が主になります。このような点で、QAエンジニアとテストエンジニアは異なる職種です。
2. QAエンジニアの仕事内容

QAエンジニアの仕事内容は、システムやソフトウェアの品質を保証することです。
主な仕事内容は以下となります。
1.テストの計画・設計
QAエンジニアの仕事はシステム開発プロジェクトにおけるテストの計画から始まります。プロジェクト計画の起案段階から、システムの特性を考慮したテスト計画を作成します。テストの観点や確認内容は早い段階で洗い出しておき、テストの準備として機器や人的リソースの手配を行うといった管理もQAエンジニアの業務の一つです。プロジェクトの開始段階では細かい仕様はなく設計が進むにつれ決まっていくため、その進捗にあわせてテスト設計を行わなければなりません。テスト計画時の観点に基づき、確保すべき品質を確認できるテスト設計が求められます。
2.仕様の確認と設計上の問題の抽出
QAエンジニアは、プロジェクトによっては設計工程の品質チェックを行う場合もあります。仕様書のチェックでは、テスト内容を確認し仕様の抜け漏れや誤りがあれば正します。以降の工程での成果物の品質を高めることにも繋がります。本来確認すべきテストが抜けていた場合、あとになって再テストが必要になる可能性もあるため注意が必要です。3.テスト実行・結果分析
開発やテスト工程が進み、システムが出来上がってきたタイミングで、QAエンジニアは計画・設計に沿ったテストを実行します。テストは、「仕様書に沿っているか」や「ユーザーが快適に使えるか」など多角的な視点でのチェックが必要です。テストの実施後は速やかに結果の集計を行い、開発者にフィードバックします。また、集計結果からテスト時点のソフトウェア品質の評価をはじめ、課題の共通点、強化に必要なポイントの抽出と対策の立案を行います。
4.結果報告と改善案の作成・提出
テストを実施した後、結果の分析内容と問題点および改善案をプロジェクトマネージャーや開発チームのリーダーなどのステークホルダーに報告します。結果に応じて、開発現場へのフィードバックおよびソフトウェアの品質改善を促す必要があります。プロジェクト全体に同じような障害や品質問題がある場合には情報の展開が必要となるため、そのフォローも重要な業務です。3. QAエンジニアに求められるスキル

QAエンジニアに求められるスキルは多岐にわたります。
必要なスキルは以下になります。
1.プログラミングスキル
ソフトウェアに実装されている各機能の品質保証に際し、機能仕様や設計内容に関してレビューや評価を行うのもQAエンジニアの仕事です。単体テストや結合テストの結果と照らし合わせ、ソフトウェアの評価を行います。開発資料を読み解くためには、開発に使用された言語を理解する必要があります。2.テスト技法の知識
QAエンジニアは、テスト技法に基づいたテスト計画の立案と実行、品質管理を行います。テスト計画を立てるには、開発内容に応じてどのようなテストを行うべきかの判断が必要です。つまり、幅広いテスト技法の知識が必須となります。テスト技法には、境界値分析、状態遷移テスト、デシジョンテーブルなど複数の種類がありますが、すべてのケースや組合せをテストすることはリソース的に難しい場合が多いです。そのため、リソース内で実行できる設計が求められます。
3.ソフトウェア開発の知識
QAテストエンジニアには、ソフトウェア開発の知識も求められます。たとえば、テストから得られた結果をもとに、不具合の再発防止策の提案を行うためにはソフトウェア開発に対する知見が必要です。また、テスト結果を報告する際には、開発プロセスの問題点、改善ポイント、工程の見直しを開発プロジェクト全体にフィードバックする必要があります。
4.品質マネジメントの知識
ソフトウェアの品質管理や品質保証を行う上で、品質マネジメントの知識が必要となります。QAエンジニアの仕事は品質保証に直結しているため、各工程での品質管理や保証のプロセスの質をマネジメントし向上させることも業務の一環です。5.コミュニケーションスキル
QAエンジニアにはコミュニケーションスキルも必要です。品質保証の仕事というと、一人で黙々とテストや検証を繰り返す仕事をイメージしがちですが、実際にはシステムを開発したエンジニアや、ほかの部門のスタッフとのコミュニケーションが求められます。たとえば、業務の対象となるシステムが、どのような機能を持つのか確認したり、品質保証のためのテスト結果をエンジニアに伝えたりなど、コミュニケーションが必要となる場面が多々あります。
6.マネジメントスキル
QAエンジニアにはマネジメントスキルも欠かせません。たとえば、仕事の納期調整のためのスケジュール管理や、ほかのスタッフの管理、そしてソフトウェアの品質マネジメントなどのスキルです。7.オフィスソフトによるレポート作成、プレゼンテーションスキル
QAエンジニアには、レポート作成やプレゼンテーションのスキルが必要です。QAエンジニアの行うテストの結果やそこから得られた知見は、システム開発プロジェクトにフィードバックするためのものです。そのため、表計算ソフトや文書作成ソフト、プレゼンテーションソフトを用いて結果をまとめ、レポートを作成、プロジェクト関係者に内容をプレゼンテーションを行います。4. QAエンジニアに役立つ資格
QAエンジニアの仕事において役立つ、代表的な資格をいくつか解説します。
1.JSTQB認定テスト技術者資格
JTSQB認定テスト技術者資格は、JSTQ(Japan Software Testing Qualifications Board)が運営している資格認定制度です。Foundation Level、Advanced Levelの2つのレベルが用意されており、レビュー評価やソフトウェアテストに関する知識が問われます。国際ソフトウェアテスト資格認定委員会であるISTQBと連携した試験であるため、世界各国におけるテスト技術者資格と相互認証され、海外でも通用する資格となっています。
2.IT検証技術者認定試験(IVEC)
IT検証技術者認定試験(IVEC)とは、一般社団法人IT検証産業協会(IVIA)が実施する、テストエンジニアのテスト現場における知識を問う資格試験です。2024年春期より新たな制度を適用し、「アシスタント」「テスター」「デザイナー」「アーキテクト」「エバンジェリスト」の5段階のレベル分けと試験の実施がアナウンスされています。
3.ソフトウェア品質技術者資格認定
ソフトウェア品質技術者資格(JCSQE)は、一般財団法人 日本科学技術連盟が主催するソフトウェアエンジニア向けの認定資格です。テストや品質保証にフォーカスがあたっているため、QAエンジニアのスキルを示すにも適しています。
試験対象は、開発者、テストエンジニアなどソフトウェア品質に携わるすべての方を対象としています。試験は、中級・初級の2段階に分類されています。
4.QC検定
QC検定は、日本規格協会(JSA)が運営している資格認定制度です。4級・3級・2級・準1級・1級の5つのレベルが用意されており、品質管理の実践と品質管理の手法についての知識が求められます。ソフトウェアの品質保証に限ったスキルではなく、一般的なものづくり全般に関しての品質保証スキルが問われます。
5. 最後に
QAエンジニアの概要やテストエンジニアとの違い、求められるスキル、役立つ資格などについて解説しました。QAエンジニアはソフトウェア開発において、品質担保と品質向上の役割を担う重要なエンジニアであり、品質の良いサービスを作り出すために必要不可欠な存在です。
最後まで読んで頂きありがとうございました。