テスターのテストによる開発者のためのテスト

システム業界で思ったことをそのまま言葉にしよう

アジャイル開発で、小さく作って小さく回すためのテストの下準備

この記事は ソフトウェアテスト Advent Calendar 2020 - Qiita 12日目の記事です。

qiita.com

アジャイルリーダーシップを品質面からサポートしようと日夜活動をしている なそです。アジャイル開発の短いサイクルの中で、品質をどう良くしていくのかを考えています。

では、どうしていくのが良いでしょうか?サイクルを短くしていくための下準備は大きく分けて以下の3点が必要になります。

  • 自信のない部分の洗い出し
  • 網羅的なテストの洗い出し
  • テストのロードマップの作成

それぞれ見ていきましょう。

自信のない部分の洗い出し

短いサイクルで対応しようとすると、どうしても不安な部分がありますよね。テストが終わるのか?は興味深いテーマの一つです。何をすれば、自信がつくのでしょうか?漠然とした不安を具体的な不安に落とし込みましょう。そのためには3つの品質を考えてみましょう。
ここでの品質は、チームもそうですが、プロダクトを出すステークホルダーや使うユーザーも含まれます。

  • 機能品質
  • スプリント品質
  • プロダクト品質

機能品質は、作るプログラムの品質です。機能要件や非機能要件も含めて考えるべきです。スプリント品質ですが、チームを含めてうまく回っているかです。
例えば、品質を見すぎて、働きすぎていませんか?無理は確実にチームやプロダクトに影響します。最後に、プロダクト品質です。提供する価値が想定通りに実装できているかどうかです。


そして、品質を考える際には定性定量を意識しましょう。

その数字を使ってどう分析するのかが大事なので自分たちは何を得たいのかを基軸としてデータを集めつつ、自分たちがどう品質を分析するのかの両面で考えましょう。

分析は議論の土台です。そのデータを使って論じるのはプロダクトであって人ではありません。リーダーだけがこの数字を意識するのではなく、基準として意識していきたいですね。

網羅的なテストの洗い出し
システムに対してのテストの網羅をどのようにするかです。システムから見る方法もありますが、今回のポイントは別視点で考えたいと思います。以下の3つです。

スプリントは、サイクルの中でのテスト活動。リグレッションは、スプリント内での改修が他に影響していないかのテスト活動。リファクタリングは、リグレッションと似ているのですが、あえて分けています。その理由は、改善における改修が他に影響していないかに加えて、改善できているかを確認する必要があるからです。

いま自分たちが行っているテストをいかに見える形で網羅的にしていくのが重要です。今のテストで十分性を訴えるのではなく良くしていくかの議論をするべきです。

テストのロードマップの作成
それぞれに対して、どういう手段を用いるかも重要です。私達の使える時間は限りなく少なくていつも不足しているのです。

そうすると足りないものが見えてきて、ロードマップの原型が生まれます。それをどのように立てていくかが重要ではありますが、今よりもアップデートができます。個々の技法で攻めるのではなく、プロダクトをどうするかに合わせて様々な技法や考え方を適用するかを議論しましょう。

最後に

簡単に記載しているので、深堀りを行う必要がありますが、最初から全部を狙うと難しいと思います。もう少しで新年です。新たな目標を立てて、どうやって下準備をして行くのかを考えてみると良いのではないでしょうか?

 

簡単ではありますが、なそがお送りしました。