52
最最最 (!) 最最最最最最最最最最 最最最最最 最最最 最 8 最 最最最最最 2015/08/22 最最最最最最最最

システムテスト自動化標準ガイド 読書会 第8章

  • Upload
    mirer

  • View
    2.174

  • Download
    0

Embed Size (px)

Citation preview

Page 1: システムテスト自動化標準ガイド 読書会 第8章

最終回 (!)

システムテスト自動化 標準ガイド読書会

第 8 章 メトリクス

2015/08/22ふじわらようへい

Page 2: システムテスト自動化標準ガイド 読書会 第8章

   自己紹介

Page 3: システムテスト自動化標準ガイド 読書会 第8章

ふじわらようへい

品質保証やってます テスト戦略策定 / テスト計画策定

テスト分析 / テスト設計 / テスト実装テスト実施 / テスト自動化( CI ) / レポートリリース判定 / テストマネジメント

プロジェクトリーダ 部署横断での開発基盤構築

JaSST Tokyo 実行委員 WACATE 実行委員

@_mirer

Page 4: システムテスト自動化標準ガイド 読書会 第8章

   第 8 章 メトリクス 概要

Page 5: システムテスト自動化標準ガイド 読書会 第8章

第 8 章 メトリクス 目次 18.1 なぜテスティングと  テスト自動化を計測するのか

8.2 計測できるもの8.3 テスティングと  テスト自動化の目的

8.4 ソフトウェアテストの属性8.5 テスト自動化の属性

Page 6: システムテスト自動化標準ガイド 読書会 第8章

第 8 章 メトリクス 目次 2:

8.6 最高のテスト自動化の枠組みは  どれだろう

8.7 本当に全てを計測すべきなのか?

8.8 まとめ

Page 7: システムテスト自動化標準ガイド 読書会 第8章

   本編

Page 8: システムテスト自動化標準ガイド 読書会 第8章

8.1 なぜテスティングと  テスト自動化を計測するのか

8.2 計測できるもの8.3 テスティングと

  テスト自動化の目的8.4 ソフトウェアテストの属性8.5 テスト自動化の属性8.6 最高のテスト自動化の枠組みは

  どれだろう8.7 本当に全てを計測すべきなのか?8.8 まとめ

Page 9: システムテスト自動化標準ガイド 読書会 第8章
Page 10: システムテスト自動化標準ガイド 読書会 第8章

燃費を計算する理由 自動車が良い買い物だったか どうかを判断するため

選択肢の評価、代案との比較、 改善のモニタのため

問題の早期発見や予測のため 標準や競合に対する ベンチマークのため

Page 11: システムテスト自動化標準ガイド 読書会 第8章

投資利益率 ROI 予測および評価のために使われる

テスティングの改善の ROIDDP → 後述!どれだけテストにコストを掛けるか

テスト自動化の ROI手動実行のテストのコストと比較ただし、上記がすべてではない

Page 12: システムテスト自動化標準ガイド 読書会 第8章

8.1 なぜテスティングと  テスト自動化を計測するのか

8.2 計測できるもの8.3 テスティングと

  テスト自動化の目的8.4 ソフトウェアテストの属性8.5 テスト自動化の属性8.6 最高のテスト自動化の枠組みは

  どれだろう8.7 本当に全てを計測すべきなのか?8.8 まとめ

Page 13: システムテスト自動化標準ガイド 読書会 第8章

「どんなものであっても、 何らかの方法で計測できるし、 それは計測しないより優れている」             Tom Gilb

「計測できないものは制御できない」           Tom DeMarco

Page 14: システムテスト自動化標準ガイド 読書会 第8章

計測できるもの 1コード行数ファンクションポイントオブジェクトコードサイズ判定の数 → 循環的複雑度発見された欠陥の数工数開発者の数

Page 15: システムテスト自動化標準ガイド 読書会 第8章

計測できるもの 2   テスト編テストスイートに含まれるテストの数計画しているテスト数実施済みのテスト数成功したテスト数  → テスト進捗率テスティングの工数テスティングで発見された欠陥の数カバレッジ

Page 16: システムテスト自動化標準ガイド 読書会 第8章

計測できるもの 3   自動化編自動化スクリプトの数自動化されたテストの数自動テストの実行時間テスト自動化のメンテナンス工数欠陥が原因で失敗したテストの数

Page 17: システムテスト自動化標準ガイド 読書会 第8章

役に立つ計測指標は何か?計測はあくまで手段

『何を知りたいか』という 目的に依存する

目的を把握する必要がある

Page 18: システムテスト自動化標準ガイド 読書会 第8章

8.1 なぜテスティングと  テスト自動化を計測するのか

8.2 計測できるもの8.3 テスティングと

  テスト自動化の目的8.4 ソフトウェアテストの属性8.5 テスト自動化の属性8.6 最高のテスト自動化の枠組みは

  どれだろう8.7 本当に全てを計測すべきなのか?8.8 まとめ

Page 19: システムテスト自動化標準ガイド 読書会 第8章

テスティングの目的様々

組織テスト領域テストレベルドメイン / テスト対象時期・時間     …によって異なる

Page 20: システムテスト自動化標準ガイド 読書会 第8章

テスト自動化の目的(抜粋)反復可能で一貫したテスティング人手の要らないテスト実行リグレッションバグの発見より頻繁なテスト実行ソフトウェアの品質をより良くするテストをより完全にする

より多くのバグの発見

Page 21: システムテスト自動化標準ガイド 読書会 第8章

調査によると、多くの組織で目標を十分に達成できていない

良い目標 → 達成可能な目的

Page 22: システムテスト自動化標準ガイド 読書会 第8章

8.1 なぜテスティングと  テスト自動化を計測するのか

8.2 計測できるもの8.3 テスティングと

  テスト自動化の目的8.4 ソフトウェアテストの属性8.5 テスト自動化の属性8.6 最高のテスト自動化の枠組みは

  どれだろう8.7 本当に全てを計測すべきなのか?8.8 まとめ

ここから後半

Page 23: システムテスト自動化標準ガイド 読書会 第8章

「テスト自動化」の計測…の前に「テストそのもの」の計測

貧弱なテストを自動化しても、利益をほとんど生まない

テストの有効性を計測するには…?

→DDP

Page 24: システムテスト自動化標準ガイド 読書会 第8章

DDP 欠陥検出率  

Page 25: システムテスト自動化標準ガイド 読書会 第8章

 

Page 26: システムテスト自動化標準ガイド 読書会 第8章

注意点DDP は事後の計測である

→ DDP の値は変化する

潜在的な欠陥の数は誰にも分からないバグ報告が無い ≠ バグが無い

→ 完璧な情報は決して得られない

テスティングや運用規模に依存する→ 使われなければ欠陥も見つからない

Page 27: システムテスト自動化標準ガイド 読書会 第8章

リリース直後でまだ不具合報告が無いと DDP は 100% にならないか?→ なります  が、それは無意味な指標なので  通常は期間をとって計算する

時間経過と供に不具合報告が増えるとDDP はどんどん下がらないか?→ 下がります  が、不完全であっても使い方次第で  有用な指標になる

Page 28: システムテスト自動化標準ガイド 読書会 第8章

ある保険会社のファイナンスシステムの例

1年目1ヶ月目: DDP 70%10ヶ月目: DDP 50%

↓テストの方法を改善↓2年目

1ヶ月目: DDP 92%

Page 29: システムテスト自動化標準ガイド 読書会 第8章

オプション欠陥の深刻度を導入する本来検出すべきだったテストステージや欠陥のタイプでカテゴライズする → バグ分析

アジャイル開発でのバグの扱いは? → 累積的に計測することを提案   傾向は読み取れる

Page 30: システムテスト自動化標準ガイド 読書会 第8章

DDP を使う場合は、一貫した見方で DDP を使うことです。

そのためには、テストの方針を予め意志決定する必要があります。

「正確性は重要でありません。一貫性の方がより重要」( Dorothy氏)。

一部 http://gihyo.jp/news/report/2013/01/3101 より引用

Page 31: システムテスト自動化標準ガイド 読書会 第8章

その他の指標  

Page 32: システムテスト自動化標準ガイド 読書会 第8章

テストの徹底性の計測良いテストの定義とは、欠陥を見つけるテストのことだ   Myers

では、欠陥を見つけないテストは役に立たないテストか?→ そんなことはない

Page 33: システムテスト自動化標準ガイド 読書会 第8章

徹底性の評価主観的な評価客観的な評価

コードカバレッジステートメントカバレッジブランチカバレッジコンディションカバレッジ … etc

ただし、カバレッジ≠徹底性

Page 34: システムテスト自動化標準ガイド 読書会 第8章

8.1 なぜテスティングと  テスト自動化を計測するのか

8.2 計測できるもの8.3 テスティングと

  テスト自動化の目的8.4 ソフトウェアテストの属性8.5 テスト自動化の属性8.6 最高のテスト自動化の枠組みは

  どれだろう8.7 本当に全てを計測すべきなのか?8.8 まとめ

Page 35: システムテスト自動化標準ガイド 読書会 第8章

テスト自動化において計測すべき属性を提示

保守性 効率性 信頼性 柔軟性

ユーザビリティ 堅牢性 移植性

Page 36: システムテスト自動化標準ガイド 読書会 第8章

保守性→ メンテナンス(コスト)

メトリクス:1 テストの更新にかかる時間、工数ソフトウェアの変更の発生頻度

大きな仕様変更は、自動化システムに影響を与えることがある

Page 37: システムテスト自動化標準ガイド 読書会 第8章

効率性コストと密接な関係

引用:システムテスト自動化標準ガイド

Page 38: システムテスト自動化標準ガイド 読書会 第8章

信頼性テスト結果は正確か、再現性はあるか

メトリクス:テスト設計やテスト自動化の欠陥など、

「テストそのものの」欠陥その欠陥のせいで必要となったテスト

サイクルやイテレーションの数テスト結果が、実は間違っていた数

Page 39: システムテスト自動化標準ガイド 読書会 第8章

柔軟性様々なテスト目的に対応できるか

メトリクス:特定バージョンに対するテストのために使う時間特定のバージョンのためのテストセットの特定にかかる時間

テストケースのサブセットの指定に利用可能な選択基準の数

アーカイブされたテストケースをリストアするのに必要な時間や工数

Page 40: システムテスト自動化標準ガイド 読書会 第8章

ユーザビリティ自動化の枠組みのユーザーを考慮

メトリクス:枠組みへテストケース追加に必要な時間自動テスト実行結果の確認に必要な時間自動テストの枠組みの使いやすさ

Page 41: システムテスト自動化標準ガイド 読書会 第8章

堅牢性ソフトウェアの変更・安定性に対して

どれだけ枠組みが有効であるか

メトリクス:1 つの欠陥で失敗するテストの数自動テストが「つまずく」頻度テストがつまずくまでの間隔予期しない障害の原因調査に要した時間

Page 42: システムテスト自動化標準ガイド 読書会 第8章

移植性その自動化の枠組みは様々な環境でも

実行できるかメトリクス:新しい環境、新しいハードウェアプラット

フォームを導入してから、自動テスト実行を成功させるまでの時間や工数

異なるテストツールを使用してテスト実行するのに必要な時間や工数

環境の種類の数

Page 43: システムテスト自動化標準ガイド 読書会 第8章

8.1 なぜテスティングと  テスト自動化を計測するのか

8.2 計測できるもの8.3 テスティングと

  テスト自動化の目的8.4 ソフトウェアテストの属性8.5 テスト自動化の属性8.6 最高のテスト自動化の枠組みは

  どれだろう8.7 本当に全てを計測すべきなのか?8.8 まとめ

Page 44: システムテスト自動化標準ガイド 読書会 第8章

引用:システムテスト自動化標準ガイド

Page 45: システムテスト自動化標準ガイド 読書会 第8章

8.1 なぜテスティングと  テスト自動化を計測するのか

8.2 計測できるもの8.3 テスティングと

  テスト自動化の目的8.4 ソフトウェアテストの属性8.5 テスト自動化の属性8.6 最高のテスト自動化の枠組みは

  どれだろう8.7 本当に全てを計測すべきなのか?8.8 まとめ

Page 46: システムテスト自動化標準ガイド 読書会 第8章

本当に全てを計測すべきなのか?この読書会に参加しているみなさんはお察しのことと思いますが…

→No!

Page 47: システムテスト自動化標準ガイド 読書会 第8章

自分たちにとって最も重要な目的

テスティングやテスト自動化の枠組みを監視できるもの

3 つか 4 つ

数ヶ月継続監視し、学習成果を把握

有用でなければ、変更すべし

Page 48: システムテスト自動化標準ガイド 読書会 第8章

8.1 なぜテスティングと  テスト自動化を計測するのか

8.2 計測できるもの8.3 テスティングと

  テスト自動化の目的8.4 ソフトウェアテストの属性8.5 テスト自動化の属性8.6 最高のテスト自動化の枠組みは

  どれだろう8.7 本当に全てを計測すべきなのか?8.8 まとめ

Page 49: システムテスト自動化標準ガイド 読書会 第8章

テスティング / テスト自動化は計測可能、計測すべきもの

ROI, 評価や比較、問題の早期発見、予測、ベンチマーク

何を計測するかは、目的に関連する

Page 50: システムテスト自動化標準ガイド 読書会 第8章

テスティングの有効性は欠陥検出率、欠陥修正、信用度の獲得に関連付けられる

テスト自動化の枠組みのための属性は保守性・効率性・信頼性・柔軟性・ユーザビリティ・堅牢性・移植性がある

Page 51: システムテスト自動化標準ガイド 読書会 第8章

テスト自動化の枠組みの計測は重要

計測を通してのみ、監視と管理が可能最適化が進められる

一方で、達成可能であること、目的に合致していること、役に立つことという、現実面も大事

手段と目的を履き違えないように!

Page 52: システムテスト自動化標準ガイド 読書会 第8章

参考文献 JaSST’13 Tokyo 基調講演「 Challenges in Software Testing

ソフトウェアテストのチャレンジ」 - Dorothy Grahamhttp://www.jasst.jp/symposium/jasst13tokyo/pdf/A1.pdf

テスティングにまつわる過去,現在,未来を Dorothy Graham氏が語る─ソフトウェアテストシンポジウム 2013 基調講演http://gihyo.jp/news/report/2013/01/3101

資格認定 ISTQB はソフトウェア・テストの何を変えたのか? ――ソフトウェアテストシンポジウム 2013東京( JaSST‘13 Tokyo ) http://www.kumikomi.net/archives/2013/02/rp05jast.php