Upgrade to Pro — share decks privately, control downloads, hide ads and more …

みんなに役立つ「テスト」を学んでみよう!(20140105版)

 みんなに役立つ「テスト」を学んでみよう!(20140105版)

みんなに役立つ「テスト」を学んでみよう!(20140105版)
品質の考え方からテストの必要性、テスト技法の使いどころまでをまとめた内容となります。

みずのり

June 21, 2024
Tweet

More Decks by みずのり

Other Decks in Technology

Transcript

  1. 7 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 良く言われるテストの必要性 JSTQB Foundation Level シラバスより… 1.1.1. ソフトウェアシステムの状況(K1)

    ソフトウェアシステムは、ビジネス分野(銀行など)から、一般消費財(自動車など)に至るまで、 社会を構成する要素として必須となっている。ソフトウェアが期待通りに動かなかった経験は 誰もが持っている。ソフトウェアが正しく動作しないと、経済的な損失、時間の浪費、 信用の失墜など、いろいろな問題が発生し、時には傷害や死亡事故になることもある。 … 1.1.3. ソフトウェアの開発、保守、運用におけるテストの役割(K2) システムやドキュメントを厳しく テストし、システムが稼動する前に欠陥を 摘出して修正するならば、実行環境で問題が 発生するリスクを低減でき、 ソフトウェアシステムの品質向上に効果がある。 また、契約や法律上の適格要件や各業界の 標準に合致していることを証明するため、 ソフトウェアのテストが必要になるケースもある。 http://www.jstqb.jp/syllabus.html
  2. 8 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 良く言われるテストの必要性 JSTQB Foundation Level シラバスより… 1.1.1. ソフトウェアシステムの状況(K1)

    ソフトウェアシステムは、ビジネス分野(銀行など)から、一般消費財(自動車など)に至るまで、 社会を構成する要素として必須となっている。ソフトウェアが期待通りに動かなかった経験は 誰もが持っている。ソフトウェアが正しく動作しないと、経済的な損失、時間の浪費、 信用の失墜など、いろいろな問題が発生し、時には傷害や死亡事故になることもある。 … 1.1.3. ソフトウェアの開発、保守、運用におけるテストの役割(K2) システムやドキュメントを厳しく テストし、システムが稼動する前に欠陥を 摘出して修正するならば、実行環境で問題が 発生するリスクを低減でき、 ソフトウェアシステムの品質向上に効果がある。 また、契約や法律上の適格要件や各業界の 標準に合致していることを証明するため、 ソフトウェアのテストが必要になるケースもある。 http://www.jstqb.jp/syllabus.html JSTQBに興味を持った人は ゆっくり読んでみて下さい。 ひとまず、 「開発に関わる人」を 中心に考えてみましょう
  3. 14 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 良いものをつくって喜んでもらいたい! ・問題の見逃し ⇒運用での課題、市場での不具合 ・使った人の不満 がっかり、残念なもの 作った人も使う人もうれしくない +心配

    開発者 マネージャ 顧客 良いものを 作らないとね 「スゴイ」って 言われたい! 問題が起きない! 期待に合致してる! 安心と 納得! 良いものを作る! ・リスクを下げる ・システム品質を改善 ・計測する(&予測する) ・証拠の提示
  4. 16 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例① 例えば①:状態遷移テスト ※「状態遷移テスト」はテスト技法のひとつの項目とされております。 状態系のバグを検出するには、状態遷移を表現するモデル記法が役に立ちます。 テスト時において状態遷移モデルを検討することで不具合を検出できます。 また、記法を知っていると開発段階から役立てて、最初から混入を防ぐことも。 ↓

    BeforeState- Transition→ 【3章:条件 1】蓋センサ ON&水位セ ンサにONが 存在 【3章:条件 2】蓋センサ OFF&全ての 水位  セン サがOFF 沸騰ボタン押 下 エラーを検知 ※条件は【5 章:エラー検 知.】に別途 記載 エラーを検 知 ※条件は【5 章:エラー 検知.】に別 途記載 カルキ抜 き完了 アイドル 沸騰行為 ignore ignore ignore ignore ignore 沸騰行為 ignore アイドル ignore エラー状態 ignore 保温行為 保温行為 ignore アイドル 沸騰行為 ignore エラー状態 ignore エラー状態 ignore ignore ignore ignore ignore ignore
  5. 18 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! こんな 感じだと OK? 問題が起きない! 期待に合致してる! テスト、品質の考え方が役立つ例② 例えば②:良いものを作って喜んでもらいたいけれど…

    正確な数値計算結果、ふるまいを示す システムが成熟して不具合が殆ど発生しない 障害に対して強い、復旧が早い 使用するシステムが安全で怪我をしない 利用者が目的を果たすことが出来る、 短時間で目的を果たすことが出来る 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある
  6. 19 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! モデルで 分類 してみよー 問題が起きない! 期待に合致してる! テスト、品質の考え方が役立つ例② 例えば②:良いものを作って喜んでもらいたいけれど…

    正確な数値計算結果、ふるまいを示す システムが成熟して不具合が殆ど発生しない 障害に対して強い、復旧が早い 使用するシステムが安全で怪我をしない 利用者が目的を果たすことが出来る、 短時間で目的を果たすことが出来る 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある 利用時の 品質特性 ソフトウェア 内部外部 品質特性 狩野モデル ソフトウェア品質モデル (ISO 9126 ver)
  7. 20 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! ソフトウェア品質モデル(ISO9126ベース) ISO9126ベースの品質モデル ソフトウェアの品質特性モデル (カッコは副特性) 利用時の 品質特性モデル 機能性

    (合目的性、正確性、相互運用性、セキュリティ、標準適合性) 信頼性 (成熟性、障害許容性、回復性、標準適合性) 使用性 (理解性、習得性、運用性、魅力、標準適合性) 効率性 (時間効率性、資源効率性、標準適合性) 保守性 (解析性、変更性、安定性、試験性、標準適合性) 移植性 (環境適応性、設置性、置換性、標準適合性) 有効性 生産性 安全性 満足性 ISOの ベストセラー だってさ
  8. 21 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! ソフトウェア品質モデル(ISO250XX SQuaREベース) ISO250XXベースの品質モデル システム・ソフトウェア品質特性 モデル(カッコは副特性) データ品質モデル 利用時の

    品質特性モデル 機能適合性 (機能完全性、機能正確性、機能適切性) 性能効率性 (時間効率性、資源効率性、容量満足性) 互換性 (共存性、相互運用性) 使用性 (適切認識性、習得性、運用操作性、ユーザーエラー防止性、 ユーザーインタフェース快適性(美しさ?)、アクセシビリティ) 信頼性 (成熟性、可用性、障害許容性、回復性) セキュリティ (機密性、インテグリティ、否認防止性、責任追跡性、真正性) 保守性 (モジュール性、再利用性、解析性、修正性、試験性) 移植性 (適応性、設置性、置換性) 固有 正確性、完全性、 一貫性、信憑性、 最新性 固有&システム依存 アクセシビリティ、 標準的合成、 機密性、効率性、 精度、追跡可能性、 理解性 システム依存 可用性、移植性、 回復性 有効性 効率性 満足性 (実用性、信用性、 快感性、快適性) リスク回避性 (経済リスク緩和性、 健康・安全リスク緩和性、 環境リスク緩和性) 利用状況網羅性 (利用状況完全性、柔軟性) 時代に ついて 行こう
  9. 22 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 問題が起きない! 期待に合致してる! テスト、品質の考え方が役立つ例② 例えば②:良いものを作って喜んでもらいたいけれど… 正確な数値計算結果、ふるまいを示す システムが成熟して不具合が発生しない 障害に対して強い、復旧が早い

    使用するシステムが安全で怪我をしない 利用者が目的を果たすことが出来る、 短時間で目的を果たすことが出来る 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある ちょっと 分かった? 機能性->正確性 信頼性->成熟性 信頼性->耐障害性、回復性 利用品質->安全性 利用品質->有効性 利用品質->生産性 9126ベースで スミマセン。 そのうち250XX に更新します。
  10. 26 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例② 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある 狩野モデル と、いうことで 何を考えるか

    少しだけ 見えるかも 不充足 充足 不満足 満足 顧客の 満足感 物理的 充足状況 一元品質 当たり前品質 魅力品質 魅力的要素 脅威の新技術 機能の充実 性能面向上 不具合無し 当たり前機能
  11. 28 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例 じゃあ、品質の考え方とテストをつなぐには? 検証 Verification Validation 妥当性 確認

    利用時の 品質要求 外部 品質要求 内部 品質要求 実現された 利用時品質 実現された 外部品質 実現された 内部品質 利用者 視点 開発者 視点 要求 製品 ニーズ 開発・実現 利用時 品質特性 システム ソフトウェア 品質特性 ※東 基衞氏の資料より
  12. 29 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例 じゃあ、品質の考え方とテストをつなぐには? 検証 Verification Validation 妥当性 確認

    利用時の 品質要求 外部 品質要求 内部 品質要求 実現された 利用時品質 実現された 外部品質 実現された 内部品質 利用者 視点 開発者 視点 要求 製品 ニーズ 開発・実現 利用時 品質特性 システム ソフトウェア 品質特性 ※東 基衞氏の資料より 適切なものを 作っているか? 適切にものを 作っているか?
  13. 30 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! V&V:検証と妥当性(検証と誤解) 検証と妥当性の考え方を見てみましょう。 ・検証(Verification)と誤解 皆さんご存知のV字モデルの実際は? 要求分析 方式設計 詳細設計

    SW適格性 確認テスト 結合テスト 単体テスト コード作成 ※SLCP: Software Life Cycle Process (共通フレーム参考)ベース 【メモ】 V字モデル自体は よく出来たモデルです! 考えずに 使っている 奴等がunk…
  14. 31 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! V&V:検証と妥当性(検証と誤解) 検証と妥当性の考え方を見てみましょう。 ・検証(Verification)と誤解 皆さんご存知のV字モデルの実際は? 要求分析 方式設計 詳細設計

    SW適格性 確認テスト 結合テスト 単体テスト コード作成 ※SLCP: Software Life Cycle Process (共通フレーム参考)ベース (なんでもそうですが) 何も考えないで 使ってしまうことで イマイチな感じに… 【メモ】 V字モデル自体は よく出来たモデルです! ⇒V字の道は思考停止禁止!
  15. 36 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方 テストとか品質の考え方は沢山あります。 多くの方が興味を持っていただいて、 学んでみると面白いと思います。 ニーズ ⇒妥当性 開発・実現

    ⇒検証 マーケット担当、デザイナー、 プロダクトオーナー、 プロジェクトマネージャ、 SE、PG、 テスト担当、品質保証… 学んでみよう 役立てよう!
  16. 39 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストを考えよう!(ソフトウェア品質モデル) ISO9126ベースの品質モデル ソフトウェアの品質特性モデル (カッコは副特性) 利用時の 品質特性モデル 機能性

    (合目的性、正確性、相互運用性、セキュリティ、標準適合性) 信頼性 (成熟性、障害許容性、回復性、標準適合性) 使用性 (理解性、習得性、運用性、魅力、標準適合性) 効率性 (時間効率性、資源効率性、標準適合性) 保守性 (解析性、変更性、安定性、試験性、標準適合性) 移植性 (環境適応性、設置性、置換性、標準適合性) 有効性 生産性 安全性 満足性 ひとまず、 ISO9126ベースで 自分たちのテスト を考えてみよう! 会社の話が出たら “忘れよう!”
  17. 41 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 「テスト」の印象って? テストXX、 言葉多いよ… テストレベル テスト技法 テストカテゴリ? テストの印象って如何でしょう?

    ・用語がたくさんあってなんか難しそう ・どこから勉強しよう…? テストプロセス テストタイプ テスト計画 テスト戦略 テスト観点? テスト設計 テスト対象 回帰テスト テスト目的 単体テスト システムテスト 統合テスト 機能テスト ストレステスト 性能テスト モンキーテスト テスト自動化 探索的テスト …
  18. 42 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 「テスト」をざっくり分けてみる まずは ざっくりと ひとまずざっくり分けました。(個人的な分類、考え方です) 技術: ・全体を俯瞰、整理する ・個々のテストケースを

    効果的、効率的に作り出す プロセス: ・(技術を上手に活用するための) 手順、繋がりを明らかにする (もれなく、等) (説明可能な削減、等) 全体 プロセス 個々 個々 個々 個々 ※個人的な理解、分類、考え方が含まれますので取扱い注意
  19. 43 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 「テスト」をざっくり分けてみる ひとまずざっくり分けました。(個人的な分類、考え方です) 技術: ・全体を俯瞰、整理する ・個々のテストケースを 効果的、効率的に作り出す プロセス:

    ・(技術を上手に活用するための) 手順、繋がりを明らかにする (もれなく、等) (説明可能な削減、等) 全体 プロセス 個々 個々 個々 個々 技術部分を 中心に紹介~ ※個人的な理解、分類、考え方が含まれますので取扱い注意
  20. 44 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 個々 「テスト」で紹介する用語 今回紹介するのは以下の3つ。 全体 プロセス 個々 個々

    個々 個々 個々 上2つ、厄介な 用語なのです… テストレベル テスト技法 テストタイプ 全体 プロセス 全体 ※個人的な理解、分類、考え方が含まれますので取扱い注意 全体
  21. 45 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルの紹介 テスト用語のベースとなるJSTQBでは…? テストレベル:系統的にまとめ、管理していくテストの活動のグループ。 各テストレベルはプロジェクトの特定の責務と対応付けができる。テストレベルの例には、 コンポーネントテスト、統合テスト、システムテスト、受け入れテストがある。 テストレベル テスト技法

    テストタイプ 受け入れテスト コンポーネントテスト システムテスト 統合テスト 作業の 段階? いろいろ 分かりづらい 理由が…orz ※大きく2つの考え方 (段階、対象範囲/サイズ) に分かれるのですね… ※個人的な理解、分類、考え方が含まれますので取扱い注意
  22. 46 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルの紹介 実際の開発プロセスとか、あわせて並べてみたりすると…? 言葉が… どうなん? 受け入れテスト コンポーネントテスト システムテスト

    統合テスト JSTQB システムテスト ユニットテスト 統合テスト コンポーネントテスト Beizerさんの定義 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 SLCP2007:Software Life Cycle Process (共通フレーム参考)ベース ※個人的な理解、分類、考え方が含まれますので取扱い注意 テストレベル テスト技法 テストタイプ
  23. 47 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルの紹介 実際の開発プロセスとか、あわせて並べてみたりすると…? 受け入れテスト コンポーネントテスト システムテスト 統合テスト JSTQB

    システムXX SW設計 SWテスト SW統合テスト SW構築 Automotive SPICEベース SW要件分析 システムXX ※個人的な理解、分類、考え方が含まれますので取扱い注意 全て同じ 意味を 示して いるの? システムテスト ユニットテスト 統合テスト コンポーネントテスト Beizerさんの定義 テストレベル テスト技法 テストタイプ
  24. 48 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! プロ セス テストレベル:何が大事か考えてみよう! 実際の開発をV字ベースで考えてみると…? 例)開発時に予定したアプリを実現時に複数のプロセスで実現 本当に V字だけで

    いける? 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 予定 アプリ 複数の プロセス で実現 プロ セス 予定 アプリ プロ セス プロ セス テストレベル テスト技法 テストタイプ
  25. 49 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 運用環境 計算機 プロ セス テストレベル:何が大事か考えてみよう! 実際の開発をV字ベースで考えてみると…? 例)開発時に予定したアプリを実現時に複数のプロセスで実現

    …テストってどうします? 結合テストで 一気に まとめ結合? 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 予定 アプリ 複数の プロセス で実現 プロ セス 予定 アプリ プロ セス プロ セス プロ セス プロ セス 予定 アプリ プロ セス プロ セス 結合テストを イキナリこの 範囲で実施! テストレベル テスト技法 テストタイプ
  26. 50 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! プロ セス ビッグ バーン 要求分析 方式設計 詳細設計

    SW適格性 確認テスト 結合テスト 単体テスト コード作成 予定 アプリ 複数の プロセス で実現 プロ セス 予定 アプリ プロ セス プロ セス 実際の開発をV字ベースで考えてみると…? 例)開発時に予定したアプリを実現時に複数のプロセスで実現 イキナリ全て組合わせたりしたら、ねぇ… テストレベル:何が大事か考えてみよう! テストレベル テスト技法 テストタイプ 本番環境 計算機 プロ セス プロ セス 予定 アプリ プロ セス プロ セス 結合テストを イキナリこの 範囲で実施!
  27. 51 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 運用環境 計算機 プロ セス V字に 縛られず 考えて

    みよう! 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 予定 アプリ 複数の プロセス で実現 プロ セス 予定 アプリ プロ セス プロ セス プロ セス プロ セス 予定 アプリ プロ セス プロ セス 結合テストを 青⇒赤の範囲で 段階的に実施 実際の開発をV字ベースで考えてみると…? 例)方式設計で複数に分割されるのであれば、結合テストも 分割した各個別の確認⇒全体の確認、という方が良いのでは テストレベル:何が大事か考えてみよう! テストレベル テスト技法 テストタイプ 方式設計 方式設計 方式設計 詳細設計 詳細設計 詳細設計 単体テスト 単体テスト 単体テスト 結合テスト 結合テスト 結合テスト① 結合テスト②
  28. 56 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:テストは塗り絵?積み木? 実際の開発対象というものを考えてみましょう。 用語にこだわらず考えてみましょう(Googleテスト本では“SML”ですね。) システム アプリ アプリ アプリ

    プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ 対象システムに あわせて、 段階的に 「塗りつぶす」 ようにテスト テストレベル テスト技法 テストタイプ
  29. 57 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:テストは塗り絵?積み木? 実際の開発対象というものを考えてみましょう。 皆様の「単体テスト」や「結合テスト」は何処でしょう? システム アプリ アプリ アプリ

    プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ メソッドの確認後、 アプリの範囲で テストしてみたら どうなるでしょうね… テストレベル テスト技法 テストタイプ
  30. 58 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:テストは塗り絵?積み木? 実際の開発対象というものを考えてみましょう。 皆様の「単体テスト」や「結合テスト」は何処でしょう? システム アプリ アプリ アプリ

    プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ 単にV字に従うのではなく、 「なぜ必要か?」を 少し考えてみましょう~。 テストレベル テスト技法 テストタイプ
  31. 59 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:現実世界は複雑① 実際の開発対象というものを考えてみましょう。 皆様の「単体テスト」や「結合テスト」は何処でしょう? システム アプリ アプリ アプリ

    プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ 現実世界はもっと複雑。 ・対象範囲を示す文書がある? ・対象開発での担当組織は何処? ・今回は省略できる部分もあるよね。 …といった部分も考えて 良いモノを作るための効率的・ 最適な形を考えましょう! テストレベル テスト技法 テストタイプ アプリの要求仕様書と機能仕様、 IF仕様はSIの親会社で定義する。 【文書】 XXアプリ要求仕様書 XXアプリ機能仕様書、IF仕様書 アプリ内の実際の構造、 使用するフレームワーク、実現方法は 子会社(ソフトハウス)で決める。 【文書】 アプリ方式設計書、プロセスIF定義…etc
  32. 60 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:現実世界は複雑② 実際の開発対象はさらに広い場合があります。 テストレベル テスト技法 テストタイプ システム アプリ

    アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ System of Systems 人が使うシステムを 複数集めて、さらに 大きなサービスが 構築されている場合も あったりします。 システム システム システム システムは さらに大きな システムの 一部という例
  33. 61 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 機能1-1 機能1-2 機能1-3 機能2-1 機能2-2 機能3-1 機能3-2

    機能3--3 機能1 機能2 機能3 XX機能 テストレベル:現実世界は複雑③ 単体機能、 複数組合せ… 機能面を 考える場合も 範囲や粒度を 考える必要が ありますよね テストレベル テスト技法 テストタイプ 入力機能 計算機能 入力インタフェースの提供 入力範囲、形式のチェック 登録機能 出力機能 購入個数 購入種類 購入結果 購入機能
  34. 64 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 入力機能 計算機能 入力インタフェースの提供 入力範囲、形式のチェック 登録機能 出力機能 購入個数

    購入種類 購入結果 購入機能 システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ テストを考えよう!(テストレベル) テストレベルの参考になりそうなお絵かきシリーズ みなさんが 行っている 「テストレベル」 を考えてみよう! 会社の話が出たら “忘れよう!” 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成
  35. 65 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト用語のベースとなるJSTQBでは…? テストタイプ:コンポーネント又はシステムをテストするためのテスト活動をまとめたものであり、 たとえば機能テスト、使用性テスト、(回帰テスト)等のように特定のテスト目的に 焦点を当てている。テストタイプは一つ又は複数のテストレベル又はテストフェーズで行われる。 テストレベル テスト技法 テストタイプ

    人によって 解釈が違う ですの…orz ※個人的な理解、分類、考え方が含まれますので取扱い注意 活用している例を紹介するので、各自で解釈してください… ・品質特性(ISO9126/250XX)ベース ・Myersのシステムテストカテゴリ ・(個人的ライブラリ)お仕事で行っている テスト実施内容や不具合分析結果を 整理して活用するとか。 テストタイプの紹介
  36. 66 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプ:例を見てみましょう とりあえず、例を見てみましょう。 ・品質特性 Don’t Think! Feel! ※個人的な理解、分類、考え方が含まれますので取扱い注意

    品質特性(ISO9126) 機能性 信頼性 使用性 効率性 保守性 移植性 適切さ 正確性 相互運用性 セキュリティ 成熟度 フォールトレランス 復元力 理解のしやすさ 学習のしやすさ 操作のしやすさ 魅力 時間挙動 資源の活用度 分析のしやすさ 変更のしやすさ 安定性 テストのしやすさ 順応性 インストールのしやすさ 共存力 置換製 テストレベル テスト技法 テストタイプ
  37. 68 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプ:例を見てみましょう とりあえず、例を見てみましょう。 ・Myersのシステムテストカテゴリ ※注:説明は個人的解釈です。 本内容、結構 役立ちますよ♪ ※ただ、勝手な解釈

    で訳してます… 原典も見てね 原典はこちら: http://www.testdesigners.com/systemtesting.html Facility Testing Volume Testing ボリュームテスト 非常に大きなデータを扱うためのテスト。 Stress Testing ストレステスト 非常に大きな負荷、ストレス(瞬間的なデータ量)をかけるテスト。 ボリュームテストと は混同すべきではない。 Usability Testing ユーザビリティテスト 人間的な要素を取り扱う。 学習や人間的要素は計算機の システム上はまだ確立され ていない。 Security Testing セキュリティテスト プライバシーの課題に対しての対処を実施する。 Performance Testing 性能/パフォーマンステスト 答時間、スループット、とある条件における 一定の負荷率などを確認する。 Storage Testing ストレージテスト 時折、記録媒体における課題が発生することがある。 Configuration Testing 設定 コンフィグレーションテスト 様々な設定による問題の発生が存在する。 それぞれのHWデバイスに対して、 最小、 最大設定は確認すべきである。 Compatibility conversion Testing 互換性 コンパチビリティテスト 殆どのプログラムは新規ではなく派生で開発される。 既存のシステムから移行するた めに特別な確認が必要となる。 Installability Testing インストーラビリティテスト いくつかのシステムでは、煩雑なインストール手順が存在する… Reliability Testing 信頼性テスト プログラムは信頼性について 特別な課題をもつ場合もあるので、 特殊な確認が必要 となる。 Recovery Testing リカバリーテスト OSやDB管理システム、遠隔で扱うシステムは、復帰の機能を持つ。 プログラム異常 やHW故障、データのエラーなどに対処する確認が必要となる。 Serviceability Testing サービスアビリティテスト 保守もしくは有用性の特徴を持つ。これらの側面もテストされるべきである。 Documentation Testing ドキュメンテーションテスト システムテストはユーザ向けドキュメントの正しさを確認する。 Procedure Testing 手続きテスト システムは、人々によって実施される手順を含めるものである。 関係者による手続き、 手順を合わせてテストする必要がある。 機能テストを意味する(テストレベルのFunction Testと分けている) テストレベル テスト技法 テストタイプ
  38. 69 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプ:例を見てみましょう 個人的なライブラリ: 実施したテストや不具合項目を階層的に整理しておくと便利! おまえは 今まで設計した テストの種類を 覚えているのか?

    テストレベル テスト技法 テストタイプ  仕様書出図後の仕様変更、ユーザ固有の環境、MWとのIF  メモリがあふれた時、ハード的なエラー  想定外、数値、起動、終了、割り込み、タイミング 抜けやすい観点 無し、増加、減少、他に、一部、 逆、異なる、早い、遅い、前、後 詳細 参考:HAZOP リトライ(成功)、再接続(成功)、 規制、 再送、未接続でHHH、 未契約でGGG、 契約外、無応答 リカバリ エラー、異常、NG、例外、XX失敗、 リトライオーバー、 タイムアウト、不正、Reject、 状態不一致、障害、 同期はずれ、 想定外/未知 異常系 信頼性、異常系 ガイドワード 外側、例外、間、対象、類推 そ、れ、あ、た、る 狙いどころ パステスト 構造テスト 競合 状態 カバレッジ 構造 両立性テスト 構成テスト データ互換性テスト 拡張性テスト ストレステスト ロードテスト ユーザビリティテスト 信頼性テスト 回復性テスト ロバストネステスト セキュリティテスト シナリオテスト 機能組合せテスト 機能テスト ※ゆもつよメソッドより 移植性 保守性 効率性 使用性 信頼性 機能性 置換製 共存力 インストールのしやすさ 順応性 テストのしやすさ 安定性 変更のしやすさ 分析のしやすさ 資源の活用度 時間挙動 魅力 操作のしやすさ 学習のしやすさ 理解のしやすさ 復元力 フォールトレランス 成熟度 セキュリティ 相互運用性 正確性 適切さ 手続きテスト ドキュメンテーションテスト サービスアビリティテスト リカバリーテスト 信頼性テスト インストーラビリティテスト 互換性/コンパチビリティテスト 設定/コンフィグレーションテスト ストレージテスト 性能/パフォーマンステスト セキュリティテスト ユーザビリティテスト ストレステスト ボリュームテスト 機能テストを意味する(テストレベルのFunction Testと分けている) Procedure Testing Documentation Testing Serviceability Testing Recovery Testing Reliability Testing Installability Testing Compatibility/conversion Testing Configuration Testing Storage Testing Performance Testing Security Testing Usability Testing Stress Testing Volume Testing Facility Testing 開発プロセス改善の指標となる(改善、予防) リリース後の品質リスクを見積もる(リスク) 要件を満たすことを保証する(保障) 欠陥やバグを検出する(検出) 「バグゼロ」の落とし穴 テストは条件次第 殺虫剤のパラドックス 欠陥の偏在 初期テスト 完全なテストは不可能 テストは欠陥があることしか示せない 一般的なテストの必要性 テストの原則 移植性 保守性 効率性 使用性 信頼性 機能性 テストタイプ一覧 Myersの システムテストカテゴリ 品質特性(ISO9126) 汎用観点 (追加予定) 負荷時使用 シナリオ(シーン) 要求 物理特性 仕様/機能 水温変化の規定 起動、アップデート 競合 状態遷移 ロジック 仕様適合 外観検査 特性/精度 タイミング変化 H/W ポットのシステム ロジック 高温層を用いた加速確認 シナリオ(シーン) 環境 ユースケース 要求 負荷時仕様 連続 振る舞い 水質 負荷時性能 分かりやすさ H/W 要求 シナリオ(シーン) 仕様/機能 H/W性能 レスポンス 状態遷移 シナリオ(シーン) ロジック 環境(電圧、温度、振動・衝撃) 意地悪 タイミング変化 競合 仕様適合(当たり前品質) 量産における品質安定性 長期使用可能な耐久性 ユーザにとっての使用性 安全性 テスコン'12@東京 タイミング、状態信頼性テスト 機能、状態、環境組合せ(無側の確認) 連続テスト 取説・シナリオテスト ユーザビリティテスト 機器性能評価/スペック評価 構造テスト/ユーザ提供の状態確認 機能テスト 安全性テスト 参考:テストタイプ一覧 ノイズのタイミングへの影響 アクティブノイズ 割込み操作、タイミング 動的分析 時系列での検討 ワンプレートスタイルで分析 シナリオベース メモ タイミング、状態信頼性テスト 割込み 操作 ノイズ 静的分析(内部構成) アクティブノイズ 外部環境 使用環境 静的分析(外部構成) ワンプレートスタイルで分析 システム、構成ベース メモ 機能、状態、環境組合せ(無側の確認) CPU メモリ 確認項目 タイマも使用する 沸騰、保温の繰り返し 水を補充しながら連続操作 連続操作 夜沸騰して朝まで保温 連続稼動 家庭環境 コンビニ環境 繰り返しで使用される環境を活用 想定シーン 連続テスト 状態網羅 テストシナリオ タイマ ロックON時 ロックOFF時 構造テスト/ユーザ提供の状態確認 音声、ブザー通知 LED表示 液晶表示 表示 カルキ抜き 節電タイマ機能 タイマ機能 便利機能 エラー検知 ロック機能 安全機能 吐水量 容量 沸騰機能 保温機能 基本機能 機器性能評価/スペック評価 想定ユーザテスト エキスパートレビュー 方法 満足度 分かりやすさ 操作学習 操作認識 主観評価、アンケート 企業イメージへの配慮 ユーザと環境に合せる 操作のしやすさ 理解のしやすさ 見つけやすさ、見易さ 評価基準 温度異常を知る 水位センサ異常を知る 水が満水を知る 水が空になったことを知る 温度を見る 水位を確認する タイマ使用を止める 時間を計る 給湯ロックを解除する 給湯ロックを行う カルキ抜きを行う 沸騰させる モード切替 60℃ 90℃ 98℃ 保温する 給湯する 操作 ユーザビリティテスト 各テストフレーム (システム/ユーザ) 競合表に従った状態、ボタン組合せパターン 競合表 チャタリング想定 状態網羅(遷移表ベース、2スイッチ) タイマボタン エラーの割込みパターン想定 状態網羅(遷移表ベース、2スイッチ) 沸騰行為 状態網羅(遷移表ベース、2スイッチ) 温度制御 状態網羅(遷移表ベース、2スイッチ) 水位メータ チャタリング想定 状態網羅(遷移表ベース、2スイッチ) 解除ボタン チャタリング想定 状態網羅(遷移表ベース、2スイッチ) 保温ボタン チャタリング想定 状態網羅(遷移表ベース、2スイッチ) 沸騰ボタン 状態遷移 構造テスト モード遷移時間 保温制御精度 精度 範囲 サーミスタ水温検出 温度推移 保温時間 保温性能 温度制御 吐水量の確認 給湯量 給湯口 給湯 機器性能評価/スペック評価 条件網羅 ブザー 条件網羅 ポンプ デバイス:出力 条件網羅 サーミスタ 条件網羅 第n水位センサ 条件網羅 満水センサ 条件網羅 蓋センサ デバイス:入力 条件網羅 水位メータ 条件網羅 温度/モード表示窓 条件網羅 保温ランプ 条件網羅 沸騰ランプ 条件網羅 ロックランプ 条件網羅 タイマ残り時間表示枠 操作パネル:出力 条件網羅 給湯ボタン 条件網羅 保温設定ボタン 条件網羅 沸騰ボタン 条件網羅 解除ボタン 条件網羅 タイマボタン 操作パネル:入力 デバイス機能 ヒータへの制御出力の妥当性確認 ヒータ制御 温度判定のロジック確認、パターンによる妥当性検証 温度判定 水位判定の論理組合せ条件網羅 水位判定 エラー発生条件の条件網羅 エラー判定 状態遷移×構造テストで確認 状態網羅 ボタン入力の論理判定条件網羅 保温モード 状態遷移×構造テストで確認 状態網羅 ボタン入力の論理判定条件網羅 ロック/解除 サブ機能 状態遷移×構造テストで確認 状態網羅 タイマ 状態遷移×構造テストで確認 状態網羅 給湯停止 給湯する ふるまいが目的に適合していること ボタン押下時の有則組合せ 給湯 状態遷移×構造テストで確認 状態網羅 ミルク 節約 高温 各モード保温 カルキ抜き 沸騰 アイドル ふるまいが目的に適合していること ボタン押下時の有則組合せ 温度制御 メイン機能 メイン機能、サブ/サポート機能、デバイス機能の3層で検討 仕様->保温モード×機能テスト 仕様->ロック/解除×機能テスト 仕様->温度制御×機能テスト 仕様->給湯×機能テスト 仕様->タイマ×機能テスト 詳細分割(メモ) 機能テスト 蓋状態が獲得できない時の起動時処理確認 状態×ボタンを押しっぱなしにした場合の振る舞い確認(All Pair) 沸騰中に蓋を開けた場合の加熱停止 水が無い、少ない場合の沸騰ボタン押下 温度が上がらないエラー 温度上がりすぎのケース ノイズ、環境 HW故障 HWの異常、故障による要因 無意識 わざと、意地悪 人による要因 検討方法(メモ) 安全性テスト(機器及びユーザ) 各テストフレーム (ソフトウェア/機器) テスコン'13 テストタイプベース
  39. 71 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプ:何が大事か考えてみよう! ※個人的な理解、分類、考え方が含まれますので取扱い注意 不具合を 出したくない 効率的に テストケース を導出したい

    1つの詳細範囲に 集中検討すると 抜けが少ない テストタイプとして グルーピング、 整理して活用する! 過去の不具合を テストの検討に 反映させる ※全ての不具合を 1つずつ検討は 時間がかかる テストの検討時 抜けが無いことを 確認したい 上手なテスト検討、 他の人の検討を整理・ 抽象化して活用する 段階的に分割された 範囲で絞って 検討すると短時間で 考えやすい 全体を段階的に 抜け確認を することが 効果的 予算に似合った 最適なテストを 実施したい 重要度に応じて テストの優先 順位付けをしたい 結局、何が出来ると 良いですかね? テストレベル テスト技法 テストタイプ
  40. 72 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 抜けなく 効率的に 状況に 応じて テストタイプ:何が大事か考えてみよう! ※個人的な理解、分類、考え方が含まれますので取扱い注意 不具合を

    出したくない 効率的に テストケース を導出したい 1つの詳細範囲に 集中検討すると 抜けが少ない テストタイプとして グルーピング、 整理して活用する! 過去の不具合を テストの検討に 反映させる ※全ての不具合を 1つずつ検討は 時間がかかる テストの検討時 抜けが無いことを 確認したい 上手なテスト検討、 他の人の検討を整理・ 抽象化して活用する 段階的に分割された 範囲で絞って 検討すると短時間で 考えやすい 全体を段階的に 抜け確認を することが 効果的 予算に似合った 最適なテストを 実施したい 重要度に応じて テストの優先 順位付けをしたい テストレベル テスト技法 テストタイプ 余談ですが本表記は 「ロジックブランチ」 と呼ばれるものです。
  41. 73 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 全体が見えたら、 個々の検討に 集中しよう! テストタイプ:何が大事か考えてみよう! 「テスト全体を見る」「個々の抜けも考える」 ※他にも、効率的、状況に応じて…など 両方やらなくっちゃあなんないってのが…

    ※個人的な理解、分類、考え方が含まれますので取扱い注意 テストの目的(ビジネスの狙い等) テスト全体で考えるコト (テストタイプ群) 機能テスト 性能テスト 設定テスト 環境テスト 運用テスト 信頼性/連続 テストの目的ベース (ビジネスの狙い等を元に)で 優先順位やトレードオフを 考える検討・判断材料に 繋げることも出来ますね。 テストレベル テスト技法 テストタイプ 機能組合せ (無則)テスト 両方やらなくっちゃあ なんないってのが 「幹部」のつらいところだな 覚悟はいいか? オレは出来てる。
  42. 76 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 機能テスト ボリュームテスト ストレステスト ユーザビリティテスト セキュリティテスト パフォーマンステスト ストレージテスト

    コンフィグレーションテスト コンパチビリティテスト インストーラビリティテスト 信頼性テスト リカバリーテスト サービスアビリティテスト ドキュメンテーションテスト 手続きテスト 品質特性(ISO9126) 機能性 信頼性 使用性 効率性 保守性 移植性 適切さ 正確性 相互運用性 セキュリティ 成熟度 フォールトレランス 復元力 理解のしやすさ 学習のしやすさ 操作のしやすさ 魅力 時間挙動 資源の活用度 分析のしやすさ 変更のしやすさ 安定性 テストのしやすさ 順応性 インストールのしやすさ 共存力 置換製 テストを考えよう!(テストタイプ) テストタイプの参考になりそうなお絵かきシリーズ みなさんが 行っている 「テストタイプ」 を考えてみよう! テスト全体で考えるコト (テストタイプ群) 機能テスト 性能テスト 設定テスト 環境テスト 運用テスト 信頼性/連続 機能組合せ (無則)テスト 会社の話が出たら “忘れよう!”
  43. 77 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ テストレベル テスト技法 テストタイプ テストレベル、テストタイプは何となく紹介しました。 (便宜的に)テストレベルは開発プロセスを考慮して決める対象範囲。 テストタイプは目的に従った(効果・効率を狙った)グループとします。

    システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ テスト レベル テストの目的(ビジネスの狙い等) テスト全体で考えるコト (テストタイプ群) 機能テスト 性能テスト 設定テスト 環境テスト 運用テスト 制御パス 信頼性/連続 テスト タイプ
  44. 79 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ テストレベル、テストタイプは何となく紹介しました。 これらの違い、使い方を具体的に紹介してみると… システム アプリ アプリ アプリ

    プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ 制御パステスト 境界値テスト パラメータ 組合せテスト 設定テスト ストレージテスト 機能テスト 状態遷移テスト 運用テスト 信頼性テスト テストレベル テスト技法 テストタイプ プロセス間 IF試験
  45. 82 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ:理由? 例えば…境界値は何処で見ますか? 開発会社 発注元 &受け入れテスト担当 抜けそうだし、 あとで喧嘩が

    起こりそう… あと、目を見て話そうネ 当然ユニットテストで (開発会社が) やりますよー。 画面を含めたシステムテスト (発注元) でやりますよね。 テストレベル テスト技法 テストタイプ
  46. 83 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ:理由? 例えば…境界値は何処で見ますか? 当然ユニットテストで やりますよー。 画面を含めたシステムテスト でやりますよね。 ・組織が分かれているなどがある時に、決めていないと

    抜けや重複が発生する可能性があるかも。 ・デザイナーさんや開発に関連するメンバーの意見(心配事等)を 取り込んでプロダクト価値向上への検討に繋がると良いですね! テストレベル テスト技法 テストタイプ
  47. 84 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト用語のベースとなるJSTQBでは…? テスト設計技法(test design technique): テストケースを作成したり選択したりするための技法 テストレベル テスト技法

    テストタイプ 知っておくと 便利ですよ テスト技法は実際に体験しながら 効果を知ってもらうのが良いと思います。 テスト技法の紹介 3章では「テスト技法」を 少し体験しましょう!
  48. 89 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法紹介 テスト技法は設計技術の向上にもつながる面白い技術です。 テスト設計を通じて学ぶことが出来ますのでやってみましょう。 テスト技法で紹介するものはこんなものですかね。 ※人によってどれをテスト技法とするか?は違うので注意です。 ・三色ボールペン法 ・同値分割

    ・境界値分析 ・デシジョンテーブル(+それを活用した組合せテスト検討) ・有則の組合せ検討技法 ⇒CEG(原因結果グラフ)とCFD(Cause Flow Diagram) ・無則の組合せ検討技法 ⇒All Pair法、直交表を用いた検討 ・状態遷移図/表 「テスト技法ドリル」 参照(秋山さん著) 全体 個々 個々 個々 個々 全体 個々 個々 全体 個々
  49. 92 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:三色ボールペン法 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 三色ボールペン法とは? 二色もしくは三色のボールペンを用いて、 赤:客観的に見て重要箇所 (青:客観的に見てまあ、重要な箇所) 緑:主観的に見たツッコミ部分 という分析を行う手法です。 テスト脳を鍛えるのに役立つ! なお、二色でも十分らしいっす。 「何を考えているのか?」 を意識して切り替えながら 考えるコトが 重要みたいですよ!
  50. 93 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:三色ボールペン法 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 仕様から単純にテストを作ろうとすると、 コピー&ペースト&モディファイという形式になりがちです。 ※なお、この方法はテスト検討を行う価値を下げていると言われる手法です。 実際には、以下のような指摘が出てくれると嬉しいです。 ・実使用時を考えた「なにこれ?」というイマイチの仕様部分 ・(仕様は完璧ではないことが多いため) 仕様内容では不足しているパラメータや論理検討の検出指摘 ⇒「使う視点」にて「実際にテストするには?」を具体的に 考えることで、仕様の不足点や懸念事項が検出できます。 コピー&ペースト&モディファイは、 CPM法とも呼ばれています。 「考えない方法」として、 ワーストプラクティスに 挙げられることが多いです… 参考:http://snsk.hateblo.jp/entry/2013/09/13/122611
  51. 94 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:同値分割 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 同値分割とは? 入力される可能性のあるデータを(同じ結果が出るなど) グルーピングをしてそれぞれのグループから代表となる値を選び それだけをテストする方法。 ※テストを効率的に削減する、もしくは全体を見たり、 抜けが無いことを考えるための「考え方」を提供します。 全部の値をテストするのは 無理ッ! なので、効率的・効果的な グループ分けが 必要となりますよ。 生 粉落とし ハリガネ バリカタ カタ 普通 やわ 0歳未満 幼児 子供 大人 高齢者
  52. 95 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:同値分割 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 同値分割とは? よくある不具合としては、有効範囲外のパターンを決めていない、 値の範囲、分割範囲の具体的な値が決まっていない… というようなコトがあると思います。 ※「大人」「子供」だけ仕様に記載されて、範囲記載がない場合とか。 この範囲を明確にして、ロジックを明らかにするとともに テスト実施時の具体的な値を含めて明確にする必要があります。 実際は、設計側の状態遷移を見直して隙間を発見する、 といった「ふるまいの異なるグループを見つける」検討も 「同値分割」と呼んでいる場合もあります。 同値分割は「考え方」を提供しているのですね! 0歳未満 (無効範囲) 幼児 (有効範囲) 子供 (有効範囲) 大人 (有効範囲) 高齢者 (有効範囲) 年齢異常 (無効範囲) -1 0 5 6 15 16 64 65 150 151
  53. 96 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:境界値分析 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 境界値分析とは? プログラムにて発生しやすい不等号の誤り等を見つけるため、 「境界の値」を活用してテスト項目を作る手法です。 ※同値分割とセットで検討が出来ます&やりやすいですが、 発見できる不具合の性質は同値分割とは異なります。 問題は境界にあり! 不等号の間違いは多いです。 どのようにテストすると この間違いを見つけることが 出来るでしょうか? 0歳未満 幼児 子供 大人 高齢者 -1 0 5 6 15 16 5歳以下の お子様 15歳 未満 15歳 以上 65歳 以上 64 65 6≦X<15? 6≦X≦15?
  54. 97 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:デシジョンテーブル ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 デシジョンテーブルとは? 入力、出力と組合せパターンを1つの表にまとめたもの。 パラメータの「関連(法則性)」がある複数のパラメータの パターンを整理するために活用。 同値分割した後に本表を用いて組合せを整理すると便利。 表の形式を 活用するだけでも 効果ありです! ※ただし、巨大化に注意 No. 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF OFF ON ON OFF OFF ON ON OFF ON ON OFF OFF ON ON OFF OFF ON OFF ON OFF OFF ON OFF ON ON OFF ON OFF ON ON OFF ON OFF ロック続行 レ レ レ レ ロック解除 レ レ レ レ 消灯 レ レ レ レ 点灯 レ レ レ レ 止水 レ レ レ レ 吐水 レ レ レ レ 原因(解除ボタン) 原因(蓋センサON状 態) 結果(ロック状態) 結果(給湯口) 結果(ロックランプ) 原因(給湯ボタン押下 状態) 入力 出力 組合せパターン
  55. 98 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:同値分割&デシジョンテーブル ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 同値分割/デシジョンテーブルはセットで覚えると便利! 一連の流れとして 身につけておくと 良いっすよ! 0歳未満 (無効範囲) 幼児 (有効範囲) 子供 (有効範囲) 大人 (有効範囲) 年齢異常 (無効範囲) -1 0 5 6 15 16 150 151 入力の同値 を整理 9:59前エラー 追加料金なし 夜間料金 9:59 10:00 21:01以降エラー 17:59 18:00 21:00 21:01 年齢 入場 時間 1.同値分割 を考える 2.同値分割 結果を表に 展開する。 3.組合せの パターンを 設定する
  56. 99 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:有則の組合せ検討技法(CEG及びCFD) ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 有則の組合せ及びCEG、CFDとは? パラメータの組合せは論理的に表現されます。 これらの論理性を考えるためには図を用いた検討方法が有効です。 CEG(原因結果グラフ)とCFD(Cause Flow Diagram)が有名 CEGでの論理検討例: @CEGTest CEGTestが便利。 drawCFDという ツールもあるよ CEGTest : http://softest.jp/tools/CEGTest/ drawCFD : http://softest.cocolog-nifty.com/labo/drawCFD/
  57. 100 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:有則の組合せ検討技法(CEG及びCFD) ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 有則の組合せ及びCEG、CFDとは? パラメータの組合せは論理的に表現されます。 これらの論理性を考えるためには図を用いた検討方法が有効です。 CEG(原因結果グラフ)とCFD(Cause Flow Diagram)が有名 CFDでの論理検討例: @drawCFD 安易にデシジョンテーブルを作ると、 巨大化&見づらくなるのですね… こういった技法を併用しましょう! CEGTest : http://softest.jp/tools/CEGTest/ drawCFD : http://softest.cocolog-nifty.com/labo/drawCFD/
  58. 101 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:同値分割&DT&CFD ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 同値分割/デシジョンテーブルとCFDを活用してみるッ! 0歳未満 (無効範囲) 幼児 (有効範囲) 子供 (有効範囲) 大人 (有効範囲) 年齢異常 (無効範囲) -1 0 5 6 15 16 150 151 入力の同値 を整理 9:59前エラー 追加料金なし 夜間料金 9:59 10:00 21:01以降エラー 17:59 18:00 21:00 21:01 年齢 入場 時間 1.同値分割 を考える 2.同値分割 結果を表に 展開する。 3.組合せのパターン を設定する ※CFDを活用!
  59. 102 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:無則の組合せ検討技法(直交表、All Pair) ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG

    ・直交表、All Pair法 ・状態遷移図/表 無則の組合せ及び直交表、All Pairとは? 「関係ない」と思っていても、複数の機能間で組合せの問題が (1Mラインで16件ほど)発生する可能性があるとのことです。 組合せパターンを「意味ある削減をしつつ、網羅する」技法です。 ※注意:安易にパターンを減らすことが出来る技術ではありません! ラーメンを例とすると… PICTMaster: http://sourceforge.jp/projects/pictmaster/ 麺太さ :太麺、細麺 麺かたさ :ハリガネ、バリカタ、カタ、普通、やわ スープ味 :塩、しょうゆ、みそ、豚骨、 こってり、さっぱり、こっさり スープ濃さ :カラメ、ふつう チャーシュー:チャーシューなし、 チャーシュー普通、チャーシュー多め ネギ :ネギ無し、ネギふつう、ネギ多め アブラ :アブラ有り、無し ニンニク :ニンニク有り、無し 野菜 :野菜なし、野菜少なめ、野菜ふつう、 野菜マシ、野菜マシマシ 情熱 :抜けません! 最初は直交表とAll Pairは 「ほぼ同じ」と考えても OKっす。 こちらのお勧めツールは 「PICTMaster」
  60. 103 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:無則の組合せ検討技法(直交表、All Pair) ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG

    ・直交表、All Pair法 ・状態遷移図/表 ※適用する対象には注意! ちなみに、単体のパラメータの 確認も合わせてやっちゃえ! …と思うかもしれませんが、 個別に単体、論理性(法則性)の ある組合せを分けて試験した方が 効果、効率ともに良いですよ。 PICTMaster: http://sourceforge.jp/projects/pictmaster/ 25,200食 38食 2因子でおk 無則の組合せ及び直交表、All Pairとは? 「関係ない」と思っていても、複数の機能間で組合せの問題が (1Mラインで16件ほど)発生する可能性があるとのことです。 組合せパターンを「意味ある削減をしつつ、網羅する」技法です。 ※注意:安易にパターンを減らすことが出来る技術ではありません! ラーメンを例とすると… ALL組合せ 2因子網羅
  61. 104 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:無則の組合せとの比較を考えてみよう! ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 以下の傾向、ありますか? 1.単体テストを無則で まとめてやっちまえ! 2.有則のテストも まとめてやっちまえ! 【★注意!!! ★ 】 無則の組合せで何でもできる!と思ってしまう 「まとめてやっちまえ症候群」があるようですが、 無則の組合せで実施すると…? 10個のパラメータ(2因子5つ、3因子5つ)の 単体と無則の組合せのテスト項目数 ※PICTMasterを用いて作成 ▪単体項目数 2×5+3×5=25項目 ▪PICTでの無則 14項目 A B C D E A-2 B-2 C-1 D-1 … A-1 B-1 C-2 D-2 A-2 B-1 C-1 D-1 項目数は減るけど、 「テストでの狙い」が 分かりづらいので、 不具合発生時の 切り分けが難しい… 〇回帰テストでの実施 ×新規、追加仕様での実施
  62. 105 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:無則の組合せとの比較を考えてみよう! ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 【★注意!!! ★ 】 無則の組合せで何でもできる!と思ってしまう 「まとめてやっちまえ症候群」があるようですが、 無則の組合せで実施すると…? パラメータA、B、Cの関連性がある場合… 以下の傾向、ありますか? 1.単体テストを無則で まとめてやっちまえ! 2.有則のテストも まとめてやっちまえ! A B C D E A-2 B-2 C-1 D-1 … A-1 B-1 C-2 D-2 A-2 B-1 C-1 D-1 A-1 B-2 C-2 D-2 A-2 B-1 C-2 D-2 A-1 B-2 C-1 D-1 A-1 B-2 C-2 D-2 A-2 B-1 C-2 D-1 A-2 B-2 C-1 D-1 A-1 B-2 C-1 D-2 A-2 B-1 C-1 D-2 A-2 B-2 C-1 D-1 A-1 B-1 C-1 D-1 A-1 B-2 C-1 D-2 Powered by drawCFD
  63. 106 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! Powered by drawCFD テスト技法:無則の組合せとの比較を考えてみよう! ・三色ボールペン法 ・同値分割 ・境界値分析

    ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 【★注意!!! ★ 】 無則の組合せで何でもできる!と思ってしまう 「まとめてやっちまえ症候群」があるようですが、 無則の組合せで実施すると…? CFDから作成したDTと比較してみると? ※縦横逆なので注意 以下の傾向、ありますか? 1.単体テストを無則で まとめてやっちまえ! 2.有則のテストも まとめてやっちまえ! A B C D E A-2 B-2 C-1 D-1 … A-1 B-1 C-2 D-2 A-2 B-1 C-1 D-1 A-1 B-2 C-2 D-2 A-2 B-1 C-2 D-2 A-1 B-2 C-1 D-1 A-1 B-2 C-2 D-2 A-2 B-1 C-2 D-1 A-2 B-2 C-1 D-1 A-1 B-2 C-1 D-2 A-2 B-1 C-1 D-2 A-2 B-2 C-1 D-1 A-1 B-1 C-1 D-1 A-1 B-2 C-1 D-2 組合せ(A-2/B-2/C-2)の抜け!
  64. 107 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:状態遷移図、表 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All

    Pair法 ・状態遷移図/表 状態遷移図、表とは? 状態遷移のパターンは、個別に考えるよりも状態遷移図で 表した方がパターンを確認しやすいです。 表形式にすることで「網羅基準」を考えることも出来ます。 「Nスイッチ」という作成した 状態遷移表ベースで複数回の操作を テストするパターンを導出する 手法もあります。 ↓ BeforeState- Transition→ 【3章:条件 1】蓋センサ ON&水位セ ンサにONが 存在 【3章:条件 2】蓋センサ OFF&全ての 水位  セン サがOFF 沸騰ボタン押 下 エラーを検知 ※条件は【5 章:エラー検 知.】に別途 記載 エラーを検 知 ※条件は【5 章:エラー 検知.】に別 途記載 カルキ抜 き完了 アイドル 沸騰行為 ignore ignore ignore ignore ignore 沸騰行為 ignore アイドル ignore エラー状態 ignore 保温行為 保温行為 ignore アイドル 沸騰行為 ignore エラー状態 ignore エラー状態 ignore ignore ignore ignore ignore ignore 有料ですが、astah*の 品質スイートプラグイン そして、stateMatrix というツールがあります。
  65. 111 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! おわりに:Beizerのテスト道 フェーズ0 : テストとデバッグには何の差もない。 デバッグ以外にはテストには特別な目的はない。 フェーズ1 :

    テストの目的は、ソフトウェアが動くことを示すことである。 フェーズ2 : テストの目的は、ソフトウェアが動かないということを示すことにある。 フェーズ3 : テストの目的は、何かを証明することではなく、 プログラムが動かないことによって発生する危険性を ある許容範囲にまで減らすことである。 フェーズ4 : テストは行動ではない。テストをしないで品質の高い ソフトウェアを作るための精神的な訓練である。
  66. 112 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! おわりに:Beizerのテスト道 フェーズ0 : テストとデバッグには何の差もない。 デバッグ以外にはテストには特別な目的はない。 フェーズ1 :

    テストの目的は、ソフトウェアが動くことを示すことである。 フェーズ2 : テストの目的は、ソフトウェアが動かないということを示すことにある。 フェーズ3 : テストの目的は、何かを証明することではなく、 プログラムが動かないことによって発生する危険性を ある許容範囲にまで減らすことである。 フェーズ4 : テストは行動ではない。テストをしないで品質の高い ソフトウェアを作るための精神的な訓練である。
  67. 115 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 参考文献シリーズ JSTQB 書籍:ソフトウェアテストの基礎:ISTQBシラバス準拠(ドロシー・グラハム他 BNN新社) Web:JSTQBシラバス、用語集 http://jstqb.jp/syllabus.html テスト技法関連(全般)

    書籍:ソフトウェアテスト技法ドリル―テスト設計の考え方と実際(秋山 浩一氏 日科技連出版社) 書籍:はじめて学ぶソフトウェアのテスト技法(リー・コープランド 日経BP社) テスト技法関連(原因結果グラフ、CEGTest) Web:CEGTest - 原因結果グラフからテスト条件を作成するツール http://softest.cocolog-nifty.com/labo/CEGTest/ Web:ソフトウェアテストの勉強室 - http://softest.cocolog-nifty.com/blog/cegtest.html 三色ボールペン法 書籍:ソフトウェアテストPRESS Vol.2(技術評論社) Web:たまゆら雑記 三色ボールペンで読む仕様書(1) http://d.hatena.ne.jp/mkoszk/20110218/p1 テスト戦略/テストプロセス/テスト全体 書籍:マインドマップから始めるソフトウェアテスト(池田 暁氏、鈴木 三紀夫氏 技術評論社) 書籍:体系的ソフトウェアテスト入門(Rick Craig、Stefan P Jaskiel 日経BP出版センター) ゆもつよメソッド(テストコンサルタントで有名な湯本 剛さんのテスト手法) 書籍:ソフトウェアテストPRESS Vol.10(技術評論社) ※ソフトウェアテストPRESS は「総集編」にてVol1~10の資料が全て含まれており非常にお得です。
  68. 116 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 参考文献シリーズ NGT / VSTeP Web:JaSST’06東京 テスト設計におけるモデリングのための記法の提案 http://jasst.jp/archives/jasst06e/pdf/E2-3.pdf

    Web:JaSST’09東京 テスト観点に着目したテスト開発プロセス(VSTeP)の概要 http://www.jasst.jp/archives/jasst09e/pdf/A7-6.pdf テストアーキテクチャ Web:JaSST’11東京 魁!!智美塾 テストアーキテクチャという考え方の提案 http://jasst.jp/archives/jasst11e.html#project2 ※JaSSTのサイトには、過去の多数の事例や情報がありますのでお勧めです! テスト設計コンテスト Web:テスト設計コンテスト@aster http://aster.or.jp/business/contest.html ISO9126 ソフトウェアの品質特性モデル Web:オブジェクトの広場 機能外要求とISO9126 http://www.ogis-ri.co.jp/otc/hiroba/technical/JavaPress_ISO9126/index.html IEEE829 IEEE Standard for Software and System Test Documantation 書籍:知識ゼロから学ぶ ソフトウェアテスト(高橋 寿一氏 翔泳社) 書籍:現場の仕事がバリバリ進む ソフトウェアテスト手法(高橋 寿一氏、湯本 剛氏 技術評論社) いろいろ参考 Web:電気通信大学 にしさんの研究室 http://qualab.jp Web:kyon_mm(きょんくん)のサイト http://kyon-mm.bitbucket.org/blog/html/index.html