Introduction
近年、ソフトウェアの品質向上が求められており、ユーザーのニーズを満たした、ユーザー満足度の高い製品開発を行う必要があります。仕様どおりに動作し、不具合がないことをテストするだけでは十分といえません。
そのため、ユーザーのニーズにマッチしているか、セキュリティ要件や性能要件などを満たしているかなどをテストする、QAエンジニアの重要性が高まっています。
この記事では、QAエンジニアとはどのような存在なのか、その業務内容や必要な知識・スキル、QAエンジニアの仕事に役立つ資格などについて解説します。
目次
QAエンジニアとは?
QAエンジニアとは、QA(品質保証)を担当するエンジニアのことです。ここでは、具体的にどのような内容を保証するのか、QAエンジニアの重要性などについて解説します。
株式会社SHIFTでは、ソフトウェアテストに関して豊富な実績とテストナレッジを保有しており、あらゆるお客様のニーズを満たしたテスト・品質保証を上流~下流(テスト計画・テスト設計・テスト実行・テスト品質管理)まで一気通貫でご依頼いただけます。
ソフトウェアテストのことならSHIFT
「3分で知るSHIFTのテストサービス」の資料ダウンロードページへ
>>ソフトウェアテスト・第三者検証のページへ
>>導入事例ページへ
>>料金についてページへ
>>お問い合わせページへ
ソフトウェアの品質保証を行うエンジニア
QAエンジニアのQAとは、「Quality Assurance」の略で、品質保証という意味です。QAエンジニアは、次のように定義されます。
QAエンジニア
ソフトウェア製品などに欠陥がなく、仕様どおりに動作するか、ユーザーのニーズを満たしているか、ユーザーが満足感を得られるかなどを確認して担保するエンジニア。
近年では、ソフトウェアがトラブルなく、満足に動作するのは当たり前で、使い勝手や満足度などが求められる時代になりました。そのような品質に対する高い要求レベルを満たすために、QAエンジニアが存在します。
▽あわせて読みたい▽
>>ソフトウェアのQA(品質保証)とは?QAエンジニアの役割も合わせて解説のページへ
>>ソフトウェアテストとは?種類や目的、重要な7原則を紹介のページへ
QAエンジニアの重要性
QAエンジニアの重要性が高まっている理由として、ユーザー目線の品質テストが求められていることがあります。また、セキュリティや性能といった非機能要件についても、要求レベルが高まっているのです。
ソフトウェアのテストフェーズでは、バグがないこと、仕様どおりに動くことなどを確認します。しかし、それだけで終わってしまうと、ユーザーが使いづらい、わかりにくいといった問題が残っているかもしれません。また、セキュリティや性能に関する確認もできていません。
そこで求められるのが、QAエンジニアによる品質保証です。QAエンジニアは、ユーザーのニーズを満たしているか、使い勝手がよいか、満足度が高いかなど、ユーザー目線の品質を確認します。また、セキュリティや性能など非機能面の要求を満たしているかも重要な確認点です。
テストエンジニアとの違い
QAエンジニアとよく似た存在としてテストエンジニアがいますが、それぞれ役割や作業フェーズが異なります。
テストエンジニアの主な確認点は、ソフトウェアが仕様どおりに動作すること、バグがないこと、性能面で問題がないことなどです。不具合がない製品を世に送り出すことを、主な目的としています。
一方で、QAエンジニアが担保するのは、ユーザー目線の品質項目です。ユーザーが満足するつくりになっているか、ユーザーが使いやすいかなどを確認するため、テストエンジニアとは確認する点が異なります。
また、作業を行うのはテストフェーズだけでなく、要求分析や要件定義のフェーズから品質保証を行う必要があります。ユーザー目線で使いやすいソフトウェアを開発するためには、企画段階から対応する必要があるからです。作業フェーズという点でも、テストエンジニアとは異なることがわかります。
QAエンジニアの業務内容
QAエンジニアの業務は、テスト工程だけで行われるのではなく、ソフトウェア開発の工程全体に渡って行われます。ここでは、その業務内容について解説します。
要求分析・要件定義
ユーザーのニーズにマッチしたソフトウェアを開発するためには、企画段階からQAエンジニアが参加する必要があります。ユーザーのソフトウェアに対する要求を分析し、要件を定義していく段階で、ユーザー目線の製品開発が行われていることを確認しなければなりません。そのためには、ユーザーの要望やクレームなどの情報を収集し、その内容が要件定義に反映されているかの確認が必要です。
また、セキュリティや性能などの非機能要件についても、企画段階から盛り込む必要があります。こちらは世の中の技術動向も確認しつつ、システムが扱うデータの分析や、業務量の計画など、さまざまな要因を踏まえて検討する必要があります。
QAエンジニアの視点が要求分析や要件定義に反映されないと、開発者目線しかとり入れられていないソフトウェアになってしまう可能性があります。それでは、ユーザーが使いやすく、満足度の高い製品を開発できません。そのため、要求分析・要件定義の段階から、QAエンジニアがかかわっていく必要があるのです。
ただし、ユーザーの要望をすべてとり入れることはむずかしく、コストや納期とのかねあいも考えることが重要です。
設計・コーディング
設計工程で設計書を作成するフェーズや、コーディングを行うフェーズに入った際も、QAエンジニアによる確認が必要です。ユーザー目線の機能が正しく実装されているか、セキュリティ要件を満たしているかなどを確認していきます。また、リリース後の運用面に関する設計漏れがないかなども、重要なポイントです。
設計担当者やコーディング担当者は、開発者の視点から開発を進めていくため、品質保証の観点から品質をチェックするQAエンジニアの視点も必要です。設計・コーディングのフェーズでバグや脆弱性をつくり込んでしまわないように、確認していきます。
デプロイ・テスト・リリース
開発したシステムを運用環境に展開する、デプロイのフェーズとテストフェーズ、リリースフェーズでも、QAエンジニアがすべきことは数多くあります。
デプロイやリリース工程の作業を安全に行えるように確立しておくことは、環境構築の品質を守るために重要です。
テストフェーズは主にテストエンジニアが行いますが、そこに品質保証の観点が漏れなく盛り込まれているかを確認する必要もあります。ユーザー目線の要件についてテストが行われているか、セキュリティ要件や性能要件のテストが十分かなどを確認します。また、リリース後の運用管理の視点から確認することも重要です。
テストは、以下のような流れで行われます。
・テスト計画の作成
・テスト設計
・仕様書の確認
・テスト項目の抽出
・テストの実行
・テスト結果の分析とフィードバック
大規模プロジェクトの場合、テスト計画は、開発プロジェクトがはじまるころに行われることが多いです。テスト計画を策定し、テスト方針を決めてテストを設計していきます。要件定義工程が行われているころに、要件定義書から対応するテスト項目を抽出するなど、開発作業は同時進行でテスト準備作業が行われます。
開発が完了するとテストを実行しますが、結果がNGでコードの修正などが行われた場合は、再テストが必要です。テストが完了した後、バグ件数が収束しているか、どのモジュールにバグが集中しているかなどを検証し、結果を分析してフィードバックを行います。必要に応じて、再テストやモジュールの修正などを行う場合もあります。
リリース後
QAエンジニアの業務は、リリース後にも行われます。ユーザー視点でのアフターサービスを行い、ユーザーの声のヒアリングを行う場合もあります。集められたユーザーの声を分析、評価して、今後の開発作業に活かすことにより、品質向上に役立てることが可能です。
QAエンジニアに必要な知識・スキル
QAエンジニアに必要とされる知識やスキルは、幅広いものがあります。ここでは、必要な知識やスキルについてご説明します。
プログラミングスキル
ソフトウェアが求める品質を満たしているかテストする際に、設計内容やコードの確認が必要な場合もあります。設計書を読み解きコードを確認することで、どの箇所で問題が起きているか、問題の内容は何かなどを見極める際に、プログラミングスキルが必要です。
また、テストツールを開発する際にも、プログラミングスキルがあると役立ちます。膨大なテスト項目を消化するために、テスト作業をツール化できれば、テスト効率が格段にアップします。
テスト技法にかかわる知識
ユーザーのニーズを満たすことを確認するために、どのようなテスト項目を検討すべきなのか、どのくらいの範囲を網羅したテストを行えばよいのかなど、テスト技法に関する知識が必要です。
テスト工程では、網羅的なテストやさまざまなケースのテストを行いますが、テスト件数を増やそうとすれば、無限に増やせてしまいます。しかし工数は有限なので、最小限の工数で最大限の効果を得るためのテスト技法に関する、高度な知識が求められます。
ソフトウェア開発の知識
QAエンジニアは、要求分析や要件定義の段階から、ユーザーのニーズを満たした要件や設計になっているかなどを確認します。そのため、ソフトウェア開発の高度な知識も求められます。
ユーザーのニーズを満たす要件とは何か、使い勝手のよいソフトウェアをどう設計すべきかなどの知識がなければ、ユーザー目線のソフトウェア開発はできません。そのため、QAエンジニアには、テスト技法に関する知識だけではなく、開発スキルも必要とされます。
品質保証・品質マネジメントの知識
品質保証や品質マネジメントの知識も必要です。品質保証の基本的な考え方から、品質を保証するための技術、知識、マネジメント方法などを活かして品質保証を行います。また、ソフトウェアのリリース後、品質保証のためのアフタフォローを行うための知識、今後の開発に役立てるための知識なども必要です。
コミュニケーションスキル
QAエンジニアがかかわる工程は、ソフトウェア開発の企画段階から要件定義、設計、製造、テスト、リリース、リリース後までと非常に幅広いです。開発担当者、プログラマー、テスト担当者、運用担当者など、担当者がわかれている場合は、多くの担当者とコミュニケーションをとる必要があります。また、リリース後にユーザーからの声を聞くこともあります。
このように、幅広い工程で多くの人たちとかかわるため、QAエンジニアには高度なコミュニケーションスキルも必要です。
プレゼンテーションスキル
QAエンジニアは、多くの工程の担当者とかかわるため、高いプレゼンテーションスキルも必要です。
QAエンジニアは基本的に、開発担当者が開発したソフトウェアを検証、テストして、その結果を開発担当者に伝え、仕様書やコードを修正してもらいます。そのため、テスト結果や求める品質レベルについて、わかりやすく的確に人に伝える力が必要なのです。
QAエンジニアの仕事で役立つ資格
QAエンジニアの仕事をする際に役立つ資格には、以下のようなものがあります。
JSTQB認定テスト技術者資格
JSTQB認定テスト技術者資格は、JSTQB(Japan Software Testing Qualifications Board)が運営する、ソフトウェアテストに関する知識や技術が問われる資格です。Advanced LevelとFoundation Levelの二段階のレベルがあります。海外でも通用する、テスト担当者向けの資格です。
ソフトウェア品質技術者資格認定
一般財団法人日本科学技術連盟が運営する、テスト担当者向けの資格制度です。初級と中級の二段階のレベルがあり、ソフトウェア品質向上のために必要な幅広い知識が問われます。
QC検定
日本規格協会(JSA)が運営する、品質管理に関する知識に関する資格制度です。4級・3級・2級・準1級・1級の5段階のレベルが用意されています。QC七つ道具などを使った品質に関する問題解決手法や、品質管理マネジメントに関する知識などが問われます。
ITエンジニアだけでなく、ものづくり全般の品質保証にかかわる人たち向けの資格である点が特徴です。
IT検証技術者認定試験(IVEC)
一般社団法人IT検証産業協会(IVIA)が運営する、テストエンジニアのための資格制度です。レベル1からレベル7までの試験が用意されており、テスト実行者からとりまとめ、テスト設計者、リーダー、プロジェクト最終責任者、上級コンサルタントとレベルがあがっていきます。順番に受験していけば、段階的にテストに関する知識や技術を高められるでしょう。
まとめ
この記事では、QAエンジニアとはどのような存在なのか、その業務内容や必要な知識・スキル、QAエンジニアの仕事に役立つ資格などについて解説しました。
QAエンジニアは、ソフトウェアがただ仕様どおりに動き、不具合がないことを確認するだけではありません。ユーザーのニーズにマッチしているか、ユーザーの満足度は高いかなどの観点からテストを行います。ソフトウェアの品質向上が求められているなか、QAエンジニアの重要性は高まっているといえるでしょう。
ソフトウェアテストの悩みはSHIFTが解決できます!
「自社で効率よくソフトウェアテストを実施できない…。」
「どうしてもテスト工数が膨らんでしまう…。」
「期日に間に合わない…。」
「リリース後に不具合が発生してしまっている…。」
といった悩みを抱えている企業は多いでしょう。
質の高いソフトウェアテストを効率よく行うためには、多くの知識や経験が必要です。社内に経験豊富なIT人材が不足していると、質の高いテストを実施するのがむずかしく、かといって一からIT人材を集めるためには膨大な時間とコストがかかってしまいます。
そのような悩みは、SHIFTのソフトウェアテスト・第三者検証のサービスを利用いただくことで解決できます。
\おすすめの資料/ ※すべて無料でダウンロードいただけます。
・3分で知るSHIFTのテストサービス
・テスト効率が大幅アップ、人手不足解消の切り札に <理由&メリット>
・ソフトウェアテストを外注すべき5つの理由とは!?
・サービス導入事例集
これまで導入いただいた企業様は3,000社以上。その豊富な専門知識と経験を活かして、高品質のソフトウェアテストを効率よく行い、開発のサポートをいたします。
ぜひSHIFTのソフトウェアテスト・第三者検証をご利用ください。
監修
永井 敏隆
大手IT会社にて、17年間ソフトウェア製品の開発に従事し、ソフトウェアエンジニアリングを深耕。SE支援部門に移り、システム開発の標準化を担当し、IPAのITスペシャリスト委員として活動。また100を超えるお客様の現場の支援を通して、品質向上活動の様々な側面を経験。その後、人材育成に従事し、4年に渡り開発者を技術とマインドの両面から指導。2019年、ヒンシツ大学の講師としてSHIFTに参画。
担当講座
・コンポーネントテスト講座
・テスト自動化実践講座
・DevOpsテスト入門講座
・テスト戦略講座
・設計品質ワークショップ
など多数
――――――――――
ヒンシツ大学とは、ソフトウェアの品質保証サービスを主力事業とする株式会社SHIFTが展開する教育専門機関です。
SHIFTが事業運営において培ったノウハウを言語化・体系化し、講座として提供しており、品質に対する意識の向上、さらには実践的な方法論の習得など、講座を通して、お客様の品質課題の解決を支援しています。
https://service.shiftinc.jp/softwaretest/hinshitsu-univ/
https://www.hinshitsu-univ.jp/
――――――――――