Pairwiseテスト導入の効果と課題

Pairwiseは大規模パッケージソフトウェアで効果的に運用できるか

株式会社ワークスアプリケーションズ

アドバンスト・テクノロジー＆エンジニアリング本部
品質エンジニア

森山 貴士

テスト設計の技術
テストケース

でくもだそうですが、元ネタがわからん・・・OKWAVE?
知ってたら誰かつぶやいて！

いしますたぶんみんなが思ってること過去・現在・未来
すべてのバグを生まれる前に消し去りたい！

ながらこの いを叶える白い小動物にはなれなかったので、事 発表をします。

pairwisetestingpairwise?
無限に増える組み合わせを実 可能なレベルまで少なくするテスト手法

組み合わせテストの

因子と「天気」が「晴れ」なら洗濯物を干す

因子

水準

pairwise.
Pairwiseとに扱われるもの
・直交表
・HAYST法※

くの合因子までの合がとん

参考：Cumulative Percent of Faults Triggered by n-way Conditions

IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 30, NO. 6, JUNE 2004 D.
Richard Kuhn, Senior Member, IEEE,Dolores R. Wallace, Member,IEEE Computer Society,and Albert M. Gallo Jr.

Pairwise!
どんなときに使える？
 どういう風にしたら運用できる？
 他のメリットは？
 問題は？
 何から始めたらいい？

自己紹介

森山 貴士

Moriyama Takashi








1986

大阪生まれ 25歳

2009

ワークスアプリケーションズ入社

大北部卒

品質技術系の部署に配属されて3
facebookもやってます目弊社の紹介株式会社ワークスアプリケーションズ



事業内容：

大手企業向けERPパッケージ「の開発･販売･サポート

企業：」「日本の午匔匐 効厾を匒化レベル 」「日本のクリティカルワーカーに活躍の場を」今の人事発と る品

COMPANY・プロジェクト

各種申請

給与集計

COMPANY HRシリーズのうちひとつ 日々の出の占 や休暇など、勤怠に関わる業務を扱う


開発規模：500万ステップ
バージョンアップ：３回以上

会計叀（ACｼﾘｰｽﾞ）

背景機能の成 に回テストの実が間に合わない

機能の成回 テストの成背景機能が複雑になり、組み合わせが増大
テスト数が増え、メンテナンスコスト増大
ﾞｰｼﾞ

ごとの回テストが勘厝分になる

デグレードのリスクが高まってしまう

MISSION

デグレードしないように的な回 テストを作って運用し！

問題と仮説わかっている問題点
スピードが追いつかない機能に対してカバーできている範囲が限定的
やり方が属人化している全体として実 テストをできていないデグレードのリスクが高まってしまうPairwiseに着目

Pairwise 用をしたより効厾的に勘合合検出できる範囲を 大できる
組み合わせは自動出考えがうのでなので属人化できるもしやすくなる的な回 テストが実！

匪

調査

合

レ ートを

勘 合の 匁レポートの発生条件から、過去の勘 合の因子数を調査


過去1 間のリリース
ノートからレポート
200件を無作為抽出

うち機能追加を除いた勘 合の145件について調査

合の85%が2因子間までで発生

3~ 因子

15%

~2 因子

85%
(n=145)

スピード重視でPairwiseを採用

実施の概要検証方法
休暇取得サブシステムについてのそれぞれの機能に対して、機能テストを実 既存の方法とPairwiseを匏用した方法の方で検証を実施
方の運用方法を发 して 卒を った

既存の方法で実施した期間

2010.7~12

Pairwiseを用いて実施した期間

2011.1~6

テストの組み合わせ作成方法
PictMasterを匏用して組み合わせを作成© IWATSU System & Software Co., Ltd.
Licensed under the Open Software License version 2.0

PICT＋PictMasterでできること
因子と水準から因子間をした組み合わせを生成 「天気」が「晴れ」なら「洗濯物」は絶対「干さない」のような制約指定
 「晴れ」は多めに出現させたいなどの重み付け
 組み合わせ条件からの想定結果の記述


その他、他にも色々あります。

テストケース作成のルール
することを軸に設定対象機能を決める
 仕様として関わる因子を抽出する
 また、過去の勘合レポートから対象機能にがあった因子をすべて抽出する
 設定上できない、業務上ありえないもののみを制約条件として指定
 重み付けは厃勪で実

実施の結果Pairwise 用をしたより効厾的に勘合合検出できる範囲を 大できる
組み合わせは自動出考えがうのでなので属人化できるもしやすくなる的な回 テストが実！

○ テストケースあたりの合検が1.6x

beforeafter

上Pairwise 用をしたより効厾的に勘合合検出できる範囲を 大できる
組み合わせは自動出考えがうのでなので属人化できるもしやすくなる的な回 テストが実！

○1あたりのも1機能に対するテストあたりの因子数の変化

AVG.=5.6before

AVG.=9.2

afterPairwise 用をしたより効厾的に勘合合検出できる範囲を 大できる
組み合わせは自動出
考えがうのでなので属人化できるもしやすくなる的な回 テストが実！

△ きちんとしたレビューはやはり必要
かったとこ

やり方自体はかなり統一しやすい
課題

慣れていないとPairwiseすることが目的になり軸がぶれる
制約条件の指定が思ったより複雑

Pairwise 用をしたより効厾的に勘合合検出できる範囲を 大できる
組み合わせは自動出
考えがうのでなので属人化できるもしやすくなる的な回 テストが実！

今後の課題で話します

まだ準備中…

その他の取り組み

ありませんか？手順書の記述ミス

このパターンは本当は半日では？
いやいや想定結果が間違いでは？

Pairwiseを使うことでパターンのマスタができるこれを参照して手順をつくってみる

＝手順書でコピペミスしない！

問題点＝これがEXCELだってこと。

発生した課題

目がたがちたDown...

beforeafter

くった因子が増えてテスト実施が複雑化
含める因子が多くなった
分、設定項目が増大
に実 コストが増大 複雑な叀の中で作業ミスが増大

の+2~3時間の作業でほぼ変わらないスピードに事前設定部分をバッチ化
 作業者は業務画面のみ
実 してテストを実施

UP!

まとめ

まとめ
過去の因子を調べるだけでも設計はしやすくなるまとめパッケージ・組み込み系など機能が複雑になりやすいソフ
トウェアで使いやすいと思われる

まとめ
ルールは決めやすいが完全なルーチン化ができるわけではない

まとめ
Pairwiseは何 も使うテストに匏用すべし

今後の展望Pairwise 用をしたより効厾的に勘合合検出できる範囲を 大できる
組み合わせは自動出考えがうのでなので属人化できるもしやすくなる

的な回 テストが実！

今後の展望大のブ ックックステストを体系的に個々の要素が全体もれなく構成することを示す
 ある機能に手を入れたときに実 すべき範囲は？
 実施
結果レポートまでを自動で実 できる どこでどんなテストがされているか可視化今後の展望プロトタイピングとツールの検討

TestLink

提案用プロトタイピング

最後に品質技術業界をもっと盛り上げたい・・・!
品の品質向上と自 の成 技術や取り組みの向上や共有 厣にい人で り上 たい

以上となります。
ご清聴ありがとうございました！
今 もよ しくいします。