ALLSPICE

スパイスファクトリー株式会社のメンバーが運営するWeb開発メディア

QAエンジニアの重要性とは?システム品質を保つプロが求められる背景や役割を解説

QAエンジニアの重要性とは?システム品質を保つプロが求められる背景や役割を解説

Posted by スパイスファクトリー公式 | |システム開発

QAエンジニアは、システム開発において品質を担保する業務に従事するエンジニアのことです。
通常のシステム開発はもとより、システムの品質管理や品質保証に関わる内容をメインに対応していきます。
システム開発においては、QAエンジニアの存在が品質を大きく左右する場合もあるのです。

今回は QAエンジニアについて、システム開発やオフショア開発の品質管理の重要性も交えてお伝えしていきます。

QAエンジニアとは


QAエンジニアとは、主にシステムやソフトウェアの品質管理や品質保証に従事するエンジニアを指します。
頭についている QA とは Quality Assurance のことで、日本語に直訳すると「品質保証」です。

システムにおける品質とは、「システムに求められる要求事項が満たされている度合のこと」です。

システムの品質管理・品質保証については、要件定義や仕様確認、各種テスト計画など、複数冊の本がかけるほど多くの内容がありますが、それらの知識や経験にもとづきシステムやプロダクトの品質担保に貢献することが QAエンジニアの大きな役割です。

QAエンジニアが求められる背景

QAエンジニアが求められる背景
QAエンジニアは、なぜ求められるのでしょうか。その背景についてみていきましょう。

システムトラブルがビジネスにもたらすリスクの増大

システム開発においては、1つのミスが顧客に大きな障害・損害をもたらすこともあります。

近年、ビジネス環境は大きく変化しています。
たとえばクラウド環境が整備されたことなどを背景に、ネットワーク経由でデジタルサービスを提供する SaaS(Software as a Service)のビジネスモデルが一般的になりました。
SaaSビジネスでは、1つの不具合がインターネットを通じて広範なユーザーに影響を及ぼしてしまいます。
最悪の場合、サービス破綻や損害賠償などのリスクも孕みます。
そこまでいかずとも、システムエラーの多さが顧客満足度を著しく下げることになるのは体感的にもわかるのではないでしょうか。

SaaSビジネスの多くは、サブスクリプションモデルという一定期間ごとにユーザーに課金してもらい、お金を払ってもらっている期間はサービスの利用が可能になるといった課金モデルを採用していることが一般的です。
満足度が低ければ当然ユーザーに解約されてしまいますし、解約率の上昇は企業にとってそのまま収入減になります。システム品質の悪化がそのまま業績の悪化に直結してしまうのです。
昨今 DX の必要性が叫ばれていますが、デジタル化が進めば進むほど、システム品質の担保のビジネス上の重要度も大きくなっていくのです。
そうした背景からも、品質を確保する QAエンジニアの必要性が増しています。

アジャイル開発手法の採用などでシステム開発が高速化

先述した SaaSビジネスなどでは、日本でかねてから一般的なシステム開発手法として採用されてきた、開発したいシステムの全体像を決めて要件定義~開発~テスト~リリースといった開発プロセスを順番に進めるウォーターフォール開発ではなく、顧客の反応や市場動向を窺いながら柔軟かつ高速に方針転換ができるアジャイル開発を採用するケースが増えてきています。

現代ビジネスにおける顧客ニーズの変化は速く、新型コロナウイルスの蔓延のような予測が難しい外部環境の変化も起こり得ます。
このような環境においては、小さく速く仮説を検証し、ダメであればすぐに方向転換をしていくといった方針が相性が良いと考えられています。
その方針にマッチしている開発手法として採用されることが増えてきたのがアジャイル開発です。

アジャイル開発では、「ユーザーに早く価値を届ける」ことを重要視しており、機能単位で、高速に、かつ高頻度で要件定義~開発~テスト~リリースといった開発プロセスを行います。
機能ごとに高速で開発~リリースを進めるということは、テストの頻度も多くなり、不具合への対応にもスピードが要求されるようになります。
アジャイル開発に象徴される、プロダクト開発の高速化に対応するため、DevOps などの仕組みづくりも盛んにおこなわれています。
システム品質の管理についてもそうした変化に耐えうる仕組み作りが必要です。
品質管理の仕組みづくりをリードする人物として、QAエンジニアが求められています。

システム品質の観点の多様化

近年のシステム開発では UX(ユーザーエクスペリエンス:システムのユーザーにとって快適な利用体験を提供すること)の視点の重要性が認識されてきています。
単に仕様書に記載されたシステム要件を満たしている、エラーが出ないというだけでなく、ユーザーにとって使いにくくなっていないか、といった観点からもテストが求められるのです。

ユーザー視点を持ち合わせた QAエンジニアの活躍により、ユーザーの満足度の確保も可能になります。

QAエンジニアの役割

QAエンジニアの役割
QAエンジニアというと、テストだけに参画するイメージを持つ人もいるかもしれませんが、決してそうではありません。

もちろんテスト業務を行う場合もありますが、場合によって QAエンジニアはシステムの上流工程から参画し、品質を保証できる仕組みづくりに携わることもあります。

たとえば、一般的には以下のような役割がQAエンジニアには求められます。

  • システム全体の品質定義
  • 仕様品質の担保
  • テストフローの整備
  • テスト計画・設計作成
  • テスト仕様書作成・実施
  • リリースの判断
  • 不具合分析と改善の業務

ここでは、上記に挙げたような一般的な QAエンジニアの役割を具体的にみていきましょう。

品質保証テストの設計・計画

システムテストの実施計画を立て、関係部署とスケジュールを調整します。
テストのフローをどんなツールと手順で進めていくかをルール化することでスムーズなテスト完了を実現します。

テスト実行・検証

テスト計画に沿って、製品の動作や品質をチェックします。
企業やチームによってはテスト実務には QAエンジニアが関与しないケースもあり得ますが、対応領域としては認識しておくべきでしょう。

改善案を含めたフィードバック

テストで発見した不具合を分析し、開発者へ改善案を提示します。
プロダクト品質の責任を担い、クライアントと開発者の間に立って品質向上に尽力します。

その他工程でのフォロー

たとえば他チームと連携をしてシステムに求められる品質をの共通認識を作ることや、実装段階から不具合が起こりにくいように作業改善などに取り組むこともあります。

QAエンジニアとテストエンジニアとの違い

QAエンジニアとテストエンジニアとの違い
QAエンジニアと混同されがちな職種として、テストエンジニアの存在が挙げられます。

QAエンジニアは、システムやソフトウェアの品質管理・品質保証の業務(耐久性も含まれる)に対応するエンジニアです。
対してテストエンジニアは、仕様書通りに動作し、バグ・エラーなどの問題がないか検証するエンジニアです。
QAエンジニアの職務領域は検証業務だけではなく、より広範囲に渡ります。
QAエンジニアはテストエンジニアの業務範囲を包含した存在といえるでしょう。

ただし前提として、システム開発に関わる品質の担当は多岐に渡ります。
企業やサービスによっては QAエンジニアという名称ではなかったり、QAエンジニアの他にもシステム品質を管理する別のポジション(QAディレクター・SET(Software Engineer in Test)エンジニア等)があったりする場合もあります。

上記から、同じ QAエンジニアという名称のポジションであっても、企業や扱うプロダクトによって業務内容や範囲が異ることもあります。

QAエンジニアに必要なスキル

QAエンジニアに必要なスキル
ここからは QAエンジニアに必要なスキルを6つ紹介します。

ソフトウェア開発全般のスキル

当然ではありますが、プログラミングやソフトウェア開発の流れ・工程・技法を知っておく必要があります。
具体的な内容をみていきましょう。

プログラミングについての知識

参画しているプロジェクトで使用している言語・フレームワークに関する知識が必要です。
実務経験があると、プログラミング実務に即した対応ができます。

ソフトウェア開発の流れ

ソフトウェア開発は、一般的に以下の流れで進行します。

  • 要件定義
  • 方式設計
  • 詳細設計
  • ソフトウェア構築
  • テスト
  • 保守・運用

各フェーズで何をするかが把握できていれば、スムーズに対応することができるでしょう。

ソフトウェア開発の技法

下記のようなソフトウェア開発の手法に関しての知識があると、プロジェクトの中でどんなところでエラーが起きやすいかといったことを考案できるため、効果的な技法を提案することが期待できます。

  • ウォーターフォール
  • アジャイル
  • プロトタイプ
  • スパイラル

上記に挙げたようなシステム開発手法についての知見があると良いでしょう。
必ずしも全ての手法に知見がある必要はありませんが、少なくともアサインされるプロジェクトが採用している手法については知識・経験共に備えていることが望ましいです。

テスト技法に関する知識

テスト技法の知識は品質担保に欠かせないスキルです。
QAエンジニアにとっては本領を発揮すべきポイントです。
適切なテスト技法を選択・使用することでテストを効果的に実施でき、結果的にプロダクト品質の向上に繋げます。

  • ブラックボックス
  • ホワイトボックス
  • ユースケース
  • 経験ベース

品質管理・品質保証に関する知識

開発工程全体の管理能力が要求され、開発現場によっては ISO などの知識も必要になります。
ソフトウェア開発に関連した ISO については、たとえば以下のような種類があります。

  • ISO9001(品質管理システムの要件に関する国際標準)
  • ISO12207(ソフトウェアのライフサイクルプロセスに関する国際標準)
  • ISO14001(環境マネジメントシステム (EMS) の要件に関する国際標準)
  • ISO29119(ソフトウェアテスティングに関する国際標準)

QAエンジニア参画にあたっての注意点

QAエンジニア参画にあたっての注意点
これまで QAエンジニアの役割について紹介してきました。
QAエンジニアは、システム品質を担保するために重要な役割を果たしますが、ただ参画させれば良いというわけではありません。
ここからは QAエンジニアがプロジェクトに参画するにあたって気をつけるべき点をみていきましょう。

システムを開発する分野に精通している必要がある

QAエンジニアは、これからシステムを開発する分野に精通していないと、品質管理・品質保証の役割を十分に果たせません。
言語や開発手法、システムの種類はもちろん、場合によってはシステムを活用する業界の慣習や法律といった知識に至るまで網羅していないと満足な品質担保が難しいこともあります。

QAエンジニアであれば誰でもいいのではなく、これからシステム開発を実施する分野に精通したQAエンジニアを参画させましょう。

システム開発の実務経験が要求される

いくら優秀な人材であるとはいえ、システムの開発経験がゼロでは、効果的なフィードバックはできません。システム開発経験を持つ人材をアサインするようにしましょう。
可能であれば、QAエンジニアの業務領域以外のシステム開発の業務についても、経験している方がよいでしょう。

優秀なQAエンジニア参画には相応のコストが必要になる

IT人材不足が指摘されている日本では、総じてエンジニアの採用コストは上昇傾向にあります。
ある調査※では、2016年~2021年までに QAエンジニアの平均年収は100万円以上上昇しています。

他のエンジニア職も上昇傾向ではありますが、比較しても QAエンジニアの年収上昇率は目を見張るものがあります。
上記の傾向からもQA参画には相応のコストを要すると考えた方がいいでしょう。

※参照元:「QAエンジニアとは?年収推移や将来性を転職ドラフトのデータから解説」.転職ドラフト(参照:2023-9-22)

オフショア開発でもQAエンジニアは力を発揮

オフショア開発でもQAエンジニアは力を発揮
海外にシステム開発を依頼するオフショア開発においては、システム品質に不安を抱えることもあります。
このような場面でも QAエンジニアのアサインで改善が図られる可能性があります。

近年は、オフショア開発拠点として人気の東南アジア諸国などのエンジニアも技術レベルはあがってきていますが、そうはいっても「人による」のが現実で、言語や文化、常識にに違いがある中で日本国内の依頼者側が求める品質のシステムを作ることは簡単ではありません。

しかし、オフショア開発に知見のある優秀な QAエンジニアが参画していれば、テストやルール、仕組みの構築といった方法でオフショア開発においても品質を担保できる可能性が高くなるでしょう。

実際に当社、スパイスファクトリーでもオフショア開発の品質担保のために QAエンジニアのアサインしています。機能単位でのテストで要件に沿った挙動をするかの検証はもちろん、コードレベルでのレビューや指導も行うことで品質の確保に取り組んでいます。

QAエンジニアはいらない説について

システム開発で「QAエンジニア」のポジションは必須か?
ここまでの内容で、QAエンジニアはシステム開発にとって重要であることをお伝えしてきました。
しかし Google検索などで「QAエンジニア」を検索すること、予測変換で「QAエンジニア いらない」と表示されることもあります。
QAエンジニアはもちろんいたらいいけど、専属ポジションとして必須ではないのでは?といった声も聞かれます。

ここでは QAエンジニア不要論について考えていきます。

QAエンジニアは不要?QAエンジニアは誤解されることも多いポジション

システム開発におけるテストは必須であるものの、軽視されやすい工程でもあります。
不具合を見つけることは当然とみなされる傾向があり、1つ不具合を見つけたとしても、たとえば「営業職の社員が案件を受注した」のようなプラスアルファの価値を創造したような反応が得られることは少ないでしょう。
逆にたった 1つでも不具合を見逃してしまえば、マイナスの評価は受けるケースは多く、インシデントの影響が大きければ厳しく追及されてしまうこともあります。

マネジメント層や、開発部門以外の部署がこの記事で紹介したようなシステムの品質管理の重要性を理解していないと、軽視されてしまう可能性は否めません。
しかし、この記事で紹介してきた通り、システムの品質管理は経営にとっても大きなインパクトを持つ要素になっており、その需要を反映する形で 市場のQAエンジニアの給与も伸び続けています。

もちろん、開発規模やチームのサイズによっては専属の QAエンジニアではなく兼務のような形とする方が適切な場合もあるかと思いますが、その場合でもシステム品質管理の必要性・重要性が落ちることはありません。
このことからも QAエンジニアが不要と断じてしまうことは早計であるといえるでしょう。

アジャイル開発におけるQAエンジニア不要論

システム開発手法として近年注目されているアジャイル開発においては、素早く開発の PDCA をまわすためにオールラウンドなチームであることが求められます。
テストは専任のテスト担当者を設けて行うのではなく、状況に応じてチームメンバー全員が実施する体制となっているため、アジャイル開発において QAエンジニアは不要という認識の方もいらっしゃるでしょう。

たしかにアジャイル開発、とりわけスクラムの手法においての開発者は、テストや要件定義など専任の役割を設定してその業務だけをやればよいという体制ではなく、業務横断的に対応することが求められています。
その意味では「QA(しかやらない)エンジニアというポジションはアジャイル開発には不要である」という意見は正しいとも言えるでしょう。
ただし、その場合でも「QAエンジニアのみを担う」ポジションは不要という表現の方がより適切です。

各開発者が単なるテスターの役割を越えて、プロダクトの品質管理の業務も担っていく必要があるだけで、品質管理の重要性に変わりはありません。
むしろ、特定の人物に限らずチームメンバーに広く品質管理業務を担ってもらえるようにするためには、アジャイル開発チームに QAエンジニア経験のあるメンバーをアサインすることが大きなアドバンテージになると思います。
スクラムを採用しているプロダクト開発でも、QAチームを固定で設定して運用している事例もあります。
絶対的な正解はない前提で、自社や自プロダクトの品質を最大化させるために必要な体制を構築していくことが求められているといえるでしょう。

QAエンジニアのアサインでお悩みの方はスパイスファクトリーへ

QAエンジニアのアサインでお悩みの方はスパイスファクトリーへ
QAエンジニアは、デジタル時代のビジネスリスクを最小限に抑えるためになくてはならない存在です。
オフショア開発・アジャイル開発などあらゆる開発プロジェクトにおいて QAエンジニアの需要は今後も高まっていくでしょう。
スパイスファクトリーでは、QAエンジニアを参画させたフィリピンを拠点とするオフショア開発受託開発型のアジャイル開発のサービスを提供しています。
システム開発にお悩みの場合は、ぜひ一度スパイスファクトリーにお問い合わせください。

無料相談はこちらから

参考文献

■参考書籍

  • 吉山 慎二 著.『ゼロからわかるオフショア開発入門』(2020).幻冬舎

■参考サイト

  • エンワールド・ジャパン株式会社.QAエンジニアの仕事とは?仕事内容から必要な資格、向いている人の特徴を解説. 外資系企業の転職・求人エージェントならエンワールド・ジャパン.https://www.enworld.com/candidates/career-advices/useful-column/occupation/engineer/qa_engineer.html,(参照 2023-9-15)
  • 株式会社パソナ.QAエンジニアとは?テストエンジニアとの違い・必要な資格について.Engineer Labo エンジニアラボ.https://x-tech.pasona.co.jp/media/detail.html?p=7334,(参照 2023-9-14)
  • 株式会社翔泳社.プロダクトの品質はテストだけでは測れない――新規プロダクト開発における品質管理の考え方.Productzine.https://productzine.jp/article/detail/192,(参照 2023-9-20)
  • 株式会社リブセンス.QAエンジニアとは?年収推移や将来性を転職ドラフトのデータから解説.転職ドラフト.https://job-draft.jp/articles/558,(参照 2023-9-20)
  • Qiita株式会社.QAエンジニア.Qiita.https://qiita.com/jun2014/items/32ec77be1056f546aada,(参照 2023-9-25)
このエントリーをはてなブックマークに追加
アバター画像
About The Author

スパイスファクトリー公式

スパイスファクトリーは世界がより良い⽅向に向かうよう、変化を加速させる “触媒”(スパイス)としての役割を全うすることをミッションとしたDXエージェンシーです。最新テクノロジー、UIUX、アート、マーケティングなどの技術・メソッドを⽤いて、モノゴトを素早く、美しく、本質的に再定義し、幅広いクライアントのデジタルトランスフォーメーションを⽀援しています。

何かお困りのことはありませんか?無料でご相談を承っております!