初期品質向上のためのQA目線での取り組み

tags
advent calendar
QA
author
category
QA
mainImage
type-b (34).png
publishedAt
Apr 19, 2023
published
published
slug
newt-adventcalendar-20230419
authorDisplayName
Ryoko Takagi
notion image
こんにちは!NEWT 1st ANNIVERSARY CALENDAR 15日目担当の高木 涼子です!
わたしは2022年9月に令和トラベルに入社し、QAエンジニアとして海外旅行予約アプリ『NEWT(ニュート)』のQA活動を日々行っています。
この記事では、QAチームがどのように初期品質向上に取り組んできたかを紹介します。
 

背景

現在、QAチームはフルタイムメンバー2名、PPさん*3名で活動しています。(※ 令和トラベルでは業務委託の方をプロパートナー(PPさん)と呼んでいます。)
NEWTの開発チームでは、1週間に1度のアプリリリースを行っており、昨年10月からの半年間で200Epicのリリース件数を目標としていました。単純計算で1ヶ月あたり33Epic、1週間で8-9Epicをリリースする必要があります。
 
少ない人数でより多くの案件をリリースするためには、QA ready時の品質(初期品質)がとても重要です。初期品質が低いと、QAエンジニアと開発者の間で不具合に関するやり取りが頻繁に発生してしまい、お互いの工数が取られてしまったり、Blockerがやっと解消されたと思いきや、また次のBlockerが見つかり、、、というようになかなか安定的にQAを進められず、元々予定していたリリース日の遅延に繋がる可能性も出てきてしまいます。
 
そのため、QA目線での初期品質を向上させる取り組みを実施しました。
 

取り組んだこ

Sanity testの導入

これまでは、開発者がどこまで挙動確認をしてQA readyにするか明確な基準が決められていませんでした。
そのため、大きめの開発案件に関してはQAエンジニアがSanity test(健全性テスト)を作成し、そのケースを開発者(もしくは同じ開発チームのエンジニア)に実行してもらい、ケースがOKになった箇所からQAを開始、OKが付くまではQAを開始しない、という方針を取り決めました。
 
QAエンジニアとしては、Sanity testのケースを作成する工数が追加になりますが、最終的にはQAチームが実行するTest caseにも流用できそうだったこと、またこの工数をかけることでエンジニアとの不具合のやり取り工数が格段に減ることが予想されたため、導入してみました。
 
実際のSanity testのケースの一部がこちらです。
ポイント機能のSanity testのケースの一部
ポイント機能のSanity testのケースの一部
 
Sanity testのケースを作成する際には、下記の三点を意識しました。
 
  1. 1案件で20ケース前後に収める
開発者に負担にならないかつ、正常系のフローを一通り通すことができる量を考え、1案件で20ケース前後に絞ってケースを作成しました。
 
ケース全体の作成フローとしては、
  • 先にSanity testを作成→肉付けする形で実際のTest caseを作成
  • 先にQAが実行するTest caseを作成→そこから抜粋してSanity testを作成
この2パターンをどちらも試してみました。前者だとTest caseの作成が楽になったと感じましたが、後者だとあれもこれもSanity testに入れたい、、、となったので、Sanity testの導入を検討している方には、わたし個人としては前者をおすすめします(笑)
 
  1. Blockerとなり得る重要なケースのみに絞る
1でも記載した通り、あれもこれも入れたい、、、となってしまいがちですが、できる限りケースを絞って記載するようにしました。特に、このケースがOKにならないと、Test caseの方で連続して保留になってしまうようなケースを意識して取り入れるようにしました。
 
例えば、今年頭にリリースしたポイント機能というEpicだと、いくつかの画面でたまるポイントが表示されるのですが、QA側のTest caseではそのポイントの表示位置が正しいか、表示文言が正しいか、ポイント数が正しいか、など様々な観点を確認します。しかし、そのようなケースを実行するためには、まずその画面にたまるポイントが表示されていなければなりません。そのため、Sanity testではポイントの細かい表示などにはこだわらず、「この画面にたまるポイントが表示されていること」が確認できればOK、その後細かい点はQA側のTest caseで担保するという形にしました。
 
  1. 観点やパターンを書きすぎない
細かい観点やパターンはQA側のTest caseで実行することから、Sanity testに記載する内容はかなり削ることを意識しました。QAエンジニアは普段からテストケースを見ているため慣れていますが、開発者に実行してもらうとなると、1ケースに多くの情報を詰め込みすぎると見落としや混乱を招く可能性があると考え、できるだけ簡素に、必要な情報のみを記載することにしました。
 

QA前dog foodingの導入

dog foodingというと、QA後にある程度品質が落ち着いてから実施するイメージがありますが、QA前にプロダクトを触ってみることでまずは今の品質をメンバー全員で理解してみよう、そしてQA前のバグ出しをみんなでやってみようということで、QA前dog foodingを導入してみました。
Sanity testだとQA側の準備が必要ですが、dog foodingはテスト環境とアカウントさえあれば誰でも実施できるため、開発案件の大小に関わらず導入の手間がかからなかったことも一因です。
 
メンバーにdog foodingをしてもらうにあたり、
  • メンバーのスケジュールをがっつり抑えてその時間内で確実に機能を触ってもらう
  • メンバーの自由な隙間時間で機能を触ってもらう
どちらにしようか迷いましたが、最初なのであまり強制にはしたくなかったこともあり、まずは後者の自由な時間で機能を触ってもらう方法を取りました。
 
はじめはみんな参加してくれないかもしれない、、、という不安がなかった訳ではありませんでしたが、意外とみんなノリノリで(?)参加してくれたので、このやり方でよかったなと感じています。
開発者からdog foodingの依頼をするslackの例
開発者からdog foodingの依頼をするslackの例
 
dog foodingで出た不具合は、QAフェーズで出た不具合と同じようにJIRA上でチケット化し、漏れなくタスク管理するようにしています。修正後は不具合の発見者に修正確認をしてもらって、QA側はチケットのレビューのみを実施とすることで、QA側の負担も減らすことができました。
 

取り組みの結果

不具合発生率の減少&リリース案件数の増加

初期品質の向上を目指して取り組んだ結果、驚くほど見事に不具合発生率が減少しました!!
不具合発生率 = 不具合数 / Test case数として、Test caseが100件を超える規模の案件について不具合発生率を計測したグラフがこちらです。
初期品質の変化を示すグラフ (赤線が目指していた水準)
初期品質の変化を示すグラフ (赤線が目指していた水準)
 
Sanity testやdog foodingの導入前はかなり高い水準にあった不具合発生率が、導入後は徐々に減少し、目標に掲げていた水準に落ち着いてきていることが分かります。
 
また、不具合発生率が下がって初期品質が向上したことで、リリース件数にも好影響がありました。
NEWTのリリース案件数
NEWTのリリース案件数
こちらのグラフの通り、リリース速度を上げることができ、半期の目標リリース数200を見事達成しました。
もちろん、初期品質向上だけが起因ではなく、メンバーそれぞれの頑張りによるところもありますが、QA目線で少しは貢献できたかなと思います。
 

実機で触ってみないと気付けない改善ポイントの発見

また、初期品質向上だけではなく、思わぬ副産物もありました。
 
NEWTの開発では、figmaで仕様を整理し、仕様の読み合わせをして疑問点などを解消した上で、開発をしていますが、やはり実機を触ってみて初めて気付くことも多くあります。実際、QA前dog foodingで実機を触ってみたことで、仕様の改善が行われたことがありました。
 
仕様改善の例
仕様改善の例
 
QA中、もしくはQA終盤にこのような改善ポイントが見つかってしまうと、QAが手戻りになってしまうこともあるのですが、できるだけ早い段階でみんなで機能に触れ、それぞれの案をし合うことで、最小限の手戻りで抑えるかつ、より多くのお客さまが直感的に分かりやすい仕様に変更することができました。
 

さいごに

初期品質向上のために実施した取り組み、その結果をご紹介しました。いかがだったでしょうか?
今回はとてもきれいに結果が出ましたが、QAチームとしては今の状況に満足せず、今後もさらなる品質向上を目指していきます
 
みなさまの中でも、もしこういうことをしてこんな成果が出たよという方がいれば、ぜひ教えてください!そして私たちの取り組みも、どこかで誰かの役に少しでも立てればよいなと思っています。
 
ここまで読んでいただきありがとうございました!
 
明日のNEWT 1st ANNIVERSARY CALENDAR はCSOの受田さんです。お楽しみに!
 
令和トラベルでは、現在全力で仲間探しをしていますので、少しでもご興味ある方はぜひ採用ページからご連絡ください。まずは気軽にお話を聞いていただける、ミートアップも開催しています。メンバー全員で温かく迎える準備はできています!
私たちが運営する海外旅行予約サービス、NEWTはこちらから。
 
*******************
現在、NEWTでは大感謝セール『NEWT FES』を開催中です。ぜひこの機会に海外旅行をもっとおトクにご予約ください。
NEWT FES 祝1周年!大感謝セール| NEWT(ニュート)
 
令和トラベルに関する情報発信を専門とした公式noteはこちらから。

# advent calendar

# QA