Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

レビュー方法を実践してみよう20150201

1,026 views

Published on

関西ソフトウェアテスト勉強会WARAI(2015/2/1)資料
参考文献:間違いだらけの設計レビュー

Published in: Software
  • Be the first to comment

レビュー方法を実践してみよう20150201

  1. 1. レビュー⽅法を実践してみよう 2015/2/1 WARAI(関⻄SWテスト勉強会) 1
  2. 2. 【参考⽂献】 「間違いだらけの設計レビュー」 著者 森崎修司先⽣ 今⽇の勉強会のネライ 前回のWARAI(2014/9/27)にて、 レビュー⽅法を学びました。 今回はこれを実践してみましょう! 2
  3. 3. ⽬次 • 1.前回のおさらい • 2.ワーク①: レビュー準備・問題種別とシナリオを考えてみる 〜 休 憩 〜 • 3.ワーク②:実際にレビューを試してみよう • 4.レビュー結果を振り返ってみよう 3
  4. 4. 1.前回のおさらい 4
  5. 5. • レビューの⽬的 より早い⼯程で問題を検出し、 後⼯程での修正⼯数を低減させること • レビューについての⼼構え <全員> レビューをみんなが気持ちよく、 円滑に進⾏するために何をすべきかを考える。 →皆がシステムの品質向上活動していることを意識し、 品質につながる指摘をする 1-1.前回のおさらい レビューとは〜第1章〜 皆がこの意識を共有することが⼤切 5
  6. 6. 1-1.前回のおさらい レビューとは〜第1章〜 • レビューについての⼼構え <レビューア> ・システムの問題を解決しようとしていることを意識 例)レビューが説明会にならないよう事前に情報収集する <レビューイ・ドキュメント作成者> ・レビュー円滑に進むよう段取りする 例)補助資料の準備など ・指摘を受けたら、問題を早く⾒つけられたことに感謝 レビューの⽬的達成には双⽅の事前準備が必要 6
  7. 7. 1-2.前回のおさらい レビューの進め⽅〜2章〜 <ドキュメント作成を含めたレビューの全体フロー> 7 ドキュメント 作成 ドキュメント 修正 レビュー 準備 レビュー 問題検出 レビュー 問題指摘 ドキュメントレビュー
  8. 8. ドキュメント 作成 ドキュメント 修正 レビュー 準備 レビュー 問題検出 レビュー 問題指摘 マインドの誤り ⽅法の誤り 準備 進⾏ 完了 ⼈間関係の 持ち込み 作成者 気分 ⼆兎追い 時間切れ 無計画な 耐久レビュー ケンカ・脱線 の放置 唐突な 終了宣⾔ ⾒栄の 張り合い ⼈格 攻撃 意図的な ⾒逃し ⽬的の誤り 思いつき 数字合わせ つるし上げ レビュー準備の フェーズは存在 しない レビューの構成と間違い要素 8
  9. 9. 1-2.前回のおさらい レビューの進め⽅〜2章〜 9 レビューアが作成してもよい
  10. 10. 10 1-2.前回のおさらい レビューの進め⽅〜2章〜 レビューで検出すべき問題種別を抽出する (このシステムでは 何を気を付けるべきかを念頭に抽出) 漏れのチェック 曖昧さのチェック 誤りのチェック シナリオを作成(どこをどのように調べるか) ・優先順位をつけて、 抽出する
  11. 11. 11 1-2.前回のおさらい レビューの進め⽅〜2章〜 レビューで検出すべき問題種別を抽出する (このシステムでは 何を気を付けるべきかを念頭に抽出) シナリオを作成(どこをどのように調べるか) 対象のシステムによって“問題種別”はさまざま ・短時間に⼤量処理が必要なシステム 問題種別:スループットの低下 ・ユーザの⼊れ替わりが多いシステム 問題種別:利⽤者に分かりにくいUI ≒抽象度の⾼い レビュー観点
  12. 12. 12 1-2.前回のおさらい レビューの進め⽅〜2章〜 レビューで検出すべき問題種別を抽出する (このシステムでは 何を気を付けるべきかを念頭に抽出) シナリオを作成(どこをどのように調べるか) レビューでの“問題種別”の導出の⽅法 ・ボトムアップアプローチ 類似プロジェクトからの課題抽出 ※早い段階で検出すると修正⼯数や リスクの低減効果が⼤きい問題種別を優先する ・トップダウンアプローチ プロジェクトメンバの状況 や システム性能から抽出 問題を効率よく検出するには 順番が⼤切!
  13. 13. 13 1-2.前回のおさらい レビューの進め⽅〜2章〜 レビューで検出すべき問題種別を抽出する (このシステムでは 何を気を付けるべきかを念頭に抽出) シナリオを作成(どこをどのように調べるか) シナリオの例) ・ 「すべての機能間で⼊出⼒の不整合がないかどうかを 調べるために『機能インターフェイス定義』をチェックする。 ・データをやりとりする機能同⼠の⼊⼒項⽬と出⼒項⽬を 付きあわせて、項⽬名とデータ型が⼀致することを確認する」
  14. 14. シナリオを作成(どこをどのように調べるか) 14 1-2.前回のおさらい レビューの進め⽅〜2章〜 漏れのチェック 曖昧さのチェック 誤りのチェック レビューで検出すべき問題種別を抽出する (このシステムでは 何を気を付けるべきかを念頭に抽出)
  15. 15. 15 1-2.前回のおさらい レビューの進め⽅〜2章〜 <漏れ> ドキュメントをチェックする前に “このように書かれているべき“という 想定の上で漏れをチェックする。 <曖昧さ> 説明不⾜を含む。 いずれもドキュメントを読むほど 学習されるため、気づけなくなる。 ドキュメントを読み進めていくほど、 学習が進むために、 漏れ、曖昧さ を検出できなくなる。 学習度 低 ⾼ 漏れ 曖昧さ検出 低 ⾼ 誤り検出 低 ⾼
  16. 16. 16 1-2.前回のおさらい レビューの進め⽅〜2章〜 シナリオとして、検出対象にしたことについては その部分のみを徹底的にチェックする。 【シナリオなしの場合】 【シナリオありの場合】 エラー処理の漏れがなく、エラーログに ⼀貫性があるかどうかについて 各機能のエラー処理を対象に確認する 半分:とりあえず⼀通りチェック 半分:時間切れ。ざっと⾒るだけ エラー処理 エラー処理 エラー処理 すべてのドキュメントの エラー処理のみを 部分チェックする
  17. 17. 17 1-2.前回のおさらい レビューの進め⽅〜2章〜
  18. 18. 18 1-2.前回のおさらい レビューの進め⽅〜2章〜
  19. 19. 19 1-2.前回のおさらい レビューの進め⽅〜2章〜
  20. 20. 20 1-3.みんなのレビューの進め⽅ まとめると、次のページ
  21. 21. 21 1-3.みんなのレビューの進め⽅
  22. 22. 22 2.ワーク①: レビュー準備・問題種別とシナリオを考えてみる
  23. 23. 23 2.ワーク①: レビュー準備・問題種別とシナリオを考えてみる 【お題】 ⾃動販売機の⾃動販売機のユースケース仕様書 (3.1〜3.2)について、 問題種別〜シナリオを検討してみてください
  24. 24. 24 【問題種別の例】 対象のシステムによって“問題種別”はさまざま ・短時間に⼤量処理が必要なシステム 問題種別:スループットの低下 ・ユーザの⼊れ替わりが多いシステム 問題種別:利⽤者に分かりにくいUI 【シナリオ例】 ・エラー処理の定義 ・機能間の依存関係 ・リソースの解放漏れ ・画⾯標準との整合性 ・他システムとのI/F 2.ワーク①: レビュー準備・問題種別とシナリオを考えてみる
  25. 25. 25 ワーク①:前回のWARAIの結果 レビュー順序(問題種別の順序)の検討結果の例 例) ・規格からの逸脱 ・貨幣の識別を間違えない ・安全である(賠償⾦にならない) <その他> ・製品コンセプトとの整合性 例)24時間稼働
  26. 26. 26 ワーク①:今回のWARAIの結果 レビュー順序(問題種別の順序)の検討結果の例 1.故障---全処理に対して、 故障モードの記述があるかをチェック (レビュー時間の効率化を重視) 2.計数を間違えない(前ページと同様) 3.安全(前ページと同様) 4.責任の所在の明確化 注)参加メンバーは前回WARAIと異なる
  27. 27. 27 ワーク①:前回と今回のWARAIで分かったこと レビュー順序(問題種別の順序)の検討について 問題種別の導出⽅法が難しいとの意⾒複数あり。 次の順序で検討するのがオススメ ■問題種別を導出できない場合 シナリオ → 問題種別(→ シナリオ → 問題種別・・・) の順に検討する ■問題種別を導出できる場合 問題種別 → シナリオ(→ 問題種別 → シナリオ・・・) の順に検討する いずれの場合も問題種別、シナリオをそれぞれ導出することで 新たなチェックポイントを⾒つけることができる。
  28. 28. 28 3.ワーク②: 実際にレビューを試してみよう
  29. 29. 29 3.ワーク②: 実際にレビューを試してみよう 【お題】 ワーク①で決定した問題種別、シナリオを使って ⾃動販売機の⾃動販売機のユースケース仕様書 (3.1〜3.2)に対して、問題を指摘してください
  30. 30. 30 【参考】前回のWARAI: レビュー⽅法勉強前※の問題指摘結果(1/3) ※問題種別、シナリオ指定なし(前回WARAIはワーク②未実施) 【指摘事項】 曖昧表現に対する指摘 ・故障モードについて、”故障”の定義が必要 例)つり銭不⾜や貨幣詰まりは故障? 例)投⼊⼝でお⾦が詰まった場合、 運⽤会社に通知機能などは故障モードとなるのか? ・点灯していない状態とは?(点滅、消灯どれを指す?) P6 1-5 ・返⾦の意味についてP5 硬貨収納庫容量がMAXになったら、返⾦するとあるが、 全額返⾦?それとも溢れた分だけ返⾦? 硬貨収納庫容量がMAX付近で不当な貨幣を投⼊されたら 不当な貨幣だけを返却?それとも全額返⾦? ・媒体の正当/不当判定はハード、ソフトのどうやって実現するの? (あとでハードの記述があるが・・・ハードだけ?)(3-1)
  31. 31. 31 【指摘事項】 仕様⾃体の問題点 ・10分間操作なしの場合は、返⾦する仕様について、 10分後に返⾦しても、既にユーザが⽴ち去っているので、⻑すぎる(P6) ・貨幣処理時の500msの待ち時間について ・⽇常的に使うにも問題があるのでは? ・500msの制約が必要なのは①〜④のどこ?(曖昧) ⾃動販売機 紙幣部 紙幣CPU 紙幣識別CPU 硬貨部 硬貨CPU 硬貨識別CPU メインCPU ① ② ③ ④ 【参考】前回のWARAI: レビュー⽅法勉強前※の問題指摘結果(2/3) ※問題種別、シナリオ指定なし(前回WARAIはワーク②未実施)
  32. 32. 32 【指摘事項】 記述⽅法の統⼀ ・インデントの記載⽅法が統⼀されていない ”▷”の記述の仕⽅が、理由と⾏為が混在している 【参考】前回のWARAI: レビュー⽅法勉強前※の問題指摘結果(3/3) ※問題種別、シナリオ指定なし(前回WARAIはワーク②未実施)
  33. 33. 33 ワーク②今回のWARAIの結果: レビュー⽅法勉強後の問題指摘結果(1/3) 【レビュー対象として選択した問題指摘】 スライドP24参照 装置故障時の振舞い 【指摘事項】 ⻘字:前回のWARAIでの指摘事項と同⼀の内容 3.1代⾦投⼊ユースケース ・代⾦投⼊ユースケースに故障モードの記載がない ・紙幣処理機が故障/つり銭切れなどが発⽣した場合)縮退運⽤ができるか? ・濡れたお⾦や洗剤を流しても⼤丈夫か? 注)参加メンバーは前回WARAIと異なる
  34. 34. 34 ワーク②今回のWARAIの結果: レビュー⽅法勉強後の問題指摘結果(2/3) 【指摘事項】 ⻘字:前回のWARAIでの指摘事項と同⼀の内容 3.2商品選択ユースケース ・ラックの選択通りの商品が出なかった場合の振舞いは? (そもそもラック設定の記述がない) ・商品が出ない/ボタンが故障した場合の振舞いは? ・ボタン1回押下で複数の商品が投出された場合の振舞いは? ・10分間操作なしの場合は、返⾦する仕様について、 10分後に返⾦しても、既にユーザが⽴ち去っているので、⻑すぎる
  35. 35. 35 ワーク②今回のWARAIの結果: レビュー⽅法勉強後の問題指摘結果(3/3) 【指摘事項】 ⻘字:前回のWARAIでの指摘事項と同⼀の内容 3.2商品選択ユースケース(つづき) ・装置故障時の現⾦取り扱いシナリオが不⾜している。(②が不⾜) 故障のタイミングによっては、装置内の現⾦取り扱いは2パターンあるはず。 ①購⼊者に返⾦/②販売者で所持(装置内に戻す) →現⾦の取り扱いを間違えれば、売上額と装置内のお⾦が合わなくなる ・同じ種類の商品がすべて適温でなければ、 故障となり、他の適温の商品を購⼊できなくならないか? ・適温でない状態(あたため中/冷却中)は故障? →故障の定義が曖昧 ・適温→適温でない状態 になることはないか? ありえる場合は、適温→適温でない状態に変化するタイミングで 商品選択された場合の振舞いは?
  36. 36. 36 4.レビュー結果を振り返ってみよう
  37. 37. 37 4.レビュー結果を 振り返ってみよう はじめのワークと課題検出の違いはありますか? シナリオ別にどんな課題が検出されましたか?
  38. 38. 38 前回と今回のWARAIのまとめ (前回と今回のWARAIでは参加メンバーが 異なるため、明確な⽐較はできないが、) ・問題種別を使⽤有無により、 レビュー結果が⼤きく異なることが分かった。 →問題種別を “故障”に指定した結果、 (指定なしの場合よりも)“故障”に関する指摘が多く出された。 ・今回のWARAI参加メンバーの意⾒ 問題種別の利⽤により、短時間で特定箇所の レビュー品質を向上させるには⼀定の効果がありそう という意⾒で⼀致した。
  39. 39. 39 今⽇はここまで。 ありがとうございました。

×