24
Disposable Test !!! ソフトウェアテストの レトロスペクティブ 2014.03.29 kyon_kao_wedding

Test Retrospective #kyon_kao_wedding in Tokyo

  • Upload
    kyon-mm

  • View
    1.185

  • Download
    0

Embed Size (px)

DESCRIPTION

kyon_mm * kaori_t_spica 結婚祝いLT大会 in Tokyoでの発表資料です。

Citation preview

Page 1: Test Retrospective #kyon_kao_wedding in Tokyo

Disposable Test !!!

ソフトウェアテストのレトロスペクティブ

2014.03.29 kyon_kao_wedding

Page 2: Test Retrospective #kyon_kao_wedding in Tokyo

自己紹介

きょん(@kyon_mm)

ソフトウェアテストアーキテクト

うさみみ系エンジニア

Groovy, C#, F#, Ruby, Scala

SCMBootCamp, TDDBootCamp, 基礎勉強会, Nagoya.Testing, Cafe.Testing, STAR, TDDeXchange

Page 3: Test Retrospective #kyon_kao_wedding in Tokyo

Test Retrospective

テストの振り返りってしていますか?

テストがどれくらい意味のあるものだったか?

Page 4: Test Retrospective #kyon_kao_wedding in Tokyo

Test Retrospective

in SGT

3/50

=> 6%

Page 5: Test Retrospective #kyon_kao_wedding in Tokyo

Item

テストコード行数/テスト件数

テスト規模/バグ数

リリースバグ数/全バグ数

テストスイートサイクルタイム

TDDサイクルタイム

計画的テストケース数/アドホック的テストケース数

バグタイプ

Page 6: Test Retrospective #kyon_kao_wedding in Tokyo

Case A Sprint1

テストコード行数/テスト件数 : 1200/30=40.0

テスト規模/バグ数 : 5day/1=5

リリースバグ数/全バグ数 : ?

テストスイートサイクルタイム : 2day

TDDサイクルタイム : 2min

計画的テストケース数/アドホック的テストケース数 : 40/5=8

バグタイプ : 単純な境界値

Page 7: Test Retrospective #kyon_kao_wedding in Tokyo

Case A Sprint4

テストコード行数/テスト件数 : 4000/250=16

テスト規模/バグ数 : 5day/5=1

リリースバグ数/全バグ数 : 2/(30+2)=0.06

テストスイートサイクルタイム : 2day

TDDサイクルタイム : 2min

計画的テストケース数/アドホック的テストケース数 : 250/80=3.125

バグタイプ : シナリオ考慮漏れ、復帰処理漏れ

Page 8: Test Retrospective #kyon_kao_wedding in Tokyo

Itemテストコード行数/テスト件数

テスト規模/バグ数

リリースバグ数/全バグ数

テストスイートサイクルタイム

TDDサイクルタイム

計画的テストケース数/アドホック的テストケース数

バグ発見サイクルタイム

バグタイプ

Page 9: Test Retrospective #kyon_kao_wedding in Tokyo

Itemテストコード行数/テスト件数

1件あたりのテストコード行数が多いというのは、再利用性が低いコードになっている可能性が高い。4Phaseで共通化できるものがされていないとか。

テストのステップが多くなると、値が大きくなって当然。

コンポーネントテストでBDDするとだいたい4行から10行くらい(Spockで)

統合テストでだいたい12行から30行くらい(kyon_mmフレームワークで)

Page 10: Test Retrospective #kyon_kao_wedding in Tokyo

Itemテストコード行数/テスト件数

テスト規模/バグ数

リリースバグ数/全バグ数

テストスイートサイクルタイム

TDDサイクルタイム

計画的テストケース数/アドホック的テストケース数

バグ発見サイクルタイム

バグタイプ

Page 11: Test Retrospective #kyon_kao_wedding in Tokyo

Itemテスト規模/バグ数

(例えば)何日かければバグ1件見つけられるか。

個人的には、特定期間で見るよりも最終的な指標として使う事が多い。

考えられる全てのテストをやったが、本当に大丈夫?みたいな感じ。

1から3くらいならokな感覚が多い。(ただし、戦略依存した値)

Page 12: Test Retrospective #kyon_kao_wedding in Tokyo

Itemテストコード行数/テスト件数

テスト規模/バグ数

リリースバグ数/全バグ数

テストスイートサイクルタイム

TDDサイクルタイム

計画的テストケース数/アドホック的テストケース数

バグ発見サイクルタイム

バグタイプ

Page 13: Test Retrospective #kyon_kao_wedding in Tokyo

Item

リリースバグ数/全バグ数(リリースバグ+開発中発見バグ)数

低ければ低いほどいい。

バグの重要度別に出す方が効果的。

目標は0.002くらい。

Page 14: Test Retrospective #kyon_kao_wedding in Tokyo

Itemテストコード行数/テスト件数

テスト規模/バグ数

リリースバグ数/全バグ数

テストスイートサイクルタイム

TDDサイクルタイム

計画的テストケース数/アドホック的テストケース数

バグ発見サイクルタイム

バグタイプ

Page 15: Test Retrospective #kyon_kao_wedding in Tokyo

Item

テストスイートサイクルタイム

統合テストレベルのテストケースをある固まりでまとめて、どれくらいの時間でグリーンにできるか。

この値が大きすぎるときは進捗報告し辛いので、テスト設計し直すか、テスト実装がクソか、バグがありまくるか。

2日以下くらいがいい。

Page 16: Test Retrospective #kyon_kao_wedding in Tokyo

Itemテストコード行数/テスト件数

テスト規模/バグ数

リリースバグ数/全バグ数

テストスイートサイクルタイム

TDDサイクルタイム

計画的テストケース数/アドホック的テストケース数

バグ発見サイクルタイム

バグタイプ

Page 17: Test Retrospective #kyon_kao_wedding in Tokyo

Item

(UnitTestの)TDDサイクルタイム

TDDの1サイクルをまわす時間。

600秒超えてると僕の精神が持たない。

20秒から180秒くらいが目安。

Page 18: Test Retrospective #kyon_kao_wedding in Tokyo

Itemテストコード行数/テスト件数

テスト規模/バグ数

リリースバグ数/全バグ数

テストスイートサイクルタイム

TDDサイクルタイム

計画的テストケース数/アドホック的テストケース数

バグ発見サイクルタイム

バグタイプ

Page 19: Test Retrospective #kyon_kao_wedding in Tokyo

Item

計画的テストケース数/アドホック的テストケース数

事前に設計したテストケース数と、テストしながら思いついて実行したテストケース数。

自動生成するかとか、プログラマーがどれくらい対象を知っているかでよく変わる。

10以上だと無理難題か、ハイスキルか、テスト知らないか。

3から5くらいがやりやすい。

Page 20: Test Retrospective #kyon_kao_wedding in Tokyo

Itemテストコード行数/テスト件数

テスト規模/バグ数

リリースバグ数/全バグ数

テストスイートサイクルタイム

TDDサイクルタイム

計画的テストケース数/アドホック的テストケース数

バグ発見サイクルタイム

バグタイプ

Page 21: Test Retrospective #kyon_kao_wedding in Tokyo

Item

バグタイプ

Verification系、Validation系のバランスを大切にする。

バグ原因、バグ混入時期を満遍なく想定してみて、バグの偏りにあたりをつける。

目安とかない。バイザーのバグ分類とか読むと楽しい。

Page 22: Test Retrospective #kyon_kao_wedding in Tokyo

Itemテストコード行数/テスト件数

テスト規模/バグ数

リリースバグ数/全バグ数

テストスイートサイクルタイム

TDDサイクルタイム

計画的テストケース数/アドホック的テストケース数

バグ発見サイクルタイム

バグタイプ

Page 23: Test Retrospective #kyon_kao_wedding in Tokyo

Test Retrospective

テスト戦略基準な振り返りに使えそうな値をあげてみました。

テストケースレベルでの振り返りは非常に難しいです。

正直有効なものがよくわかりません。

テストケースレベルの妥当性判断はFault Injection, Mutation TestやTest Suite Reductionの話になると思います。

Page 24: Test Retrospective #kyon_kao_wedding in Tokyo

ご清聴ありがとぴょん◆