
システムやソフトウェアの品質を担保することは、ユーザビリティを高め、商品の開発や販売、保守・運用を担うベンダーやSIerの信頼性を維持する上で重要です。近年は、特にセキュリティの観点からも品質が重視されていますが、その中で注目されている仕事がソフトウェアの品質管理を担当するQAエンジニアです。この記事では、QAエンジニアの仕事内容や求められるスキルなどについて詳しく解説します。
システムやソフトウェアの品質を担保することは、ユーザビリティを高め、商品の開発や販売、保守・運用を担うベンダーやSIerの信頼性を維持する上で重要です。近年は、特にセキュリティの観点からも品質が重視されていますが、その中で注目されている仕事がソフトウェアの品質管理を担当するQAエンジニアです。この記事では、QAエンジニアの仕事内容や求められるスキルなどについて詳しく解説します。
QA(Quality Assurance)エンジニアとは、ユーザーにとって利便性と安全性が高いシステムやソフトウェアを世の中に送り出せるよう、商品の品質を担保するエンジニアのことです。主な業務としては、設計に基づいて商品がつくられ、意図したとおりに動くことやユーザー目線で使いやすい商品であること、安全性に問題がないことなどを確認する動作テストの計画・実施などが挙げられます。また、必要に応じて品質に関するレビューを行ったり、商品に問題点や改善点があれば開発者にフィードバックしたりして品質を高めていきます。ほかに、定められた品質基準を確実にクリアし、一定の品質を担保することも、QAエンジニアの役割の一つです。
QAエンジニアは、システムやソフトウェアの品質に関与する点ではテストエンジニアと似ていますが、テストエンジニアの仕事はプログラムのバグや不具合の有無を発見するためのテスト業務が主体です。対して、QAエンジニアは、ユーザーの立場でテストを行い、使いやすさをチェックして、さらに品質を良くしていくにはどうすればいいのかという提案を行います。テストエンジニアがシステムに問題がないことをチェックし、その上で最終的な品質をQAエンジニアが保証する形になるため、業務によってはテストエンジニアとQAエンジニアを区別しない場合もあります。
QAエンジニアの仕事内容の大枠は、システムやソフトウェアに関する品質全般を保証することです。QAエンジニアが実際にどのような業務を行っているのか、具体的な仕事内容をご紹介します。
システムやソフトウェアの仕様の確認と問題の抽出を行うこともQAエンジニアの仕事の一つです。後々のトラブルや品質低下のリスクを設計工程から低減するため、仕様書に抜け漏れがあれば是正します。また、仕様変更や機能追加があった場合には、その都度仕様書をチェックして分析を行います。もちろん、行うべきテストが網羅されているかどうかや、設計したテスト内容の不足・不備についても確認が必要です。チェックした内容は必ず分析し、問題の傾向を理解して開発者にフィードバックすることによって、設計段階から商品の品質を考慮する意識を浸透させることができます。
QAエンジニアの仕事としては、立案したテスト計画に沿って開発の各プロセスでテストを実行し、結果を分析することも挙げられます。システムやソフトウェアについて、ユーザーの立場での使いやすさをチェックするだけでなく、セキュリティやユーザーの利便性など、さまざまな観点から商品を検証し、品質の課題や強化すべき点を抽出して改善につなげていきます。
QAエンジニアは、テストの分析結果に基づき、UXやユーザビリティを考慮した品質向上のために必要なフィードバックなどを開発チームおよびプロジェクトマネージャーへ行います。内容によっては、プロジェクトを一時的に中断する可能性があり、納期に影響を与える可能性も高いため、可能な限り速やかに情報をフィードバックすることが大切です。また、ほかのプロジェクトにも共通するトラブルや品質についての問題がある場合、プロジェクトを横断して総合的に見直しを図らなくてはなりません。必要な情報を適切な担当者に共有して対策を講じるとともに、その後のフォローをすることもQAエンジニアの仕事です。
QAエンジニアとして働く場合、どのようなテクニカルスキルが求められるのでしょうか。ここでは、ソフトウェア開発やテスト技法の知識、プログラミングスキルといった求められるスキルとして代表的なものをご紹介します。
ソフトウェア開発の知識は、必要な機能を実現するためのテストや改善案の立案に役立つスキルです。QAエンジニアは、商品やサービスがどのような技術によって構築され、開発・実装されるのかを理解しておくことで、テストが必要な箇所や問題が発生した原因などを速やかに突き止めることができます。プログラマーやエンジニアなど、実際に開発業務を担うメンバーとコミュニケーションをとるためには、ソフトウェア開発に関して開発メンバーと同等の知識が求められることがあります。そのため、プログラマーやエンジニアとして開発に携わった経験があれば、QAエンジニアとして活躍しやすいといえます。
品質テストの設計と実施を担う上で、テスト技法の知識はQAエンジニアにとって必要不可欠です。QAエンジニアに求められるのは、決められたテストを実施することではなく、商品や工程に応じた最適なテスト技法を選択して実行すること。テスト技法は、プログラミングテストや結合テスト、システムテスト、シナリオテスト、運用テストなど多岐にわたるため、それぞれのテストの評価や判定の基準を理解して、最適なテストを実施できるようにしておかなくてはなりません。近年は、テストを自動化するツールのほか、人間が見落としがちな欠陥やバグをAIが示唆してくれるツールなどが登場しています。こうしたテストツールに関する習熟度の高さも、QAエンジニアに求められるスキルの一つです。
QAエンジニアには、プログラミングスキルも求められます。問題が生じたプログラムをQAエンジニア自身が修正することはまれですが、システムやソフトウェアはプログラムで構成されているため、プログラミングスキルがあると問題点を突き止めやすくなります。膨大なデータを扱うテストや、アップデートが多いアジャイル開発などでのテストに際して、自動化ツールを作成するときにも役立つのがプログラミングスキルです。なお、Sky株式会社では、高度なプログラミング知識がなくてもテストが行える自動化ツール「SKYATT」を自社開発・販売しており、社内でも活用しています。
QAエンジニアとして活躍するには、テクニカルスキルだけでなくヒューマンスキルも必要です。ここからは、QAエンジニアに求められるコミュニケーションスキルやマネジメントスキルといったヒューマンスキルについてご紹介します。
QAエンジニアとして大切なヒューマンスキルの一つは、コミュニケーションスキルです。QAエンジニアは、一人で黙々と作業をするわけではありません。システムの開発を担当したエンジニアやプロジェクトを率いるプロジェクトマネージャー、テストに関わる他部署・他チームのメンバーなどと適宜対話をしながら仕事を進めていきます。そのため、コミュニケーション能力が求められるシーンが少なくありません。また、開発現場全体の状況と納期を踏まえて進捗管理できる視野の広さや、イレギュラーが起きた際に必要なメンバーを見極めて適切な指示を行う対応力なども必要になります。
QAエンジニアは、開発工程全体の進捗やテストで障害が見つかった際の修正スケジュールについても管理しなくてはならないため、プロジェクトに必要なリソース(ヒト・モノ・カネ)を適切に配分するマネジメントスキルが必要です。特に、「ヒト」のマネジメントでは、相手の技術や力量、仕事に対する思いなどを見極めて適切な人員配置をする能力が問われます。また、QAエンジニアの仕事は品質保証の質に関わることから、顧客満足度の向上を意識した品質マネジメントを実行できるよう、国際規格のISO 9001を取得することが求められる現場もあります。
QAエンジニアには、読み手の立場に立ってわかりやすくレポーティングするスキルや、レポートを基に発表・報告するプレゼンテーションスキルが欠かせません。QAエンジニアの仕事には、テストの分析結果や結果を通じて得られた知見をまとめ、関係者にフィードバックすることも含まれます。フィードバックした内容は、エビデンスとして使われたり、次回以降の開発に生かされたりします。
QAエンジニアは、人と関わりながら品質を追求し、商品やサービスを通じて世の中に価値を提供する職種です。そのため、注意深い方や何事も自分で調べる習慣がある方、マルチタスクが得意な方、ユーザー視点を忘れない方に向いています。QAエンジニアの仕事の特性を踏まえて、QAエンジニアに向いている方の特徴をご紹介します。
細部まで丁寧に確認し、ほかの人が見落としがちな不具合や脆弱性を発見できる注意深さはQAエンジニアにとって不可欠な要素です。QAエンジニアが品質の穴を見落とせば、商品やサービスはそのままリリースされ、顧客満足度の低下や企業への不満につながりかねません。そのため、細かい作業を繰り返し行うことを苦にせず、納期との折り合いをつけながら慎重に作業を進められる方は、QAエンジニアとして活躍できるといえます。
QAエンジニアに向いているのは、何事も自分で調べる習慣がある方です。テストを実施して品質上の問題を見つけたときには、プログラムを適切に修正して再発を防止できるよう、状況を再現しなければなりません。品質上の問題が起きた理由は、発見したQAエンジニアにしかわからないことです。そのため、何事に対しても自主的に、理解できるまで根気強く調べる習慣がある方はQAエンジニアに向いています。
QAエンジニアには、マルチタスクに対応できる力が必須です。例えば、何か1つ不具合が起きたときには、リスクを分析しながら事象を取りまとめ、ほかのプログラムでも同様の不具合が起きていないかを探らなくてはなりません。もし、リスクが大きいと判断した場合は、不具合の再現にも取り組む必要があります。短時間で頭を切り替えながら、まったく異なる作業を同時にこなすスキルが求められるため、マルチタスクが苦手な方は厳しいと感じるかもしれません。反対に、マルチタスクが得意な方は、効率的にタスクを消化して問題を解決することができます。
ユーザー視点で物事を見る力がある方は、QAエンジニアに向いているといえます。QAエンジニアが関わるすべてのシステムやソフトウェアには、ユーザーが存在しています。QAエンジニアがシステムやソフトウェアの品質を管理する目的は、ユーザーにとって安心・安全で、利便性が高いものを世に送り出すためにほかなりません。テストや検証をする際には、どうしてもつくり手の目線で考えがちです。そのため、常にユーザー視点を忘れないQAエンジニアがいることは、ユーザビリティの追求という本質を見失わないためにとても大切になります。
ここからは、QAエンジニアとして働く上で役立つ資格について紹介します。実は、QAエンジニアとして働く際に必須となる資格はありません。これまでに紹介したスキルがあり、QAエンジニアの仕事の特性に対応できる方であれば、十分に活躍が期待できます。しかし、転職を前提として考えると、品質テストにおいて一定の技術があることを証明する資格やソフトウェア開発に関する資格など、客観的に能力や技術を証明できる資格を取得しておくことは有効です。また、資格取得のための勉強は、知識の強化にもつながります。
JSTQB認定テスト技術者資格は、JSTQB(Japan Software Testing Qualifications Board)が実施する資格試験です。日本のソフトウェア技術者のテスト技術を高めることを目的として、基礎知識を身につけたい方向けの「Foundation Level」と、専門的知識を身につけたい方向けの「Advanced Level」の2つのレベルで、ソフトウェアの知識やレビュー評価について問われます。なお、アメリカやイギリス、ドイツなどでJSTQBが連携しているテスト技術者資格との相互認証があるため、海外でも通用することがこの資格の特長です。
参考:JSTQB(Japan Software Testing Qualifications Board)「JSTQB認定テスト技術者資格」
ソフトウェア品質技術者資格認定は、一般財団法人日本科学技術連盟(日科技連:JUSE)が実施する資格試験です。ソフトウェア品質の知識と技術の向上を通じて品質の向上を図ることを目的としており、品質に関する基礎的な知識やテスト技法などが問われます。試験は初級、中級、上級で構成され、現在は初級、中級のみが実施されています。
参考:一般財団法人日本科学技術連盟「ソフトウェア品質技術者資格認定」
IT検証技術者認定試験(IVEC)は、一般社団法人IT検証産業協会(IVIA)が実施するテストエンジニア向けの試験です。知識に加えて実務能力を問う試験であることが特徴で、記述式試験によって判断力などが問われます。試験の難度別に、アシスタント、テスター、デザイナー、アーキテクト、エバンジェリストという5段階のレベルが設けられています。各レベルをクリアするごとに認定証がもらえるため、現在のスキルレベルを客観的に証明することが可能です。
参考:一般社団法人IT検証産業協会(IVIA)「IT検証技術者認定試験(IVEC)」
QC検定は、一般財団法人日本規格協会(JSA)が認定する品質保証の資格で、ソフトウェアに限らずものづくり全般に関わる方に必要な知識を問う試験です。これから品質保証について学ぼうとする新入社員や派遣社員、大学生、高専生、高校生などを対象とした4級をはじめ、3級、2級、1級/準1級があり、1級/準1級は品質管理部門のスタッフや技術系部門のスタッフなど、企業内において品質管理全般に携わる方に向けた内容です。QAエンジニアとしてスペシャリストをめざすなら、1級/準1級を目指すことをお勧めします。
参考:一般財団法人日本規格協会(JSA)「QC検定」
QAエンジニアへの転職を検討する中で、気になるのがQAエンジニアの将来性です。品質管理にまつわる仕事は、2000年代初頭まで開発部門の一部が担うのが一般的で、機能にフォーカスしてテストを繰り返していました。2010年代になると、「ソフトウェアテストエンジニア」と呼ばれる職種が台頭し始め、機能とシステムの効率化や自動化を目指して工数削減を図るようになります。QAエンジニアと呼ばれる職種が確立されたのは2020年代になってからで、多様なソフトウェアの品質向上に貢献するようになりました。
こうした動きは、時代の流れとともに品質に対する注目度が高まり、商品やサービスの価値すらも左右されるものとして重視されるようになったことに関係しています。今や、品質の管理は企業価値に直結するものであり、本腰を入れて取り組む企業が目立つようになりました。今後もこうした動きは継続し、QAエンジニアの需要はますます高まると考えられます。QAエンジニアとして継続的に活躍し続けるには、Web関連の知識やクラウド、AI、IoTなどの技術の習得に継続的に取り組み、常に技術と知見をアップデートし続けることが求められます。なお、QAエンジニアとして経験を積むことで、さらに上位職となるQAコンサルタントやQAマネージャー、シニアQAエンジニアなどへのステップアップを目指すことも可能です。
QAエンジニアは、商品やサービスに対する評価、ひいては企業に対する評価を左右する仕事です。QAエンジニアが直接的にプログラムを修正することはまれですが、システムエンジニアやプログラマーとして商品の開発に携わった経験がある方は、技術者の視点を持つQAエンジニアとして信頼を得やすくなります。また、限られた期間で、できる限り質の高い商品やサービスを世に送り出す上でも、ソフトウェアの知識や開発経験が役立つ機会も少なくありません。Sky株式会社では、自社商品、およびクライアントの製品の品質のカギを握るQAエンジニアが多数活躍しています。プログラマーやシステムエンジニアからのキャリアアップに、ぜひSky株式会社のQAエンジニアをご検討ください。
応募資格やそのほかの条件、応募方法などは、こちらのWebサイトでご紹介していますので、QAエンジニアとしての転職をお考えの方は、ぜひご覧ください。
【募集職種】評価/検証エンジニア
Sky株式会の募集要項について、詳しくはこちらをご覧ください。