今回はQAエンジニアについて紹介するよ!
はじめに
QAエンジニアの役割は明確に定義されているわけではなく、会社によって「QAエンジニア」の解釈は違ってきます。
本サイトでは以下のように定義しています。
品質保証を目的とした、各種活動を行うエンジニア。
保証するためのWhat・Why・Howを考え、推進する。
手段としてテストを用いることが多く、テストエンジニアを兼ねて作業する場合も多い。
QAエンジニアとは?
品質を担保するため、テスト活動を推進するのが「テストエンジニア」に対して、テスト活動に閉じず「品質活動全般を推進する」のがQAエンジニアです。
品質保証の手段として「ソフトウェアテスト」が用いられることが多く、QAエンジニアでも兼任してテスト活動を行う方もいらっしゃいます。
会社や業界、プロダクトによって最適なQA活動は異なってくるため、その辺をいい感じに調整して品質を保証していくのが主な役割です。
その性質上品質活動の考え方や、テスト活動の経験は一定必要となります。
具体的な作業内容
QAエンジニアの業務としては、品質活動全般という表現がふさわしく、上記で説明したとおり企業やプロダクトによって必要なことが変わってくるので、具体的な作業を上げることは難しいです。
その前提の上で、少し抽象的になってしまいますがQAエンジニアに求められること、個人的に大切だと思うことを紹介していきます。
上流工程での品質活動 (シフトレフト)
より上流から品質活動を行うことで、コストの削減に繋がるということが良く言われます。
少し説明をすると、上流というのはテストフェーズより前のフェーズを指しており、仕様を検討するフェーズや開発フェーズから「品質活動を行う」という考え方です。
例えば、テストで見つかった不具合が「仕様の検討漏れ」だったとしましょう。
その場合、間違った仕様で開発してしまった工数も、テストをした工数も無駄になってしまいます。
事前にQA担当者がその仕様策定に関わっていれば、仕様の検討漏れを防ぐことが出来たかもしれません。
テストフェーズだと、ある程度製品が完成していることが多いのですが、事前にバグを検出したり予防するような活動が昨今ではトレンドとなりつつあります。
このような上流工程での品質活動は「シフトレフト」とも呼ばれ、一般的に開発工程が左から右に流れていくことから「左の工程から品質活動をしよう」という意味があります。
テスト自動化
QA業界として「テストの自動化」を求められる機会も多くなってきました。
それは品質活動を推進する上で、一定の手動テストを自動化していく動きが求められている傾向にあるからです。
ある程度のコーディングスキルも求められることもありますが、それ以外にも「どのようなテストを自動化」して「どのようなプロセスで自動テストを活用することが効果的なのか」そういった知見も重要です。
テスト自動化が全てではないですが、より良い品質活動を考えていく中でテストの自動化は避けられません。
検討した上で自動化しないという意思決定をしたのと、できないから自動化しないのでは全然違ってきます。
また、「テストエンジニア」のポジションの人が自動化を推進してくれることもありますが、QAエンジニアとしてもその自動化がどのように実装されていて、なぜ自動化するのかがわかっていないと品質活動としてはイマイチです。
QAエンジニアにとっては必須のスキルというわけではないですが、引き出しの多さがQAエンジニアの強さに直結している部分もあり、とても重要なスキルであることには変わりありません。
「品質活動」の推進
QAエンジニアとして採用された場合、品質に対する「意見」が求められます。
なぜその品質活動をするのか、テストをするのか、どういった効果を期待しているのか。
そういった分析やQAとしてあるべき姿を考えるスキルは必要です。
ただテストをしていれば良いというわけではなく、なぜそのテストが有効なのか、そのテストを代替するとしたら何があるのか、そういった不確定で正解がないことも多いため、品質活動全般の知識が必要です。
また、それを上手く言語化して周りに浸透させ、さらに推進してく力も重要になってきます。
そのため、必然的にコミュニケーションスキルも重要となってきます。
このように品質活動全般に携わってプロダクトや組織をより良くしていくことが求められるため、正解を見つけ出すのが難しく、課題を構造化させたりロジカルにゴールを設定することも大切です。
おわりに
抽象度の高い話が多く、あまりピンと来ない方もいると思いますが、品質に責務を持ってなんでもやるのがQAエンジニアです。
もちろん、品質活動の中にテスト活動も含まれることが多いため、QAエンジニアがテスト設計をしたり実施をしたりは発生します。
そのため、会社によってQAエンジニアと呼んでいても実際にはテストだけをしている、みたいなことをこういった理由から発生しています。
テストも当然重要なスキルですが、今回紹介したような一段抽象度を上げた目線で品質活動を捉え、QAエンジニアとして活躍する人が増えると嬉しいです。
QAエンジニアはやりがいや裁量のある職種にはなりますし、業界としてもまだまだ発展途上と思っています。
是非一緒にこれからのQA業界を盛り上げていけたらと思います!