QAエンジニア
QAエンジニア(quality assurance engineer)・品質保証エンジニアとは、ソフトウェアの品質保証を目的とした品質計画の立案や動作テスト、品質管理を行うエンジニアである。
近年では、ソフトウェアの品質管理だけではなく、セキュリティ担保の観点からもQAエンジニアの需要が高まってきている。
QAエンジニアとはソフトウェアやシステムの品質を保証するために、テストの設計、実行、管理を行うエンジニアであり、
システムやアプリケーションが仕様に沿った動作をしていることをレビューやテストで確認し、開発者に問題点をフィードバックしてソフトウェアの品質を確保している。
ISO9001などの品質管理に関連した規格にも精通し、プロダクトに高い品質を保証する役割も担っている。
QAエンジニアの役割
ITシステムやアプリケーションはSEやプログラマーなどのITエンジニアにより設計・開発が行われていて、QAエンジニアは、開発されたシステムやアプリケーションが設計通りに作られ期待通りに動作するか、使いやすい仕組みかを確認し、問題がある場合は是正に繋げることが役割である。
QAエンジニアとテストエンジニア(テスター)の違い
QAエンジニアは、システム開発において、「品質計画(テスト設計)」「動作テスト」「品質管理」「品質改善」「品質保証」の工程を担当している。
QAエンジニアが行う動作テストは、開発工程で実施される単体テストや結合テストのように単体のプログラムやその結合体に行うのではなく、完成したソフトウェア全体に対して行うのが一般的であり、完成品に対するテストとなるので、ユーザー環境を構築して行う動作テストや耐久テスト、動作仕様テストなどが主な試験内容となっている。
ただし、開発や結合テスト時点で品質に問題があることが予見され、テスト工程の早い段階で品質確認のためのテストを行う場合にはこの限りではありません。
また、テスト後はその結果をまとめて分析し、集中的に対応が必要な問題を抽出することも業務の一環である。
問題が発生した工程を集計し、品質の低い開発工程を見つけ出すことや、設計・開発者による問題点の偏りなどを探し、システム開発プロジェクト運営の改善を図ることも業務に含まれている。
一方のテストエンジニアは、プログラムが正常に動作するか、不具合がないかといった観点でテストを行うことが業務であり、ソフトウェアのテストを中心に行い、繰り返しながら不具合やバグを見つけている。
そのため変数の戻り値やクラスの動作を確認する単体テストや、関数同士の連携や動作を確認する結合テストといった業務が主であり、このような点で、QAエンジニアとテストエンジニアは異なる職種といえるでしょう。
QAエンジニアの仕事内容
QAエンジニアの仕事内容は、システムやソフトウェアの品質を保証すること、一般的にシステムやソフトウェアは規模が大きいほど複雑化し、想定外のエラーや動作が発生しやすくなる、そのため、開発したシステムやソフトウェアの品質保証を行うQAエンジニアが求められるでしょう。
テストの計画・設計
QAエンジニアの仕事はシステム開発プロジェクトにおけるテストの計画が始まりで、プロジェクト計画の起案段階から、システムの特性を考慮したテスト計画を作成し、テストの観点や確認内容は早い段階で洗い出し、テストの準備として機器や人的リソースの手配も行なっている。
テスト計画時の観点に基づき、確保すべき品質を確認できるテスト設計が求められる。
仕様の確認と設計上の問題の抽出
QAエンジニアは、プロジェクトによっては設計工程の品質チェックを行う場合もあり、仕様書のチェックでは、テスト内容を確認し仕様の抜け漏れや誤りがあれば正すことが必要であり、以降の工程での成果物の品質を高めることにも繋がりがある。
本来確認すべきテストが抜けていた場合、あとになって再テストが必要になる可能性もあるため注意が必要である。
テスト実行・結果分析
開発やテスト工程が進み、システムが出来上がってきたタイミングで、QAエンジニアは計画・設計に沿ったテストを実行している。
テストは、「仕様書に沿っているか」や「ユーザーが快適に使えるか」など多角的な視点でのチェックが必要であり、テストの実施後は速やかに結果の集計を行い、開発者にフィードバックする。
また、集計結果からテスト時点のソフトウェア品質の評価をはじめ、課題の共通点、強化に必要なポイントの抽出と対策の立案を行うことも業務の一つである。
結果報告と改善案の作成・提出
テストを実施した後、結果の分析内容と問題点および改善案をプロジェクトマネージャーや開発チームのリーダーなどのステークホルダーに報告している。
結果に応じて、開発現場へのフィードバックおよびソフトウェアの品質改善を促す必要があるでしょう。プロジェクト全体に同じような障害や品質問題がある場合には情報の展開が必要となるため、そのフォローも重要な業務である。