見出し画像

ワンキャリアのQAチームが取り組んでいること〜テスト自動化のすすめ〜

はじめに

こんにちは、QAチームとDevRelチームで活動している中西(@nana_nigiiro)です。

ワンキャリアでは、2022年の4月にQAチームが発足し、私が一人目のQAエンジニアとして立ち上げを担うことになりました。新卒1年目の私がQAの知識まったくなしの状態からQAチームを立ち上げたため、最初はわからないことだらけでかなり苦戦しました。
しかし、半年近く活動してきて、ようやくQAエンジニアとしてのあり方や方向性が少しずつ見えてきました。

今回は、QAエンジニアとはどんな仕事なのか、ワンキャリアの場合どんなことをしているのかというお話をさせていただければと思います。

QAエンジニアとは?

QAエンジニアと聞くと、皆さんはどのような印象を抱くでしょうか?
最近はQAエンジニアも少しずつ認知をされてきておりますが、まだまだQAエンジニア=テスターという認識をされることも多いです。
しかし実際は、QAエンジニアはテスターを包含した概念であり、品質に関係することはなんでもするかなり広い職種だと考えています。

実際、半年近くQAエンジニアをやってきて、様々な企業のQAエンジニアからお話を聞きましたが、業務内容や組織形態はばらつきがありました。
また、そのバックボーンもエンジニア/テスター/ビジネスサイド(営業等)と多種多様です。

QAエンジニアの役割について定義したQM(Quality Management)ファンネルでは、スペシャリティとロールによってかなり細分化されています。

QMファンネルにおける役割分類

詳しくは以下のスライドを参照してください。
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)

QAエンジニアは業務内容によっては、テスト技法の知識、開発の知識、インフラの知識、プロダクトの知識といったかなり幅広い知識が求められます。
つまり、どのフェーズにおいても『品質』という観点で関わることができ、幅広い知識と経験が得られやすい点がQAエンジニアの良さだと考えています。

現在取り組んでいること

ワンキャリアQAチームで現在取り組んでいることを、スペシャリティごとに分類すると以下のようになります。

テストエンジニア(TE)としての役割
シナリオテストの計画、作成
要件定義書のレビュー

パイプラインエンジニア(PE)としての役割
テストの自動化

QAエンジニア(QA)としての役割
品質についてのLT会
開発プロセス改善

この中でも、現在は特に「テストの自動化」部分に力を入れています。
TEやQAの業務も進めていますが、どうしてもQA1人体制だと工数的に影響を及ぼすことができる範囲は狭くなってしまいます。
その点、自動化はメンテナンスコストが多少かかるものの、一度やってしまえばその分のテスト工数を減らすことができ、複数のプロダクトに範囲を広げやすいです。

自動テストと言っても、テストはテストフェーズごとに分かれるため、そのうちどの部分を担当しているのかは言及する必要があります。

一般的に自動テストというと、UIテスト、結合テスト、単体テストの3つが対象となります。
組織によってはその全てをQAエンジニアが担当する場合もありますが、ワンキャリアの場合、今のところ単体テスト、結合テストは開発エンジニアが担当し、UIテストをQAエンジニアが担当しています。


V字モデルとテスト

UIテストを自動化することで、定常的にシステム全体の振る舞いをチェックすることができるため、リグレッションテストとして早期の不具合発見・修正に寄与しています。

どのようにテスト自動化を進めているのか?

ワンキャリアの場合、システムテストの自動化にはノーコードツールAutifyを利用しています。
Autifyとは、ほぼノーコードでテストシナリオを作成し、自動テストを行うことが可能な自動化SaaSです。

Autifyを技術選定した理由ですが、大きく2点あります。

1)ノーコードである点
まず最初に技術選定する際に考えたことはコードを書くか、書かないかということです。
SeleniumCypressといったコードでUIテストを実装している企業はたくさんあります。ワンキャリアでもそのような手段を検討しましたが、ワンキャリアのプロダクト特性と現在のQA体制を元にQCDで判断した結果、コードを書かない選択肢を取りました。

ノーコードツールであれば、非エンジニアの方でもある程度のテストが作成ができ、かつ作成スピードも早いです。また機能変更による修正も簡単です。

現在の運用としては、複雑な処理のためコードを書かなければいけない場合を除き、私はテスト計画に注力し、テストの作成自体はQAアルバイトの方にお任せしています。
この運用により、当初の想定よりテストのカバレッジ率を拡充することができました。

2)UIが直感的で使いやすい/サポートが厚い点
ノーコード/ローコードツールであれば他の候補として「mabl」や「Magic Pod」なども考えられます。
実際に各サービスを使ってみましたが、どれも優れた自動テストツールでありましたが、多少の違いはあれど飛び抜けてこのサービスが良いというものには巡り会えませんでした。
検討の結果、Autifyが1番非エンジニアにとっても直感的に使えるツールだと感じました。

上記でも少し触れましたが、QAエンジニアは計画やサポートを担当し、QAアルバイトの方にある程度の実装をお願いする運用を考えていたため、少しでも非エンジニアに使いやすいものの方が良いと判断しました。
また、Autifyではテストがうまくいかない場合のサポートなども充実しており、QAアルバイトの方が自走しやすい環境だったことも魅力的でした。

現在は、全プロダクトへのリグレッションテスト完備に向けて日々着々とカバレッジ率を拡充しています。実際にリリース前にリグレッション箇所が見つかった事例も増えてきており、効果が少しづつ出てきています。

さいごに

今回はワンキャリアでQAチームが取り組んでいること、特にテストの自動化についてお話しさせていただきました。

ワンキャリアもまだまだ「QA組織」と呼ぶには小さい規模ですが、少しずつ組織も活動も領域を広げていく予定です。特に、ODC分析や品質指標のメトリクス作成、テストカバレッジツールの導入などは早めに進めていきたいと考えています。

とはいえ、1人でできることには限りがあります。
そのため、QAエンジニアとして一緒に働いてくれる方をお待ちしております。


また、開発組織全体でも色々取り組んでいますので、もし、ご興味を持った方はこちらをご覧ください。


この記事が気に入ったらサポートをしてみませんか?