2013年1月30日
JaSST’13東京 テクロノジーセッション

テスト項目数を大幅に削減する「組合せテスト」の効果的活用方法
R&D部 上席研究員
石原一宏

本日の流れ
第1章 テスト設計技法について
第2章 組合せテスト技法の基本
第3章 組合せテスト技法の実践テクニック

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

1

第1章 テスト設計技法について

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

参考. 開発規模の移り変わり

出典： 産業構造審議会情報経済分科会 「ＩＩＴ投資の効率性の向上」資料より(2007年3月)
http://www.meti.go.jp/committee/materials/downloadfiles/g70507a06j.pdf
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

2

ソフトウェア開発現場ではソフトウェアの品質低下
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

テストケース数はいくつになるか？①

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

3

テストケース数はいくつになるか？②
全因子間網羅だと、 4×3×2×2×4×2=384通り

あっという間にテストケース数は増大する！
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せテストとは ①
テストでは下記の問題で悩まされる

入力条件の組合せが多すぎてテストしきれない。
少ないテスト項目数で多くの欠陥を効率的に発見したい。

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

4

組合せテストとは ②

複数の機能間での組合せを網羅できる。
さら大幅にテスト項目数を削減する事ができる。
入力条件のうち、全てのペアを組合せてテストする事で効果的に欠陥を検出できる。

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せ技法とは何を組合せるのか？
設定項目、設定値を組合せる
組合せ方によってテスト項目数を削減する
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

5

組合せテスト技法って？
組合せテスト技法は、いくつかのパラメータの組合せによって起こる不具合の発見が目的。

最大の魅力は、テストケース数の削減「全網羅テスト」のケース数と比較すると、半分あるいはそれ以上の削減が可能。

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せテスト技法の実例
組合せテスト技法を使用したテストと使用していないテストとの比較では、テストの実施工数が半分で、元のテストより20％増の不具合を発見できました（実質効率140％UP）。

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

6リスクとコストのトレードオフ
組合せテスト技法には常に、全網羅をしていない事によるテスト漏れのリスクがあります。しかし、テストケース数が削減されるということは、コストメリットになります。
よって適用の際にはリスクとコストをトレードオフし、どのテスト対象に対して適用するのかを判断する必要があります。

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

第2章 組合せテスト技法の基本

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

7

組合せテスト技法の適用例 ①

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せテスト技法の適用例 ②
全因子間網羅だと、 384通り

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

8

組合せテスト技法の適用例 ③2因子間の組合せ： 384通り → 16通り

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せの方法○全因子間網羅では数が多い○ある因子の間では、全ての水準が組合されているようにする

n因子間網羅を適用するCopyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

9n因子間網羅の例 （2因子間網羅）
どの2因子間においても、全水準の組合せが網羅されていること
３つのスイッチに関して、全因子間網羅と2因子間網羅の比較すると…

スイッチ１スイッチ２

ケース１

スイッチ３

ON

ON

ON

ケース２

ON

ON

OFF

ケース３

ON

OFF

ON

ケース４

ON

OFF

OFF

スイッチ１スイッチ２スイッチ３

ON

ON

ON

ケース５

OFF

ON

ON

ケース１

ケース６

OFF

ON

OFF

ケース２

ON

OFF

OFF

ケース７

OFF

OFF

ON

ケース３

OFF

ON

OFF

ケース８

OFF

OFF

OFF

ケース４

OFF

OFF

ON

全因子間網羅2因子間網羅Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

どのくらい網羅すればいいのか• NASAにおけるデータベースの欠陥329個を分析したところ、全体の93％がシングルモードまたはダブルモードの設定の組合せで欠陥が発生• Webブラウザではトリプルモードで95％の欠陥を検出（ダブルモードでは76%）
シングルモード：その機能（因子）自体で欠陥が発生
ダブルモード：2つの機能（因子）で欠陥が発生
トリプルモード：3つの機能（因子）で欠陥が発生
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

10n因子間網羅の例 （2因子間網羅）

Software Fault Interactions and Implications for Software Testing
D. Richard Kuhn
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 30, NO. 6, JUNE 2004
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せテスト技法とは複数の機能（因子）の組合せによる欠陥を検出する
言いかえると組合せ技法とは直交表、All-Pairs法などを用いて因子・水準をn因子間網羅にする技法である

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

11

第3章 組合せ技法の実践テクニックCopyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せテスト技法の適用• もっとも重要なことはどの因子・水準を抽出して組合せるか

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

12

組合せテスト技法適用までの流れ①
1.ステークホルダにヒアリング
2.テスト対象に関する因子・水準の洗い出し
3.組合せ技法を適用するかどうか選択する
4.適用対象となる因子・水準、またその優先順位を決定する

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せテスト技法適用までの流れ②
テストの目的を明確する

重要テクニック①

テストの目的もなく、仕様書から因子水準を拾った例
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

13

組合せテスト技法適用までの流れ ③
テストの目的を明確する

重要テクニック①

目的を「写真撮影機能」に絞って因子を選択
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せテスト技法適用のポイント ①• 前提条件として、単機能のテストが終了している必要がある• 単機能での不具合が多い場合、不具合の原因特定ができずテストが進まない（単機能の不具合なのか、組合せによる不具合なのかが分からない）

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

14

組合せテスト技法適用のポイント ②• 広い範囲のテストを実施する• 項目数が多いテストに対する項目数削減• 新機能ではなく、既存機能へのテスト• 設定値（因子）が多い• リソースが限られているテストの目的に合うように適用すること
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せテスト技法適用のポイント ③• 常にリスクを意識すること！
組合せ技法は3因子間以上の網羅率が100％になることを保証していない
テストしていない組合せは存在する
ステークホルダと打合せをして必要な組合せは追加することも考慮する
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

15

組合せテスト技法のメリット○組合せ技法のメリット
・単機能のテストをしつつ、複数の機能を組合せたテストが可能
・テスト項目数の削減
・規則的な組合せ網羅ができる・因子・水準が抽出できれば、テストケースの作成は比較的容易
・2因子間網羅での欠陥の発見率が高いことが立証されている（効率的）Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

組合せテスト技法のデメリット○組合せ技法のデメリット
・全部の組合せを網羅していない（2因子間まで網羅率100％を保証）
・因子・水準の抽出に失敗するとテストケースに意味がなくなる
・禁則回避にテクニックが必要（ツールを使えば容易）

組合せ技法は万能ではない
Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

16

まとめ
組合せ技法は複数の因子の組合せをテストする技法（n因子間網羅）。
必要な因子・水準をステークホルダと共同で割り出すことが重要。
メリット・デメリットを十分に考慮して技法を使用すること。

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

Qumias - Combination Designer
Pairwise法による組合せテストケース生成ツール

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

17無料登録受付中！
組合せテストケース作成ツール“ Qumias “はより、www.Qbook.jpダウンロードできます。

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

ご清聴ありがとうございました

Copyright (C) 2012 VALTES CO.,LTD. All Rights Reserved.

18