$30 off During Our Annual Pro Sale. View Details »

quality_model_of_software_test.pdf

 quality_model_of_software_test.pdf

Hiroki Iseri

November 15, 2013
Tweet

More Decks by Hiroki Iseri

Other Decks in Programming

Transcript

  1. 自己紹介 • 井芹 洋輝 – 組み込み開発・テストのコンサル – 著作「Androidアプリテスト技法」(共著)、「始めてみよう!検証 指向TDD」(ソフトウェアテストPRESS総集編)等 –

    その他「ユニットテストの保守性を作りこむ」(XP祭り関西)、「テ ストを育てる。テストを支える」(Ultimate Agilist Tokyo)、「TDDの 守破離 in Live」(JaSST 12東京)等、開発✕テストの研究活動・情 報発信を行っている • STAR(テスト自動化研究会) – Software Test Automation Research Group jp – 「テスト自動化」(特に上層、システムテスト/受け入れテスト)に ついて、啓蒙や研究、教材開発等を行っている。 – 研究会は本活動の発端であり、レビューに協力頂いています
  2. 用語定義 • テストシステム – テスト環境構築及びテスト実装成果物 – テスト対象を組み込んで使用する – テストスクリプト、テスト実行環境、テストデータ、 冶具ツールなどが包含される

    – 例) • ウェブアプリ自動テストのテストシステム – Selenium+Jenkins+svnserv+テストスクリプト+閲覧ブラウザ • 組み込み自動テストのテストシステム – 評価ボード+通信ログツール+ビルド&ロードツール+テストス クリプト+テストデータ
  3. テストに関わる品質モデル 全体構成 • 品質モデルの構成 – 品質特性、代表的な観点、代表的な指標・測定方法 • 策定の方向性 – 自動テストのテストシステムを主ターゲットとした品質モデルを策定

    – テストシステム全体に対する「テストシステム品質モデル」と、テスト自動 化で課題となりがちな「テスト容易性品質モデル」がメイン – ツールやテスト実装成果物(スクリプト+データ)の品質を詳細に扱える ように、テスト環境、テストデータ、テスト設計についても、個別に詳細な 品質モデルの定義を検討している 品質モデル 内容 テストシステム品質モデル テストシステムの品質モデル メインとなる品質モデル。 テスト設計品質モデル テストシステムに属するテスト設計の品質モデル テスト環境品質モデル テストシステムに属するテスト環境の品質モデル テストデータ品質モデル テストシステムに属するテストデータの品質モデル テスト容易性品質モデル テストシステムに関連するテスト対象の品質モデル
  4. 品質モデルの位置づけ テスト対象-テストシステム テスト 環境 テスト対象 ソフトウェア テスト非対象 ソフトウェア テスト対象システム テスト非対

    象システム テスト 一時利用者 その他間接 利用者 人間-テスト対象-テストシステム テストシステム 対象モデル テストシステム 品質モデル テスト設計 品質モデル テスト環境 品質モデル テストデータ 品質モデル テスト容易性品 質モデル 品質モデル
  5. 品質モデルによるテスト品質要求の 抽出、仕様化、測定、評価 テスト要求分析 テスト分析 テスト設計 テスト実装・ 環境構築 テスト実施 テストに関わる 品質モデル

    要求抽出・分析のための分析モデルの提供 テスト分析の観点の提供 テスト品質についての検証と妥当 性確認の基準や観点をを提供 分析モデル 検証・妥当性 確認のための 属性・基準 テスト対象へ の要求観点 テストプロセス 開発プロセスへ
  6. テストシステムの品質特性(主特性) 品質特性の対象 主特性 概要 テスト設計 •テスト領域の特性 テスト設計の網羅性やピンポイント性 •テストの合目的性 テスト設計がテスト目的をどの程度達成し得るものか の度合

    テスト環境 •テスト環境の機能適合性 テスト環境が有するテスト実行機能の適合性 テストシステム •テスト実施の性能効率性 資源の量や性能についての特性 •テストの互換性 他のテストシステムの構成要素との共存や交換のや りやすさ •テストの使用性 テストシステムの使い勝手や学びやすさ •テストの信頼性 テストシステムの安定性や障害に対する許容性 •テストのセキュリティ テスト活動の真正性や責任の追跡可能性。またテスト システムがテスト対象のセキュリティにどの程度影響 をあたえるかの度合い •テストの保守性 テストの保守や再利用のやりやすさ •テストの移植性 テストシステムの構成要素の移植のしやすさ
  7. 主特性 副特性 詳細特性の例 測定方針・指標の例 •テスト領域の特性 ・テスト設計の網羅性 テスト設計のインプットに対する網羅性 ・仕様網羅性 テストベース仕様に対する網羅性 ・リスク網羅性

    リスクやリスクコントロール手段に対する網羅性 ・構造網羅性 コードやグラフ等の構造に対する網羅性 ・各種カバレッジ ・テスト対象観点に対する網羅率 ・テスト設計のピンポイント性 テスト目的を必要最小限のテスト領域で達成 しているかの度合 ・テスト設計の重複の少なさ 網羅すべき実行領域をどの程度重複なく網羅できて いるかの度合 ・工数当たりの各種カバレッジ •テストの合目的性 ・保証容易性 保証基準の達成がどの程度容易かの度合 Ex)リリース可能な品質を保証しやすいか? ― ・保証基準チェックリストの達成 度 ・欠陥検出の容易性 欠陥検出をどの程度支援するかの度合 ― ・テストケースメソッド当たりのテ ストアサーション数 ・指標獲得容易性 取得を目的とする指標を、どの程度容易に取 得できるかの度合 ― ― ・テスト設計の標準適合性 外部の標準や基準に対するテスト設計の適 合度 ・カバレッジ計測容易性 カバレッジ計測をどこまでできるか? ・監査チェックリストの合格率 •テスト環境の機能 適合性 ・テスト環境の正確性 テストやテスト実行に必要な機能をどの程度 正確に実行できるかの度合 ・テスト実施正確性 テスト実施をどの程度正確に実行できるかの度合 ― ・テスト環境の完全性 実施できるテストや機能が、要求や目的をど の程度包含しているかの度合 ・テスト実施完全性 実施できるテストがテスト設計をどの程度包含してい るかの度合 ― ・テスト環境の適切性 定められたテスト関連機能のタスクを遂行で きるかの度合 ― ― テストシステムの品質特性(詳細)
  8. 主特性 副特性 詳細特性の例 測定方針・指標の例 •テスト実施の性能 効率性 ・テスト実施タイミング制約性 テストをどの程度望ましいタイミングで実施 できるかの度合 ex)夜に実施しやすい、やりたいと思ったら

    即実施できる、といった制約の度合 ・テスト実施開始タイミング制約性 テストをどの程度望ましいタイミングで開始でき るかの度合 ― ・テスト実施の時間効率性 テストをどれぐらい短時間で実施できるか の度合 ― ・テスト実行時間 ・テスト実施の資源効率性 テスト実施のリソースをどの程度効率化出 来るかの度合 ・実施人員効率性 どの程度の人数でテストできるかの度合 ・環境資源効率性 どの程度の制約の少ないテスト環境でテストでき るかの度合 ex)高価な環境を使わなくてすむか ― ・テスト対象制約性 テスト対象にどの程度の完成度やカスタマ イズを求めるかの度合 ex)本番環境でないとテストが出来ない、 モックを組み込まないとテストが出来ない、 といった制約の度合 ・テストダブル制約性 テストを実施するために、テスト対象をどの程度 テストダブルに置換しなければならないかの度 合 ― ・後戻り防止性 テストの後戻りの規模・頻度をどの程度軽 減するかの度合 ex)サニティテストによる後戻り防止性の向 上 ― ・欠陥検出率 ・バグの解析容易性 テストでバグを見つけた場合、それの特定 がどの程度容易か ― ― ・テスト自動化容易性 テスト実行の自動化をどの程度まで適用す るか ・テスト実施自動化容易性 テスト実行の自動化をどの程度まで適用できる か ・テスト構築自動化容易性 テスト分析・設計・実装の自動化をどの程度まで 適用出来るか ― テストシステムの品質特性(詳細)
  9. 主特性 副特性 詳細特性の例 測定方針・指標の例 •テストの互換性 ・共存性 テストが、他のテストや環境に影響を受けたり、影 響を与えたりする程度の度合 ・プロジェクトをまたがった資源共有のやりやすさ ―

    ・相互運用性 他のテストシステムの構成要素との相互運用がど の程度できるかの度合 ― ― •テストの使用性 ・適切度認識性 テストエンジニアがテストやテスト結果を適切である と認識しやすいかどうかの度合 ― ― ・不具合認識性 テストが検出するバグをバグであると認識しやすい かの度合 ― ― ・習得性 テストシステムの使用に必要なスキルを用意に習 得できるかの度合 ― ・テストに対するユーザビリ ティテスト結果 ・運用操作性 テスト実施の運用や制御がどの程度容易かの度合 ― ― ・テスト実施エラー防止性 テストシステム使用のミスをどの程度防止できるか の度合 ― ― ・アクセシビリティ テストシステム利用者を対象としたアクセシビリティ ― ・アクセシビリティチェックリス トの達成度 テストシステムの品質特性(詳細)
  10. 主特性 副特性 詳細特性の例 測定方針・指標の例 •テストの信頼性 ・成熟性 テストシステムが通常運用下でどの程度安定してテ スト目的を達成できるかの度合 ― テスト稼動時のMTTF

    ・障害許容性 テストシステムの運用において、どの程度までテスト の障害を許容できるかの度合 ― ― ・回復性 障害やエラーから希望する状態にどの程度復帰さ せやすいかの度合 ― テスト稼働時のMTTR ・テスト実行単位の独立性 テストシステムの実行単位の構成要素間でどの程 度の副作用や依存関係があるかの度合 ex)Test Suite間での副作用の度合い ― ― ・テスト実施再現性 テスト実施の再現しやすさの度合 ― ― •テストのセキュリ ティ ・テスト対象機密保持性 対象のセキュリティをどの程度保持できるかの度合 ex)テスト用の機能でバックドアを作ってしまうリスク の度合 ― テスト機能を有効化したソフトウェアに対す るセキュリティ解析結果 ・否認防止性 テスト結果が不正に否認できないかどうかの度合 ― ― ・責任追跡性 テストの責務達成について、どの程度追跡・確認で きるようになっているかの度合 ― ― ・テスト真正性 テストが正しいものであると判断できるかどうかの度 合 ― ・CSV適合度 ・テスト結果真正性 テスト結果が正しいものであると判断できるかどうか の度合 ― ・CSV適合度 テストシステムの品質特性(詳細)
  11. 主特性 副特性 詳細特性の例 測定方針・指標の例 •テストの保守性 ・テスト設計要素の独立性 テスト設計の構成要素が独立しており、テスト設計変更の 影響がどの程度限定されているかの度合 ― ―

    ・テストモジュール凝集性 テスト設計の構成要素は、有意なテストケースやテスト設計 観点の集まりとなっているかの度合 ― ・テストコードの各種静的解 析結果 ・アクティビティの自己完結性 セットアップ、実行、結果検証、後始末までテスト実施のアク ティビティがどの程度まとまっているかの度合 ― ― ・再利用性 テストの再利用しやすさの度合 ― ― ・解析性 テストの理解や問題特定がどの程度用以下の度合 ・テスト設計とのトレーサビリティの見や すさ ・テストコードの各種静的解 析結果 ・修正性 テストの修正をどの程度少ないコストで実施容易かについ ての度合 ・テストコードの複雑度 ・テストコードの各種静的解 析結果 ・試験性 テストの検証や妥当性確認の容易性 ― ・テストコードの各種静的解 析結果 •テストの移植性 ・適応性 ツールや環境にどの程度順応できるかの度合 ― ― ・設置性 テスト環境をどの程度設置しやすいかの度合 ― ― ・置換性 他のテストとの置換えはどの程度容易かの度合 ― ― テストシステムの品質特性(詳細)
  12. テスト品質の観点抽出 テスト実施の性能 効率性 テスト実施タイミン グ制約性 夜間実施可能か 並列実施可能か テスト実施の時間 効率性 CIテストの時間効

    率性 ゲートチェックイン 時テストの所要時 間 フルテストの所要 時間 テスト実施の資源 効率性 CIサーバスペック テスト対象制約性 テストダブル必要 性 ロギング機能必 要性 開発支援CIサーバテスト 分析観点 品質モデルを観点に要求分析観点を具体化 品質特性
  13. テスト要求の抽出 テスト要求の全体構成 を整理・俯瞰する ステークホルダ✕テスト品質観点によるステークホルダ分析マトリクス 抽出した ステーク ホルダ テスト品質の観点 計画や制約、 要求獲得結果

    実施テスト 一覧 テスト品質の観点 •REQ-CM-1 テスト実施時間は 1min以下であること •REQ-CM-3 Jenkinsトリガでビルド・ 実行を完全自動化す ること テスト品質観点ごとに要求を抽出・整理する 実施テスト✕テスト品質観点によるテスト要求分析マトリクス
  14. テスト品質の指標と基準の設定 主特性 副特性 詳細特性の例 測定方針・指標の例 •テスト領域 の特性 ・テスト設計の網羅性 テスト設計のインプットに対す る網羅性

    ・仕様網羅性 テストベース仕様に対する網羅性 ・リスク網羅性 リスクやリスクコントロール手段に 対する網羅性 ・構造網羅性 コードやグラフ等の構造に対する 網羅性 ・各種カバレッジ ・テスト対象観点に対する 網羅率 ・テスト設計のピンポイント性 テスト目的を必要最小限のテ スト領域で網羅しているかの 度合 ― ・工数当たりの各種カバ レッジ ・テスト設計の重複の少なさ 網羅すべき実行領域をどの 程度重複なく網羅できている かの度合 ― ・テスト対象観点に対する 重複率 品質モデル テスト対象コードの MC/DC Nスイッチカバレッジ 社内標準観点の網羅 率 品質モデルを参考に、テスト要求の達成を確 認するための指標と基準を設定