QA
読み方: きゅーえー
QAとは
Quality Assuranceの略。IT分野においては、Webサービス・アプリケーション・ハードウェア等の開発物に対して、要件を満たせているか、性能はどの程度のものかを客観的に品質を評価すること、および品質向上を図る等、品質に関わる様々なアプローチをするプロセス全般を指します。
よく「プロジェクト終盤に、予め定められたテスト項目に従ったチェックをし、不具合を検出すること」をQAと認識されることがありますが、それはあくまでQA工程の一部であり、設計書やドキュメントに整合性があるかの確認・社内の開発プロセスのコントロールなど、幅広い領域にわたり品質向上を提案することもQAの一部です。
QAはプロジェクトの最終プロセスを担うことが多いため、顧客への信頼を左右する重要なポジションです。
QAエンジニアの仕事内容
QAエンジニアの仕事内容として最もイメージされるのは、予め定められたテスト項目に従ったチェック作業の実施です。しかし、このチェック作業はQAエンジニアの仕事のごく一部であり、実際のQA工程は、様々なプロセスで構成されます。
<QA工程を構成する主なプロセス>
-
- テスト計画
プロジェクト背景 / ユースケース / テスト範囲 / テスト観点 / テスト環境 / スケジュールなどを計画します。 (あくまで私見ですが、ISO 9126、IEEE829を参照し、テスト計画をつくることが理想的と考えております。)
- テスト計画
-
- テスト設計
テスト計画や仕様書から、どういった手順でどんな期待値となるかといったテスト項目を作成します。Excelやスプレッドシートで作成されることが一般的です。
- テスト設計
-
- テスト実施
テスト設計書にしたがって、期待値通りの結果となるかを評価します。期待値通りとならない場合、タスク管理ツールなどで不具合報告をします。
- テスト実施
- プロジェクト分析
テスト開始後、想定よりも不具合が多く検出される際に、スケジュールの引き直しや開発プロセスの見直し、実装内容の選定が必要となる場面もあります。また、今後のプロジェクトを円滑に進めるためのフィードバックがあると理想的です。その他、上流工程で要件が満たせているかのドキュメント評価や、リリース後の運用保守などを行うこともあります。
トレンド
近年では、継続的なプロジェクトやデグレードを検出するためのテスト自動化の需要が高まっています。(※)
テスト自動化にはエンジニアが不可欠ですが、エンジニア自体が不足しており、自動化に踏み込めない企業が多く存在します。自動化を提案できる人材は非常に貴重であるため、スキルとして習得しておくと多くのオファーを見込めます。
※出典:
テスト自動化エンジニアとは?仕事内容や今後の需要について-ソフトウェアジョブズ
QAを行う上での重要な3か条
-
- 開発・クライアント・エンドユーザー側の視点を持つこと
「クライアント側の要求を満たしているか」「要求に対して開発は現実的か」「エンドユーザーが正しく、かつ迷わず利用できるか」など、多くの視点を持つことが重要です。この視点は、プロジェクトマネージャーやディレクターなどのマネジメント業務に通ずるものが多いため、QAのキャリアプランとして上流工程も目指すことができます。
- 開発・クライアント・エンドユーザー側の視点を持つこと
-
- 疑問を信じること
QAエンジニアはコーディングスキルがなく、未経験からはじめることが多いです。機能チェックの結果に対して疑問を持ったとしても「開発のプロが作ったんだから良いのかな…」と思い、そのまま放置してしまい後々問題になることがあります。疑問を持ったということはエンドユーザーの視点に立っているとも言えるため、些細な疑問も放置せず、解消することが重要です。
- 疑問を信じること
- ユーザー環境を定義すること
市場不具合として多く散見されるのは、ユーザー環境による不具合です。
テスト環境は仮想かつ理想的な環境で構築されていることが多く、実際にユーザーが触って初めて検出される不具合が多くあります。理想は、想定される全てのユーザー環境を再現したテストを実施することですが、すべてのユーザー環境を再現すること現実的ではありません。そのため、テスト計画の策定では、事前に顧客へ対応範囲のコンセンサスを取ることが重要です。
関連用語
<執筆・監修>
アルサーガパートナーズ株式会社 DX技術用語集制作チーム QA Div.
(2021年6月時点)