6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RSGT2021 セッションメモ~プロダクトを強化する探索的テスト戦略~

Last updated at Posted at 2021-01-07

RSGT(https://2021.scrumgatheringtokyo.org)
で自身が参加したセッションのメモ&ふりかえりです。
ふりかえりの手法は、びばさんが配信しているPodcastである、ふりかえりAM ep.4(カンファレンス用のふりかえりをする例)で紹介されていたFun Done Learnを参考にしています。

概要

  • Noriyuki Nemotoさん
  • Day2(1/7) 13:25~13:45
  • スクラム/アジャイル開発でプロダクトの品質はうまく担保できていますか?
    要求をシンプルにしたり、テストの自動化に取り組んだり、テスト設計をしたり。もちろん品質を担保するには色々なアプローチがありますが、今回は探索的テストの使い方に焦点を当ててお話をしたいと思います。
    具体的にはST:スクリプトテスト(テスト仕様書に沿ったテスト)とET:探索的テストの使い分けのパターンを紹介します。探索的テストはコストが少ない割にバグの発見率がいいんです!!
    ST->ETシリアル
    ST/ET パラレル①
    ST/ET パラレル②
    ET-> STシリアル
    ET->ST->STシリアル
    ST&ET STチャーター
    品質が悪くて手戻りが多いチームにお勧めします。
    自動テストに探索的テストを加えて、安心してスプリントを進めていきましょう。
    最後に…探索的テストってテストのアジャイルなアプローチなんですよ!!

気になった内容メモ

  • スクリプトテストとは、テスト仕様書やテスト設計をして、その内容にしたがってテストするもの。バグがないことを調べるもの。
  • 思いつくくままにテストするのは探索的テストでない(アドホックテスト)
  • 過去の経験やエラーの経験だけからテストするのは探索的テストではない(アドホックテスト)
  • 探索的テストとは、直近の実験から得た気付きを次の実験へと確認するもの by Erisabeth Hendrickson
    • 対話を通してテスト
    • 医療で言うと、問診が探索的テスト。健康診断がスクリプトテスト。
    • バグを見つけるテスト
  • 探索的テストを使うメリット
    • 短納期でバグを見つけられる
    • テストの重みづけを変えられる(怪しいと思った部分は重点的にテストできる)
    • 暗黙知の活用に有効
    • 動くソフトウェアを基にテストできる
  • 世界的には84%のチームが探索的テストを利用している。スクリプトベーステストは60%弱
  • 探索的テストはアジャイル開発との親和性が高い
    • 不確実性を減らす効果がある
    • 必要なテストを全て網羅するのは無理という前提
    • ソフトウェアを動かさずにテストするのは無理という前提
  • 探索的テストのスタイル
    • フリースタイル
    • チャーター(探索的テストの道しるべ)を用意するスタイル
      • 一般的にはこの方法が多い
      • チャーターを用意=探索的テストではないので注意。
      • 現実のソフトウェアと対話するのが探索的テスト
      • 手順がないテスト(チャーターに記載されている以上に深い項目をテストしない)にならないように注意
    • タイムボックスで区切るスタイル(セッションベースドテスト)
  • 探索的テストだけ、は有り得ない。
  • 探索的テストとスクリプトテストの併用例
    • (ST -> ETシリアル) 最初にスクリプトテストを実施してシステムの弱点を見つけて、弱点に対して探索的テストする
      • 流用できるリグレッションテストケースや網羅的自動テストが存在する場合にやりやすい
    • (ET -> STシリアル) ST -> ETシリアルの逆
      • 時間の制約がある時やロジックが複雑な時におすすめ
    • ST/ETパラレル 探索的テストとスクリプトテストを別々の人が並列的にやる
      • 事前に探索したい部分が分かっていて、スキルが違う人がいる場合におすすめ
    • (ET -> ST -> ETシリアル①) 最初に探索的テストをして学習を深める。その後スクリプトテストをして、探索的テストを最後に実施する。
      • システムについて理解が浅い場合におすすめ
    • (ET -> ST -> ETシリアル②) 最初の探索的テストをスモークテストとして実施する
      • 大きな問題(モジュールの結合がうまくいかなくてそもそもシステムが動かない...)がないことを早い段階で見つけるために実施
    • (ST&ET STチャーター) スクリプトテストの仕様書をチャーターとしても流用する
      • ハイブリッドでテストできる人はおすすめ(ハイブリッドでテストできない人だと、探索的テストを深くやりすぎるとテストが終わらない...)
    • 探索的テストの使い方によって、テストの4象限における象限が変わるので注意

楽しかったこと

  • スクフェス札幌の楽しかった記憶が少し蘇った。
  • 根本さんの落ち着いた語り
  • Janetさんの講演の後に聞いたので楽しかった。

やったこと

  • アウトプットを意識しながら話を聞いた
  • 実際に現場で使っている探索的テストのチャーターを見ながら講演を聞いた

学び

  • 探索的テストの探索たる所以が理解できた。
  • スクリプトテストという言葉の理解
  • テスト戦略の使い分け
  • 一言で探索的テストと表現してテスト戦略を決めるのは危険ということが分かった。テストの4象限を活用しながら、どういう目的で探索的テストをするのか、プロダクトに応じて使い分けできると良さそう
6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?