見出し画像

イチから学ぶ!QAエンジニアとは?【仕事内容、やりがい、どんな人が向いているかなどを解説】

この記事を読まれている皆さんの中には、エンジニア職種の中に「QAエンジニア」または「品質保証エンジニア」という職種があることを知り、どんなエンジニアなのか気になりたどり着いたという方がいるかと思います。

IT業界についてそこまで知らないという方に向けて、QAエンジニアとはどんな職業なのか、どんな魅力があるのかについて説明します。(この記事はソフトウェア業界のQAエンジニアに特化した内容になっています。)

色んなエンジニア職種があって仕事選びに迷っている方、どんなエンジニア職種が自分に向いているのか困っている方、もしこの記事を読んで、面白いと感じたあなたはQAエンジニアに向いているかもしれません。ぜひQAエンジニアという職業について知っていただければ幸いです。


■ QAエンジニアとは

“QA”とは何だろう?

まず疑問に思う方が多いと思うのですが、QAとは”Quality Assurance”の頭文字のことであり、日本語では「品質保証」と訳されます。
その名の通りQAエンジニアは、“品質が保証されているか”を確かめる職業と言われています。

例えば、以下のような事象が発生すると大混乱になりませんか?

・買い物の支払いを電子決済で行おうとしたら、突然エラーになって支払いが出来ない
・あるECサイトにログインしたら、全然知らない人の住所やクレジットカードなどのアカウント情報が表示されてしまった
・交通機関の電子改札が誤作動を起こした為、駅員が手動で切符を確認しなければならない

このようなことが起きないよう、QAエンジニアは開発された商品を世に出す前に、その品質が問題なく安定して動作することを確認する最後の砦の役割を担っています。

品質が保証されるとは?

品質が保証されているかは、2つの視点から確認します。

・想定通りに動くかどうか(システム的な観点)
・ユーザーにとって使いやすいものが出来ているかどうか(ユーザー志向的な観点)

・想定通りに動くかどうか
何もないところから製品はできあがりません。システムエンジニア(SE)がどんな機能を持った製品にするか要件を決め(要件定義)、その設計書(仕様書)を作成します。その仕様書に基づいて、プログラマーがコードを書き開発していきます。QAエンジニアは、そうして出来上がった製品に対し、仕様に沿った状態になっているかの確認や、開発者が想定していなかった動作をしても問題ないかなど、多角的な視点でテストを実施します。

・ユーザーにとって使いやすいものが出来ているかどうか
ユーザーが満足する製品ではないと“品質が良い”とは言えません。ユーザーの目線に立ち、快適に使用できるかという点でも検証を行います。

作り手側とユーザー側どちらの側からも、品質を確認していくことが大事になります。


■ QAってこんなところが面白い!

発見が難しい不具合や、ここまで気づかれずに見逃されてきた不具合などを自分が見つけ無事修正されると、ユーザーに提供する前に気づく事ができよかったという安心感と達成感が得られます。

経験を積んでいくと、“この辺りに不具合が起きそう”という所に実際に不具合が見つかるということもあったりします。仕様書に書かれているような基本的な動作ではない所や、処理が複雑な箇所など重点的にテストしたほうがよいのではないかと感じるところが見えてくると設計も楽しくなってきます。
(ただし、基本的にはバグはさまざまな箇所にあるという前提でテストをします。同じ箇所ばかり確認しているとほかの部分にある不具合を見落とすことにもつながります。不具合が起こりやすそうな部分に注意しつつもまんべんなく品質をチェックするバランスが大切です。)

テストするためには、そのソフトウェアの仕組み(仕様)を詳しく知っておくことが必要です。ユーザーとして使ったことがあるシステムが、実はこんな風に作られていたのかなど知ることが出来るのは面白いです。

例えば、定期的にアップデートがかけられるソフトウェアサービスの場合は、リリースした後も次のアップデートのタイミングでテストをするという場合もあります。次のテストでは、前回のテストで不具合が多くでた機能を重点的にテストするように計画を立て直すなど、改善提案を行います。実際にスケジュール通り円滑に作業が進められた時は、Before Afterを体感でき、やりがいを感じます。

■ QAエンジニアの仕事内容

開発チームによるシステム開発作業と、システム動作が動くことの確認が終わったらQAエンジニアの出番です。QAチームにて以下の作業を行い、品質確認をします。

  • テスト計画・設計

  • テスト実行・不具合起票

  • テスト実行結果の報告・改善提案

テストなんて、ただ決められたことを確認すればいいんでしょ?と思うかもしれませんが、限られた納期の中で効果的なテストをするためには緻密な戦略を考える必要があり、クリエイティブな作業も発生します。

例えば、最大1,000件の商品を購入できるECサイトのテストをする場合を考えてみましょう。「購入ができるか」はテストする必要があります。では1,000件の商品全てをひとつずつ購入できるかの確認をする必要はあるでしょうか?
ソフトウェアテストの考えた方では、こうしたテストは基本的に行いません。なぜなら、商品として登録されたものが買えるという仕組みであれば、その仕組みが問題ないことさえ確認できれば全ての商品を確認しなくても同じ結果が得られると考えられるからです。

また、もし複数商品を一度に買えると仕様書に書かれているのであれば、同じ商品を複数購入できるのか、2種類以上の商品を一度に購入できるのか、最低でも2種類のテストを行わなければならないでしょう。
なかには仕様書に明確な動作が書かれていない場合もあります。その際、QAエンジニアは仕様書の行間を想像しながら、どのようなテストをするべきか考えることも必要なのです。

■ どんな人が向いているか

細部にまで注意を払える人

似たようなテストを実行する際は、テスト結果が微妙に異なるような、注意力を必要とする場面が出てきます。万が一、見落としてしまったり、どこかで実施手順を誤ってしまったりすると、バグとして残ったまま世の中にリリースされてしまう事態に繋がります。

このように結果を見誤ってしまうとせっかくのテストの意味がなくなってしまうため、きっちりと細部まで確認できる人が向いています。

妥協しない人

不具合はどんな条件でも起こるものもあれば、特定の操作の時にしか起きないことがあります。例えば、スマホからだと不具合が起こるにもかかわらず、PCからは起きない等の事象が実際にテストの現場ではしばしば発見されています。

そのバグがどんな時に起こるのか詳しく調査し、修正後も類似の箇所は全て確認するよう用心深さがある方が向いています。

■ QAエンジニアの将来性

QAエンジニアの需要は多く、今後も継続した需要が見込まれています。ソフトウェア業界の市場の1/3程を品質管理が占めておりますが、市場が大きくになるとともに品質管理の規模も同じく拡大しています。様々な分野で電子化やシステム化が進む昨今、その品質を管理する役割はさらに重要度を増していっています。

また最近では、多くの企業やプロジェクトがテストの自動化を導入しています。自動化は「自動化ツール」と呼ばれるシステムを使って行いますが、この自動化ツールをうまく使うにはQAエンジニアの品質管理に関する深い知見が必要不可欠です。自動化するのに効果的なテスト範囲を見定め、計画を立案することがQAエンジニアの腕の見せ所となります。システムの特性やプロジェクトの要件を理解し、柔軟な自動化フレームワークを構築することが重要なミッションです。

■ 最後に

QAエンジニアの業務は、誰よりも使う人の目線に立ち、品質を確認する役割を担ってます。「実際に使う人はこんな行動をするんじゃないか?」と、使う人の気持ちを想像してテストを設計することもしばしばです。

そうして使う人に寄り添い問題がないことを確認したサービスが、実際にお客様から良い評価を貰えた時は、最良のサービスを提供できたと達成感が得られます。

ものやサービスが豊富にある現代では、お客様から選ばれるのを待つだけではなく、積極的に何が求められているかを追求することが不可欠です。QAエンジニアは品質の視点から、選ばれる商品やサービスになるように尽力するやりがいのある仕事です。
この記事を読み、QAエンジニアについて興味を持っていただける方がいましたら幸いです!


「バルテスでQAエンジニアを目指したい」と思われた方は、下記採用サイトより詳細な情報をご確認ください。

QAエンジニアの働き方についてもっと詳しく知りたい方は、以下のマガジンに社員インタビューや1日の仕事の流れなどを紹介した記事を載せています!


最後までお読みいただき、ありがとうございました!

(*情報は2024年1月31日時点のもの)

バルテスでは世の中のソフトウェア品質を守るため一緒に働くメンバーを募集中です