SQiP2011 B3-3
状態遷移および機能連携に着⽬した
状態遷移および機能連携に着⽬した
業務シナリオテストの新⼿法
2011年9⽉9⽇株式会社NTTデータ
技術開発本部 プロアクティブ・テスティングCOE岩⽥ 真治
⾃⼰紹介
所属
株式会社NTTデータ
• 技術開発本部 プロアクティブ・テスティングCOE – 昨年12/1に設⽴ – 先進的な検証・テストサービスの提供とそれを実現するための 研究開発に取り組む専⾨組織主な業務
社内のソフトウェア開発標準プロセス(TERASOLUNA開発⼿ 順)の開発Copyright © 2011 NTT DATA CORPORATION 2
順)の開発
• テスト技法やプロセスの研究開発を⾏い、各種ガイドライン やテンプレートなどを整備
ISO/IEC JTC1 SC7 WG26委員として、ソフトウェアテストプ ロセスの国際標準「ISO/IEC 29119」の策定に従事
⽬次
1 業務シナリオテストにおける課題
1. 業務シナリオテストにおける課題
2. SFマトリクスの提案
3. まとめと今後の課題
Copyright © 2011 NTT DATA CORPORATION 3
1. 業務シナリオテストにおける課題
テストケース作成の流れ
4
業務フロー図を利⽤した結合テスト作成の問題点
1.1 テストケース作成の流れ
システムテスト
結合テスト
外部設計
要件定義
要件定義書 システムテストケース表結合テスト
単体テスト
内部設計
外部設計
外部設計書 結合テストケース表 内部設計書 単体テストケース表Copyright © 2011 NTT DATA CORPORATION 5
コーディング
上流の設計書をもとに
テストケースを作成する
品質の⾼いテストケースを作成
するには、テストに必要な情報が
設計書に記述されていることが重要
1.1 テストケース作成の流れ
システムテスト
結合テスト
外部設計
要件定義
要件定義書 システムテストケース表結合テスト
外部設計
結合テスト
単体テスト
内部設計
外部設計
外部設計書 結合テストケース表 内部設計書 単体テストケース表結合テスト
外部設計
外部設計書 結合テストケース表結合テストレベルの例
業務フロ 図 結合テスト 本発表のターゲットCopyright © 2011 NTT DATA CORPORATION 6
コーディング
業務フロー図 (業務の仕様) 機能定義書 (単機能の仕様書) 結合テスト ケース表 (機能間連携) 結合テスト ケース表 (単機能)【参考】
本発表における「業務」と「機能」の定義
物件登録機能 登録フォーム画⾯ 物件名: 価格 確認画⾯ 物件名:マンションA 価格 完了画⾯ 登録が完 た物
件
価格: 円 価格: 5000万円 登録しますか? 登録が完了しました。 承認機能 登録 登録 戻る 画像登録件
登録
・掲載
業
務
メニュー メニューCopyright © 2011 NTT DATA CORPORATION 7
承認機能 承認確認画⾯ 承認完了画⾯ Web掲載機能 物件選択画⾯ 掲載完了画⾯
務
1.2.1 業務フロー図を利⽤した
結合テストケース作成の問題点(1)
登録機能 登録する 結合テスト後半では、設計時に作成した業務フロー図を もとにテストケースを作成する(業務シナリオテスト) 承認機能 Web掲載機能 画像登録機能 登録する 登録する 画像登録する ⾮承認 承認する 結合テスト ケース表 (機能間連携) 結合テスト ケース表 (機能間連携) 結合テスト ケース表 (機能間連携) ユースケース テスト技法など 8 Web掲載機能 ただし、上流で業務フロー図を作成する⽬的は 「お客様の業務を分析し、要件を確定させること」業務フロー図が全ての機能間連携パターンを
網羅しているわけではない
1.2.2 業務フロー図を利⽤した
結合テストケース作成の問題点(2)
登録機能 登録機能 (追記・修正)登録する ⼀般的な業務フロー図 機能連携パターンテストすべき 承認機能 画像登録機能 登録する 登録する 画像登録する ⾮承認 承認する 承認機能 画像登録機能 画像登録する (追加・修正) ⾮承認 画像登録する (追加・修正)Copyright © 2011 NTT DATA CORPORATION 9
Web掲載機能 承認する Web掲載機能 業務フロー図では 記述されづらい フロー
⼀般的な業務フロー図をもとにテストケースを作成した場合、
結合テスト(機能間連携)としては
網羅性が⾜りない
課題⼀般的な業務フロー図をもとにテストケースを作成した場合、
結合テスト(機能間連携)としては
網羅性が⾜りない
課題 1.3 結合テスト(機能間連携)の新⼿法について業務フロー図
業務フロー図
業務フロー図
結合テストケース表結合テストケース表結合テストケース表網羅性の低い網羅性の低い網羅性の低い業務フロ 図
業務フロ 図
業務フロ 図
結合テストケ ス表 (機能間連携) 結合テストケ ス表 (機能間連携) 結合テストケ ス表 (機能間連携)業務フロー図
業務フロー図
業務フロー図
1.3 結合テスト(機能間連携)の新⼿法について 網羅性の⾼い 結合テストケース表網羅性の⾼い 結合テストケース表網羅性の⾼い 結合テストケース表業務フロ 図
業務フロ 図
業務フロ 図
結合テストケ ス表 (機能間連携) 結合テストケ ス表 (機能間連携) 結合テストケ ス表 (機能間連携)新⼿法
SFマトリクス
Copyright © 2011 NTT DATA CORPORATION 11
網羅性の⾼い結合テストケース表(機能間連携)を
作成するための新⼿法「
SFマトリクス
」を提案する
2. SFマトリクスの提案
新⼿法「SFマトリクス」とは
12
SFマトリクスの特徴
SFマトリクスの効果検証
2.1 機能間連携で重要なポイント
W b掲載 機能間連携の結合テストでは、データの更新に着⽬することが重要 ⇒ある機能がテーブル(またはセッション、ファイルなど)内のデー タを更新することにより、その後に実⾏する機能(連携する機能) の振る舞いが変わる 登録機能 承認機能 Web掲載機能 作成 参照 更新 承認待ち 承認済み 掲載済み 更新 参照 画像登録 機能 承認待ち 更新 参照 物件情報テーブルCopyright © 2011 NTT DATA CORPORATION 13
データの
状態遷移
に着⽬し、
機能間連携
を
網羅できる⼿法を開発する
⾮承認
2.2.1 新⼿法「SFマトリクス」(1)
■SFマトリクス(State-based Feature Matrix)
• 機能実⾏後の「状態」に着⽬し、業務内の2機能連携を網羅する表 • 状態遷移表から容易に作成することが可能 2番⽬に実⾏する機能 後機能 前機能・アクション/ 遷移後状態 登録 画像登録 承認 Web掲載 (完了) (開始) 状態なし ○ - - - -登録 登録する 承認待ち ○ ○ ○ - -画像 登録 画像登録する 承認待ち ○ ○ ○ - -登録 する 承認 承認しない承認する 承認済み⾮承認 ○○ ○○ -- ○- - -Web 掲載 掲載する 掲載済み - - - - ○ 1番⽬に実⾏する 機能・アクション アクション実⾏後の状態遷移 14 連続実⾏の可否 ○:連続して実⾏可 - :連続して実⾏不可
2.2.2 新⼿法「SFマトリクス」(2)
後機能 登録機能 連続して実⾏可各セルを確認することで、
連続して実⾏可能な機能
で
あるかどうかを判断することが可能
後機能 前機能・アクション/ 遷移後状態 登録 画像登録 承認 Web掲載 (完了) (開始) 状態なし ○ - - - -登録 -登録する 承認待ち ○ ○ ○ - -画像 登録 画像登録する 承認待ち ○ ○ ○ - -登録機能 承認機能 登録する 連続して実⾏不可Copyright © 2011 NTT DATA CORPORATION 15
登録 する 承認 承認する 承認済み ○承認 ○ - ○ -しない ⾮承認 ○ ○ - - -Web 掲載 掲載する 掲載済み - - - - ○ 承認機能 Web掲載 承認しない
×
2.3.1 SFマトリクスの特徴(1)
後機能SFマトリクスを作成することにより、結合テストで
実施すべき
2機能連携のパターンを全て表現できる
テストすべき 機能連携パターン 後機能 前機能・アクション/ 遷移後状態 登録 画像登録 承認Web掲載 (完了) (開始) 状態なし 1 - - - -登録 -登録する 承認待ち ② 3 4 - -画像 -画像登録 承認 ⑤ ⑥ 7 登録機能 画像登録 機能 8,11 ⑤ ⑨,⑫ 3 4 1 機能連携パタ ン ⑥ ② 16 登録 する 待ち ⑤ ⑥ 7 - -承認 承認する 承認済み 8 ⑨ - 10 -承認 しない ⾮承認 ⑪ 12 - - -Web 掲載 掲載する 掲載済み - - - - 13 承認機能 Web 掲載機能 7 10 13 業務フロー図では記述されづらい フロー2.3.2 SFマトリクスの特徴(2)
それぞれの単機能に閉じた状態遷移を明確化するだけで、
全ての2機能連携が洗い出せる
• 「連続して実⾏できる機能」のパターンを全て洗い出せる 全ての2機能連携を表現できるため 網羅性の⾼い結合テストケ • 全ての2機能連携を表現できるため、網羅性の⾼い結合テストケー ス(機能間網羅)が作成できる • SFマトリクスからフロー図に変換することにより、3機能以上の機 能連携テストも実施できる
表形式のため記述が容易である
• 業務フロー図や状態遷移図のような「図の記述」に⽐べ、作成やレ ビューが容易である
本来連携するべきでない機能を把握できる
• 禁則の仕様通りかをテストできる 17Copyright © 2011 NTT DATA CORPORATION
2.4 SFマトリクスと状態遷移表との違い
機能 アクション 遷移前状態 登録 画像登録 承認 登録する 画像登録する 承認する しない承認 状態なし 承認待ち - - -後機能 前機能・アクション/ 遷移後状態 登録 画像登録 承認 Web掲載 登録 登録する 承認待ち ○ ○ ○ -画像 画像登録 SFマトリクス 状態遷移表(0スイッチ) 機能A 機能D 状態なし 承認待ち 承認待ち 承認待ち 承認待ち 承認 ⾮承認 承認済み 承認待ち 承認待ち - -⾮承認 承認待ち 承認待ち - -画像 登録 画像登録する 承認待ち ○ ○ ○ -承認 承認する 承認済み ○ ○ - ○ 承認 しない ⾮承認 ○ ○ - -SFマトリクスで表現できる範囲Copyright © 2011 NTT DATA CORPORATION 18
機能 機能B 機能C 機能 機能E 機能F 状態A 状態B 状態遷移表(0スイッチ)で表現できる範囲
後機能
2.5 上流でのSFマトリクスの活⽤
SFマトリクスを作成することにより、「連携すべき機能」「連携すべきで ない機能」を表形式で整理することができる ⇒ お客様と要件を決定するときのコミュニケーションツールとなる 後機能 前機能・アクション/ 遷移後状態 登録 画像登録 承認 Web掲載 (完了) (開始) 状態なし ○ - - - -登録 -登録する 承認待ち ○ ○ ○ - -画像 登録 画像登録する 承認待ち ○ ○ ○ - -例) 「承認しなかった」後、 再度「承認する」ことは できなくてよいのか? 登録 する 承認 承認する 承認済み ○承認 ○ - ○ -しない ⾮承認 ○ ○ - - -Web 掲載 掲載する 掲載済み - - - - ○ 19Copyright © 2011 NTT DATA CORPORATION
2.6.1 SFマトリクスの効果検証⽅法
■対象システム:社内システム (購買管理) ■検証⽅法:SFマトリクスを利⽤しない場合の結合テストケースと、 SFマトリクスを利⽤した場合の結合テストケースの 網羅性を⽐較する SFマトリクス を利⽤しない SFマトリクスを利⽤する SFマトリクス 業務フロ 図 SFマトリクス 業務フロー図網羅性を
⽐較する
結合テスト ケース表 結合テストケース表 機能間連携の洗い出し 機能間連携の洗い出し 20業務フロー図をベースにして
洗い出した機能連携パターン SFマトリクスをベースにして洗い出した機能連携パターン
2.6.2 SFマトリクスの効果検証結果
Copyright © 2011 NTT DATA CORPORATION 21
業務フロー図をベースにして 洗い出した機能連携パターン SFマトリクスをベースにして洗い出した機能連携パターン
2.6.2 SFマトリクスの効果検証結果
⾒落としがちな、繰り 返しなどの代替フロー、 途中終了などの例外フCopyright © 2011 NTT DATA CORPORATION 22
網羅性の⾼い機能連携パターンを抽出できる
SFマトリクスを利⽤した場合、業務フロー図よりも
ことを確認できた
網羅性の⾼い機能連携パターンを抽出できる
ことを確認できた
ローも抽出できた
(上記の機能連携パターンをもとにした結合テストケースの網羅率、およびソフトウェア 品質への影響は今後検証予定)
3. まとめと今後の課題
Copyright © 2011 NTT DATA CORPORATION 23