QAとは、Quality Assurance(品質保証)を略した言葉です。業務においては、製品やサービスの品質管理・品質保持をつとめる立場のことを言います。
IT業界における「QA」は、システムが問題なく動作するか、ユーザーの求める品質になっているかを検証する重要なポジションです。
この記事では、IT業界におけるQAとは何か、具体的にどんな役割を持っているのかを詳しく解説していきます。
また記事の後半では、QAエンジニアとして活躍するために必要なスキルについてもご紹介しますので、ぜひ最後までご覧ください。
- もくじ
1.「QA(Quality Assurance)」とは品質保証を担う立場
1-1 QA(品質保証)とは
QA(Quality Assurance)は、ソフトウェアなどの開発物の品質全体を保証すること、およびその職種を指します。
QAは、企業や組織によって、そのミッションや仕事内容が異なることが一般的ですし、QAという名称の職種を設けていない会社も少なくありません。
例えば、テスト業務を行うテストエンジニアとしての役割がメインの場合もあれば、レビューを専門に行っている職種もあります。
他にも、データを収集・分析して、開発プロセスの質、プロダクトの質にフィードバックをかける品質管理を専門にしている職種もあります。
このように、テスト、レビュー、データ収集・分析などを専門的に行っている方を、本稿では「QAエンジニア」と総称しています。
1-2 QC(品質管理)との違い
QAに似た言葉で、QCという職種もあります。QCとは「Quality Control(品質管理)」を略した言葉です。
納品後も継続的に品質改善を行うQAに対して、QCは、企画設計から納品までの品質管理を行います。
また、高品質なシステムをいかに効率よく低コストで構築できるかという視点も求められる、こちらも重要な役割です。
品質管理を実施する際は、QC七つ道具と呼ばれるツールを用いて数値・定量的に分析していきます。
2.QAエンジニアの重要性
QAエンジニアという職種について、「開発者がテストを行うから必要ないのでは?」と考える方もいるかもしれません。
しかし、開発者の行うテストとQAエンジニアが行うテストはそもそもの目的が異なるためどちらも大切です。
開発者が行うテストは、本人が開発した範囲および担当範囲内で「仕様に沿った動作をするか確認する」ことを主な目的としています。新規に開発したメソッドの単体テストや、不具合修正した際の影響範囲に基づいた結合テストという形で実施されることが多いです。システムを詳しく知っているからこそ、テスト結果も偏りが出やすくなってしまいます。
一方のQAエンジニアは、「システム全体としてユーザーが使いやすい形になっているか」「当初保証されていたユーザーにとってのメリットを損なっていないか」という観点でテストを実施します。ユーザーの実際の利用想定に基づくシナリオテストや、システムの負荷テストや画面UIの検証を行い、より客観的にシステムの品質を確認していくのです。
このように、QAエンジニアは開発者とは全く異なる視点で品質保証テストを行っており、ソフトウェア開発において、とても重要なポジションといえます。
システムが問題なく動くか、というだけではなく、″ユーザーにとって使いやすいか″を考えて「ソフトウェアの品質全体に対して責任を持つ立場」なのです。
3.QAエンジニアの立ち位置と主な6つの役割
前述の章では、QAエンジニアによるテストの特徴を記載しましたが、QAエンジニアという職種の担当業務は他にもさまざまなものがあります。順に見ていきましょう。
① 設計段階での機能仕様の確認・評価
QAとして品質保証を行うために、機能仕様や設計内容についてもレビュー・評価を行うことがあります。
仕様に漏れ抜けや曖昧な点がないか、仕様変更や設計変更による設計・実装の修正や追加の内容が妥当であるか、漏れがないか洗い出し、不具合の作り込みを回避するようにします。
必要であれば開発者に対して仕様を提案することもあります。
② テストケースの設計・テスト実行
テストエンジニアとしてのメイン業務と言えるのが、テストケースの設計と実行です。
具体的には、ユーザーケースやシナリオを作成し、これに基づいたユースケースのフローを実施した際に、期待した通りの動作をするか確認・評価します。
テスト中にバグを検知した際には、再現手順の確認からシステムの動作に関してエビデンスを取得し、開発側に報告します。
③ テスト結果と不具合の分析
テストを実施し、テスト結果から得られた不具合検知数や内容を分析することもQAエンジニアの仕事です。
数値から不具合の傾向を見つけて開発リーダーに報告したり、再発防止策を提案・実施したりすることもあります。
テストの他、レビュー結果の分析、各工程にかかる工数の分析など、プロダクト面とプロセス面の両面で分析し、開発全体にフィードバックをかけることもします。
④ テスト自動化の検討
開発中に常に行うリグレッションテストや、膨大なデータを扱うテストなどに対しては、テストを自動化するという手段を取ることがあります。
効率的なテスト実施の計画・手段を検討し、SeleniumやJenkinsといったツールを利用しながら自動化を実現します。
自動テストを構築し、それを運用する作業は、内容的には開発作業と全く同じです。
QAエンジニアは、製品・システムの開発者と役割は異なりますが、品質保証の面から設計・プログラミングの素養が求められることもあるのです。
⑤ 開発プロセスの見直し・改善
レビューやテストの実施結果をよく分析すると、開発プロセスの問題点、改善ポイントが浮かび上がってきます。
その不具合は、なぜ作り込んだのか、その不具合は、なぜ検出できなかったのか、その不具合を作り込まずに、最初から正しく開発するにはどうすればよかったのか、その不具合を、もっと早く、確実に検出するには、どのようにレビューしたらよかったのか、どのようにテストすればよかったのか。
このように、さまざまなデータや情報を分析し、開発プロセスを改善して生産性と品質を向上させていくことも、重要な業務です。
⑥ 顧客の問い合わせ対応
顧客からの問い合わせに対応する専門窓口を設けていない状況では、顧客への仕様の回答をQAエンジニアが行う場合があります。
特に、テストエンジニアは、製品全体の製品仕様を開発者よりも精通していることが多く、不具合の対応窓口を担当することもあります。
企業によっては、品質管理の面でQA部門に強い権限を持たせるとともに、市場不具合の全責任は開発部門ではなくQA部門が負う、という組織構造にしているところもあります。
4.QAエンジニアに求められるスキル
前章で述べてきたように、QAエンジニアは非常に幅広い業務を担うため、開発者と同様に、多様なスキルが必要です。
例えば、以下のようなスキル求められるでしょう。
- ソフトウェアテストを設計し実行するスキル
- 数値分析や自動化のコーディングスキル
- 論理的に思考する能力
- 問題解決能力
何よりも、「ソフトウェア製品全体を総合的に捉える広い視野」と「柔軟な対応能力」を持っているかどうかが問われます。
不具合発生やシステムの動作に支障が出た際にさまざまなアプローチによって問題解決したいという人材ならば、QAエンジニアへの適性があると言えるでしょう。
実際にQAとして働いている方の業務への取り組み方を知りたい方はこちらの連載記事をご覧ください。
5.QAエンジニアに役立つ資格
QAエンジニアとして活躍する際に役立つ資格を3つご紹介します。
5-1 JSTQB 認定テスト技術者資格
JSTQB 認定テスト技術者資格は、JSTQB が運営している認定資格です。
JSTQBはソフトウェアテストに関する国際的な資格認定団体である「ISTQB」(International Software Testing Qualifications Board)の加盟組織として認定されているため、国際資格として世界的に通用します。
資格レベルは、FL(Foundation Level)、AL(Advanced Level)があり、2024年3月から、FL、ALテストマネージャに加え、ALテストアナリストも通年での受験が可能となりました。
ご自身やチームメンバーのスキル向上のために、資格取得を検討されてみてはいかがでしょうか。
Qbookでは、資格対策アプリ「テス友」と資格対策講座「eラーニング」を提供しています。受験をお考えの方はぜひご活用ください。
ソフトウェアテスト完全攻略ガイド「テス友」
「ソフトウェアテスト資格完全攻略 テス友」は、Qbookに登録することでご利用いただける、テスト技術者資格認定の勉強用アプリ/ウェブサービスです。
JSTQB® 認定テスト技術者資格 試験対策講座 一覧
独学だけではどこが重要かわかりにくいJSTQBのシラバス。本講座では、章ごとの真に重要なポイントを押さえて全面解説します。また、試験問題の傾向解説や模擬試験など、試験合格をきちんと意識。加えて、講義はオンライン環境で視聴回数に制限はありません。分かるまで、試験直前まで、何度でもご確認いただけます。
資格取得を目指している方はぜひご活用ください。
5-2 IT検証技術者認定試験(IVEC)
IT検証技術者認定試験(IVEC)とは、一般社団法人IT検証産業協会(IVIA)が認定するテストエンジニアの資格試験です。試験は年2回のペースで実施されています。
ソフトウェアテストの資格の中でもIVECは、テスト現場の実務を重視しており、取得することでソフトウェアテスト技術者として業界で高い評価を受けることができます。
試験レベルは以下の通りです。
1.アシスタントクラス | テストの基本とマインド、テスト技法の知識 |
---|---|
2.テスタークラス | テスト実行とテスト結果の分析スキル |
3.デザイナークラス | テスト設計とテストの実装スキル |
4.アーキテクトクラス | テスト要求分析と計画、プロジェクト管理スキル |
5.エバンジェリストクラス | 特定分野のエキスパートやスペシャリスト |
どのクラスも受験資格なしで受験可能です。
2024年から試験クラスや受験形式が変更されています。詳しくはこちらをご覧ください。
5-3 ソフトウェア品質技術者資格認定(JSTQE)
JCSQEとは、「JUSE Certified Software Quality Engineer(ソフトウェア品質技術者資格認定)」の略称であり、ソフトウェアの品質技術を高めると共に、継続的・効果的に品質向上を目指すための認定資格です。
このソフトウェア品質技術者資格認定では、「すべてのソフトウェア技術者に品質技術を身につけ、実践していくことにより、ソフトウェア品質の向上を実現すること」を目的としています。
試験は、レベル別に分かれており、現在は初級と中級のみであるものの、上級試験に関しても新設が予定されています。
スキルアップを目指している方はこちらの記事もご覧ください。
まとめ
QA(Quality Assurance)とは、ソフトウェアなどの開発物の品質全体を保証する職種を指します。
今回の記事では、QAエンジニアという職種について、その目的から仕事内容、適性についてご紹介しました。
QAエンジニアは開発エンジニアに比べて知名度は低いかもしれませんが、ソフトウェア製品の品質を保証するためには重要なポジションを担っています。
興味がある方は、QAエンジニアとしてのキャリアパスを検討してみてはいかがでしょうか。