チームスピリットデベロッパーブログ

チームスピリット開発者のブログ

リスクベースド・アプローチを導入して、JaSST nanoで発表しました

こんにちは。TeamSpirit QAエンジニアの中西です。

私たちのチームでは2021年1月からリスクベースド・アプローチ※を採用したテストを始めました。当記事では、その取組み内容をJaSST nanoというイベントで発表してきましたので、その報告とともに苦労したポイントについてお伝えします。
※ リスクを特定し、リスクに応じて対応する方法

はじめに

取組みの経緯を説明する前に、当社のプロダクト開発手法と開発チームにおける
QAエンジニアの役割を説明します。
プロダクト開発体制についての詳細は下記ブログを参照ください。 teamspirit.hatenablog.com

プロダクト開発手法

私たちのプロダクト開発では、スクラムを採用しています。 1スプリント2週間の開発サイクルを8回程度繰り返して、プロダクトをリリース※しています。
私たちの開発チームはスプリント最終日のスプリントレビューでデモできるように、小さな単位で機能開発しています。
また、スプリントレビューでデモを実施した結果、クリティカルな指摘がある場合、次のスプリントの開発に組み込みます。
※ エンドユーザ向けにリリースするのは年3回(3月、7月、11月)です。

QAエンジニアの役割

TeamSpirit family製品開発チームにおけるQAエンジニアの役割は以下の通りです。

  1. プロダクト品質目標の作成・更新
  2. テスト戦略・テストアーキテクチャの策定・運用
  3. リリースサイクルごとにテスト計画、品質評価レポートを作成
  4. 詳細設計のレビュー
  5. 開発が完了したユーザストーリー、不具合のテスト設計/テスト実施
  6. 開発期間中に発生した不具合の分析、分析結果を開発チームにフィードバック
  7. リグレッションテストケースの整備
  8. 非機能要件のテスト計画~テスト実施のリード
  9. 継続的なテストプロセスの改善
  10. テスト自動化の推進
  11. テストナレッジの共有
  12. 採用支援

リスクベースド・アプローチを導入するまで8~11に記載していることが
十分に実施できていませんでした。

リスクベースド・アプローチの導入

従来はQAエンジニアが全てのリリース対象に対して、機能テストを行っていました。
さらに、開発者テストとQAエンジニアのテスト内容が重複している場合もあり、
テストに必要なコスト・時間が多い状況でした。
そのため、QAエンジニアのテストがボトルネックとなり、
リリースできない機能改修が発生していました。

このような問題に対応すべく、リスクベースド・アプローチを用いて、
機能テストにおけるQAエンジニアの関わり方を整理しました。
どのように整理したかはJaSST nanoで発表した資料を見ていただければと思います。

speakerdeck.com

苦労した点

次にリスクベースド・アプローチ導入時に苦労した点を共有します。
(JaSST nanoでは説明していない内容になります。)

苦労した点は不具合が混入するリスクが低い機能改修に対して、
QAエンジニアがどのようなテストをするか決めることでした。

テスト手法を検討するにあたり、不具合混入リスクが低い機能改修で混入した
不具合の発生傾向を分析しました。

その結果、ラベル名の変更、エラーメッセージ、エラー発生条件の変更のような
機能改修では、クリティカルな不具合が頻繁に発生していないことが分かりました。

分析結果をふまえて、不具合が混入するリスクが低い機能改修に対して、 下記2点を行うことに決めました。

  • QAエンジニアは開発エンジニアが作成したテストケースをレビューする。
  • QAエンジニアは1~3時間のタイムボックスでアドホックテストを実施する。

今後について

リスクベースド・アプローチ導入後、モブテストを通じて、 テスト実施の勘所を開発エンジニアに少しずつ伝えているところです。
また、定期的にJSTQB Foundationレベルのテストの目的やテスト設計技法を伝えて、 開発エンジニアもQAエンジニアと同等のテストができるように支援していくことを考えているところです。

JaSST nanoでの発表

リスクベースド・アプローチの取り組みが定着した頃、
JaSST nanoでの発表を決めました。

JaSST nanoについて

JaSST nanoはテストやQA、品質に関連するテーマで誰でも、
気軽に社外に対して、発信できる場です。

1ヶ月に1度、19:00から1~2時間、オンラインで開催します。現時点では第3火曜日です。テーマはソフトウェアのテストやQA、品質に関することなら何でも構いません。レベルとか質とか関係ありません。話したい人が話したいだけ話す、という趣旨です。 JaSSTnano - PukiWiki から引用

JaSST nano参加のきっかけ

2021年の個人目標として、以下の2点を挙げていました。

  • リスクベースド・アプローチを開発プロセスに組込み後、その成果を社外に発信する
  • 社外のテストエンジニア・QAエンジニアの方との接点を持つ

特に「社外のテストエンジニア・QAエンジニアの方との接点を持つ」ことに関しては、
並々ならぬ意欲をもっていました。

そんな中、JaSST nanoのイベントを定期開催するというtwitterを見て、
2021年度中に発表するということを決意しました。

JaSST nanoに参加してみて

運営の方によるイベントの雰囲気づくりにより、
発表者にとって非常に発表しやすい雰囲気でした。
「テスト、品質に関わることならなんでも」という主旨のため、
発表内容もバリエーションが豊富で、 テストの目的をカジュアルに分かりやすく例える発表もありました。

家事・育児に学ぶテストと品質管理の心構え - Speaker Deck speakerdeck.com

他社の取り組みや発表者が持っているテストや品質の考え方を
気軽にインプットすることができる場でした。

また、社外の方と接点を持つきっかけとなるイベントでした。
自社の取り組みではなく、ソフトウェアテスト、品質に対して、
自分の考えをアウトプットする場として、また参加しようと思っています。
積極的にアウトプットして、ソフトウェアテストを盛り上げていけるように頑張ります。

最後に

このようなQAエンジニアが所属しているチームです。
一緒に働きたいというエンジニアの方を絶賛募集中です。
よろしくお願いします。

recruit.teamspirit.com

recruit.teamspirit.com