nagaminaの日記

QAエンジニアです〜。学んだことなどの備忘録

開発エンジニアからQAエンジニアになって3ヶ月の振り返り

2023年4月時点で、QAエンジニアにジョブチェンジして3ヶ月が経ちました。その際、会社のブログで「バックエンドエンジニアからQAエンジニアになって3ヶ月でやったこと」的なブログを書きました。

改めて振り返りをしたいのと、もう少し個人の思い的な部分も残しておきたく、個人ブログにも書こうと思います。

なぜQAエンジニアになったのか

開発エンジニアとして今の勤め先にジョインしたのですが、以下の課題を感じていました。

  • 10年以上続いているサービスなのに仕様に関するドキュメントなどがあまり残っておらず、既存仕様の調査に多くの時間がかかりスムーズに開発できない
  • QAエンジニアがおらずプロジェクトメンバーで集まり動作確認する会を開発完了後のテストとしており、「テストは十分だっただろうか」と不安を感じた
  • 上記のことなどもありチームメンバーが伸び伸びと働けていない部分もあるように感じ、チームが安心して働ける環境を作りたいと思った

そんなモヤモヤを抱えている中、QAエンジニアに興味を持った出来事が二つありました。

ひとつめは、知人の開発エンジニアと話していた時に「QAエンジニアがチームにいた時は開発がしやすかった」という話が出たことです。私はこれがきっかけでQAエンジニアという仕事を知りました。

ふたつめは、開発エンジニアとして参加した社外勉強会にQAエンジニアの方が登壇していたことです。その方の話を聞き"Three Amigos"という考えを知り、自分はどういう立場でプロダクト作りに関わりたいのか改めて考え直そうと思いました。

これらの出来事を受けQAの仕事について調べていくうちに「QAの活動は、企画職/開発職などプロダクトに関わるメンバーがよりプロダクトに向きあいやすくなることに、繋がるかも」と感じました。

また、以下のような自分の価値観ともマッチするかもと思いました。

  • 様々な人と話し合いながら物事をチームで進めたい
  • 自分の業務に線引きをしすぎず、自分のできることはなんでもやっていきたい。そのため要件検討の段階からリリース前のテストまで幅広い開発工程に関わりたい。

このような経緯で「開発に関わるメンバーが安心して素早くユーザーに価値ある製品を届けるサポートがしたい」と思いQAエンジニアになりました。

QAエンジニアになって3ヶ月で取り組んだこと

弊社では主に2つのプロダクトがあり、開発エンジニアとして携わっていたプロダクトとは別プロダクトのチームにQAとしてジョインすることになりました。

私がQAエンジニアにジョブチェンジする少し前に、弊社に1人目のQAエンジニアがジョインしていたのでメンターとしてついてもらいました。

既存テストケースの実行

まずは既存テストケースを全て実行することから始めました。

テストケース実行を通して得られたこととしては、

  • ざっくりと仕様を把握することができた。また、全体のボリュームが掴めた。
  • テストケースをどのように作っているのかぼんやり把握することができた。
  • 不具合時の報告方法(チケットの起票方法)など、チームのルールを把握できた。
  • テストケース管理ツールに慣れることができた。(Qaseというツールを使っているのですが、シンプルで直感的に使えて良かったです)

などが挙げられます。 個人的にはテストケースの実行から始めることは、最初の一歩としてのハードルが低く業務のイメージもつきやすく非常に良かったです。

他社さんがどのようにQAのオンボーディングを進めているのかとても興味があります。

テストプロセスを一通り経験

次に開発案件を通して、テストプロセスを一通り経験しました。

特に難しく感じたのは、「仕様書のレビュー」と「テストケースの作成」です。

弊社では、要件定義段階からQAチームが参画し、プロジェクトオーナーが書いた仕様書をレビューします。 例えば、誤字脱字のチェック、既存仕様との矛盾のチェック、よりユーザーが使いやすくなるような提案などを行っています。 最初の頃は、開発エンジニアの時の習慣が抜けず「どうやったらシステムとして実現できるか?」と考えがちでした。しかし、それ以前に「その仕様で本当にユーザーの課題を解決できるか」という目線を持つことが必要だなと感じました。

レビュー観点を広げる方法として、モブ作業を行って他のメンバーの観点を盗み身につけるということをしました。 具体的には、仕様書をレビューするときにslackハドルなどで画面共有しながら、お互いに気になった箇所を述べていくということをしました。その際に、「なぜそこが気になったのか」「なぜその考えに至ったのか」などを聞くようにしました。 そのおかげで、自分では気が付かなった指摘事項に関しても、導き出し方がわかるようになりよりレビュー観点が広がりました。


テストケースの作成に関しては、誰が見ても何をしたいかテストの意図がわかるものにすることが非常に難しいなと今でも頭を悩ませています。開発エンジニアをしていた時に、「自分の書いたコードをしばらく経ってから見返すとわからない」という事象に直面することが何度かありましたが、自然言語で記入しているテストケースでも同じことが起きるんだなと思いました。

わかりにくくなる理由としては、暗黙知が含まれていることなどが考えられると思いました。なので、他の人にテストケースをレビューしてもらい、暗黙知の排除につとめました。

また、社外の勉強会でテストケースの作成に関わるものがあれば積極的に参加しました。 特に、JaSST’23 Tokyoでのテスト設計コンテスト U-30クラスのセッションは、テスト設計とはこんなに奥が深いものなのかと感銘を受けたのを今でも覚えています。

3ヶ月で得たこと・今後やっていきたいこと

個人としての一番の成果は、QAとしてテストプロセスを一通り経験できたことだと思っています。 ただ、プロセスの各工程をさらに深掘りしていく必要があります(特にテスト設計など)。また、幅広いテストタイプに対応できるようになりたいですし、今はシステムテスト(E2Eテスト)を主に担当していますが他のテストレベルの知識も身につけていきたいと考えております。 学べることが無限に広がっていてわくわくしますね。

チームの成果としては、QAチームに人が増えたことでライブラリアップデート・リファクタ時などにリグレッションテストを実施できるようになったことかと思っております。 しかし、実行に時間がかなりかかっており、素早いデプロイのボトルネックになっているように感じます。必要な部分はテストを自動化するなりして、質とスピードを担保していきたいです。 (※2023年10月現在 自動化ツールを導入してチームで進めることになったので、実現したいこと第一歩は達成)