テストの品質モデル構築の取り組み

2,985 views
2,811 views

Published on

JaSST'13 Tokai ポスターセッション

Published in: Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,985
On SlideShare
0
From Embeds
0
Number of Embeds
9
Actions
Shares
0
Downloads
29
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

テストの品質モデル構築の取り組み

  1. 1. テストの品質モデル構築の取り組み   〜優れたテストを作るために〜 井芹 洋輝   STAR(テスト自動化研究会)     2013/11/15  JaSST’13東海  
  2. 2. 自己紹介 •  井芹 洋輝   –  組み込み開発・テストのコンサル   –  著作「Androidアプリテスト技法」(共著)、「始めてみよう!検証指向TDD」(ソフトウェアテ ストPRESS総集編)等。開発×テストの検討や情報発信を行っている •  STAR(テスト自動化研究会)   –  So:ware  Test  AutomaAon  Research  Group  jp   –  「テスト自動化」(特に上層、システムテスト/受け入れテスト)について、啓蒙や研究、教 材開発等を行っている   –  研究会は本活動の発端であり、レビューに協力頂いています   –  本発表ではテストの品質特性についてご意見募集中です  
  3. 3. 背景 •  開発ライフサイクルでのテストの役割は拡大し続け ています –  CI、DDT/KDTツール、BDDフレームワーク、自動テストのホ スティングなど、テストに関わる技術・環境の発展による テスト活用領域の拡大 –  Wモデル、TDD/BDD、ATDDなど、多方面でテストを考慮・ 活用する手法の普及   •  現代的なテストの役割 –  開発ライフサイクル上の活動をテストが多方面にサポート します –  派生開発や反復開発において、テストを資産として継続 的に利用していきます
  4. 4. 背景 •  多方面からのテスト品質要求に応えられるテ ストアーキテクチャの作りこみが必要となって います   –  Ex)テスト駆動開発   •  方針なく実施   →テストの保守コストが増大し、最悪テストの破棄に   →テストの信頼性が確保できず、品質保証の責務を担えず   •  テスト品質の改善/適切なテストアーキテクチャの構築 と共に実施   –  TDD+単体テスト工数の総工数を20%削減   →成果物のテストは、プロセス上のテストの責務を担うるもので、 後工程のテストの負荷を軽減   ソフトウェアシンポジウム2011「テストの視点を活用したTDDアプローチの検討と検証」
  5. 5. 本活動の位置づけ •  継続的に利用でき、多方面の要求に対応するテ ストアーキテクチャの構築には、テストの品質の 作りこみが必要です   •  テストの品質の作り込みには、テスト品質要求の 特定、測定、評価を行う必要があります   •  本活動では、それらを実現するため、テストにつ いての品質要求の抽出、仕様化、測定、評価の 観点となるテスト品質モデルを策定しています
  6. 6. 用語定義 •  テストシステム   –  テスト環境構築及びテスト実装成果物   –  テスト対象を組み込んで使用する   –  テストスクリプト、テスト実行環境、テストデータ、 冶具ツールなどが包含される   –  例)   •  ウェブアプリ自動テストのテストシステム   –  Selenium+Jenkins+svnserv+テストスクリプト+閲覧ブラウザ   •  組み込み自動テストのテストシステム   –  評価ボード+通信ログツール+ビルド&ロードツール+テストス クリプト+テストデータ  
  7. 7. テストに関わる品質モデル
 全体構成 品質モデル 内容 策定状態 テストシステム品質モデル テストシステムの品質モデル   メインとなる品質モデル。   レビュー中 テスト設計品質モデル テストシステムに属するテスト設計の品質モデル 作成中 テスト環境品質モデル テストシステムに属するテスト環境の品質モデル 作成検討中 テストデータ品質モデル テストシステムに属するテストデータの品質モデル 作成検討中 テスト容易性品質モデル テストシステムに関連するテスト対象の品質モデル 作成中 •  品質モデルの構成   –  品質特性、代表的な観点、代表的な指標・測定方法   •  策定の方向性   –  自動テストのテストシステム開発に適用可能な品質モデルを策定   –  テストシステム全体に対する「テストシステム品質モデル」と、テスト自動 化で課題となりがちな「テスト容易性品質モデル」がメイン   –  ツールやテスト実装成果物(スクリプト+データ)の品質を詳細に扱える ように、テスト環境、テストデータ、テスト設計についても、個別に詳細な 品質モデルの定義を検討している  
  8. 8. 品質モデルの位置づけ 品質モデル   テスト容易性品 質モデル テスト非対 象システム テスト環境 品質モデル テスト対象   ソフトウェア テスト非対象 ソフトウェア テスト対象システム テスト設計 品質モデル テスト 環境 テストデータ 品質モデル テスト テストシステム テスト対象-­‐テストシステム 人間-­‐テスト対象-­‐テストシステム 対象モデル   テストシステム 品質モデル 一時利用者   その他間接 利用者
  9. 9. 品質モデルによるテスト品質要求の 抽出、仕様化、測定、評価 テスト要求分析 分析モデル 要求抽出・分析のための分析モデルの提供   テスト分析の観点の提供 テスト分析 テストに関わる   品質モデル テスト設計 テスト実装・   環境構築 検証・妥当性 確認のための 属性・基準   テスト品質についての検証と妥当 性確認の基準や観点をを提供   テスト対象へ の要求観点   テスト実施 テストプロセス 開発プロセスへ
  10. 10. 品質モデルの詳細 •  今回ご紹介する品質モデル   –  テストシステムの品質特性  
  11. 11. テストシステムの品質特性(主特性) 品質特性の対象 主特性 概要 テスト設計 テスト設計の網羅性やピンポイント性 テスト環境 テストシステム ●テスト領域の特性 ●テストの合目的性
 テスト設計がテスト目的をどの程度達成し得るものか の度合 ●テスト環境の機能適合性 テスト環境が有するテスト実行機能の適合性 ●テスト実施の性能効率性 資源の量や性能についての特性 ●テストの互換性 他のテストシステムの構成要素との共存や交換のや りやすさ ●テストの使用性 ●テストの信頼性 テストシステムの使い勝手や学びやすさ ●テストのセキュリティ テスト活動の真正性や責任の追跡可能性。またテスト システムがテスト対象のセキュリティにどの程度影響 をあたえるかの度合い テストの保守や再利用のやりやすさ ●テストの保守性 ●テストの移植性 テストシステムの安定性や障害に対する許容性 テストシステムの構成要素の移植のしやすさ
  12. 12. テストシステムの品質特性(詳細) 主特性 副特性 ●テスト領域の特性
 ・テスト設計の網羅性
 テスト設計のインプットに対する網羅性 ●テストの合目的性
 詳細特性の例 ・仕様網羅性
  テストベース仕様に対する網羅性
 ・リスク網羅性
  リスクやリスクコントロール手段に対する網羅性
 ・構造網羅性
  コードやグラフ等の構造に対する網羅性 ・テスト設計のピンポイント性
 ・テスト設計の重複の少なさ
 テスト目的を必要最小限のテスト領域で達成 網羅すべき実行領域をどの程度重複なく網羅できて しているかの度合 いるかの度合 測定方針・指標の例 ・各種カバレッジ ・テスト対象観点に対する網羅率 ・工数当たりの各種カバレッジ ・保証容易性
 ・リスクレベルの保証容易性 ・保証基準チェックリストの達成 保証基準の達成がどの程度容易かの度合  リスクレベルが要求されている水準まで軽減されて 度 Ex)リリース可能な品質を保証しやすいか? いるのを保証しやすいか ・欠陥検出の容易性
 欠陥検出をどの程度支援するかの度合 ― ・テストケースメソッド当たりのテ ストアサーション数 ・指標獲得容易性
 ― 取得を目的とする指標を、どの程度容易に取 得できるかの度合 ・テスト設計の標準適合性
 外部の標準や基準に対するテスト設計の適 合度 ●テスト環境の機能 適合性
 ― ・カバレッジ計測容易性  カバレッジ計測をどこまでできるか? ・監査チェックリストの合格率 ・テスト環境の正確性
 テストやテスト実行に必要な機能をどの程度 正確に実行できるかの度合 ・テスト実施正確性
 テスト実施をどの程度正確に実行できるかの度合 ― ・テスト環境の完全性
 実施できるテストや機能が、要求や目的をど の程度包含しているかの度合 ・テスト実施完全性
 ― 実施できるテストがテスト設計をどの程度包含してい るかの度合 ・テスト環境の適切性
 定められたテスト関連機能のタスクを遂行で きるかの度合 ― ―
  13. 13. 主特性 副特性 テストシステムの品質特性(詳細) 詳細特性の例 測定方針・指標の例 ・テスト実施開始タイミング制約性
 ●テスト実施の性能 ・テスト実施タイミング制約性
 効率性
 テストをどの程度望ましいタイミングで実施 テストをどの程度望ましいタイミングで開始でき できるかの度合
 るかの度合 ex)夜に実施しやすい、やりたいと思ったら 即実施できる、といった制約の度合 ― ・テスト実施の時間効率性
 テストをどれぐらい短時間で実施できるか の度合 ― ・テスト実行時間 ・テストの資源効率性
 テストのリソースをどの程度効率化出来る かの度合 ・実施人員効率性
 ― どの程度の人数でテストできるかの度合
 ・環境資源効率性
 どの程度の制約の少ないテスト環境でテストでき るかの度合
 ex)高価な環境を使わなくてすむか ・テスト対象制約性
 テスト対象にどの程度の完成度やカスタマ イズを求めるかの度合
 ex)本番環境でないとテストが出来ない、 モックを組み込まないとテストが出来ない、 といった制約の度合 ・テストダブル制約性
 テストを実施するために、テスト対象をどの程度 テストダブルに置換しなければならないかの度 合 ― ・後戻り防止性
 ― テストの後戻りの規模・頻度をどの程度軽 減するかの度合
 ex)サニティテストによる後戻り防止性の向 上 ・欠陥検出率 ・バグの解析容易性
 ― テストでバグを見つけた場合、それの特定 がどの程度容易か ― ・テスト自動化容易性
 ・テスト実施自動化容易性
 ― テスト実行の自動化をどの程度まで適用す テスト実行の自動化をどの程度まで適用できる るか か
 ・テスト構築自動化容易性
 テスト分析・設計・実装の自動化をどの程度まで 適用出来るか
  14. 14. 主特性 副特性 テストシステムの品質特性(詳細) 詳細特性の例 ●テストの互換性 ・共存性
 テストが、他のテストや環境に影響を受けたり、影 響を与えたりする程度の度合 測定方針・指標の例 ・プロジェクトをまたがった資源共有のやりやすさ ― ― ― ●テストの使用性 ・適切度認識性
 ― テストエンジニアがテストやテスト結果を適切である と認識しやすいかどうかの度合 ― ・不具合認識性
 ― テストが検出するバグをバグであると認識しやすい かの度合 ― ・習得性
 テストシステムの使用に必要なスキルを用意に習 得できるかの度合 ・テストに対するユーザビリ ティテスト結果 ・相互運用性
 他のテストシステムの構成要素との相互運用がど の程度できるかの度合 ― ・運用操作性
 ― テスト実施の運用や制御がどの程度容易かの度合 ― ・テスト実施エラー防止性
 テストシステム使用のミスをどの程度防止できるか の度合 ― ― ・アクセシビリティ
 ― テストシステム利用者を対象としたアクセシビリティ ・アクセシビリティチェックリス トの達成度
  15. 15. テストシステムの品質特性(詳細) 主特性 副特性 ●テストの信頼性 ・成熟性
 ― テストシステムが通常運用下でどの程度安定してテ スト目的を達成できるかの度合 テスト稼動時のMTTF ・障害許容性
 ― テストシステムの運用において、どの程度までテスト の障害を許容できるかの度合 ― ・回復性
 障害やエラーから正常状態にどの程度復帰させや すいかの度合 ― テスト稼働時のMTTR ・テスト実行単位の独立性
 テストシステムの実行単位の構成要素間でどの程 度の副作用や依存関係があるかの度合 ex)Test Suite間での副作用の度合い ― ― ・テスト実施再現性
 テスト実施の再現しやすさの度合 ex)実行のたびに結果が変わらないか ― ― ・テスト対象機密保持性
 対象のセキュリティをどの程度保持できるかの度合
 ex)テスト用の機能でバックドアを作ってしまうリスク の度合 ― テスト機能を有効化したソフトウェアに対す るセキュリティ解析結果 ・否認防止性
 テスト結果が不正に否認できないかどうかの度合 ― ― ・責任追跡性
 テストの責務達成について、どの程度追跡・確認で きるようになっているかの度合 ― ― ●テストのセキュリ ティ 詳細特性の例 測定方針・指標の例 ・テスト真正性
 ― テストが正しいものであると判断できるかどうかの度 合 ・CSV適合度 ・テスト結果真正性
 ― テスト結果が正しいものであると判断できるかどうか の度合 ―
  16. 16. テストシステムの品質特性(詳細) 主特性 副特性 詳細特性の例 測定方針・指標の例 ●テストの保守性 ・テスト設計要素の独立性
 テスト設計の構成要素が独立しており、テスト設計変更の 影響がどの程度限定されているかの度合 ― ― ・テストモジュール凝集性
 ― テスト設計の構成要素は、有意なテストケースやテスト設計 観点の集まりとなっているかの度合 ・テストコードの各種静的解析 結果 ・アクティビティの自己完結性
 ― セットアップ、実行、結果検証、後始末までテスト実施のアク ティビティがどの程度まとまっているかの度合 ― ・再利用性
 テストの再利用しやすさの度合 ― ― ・解析性
 テストの理解や問題特定がどの程度なのかの度合 ・テスト設計とのトレーサビリティの見や すさ ・テストスクリプトの可読性 ・テストコードの各種静的解析 結果 ・変更性
 ― テストの変更をどの程度少ないコストや確実さで実施できる についての度合 ・試験性
 テストの検証や妥当性確認の容易性 ●テストの移植性 ・テストコードの各種静的解析 結果 ― ・テストコードの各種静的解析 結果 ・適応性
 ツールや環境にどの程度順応できるかの度合 ― ― ・設置性
 テストシステムをどの程度設置しやすいかの度合 ― ― ・置換性
 他のテストシステムとの置換えはどの程度容易かの度合 ― ―
  17. 17. 活用例
  18. 18. テスト品質の観点抽出 開発支援CIサーバテスト 分析観点 品質特性 夜間実施可能か テスト実施タイミ ング制約性 並列実施可能か テスト実施の性 能効率性 テスト実施の時 間効率性 テスト実施の資 源効率性 CIテストの時間 効率性 CIサーバスペッ ク ゲートチェックイ ン時テストの所 要時間 フルテストの所 要時間 テストダブル必 要性 テスト対象制約 性 ロギング機能必 要性 品質モデルを観点に要求分析観点を具体化
  19. 19. テスト要求の抽出 計画や制約、   要求獲得結果 テスト品質の観点 テスト要求の全体構成 を整理・俯瞰する 抽出した   ステーク   ホルダ ステークホルダ✕テスト品質観点によるステークホルダ分析マトリクス テスト品質の観点 実施テスト   一覧 実施テスト✕テスト品質観点によるテスト要求分析マトリクス ●REQ-­‐CM-­‐1   テスト実施時間は 1min以下であること   ●REQ-­‐CM-­‐3   Jenkinsトリガでビルド・ 実行を完全自動化す ること テスト品質観点ごとに要求を抽出・整理する
  20. 20. テスト品質の指標と基準の設定 テスト対象コードの MC/DC 主特性 副特性 ●テスト領域 の特性
 ・テスト設計の網羅性
 ・仕様網羅性
 ・各種カバレッジ テスト設計のインプットに対す  テストベース仕様に対する網羅性
 ・テスト対象観点に対する る網羅性 ・リスク網羅性
 網羅率  リスクやリスクコントロール手段に 対する網羅性
 ・構造網羅性
  コードやグラフ等の構造に対する 網羅性 詳細特性の例 測定方針・指標の例 ・テスト設計のピンポイント性
 ― テスト目的を必要最小限のテ スト領域で網羅しているかの 度合 社内標準観点の網羅 率 ・工数当たりの各種カバ レッジ ・テスト設計の重複の少なさ
 ― 網羅すべき実行領域をどの 程度重複なく網羅できている かの度合 Nスイッチカバレッジ ・テスト対象観点に対する 重複率 品質モデル 品質モデルを参考に、テスト要求の達成を確 認するための指標と基準を設定
  21. 21. 今後の展開 •  定義した品質モデルはSTAR公式サイトで公 開予定です   –  hXps://sites.google.com/site/ testautomaAonresearch/

×