hayst法を用いたテスト工程支援アプリケーションの構築 ...€¦ ·...

4
技術報告 HAYST法を用いたテス ト工程支援アプリケーションの構築 HAYST法を用いたテス ト工程支援アプリケーションの構築 秋葉 知昭★,斎 藤 和明★ ASupportingSystemforSoftwareTestingProcessw ithHAYSTMethod TbmoakiAkiba★andKazuakiSaito 要 旨 :近年 ,システムの複雑化や多機能化 によ りソフ トウェアの コー ド数 が増大 し,それ に伴 う不具合 を防 ぐために,ソフ トウェアの品質や高信煩性 ・安全性の確保が重要な課題 とされている.しか し開発期間の短縮 と開発費削減 を求め られ る現状か ら,晶質確保 のために必要 なテス ト工程 に掛 け られ る工数や時間が限 られて いる.そこで高信頼性 ・安全性の確保のために,テス ト工程 を効率良く実施するための手法は有用な手段 とな る.本研究では,LIAYST 法の手法を用いて,効率的な組み合わせテス ト実施 とその評価 を支援す るアプ リケ ーションを構築 した.本報告ではテス ト工程の効率化に有用な HAYST法を紹介すると共に,本研究で構築 し たテス ト工程支援 アプ リケー シ ョンの概 要 を示す キーワー ド ソフ トウェアテス ト,直交表 ,HAYST1 .緒 近年の高度情報化社会では,様々な分野におい てコンピュータシステムが利用 され,社会の中で 重要な役割を担っている.システムの構成要素で あるハー ドウェア分野は,構造物性や設計等,高 信頼性 と安全性確保のための研究が進み,技術 と して実現 されている.それに対 して,システム内 で運用,または組み込まれるソフ トウェア分野で は信頼性 ・安全性 が問題視 され るよ うになった. 金融機関の経営統合による ATM システム トラブ ルや,自動車のブ レーキ制御プ ログラムの不適切 な設定による特定条件下での動作 トラブルな どは 記憶に新 しいが,バグ (プログラムの欠陥)や不 具合が表面化すると,ユーザに大きな影響を及ぼ しかねない. この よ うな不具合 を防 ぐために も, ソフ トウェアの高信頼性,安全性の確保が重要な 課題 とされている .) .また,近年はソフ トウェア の多機能化によりコー ド数が増大の一途にある. 大規模なソフ トウェア開発は同時に生産性の低下 を招 き,単機能のみな らず複数機能の組み合 わせ の交互作用の検討が不足 し,結果 として不具合を 発生 させ ると考 え られ る 2). システ ム開発 工程 をV字モデルに当てはめて考 えると,要求定義から内部設計までの設計工程, コーディング,そ して,単体テス トか ら運用テス トまでのテス ト工程 を経てシステムは開発 され る 製品出荷前に前述のようなバグや不具合を抑える 山形 県 立産 業技術 短 婚l大学校 〒990-2473 山形県山形市松栄 2 丁目 2 1号 YamagataCollegeoFlndust lY皮Technology 2-2 - 1,MatsLLel,Yamagata,Yamagata,990-2473,JzIPan e-mall.(lklba@aslro・yamagal・1- C )I.aCJP ためには,後半のテス ト工程が重要である. しか し近年では,開発期間の短縮 と開発費削減 を求め られ る現状 か ら,開発期 間 においてテ ス ト工程 に 掛 け られ る工数や時 間は限 られ てい る.テス トす べ き機能や 条件 を総 当 り的 に網羅 したテ ス ト評価 は理想的であるが,これは多大な時間・労力が必要 で効率が悪 く,すべての組み合わせを実施するこ とは実質不可能である. そ こで ソフ トウェアテス トの工数や時間の短縮 のために,主に結合テス ト以降において機能間の 組 み合 わせ を保 ちなが ら,テ ス トケー ス を大幅 に 絞 り込める "HAYST法"が提案 されている. 本研究では HAYST法によるテス ト工程支援ア プ リケー シ ョンを構築 し,テ ス ト実施 と評価 の支 援手段 を実現 した. 本報告はテス ト工程の効率化に有用な HAYST 法を紹介すると共に,本研究で構築 したテス ト工 程 支援 アプ リケー シ ョンの概 要 を示す . 2. ソフ トウェアテス ト 2.1開発工程におけるソフ トウエアテス ト V 字モデルにおけるテス ト工程は単体テス ト, 結合テス ト,システムテス ト,運用テス トの流れ で行 われ る. しか し前述 の よ うに,近年 は開発期 間の短縮の為に,主にテス ト工程の期間を短縮す るようになってきた.なぜならば,システム設計 や コーディングの時間を削ることに限界がある為 である.その結果,簡単な単体テス トとシステム テス トのみを行い,結合テス ト等がおろそかなま ま市場 に出荷 され る傾 向が あ る. 山形県立産業技術短期大学校紀要 v ol. 1 6,2010 - 63-

Upload: others

Post on 24-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HAYST法を用いたテスト工程支援アプリケーションの構築 ...€¦ · たテスト工程支援アプリケーションの概要を示す キーワード ソフトウェアテスト,直交表,hayst法

技術報告 HAYST法を用いたテスト工程支援アプリケーションの構築

HAYST法を用いたテス ト工程支援アプリケーションの構築

秋葉 知昭★,斎藤 和明★

ASupportingSystemforSoftwareTestingProcesswithHAYSTMethodTbmoakiAkiba★andKazuakiSaito★

要旨 :近年,システムの複雑化や多機能化によりソフ トウェアのコー ド数が増大 し,それに伴 う不具合を防

ぐために,ソフ トウェアの品質や高信煩性 ・安全性の確保が重要な課題とされている.しかし開発期間の短縮

と開発費削減を求められる現状から,晶質確保のために必要なテス ト工程に掛けられる工数や時間が限られて

いる.そこで高信頼性 ・安全性の確保のために,テス ト工程を効率良く実施するための手法は有用な手段とな

る.本研究では,LIAYST法の手法を用いて,効率的な組み合わせテス ト実施とその評価を支援するアプリケ

ーションを構築 した.本報告ではテス ト工程の効率化に有用なHAYST法を紹介すると共に,本研究で構築し

たテス ト工程支援アプリケーションの概要を示す

キーワー ド ソフ トウェアテス ト,直交表,HAYST法

1.緒 言

近年の高度情報化社会では,様々な分野におい

てコンピュータシステムが利用され,社会の中で

重要な役割を担っている.システムの構成要素で

あるハー ドウェア分野は,構造物性や設計等,高

信頼性と安全性確保のための研究が進み,技術と

して実現されている.それに対 して,システム内

で運用,または組み込まれるソフ トウェア分野で

は信頼性 ・安全性が問題視されるようになった.

金融機関の経営統合による ATM システム トラブ

ルや,自動車のブレーキ制御プログラムの不適切

な設定による特定条件下での動作 トラブルなどは

記憶に新しいが,バグ (プログラムの欠陥)や不

具合が表面化すると,ユーザに大きな影響を及ぼ

しかねない.このような不具合を防ぐためにも,

ソフ トウェアの高信頼性,安全性の確保が重要な

課題とされている .).また,近年はソフ トウェア

の多機能化によりコー ド数が増大の一途にある.

大規模なソフトウェア開発は同時に生産性の低下

を招き,単機能のみならず複数機能の組み合わせ

の交互作用の検討が不足し,結果として不具合を

発生させると考えられる2).

システム開発工程をV字モデルに当てはめて考

えると,要求定義から内部設計までの設計工程,

コーディング,そして,単体テス トから運用テス

トまでのテス ト工程を経てシステムは開発される

製品出荷前に前述のようなバグや不具合を抑える

山形県立産業技術短婚l大学校

〒990-2473山形県山形市松栄 2丁 目2番 1号

YamagataCollegeoFlndustlY皮Technology2-2-1,MatsLLel,Yamagata,Yamagata,990-2473,JzIPane-mall.(lklba@aslro・yamagal・1-C)I.aCJP

ためには,後半のテス ト工程が重要である.しか

し近年では,開発期間の短縮と開発費削減を求め

られる現状から,開発期間においてテス ト工程に

掛けられる工数や時間は限られている.テス トす

べき機能や条件を総当り的に網羅したテス ト評価

は理想的であるが,これは多大な時間・労力が必要

で効率が悪く,すべての組み合わせを実施するこ

とは実質不可能である.

そこでソフ トウェアテス トの工数や時間の短縮

のために,主に結合テス ト以降において機能間の

組み合わせを保ちながら,テス トケースを大幅に

絞 り込める "HAYST法"が提案されている.

本研究では HAYST法によるテス ト工程支援ア

プリケーションを構築 し,テス ト実施と評価の支

援手段を実現 した.

本報告はテス ト工程の効率化に有用な HAYST

法を紹介すると共に,本研究で構築 したテス ト工

程支援アプリケーションの概要を示す.

2.ソフ トウェアテス ト

2.1開発工程におけるソフ トウエアテス ト

V字モデルにおけるテス ト工程は単体テス ト,

結合テス ト,システムテス ト,運用テス トの流れ

で行われる.しかし前述のように,近年は開発期

間の短縮の為に,主にテス ト工程の期間を短縮す

るようになってきた.なぜならば,システム設計

やコーディングの時間を削ることに限界がある為

である.その結果,簡単な単体テス トとシステム

テス トのみを行い,結合テス ト等がおろそかなま

ま市場に出荷される傾向がある.

山形県立産業技術短期大学校紀要 vol.16,2010

- 63-

Page 2: HAYST法を用いたテスト工程支援アプリケーションの構築 ...€¦ · たテスト工程支援アプリケーションの概要を示す キーワード ソフトウェアテスト,直交表,hayst法

tiAYST法を用いたテス ト工程支援アプリケーションの桝築

結合テス トの目的は単体テス トが完了し,単体

としての晶質が保証されたプログラムが,次に相

互に連携 して要件通りに機能するかどうかを検証

することである.代表的なものに機能単位にプロ

グラムを結合してテス ト対象とするブラックボッ

クステス トがある.ブラックボックステス トを実

行する場合,機能の組み合わせを確認する場合が

ある.しかし,機能組み合わせ確認を無条件に全

て行 うことは,テス ト項目が指数関数的に増加す

ることを意味し,テス トを実施することが不可能

になる.この全ての組み合わせの発散を抑える方

法の一つとして 「直交表を活用したテス ト設計」

を行 うことが有効であると言われている3).

2.2HAYST法

2.2.1 HAYST法の概要

HAYST 法は富士ゼロックス社の吉滞氏と秋山

氏らが中心となって考案したソフトウェアテス ト

における組み合わせ手法のひとつである 2).基本

のアイディアとして用いているのは直交表である.

直交表は実験計画法や品質工学などで用いられ

ているツールの一つである.これをソフ トウェア

テス トに応用する場合,直交表における "因子"

には評価対象の機能,"水準"には評価対象の機能

が取り得る選択肢を割り振って考える.例えば,

読み込み機能として 「データを読み込む」と 「新

規で作成」,保存機能を 「新規保存」と 「上書き保

存」,削除機能を 「削除する」と 「削除しない」の

それぞれ 2つの選択肢を取る3つの機能で組み合

わせテス トを行う場合,全ての組み合わせテス ト

をすると8通りのテス トケースが必要なのに対し,

直交表を用いた組み合わせテス トは4通 りのテス

トケースの実験で全ての組み合わせを網羅する.

直交表には任意の2因子間の全水準の組み合わ

せが表れるという特徴がある.しかも2因子間だ

けではなく,同時に他の因子問の組み合わせにつ

いても同時にテス トしているところに特徴がある.

これにより,様々な水準の因子の組み合わせを行

っているにも関わらず,少ないテス ト回数で網羅

率 (カバレッジ)を保つことができる,網羅率は

式(1)で求められる.この式の分子は全因子 ・全水

準の総組み合わせに対して,直交表に出現する組

み合わせを意味する.

網羅率 =

マトリクスに出現する組み合わせ

(全ての機能の因子間の組み合わせ)-(禁則組み合わせ)

山形県立産業技術短期大学校紀要 Vol16,2010

-64-

しかし,直交表には複数の水準を割り付ける事が

難 しく,2水準間の網羅率は 100%だが 3水準以上

の網羅率は 100%を保証できず,テス ト項目数も

増えてしまいテス ト実現性が無くなるなど欠点が

ある.その他にも直交表をソフトウェアテス トに

適用すると,次のような課題が挙げられる.

① どの大きさの直交表を選べば良いか

② 多水準の因子を割 り付ける方法

③ 水準間の禁則 (詳細 ま後述)が発生するため,

そのテス トケースの扱い

HAYST 法は以上の課題を踏まえた実践的なソ

フトウェア組み合わせテス ト手法である.

2.2.2 直交表の活用方法

組み合わせテス トにおいて必要な直交表の大き

さは次式で求められる.

直交表の大きさ-∑(各因子の水準-1汁1 (2)

例えば因子 3,各因子の水準 2の場合,式(2)よ

り L4(23) の直交表を用いれば良い・

しかし,実際のソフトウェアテス トでは,因子

が2水準で収まらない場合が存在する.この場合

には次の方法を用いる.

表 1に示した ⊥8(27) の成分 a,bを連結して 2

進数の値と捉えるとM00","01","10",Hll"となり, 0

から3の整数に置き換え可能である.この方法で

2水準の2列から4水準の成分Aを導くことがで

きる(表2).この時,直交表を維持するためには,

連結した成分の排他的論理和によって生成された

列を削除する必要があるので,成分 abの列は削除

する.よって表 2の直交表が導かれる.

このように生成 した多水準の列は2のべき乗に

なるが,割 り当てる水準が余ってしまう場合には

ダミー水準を割 り付け,直交表を満たす.

このダミー水準を有効に用いる方法として,そ

表1 直交表 L,8(27)

列 1 2 3 4 5 6 7

No.I 0 0 0 0 0 0 0

No.2 0 0 0 I 1 1 1

No.3 0 1 1 0 0 1 】

No.4 0 1 1) I 0 0

No.5 i 0 1 0 1 0 1

No.6 ー 0 1 ) 0 1 0

No.7 I 】 0 0 1 】 0

No.8 1 L 0 】0 0 1

Page 3: HAYST法を用いたテスト工程支援アプリケーションの構築 ...€¦ · たテスト工程支援アプリケーションの概要を示す キーワード ソフトウェアテスト,直交表,hayst法

HAYST法を用いたテスト工桜支援アプリケーションの構築

表 2 直交表 ⊥(24+4)

列 1&2 4 〕8\JL'5 1ーノ6 7

No.1 0 0 0 0 0

No.2 0 I l 1 1

No.3 1 0 0 1 I

No.4 1 I 1 0 0

No.5 2 0 I 0 1No.6 2 i 0 I 0No.7 3 0 1 1 0

No.8 3 1 0 0 】

れ以前のテス トで不具合があった水準をダミー水

準に割 り付けて再テス トすることにより,バグの

発生 した周辺の組み合わせテス トをより多く実施

するといった活用も可能である.

またソフ トウェアテス トでは,同時に設定でき

ない医】子 ・水準が存在する場合がある.同時に選

択できない組み合わせを禁則と呼ぶ.禁則の少な

い場合には,テス トを実施 している時に,禁則を

回避 しながら必要な組み合わせをテス トする.し

かし複数の禁則がある場合や因子が絡み合った禁

則の場合は,テス トしながら禁則を回避するのは

手間がかかる上,テス ト実施工程の大幅な増加に

繋がる.そこで HAYST法ではテス トをしながら

禁則を回避するのではなく,因子と水準を直交表

に割 り付ける段階で禁則を回避する.それによっ

てテス ト実施中は禁則が発生しないようにする.

表 3 Webアプ リケーション開発/実行環境

CPU hte1(R)Xeon(R)1.86「GHz1

メモ リ 2.0[GB]

H_DD 250「GB1OS CentOS5 Linux2.6.18

Webサーバ Apache-2.2.Ⅰ4

データベース PostgreSQL-8.2.6

(か保存 ②読み込み ③削除

図 1 システム概要図

3.組み合わせテス ト支援アプリケーション

3.1アプリケーションの詳細

本研究で構築 した支援アプリケーションは,組

み合わせテス トを効率良く実施することを目的と

して,HAYST法に基づいたテス トケース生成を

行 う.またwebアプリケーションとして構築する

ことにより,利用環境の影響の排除を考慮する.

実装環境はLAPPとし表 3の仕様で構築 した.支

援アプリケーションシステムの概要を図 1に示す.

このアプリケーションでは利用者をユーザとし,

ログインせずに利用する一般ユーザと,アカウン

トを作成 してログインして利用するログインユー

ザを定義した.いずれのユーザも入力ページで因

子 ・水準を入力 し,それを基にテス トを実施 し,

テス ト結果を分析することができるが,登録され

たログインユーザは,分析結果の保私 読み込み,

削除機能が利用できるようになる.

一般ユーザは トップページからテス ト実行,ロ

グイン,新規登録を行 うことができる.入力ペー

ジでは因子(機能)・水準(機能の取 り得る選択肢)

を入力 し,それを基にテス トケースを生成する.

また,操作方法が分からないユーザのために文字

による案内と,実際に入力 した画面の画像で補助

した.図2にテス トケース生成例を示す.生成さ

れたテス トケースはランダムに実験順序を並び替

えられたものとなる.次に,生成された一回ずつ

水準の組み合わせを示すガイ ドに従ってテス トを

実施 し,ユーザはその時の検証結果を入力する.

図3は実験結果及び分析データの表示例である.

生成されたテス トケースに対 し,失敗 したテス ト

ケースは赤く表示して一目で分かるようにした.

因子数を湛択してQ:乱、-[二亘∈]因子1:押出指定 】水準:軒 レ叫 郎パイプ糎L I因子2‥卸乍 】 水準:掛 目陶紅出目 恒 加法†り叫因子3:匡至至=コ 水準:匝= =]匝亘=コ[:=二二コ[二二二二]因子4‥1 1水準‥日 日 E l=【コさ亙〕

呼出設定 動作

1回目___葬雪中 .

着信音 電話をかける (3い

2巨旧 Fバイブレーション 電話に出る いいえ

」 掴 日 掛害者 メールの送信 いいえ

伯 自 」 バイブレーション メールの受信 (乱、5回目 音&パイプ メールの送信 (乱、

8回目 fJ.し メ-ルの受信 いいえ

洞 El」_ 音&Ji517' 電話をかける いいえ

8回日 I なし 電話に出る (乱、

[二重杢コ

- 6 5 一

図2 因子と水準の入力及びテス トケースの生成

山形児立産業技術短期大学校紀要 Vol16,2010

Page 4: HAYST法を用いたテスト工程支援アプリケーションの構築 ...€¦ · たテスト工程支援アプリケーションの概要を示す キーワード ソフトウェアテスト,直交表,hayst法

HAYsT法を用いたテスト工程支援アプリケーションの桃築

呼出設定 動作

1回EI flE音 t!舌をかける

2回El i ・lZは ヨン ーピコしの夏色ーユ3回自 書&パイプ メールの送偲

i El臼 ′くイプレ1 ′ヨン t矧 こ出る

I E]自 書は音 メ~ルの送は

_j回B JaJ メールの労 苦7回El 昔&パイプ t話をかける

纏]自 /且ノ t!舌に出る

○×一〇

t

Ltえt,.<rti,え

_

仇仇ル

団子呼出!鑑定の水準arl5号では1ケ声札 Jくイプレーンヨンでは2ヶ所、音&パイプで(Joヶi)JiJSLで(30ヶ所、連子動作の水準電話をかけるでは1JT取 電!部こ出るでは1J}所.メールの送信では0ヶ所 メールの安倍ではけ所、因子充t中の水準(乱、で432ヶ所、いいえで131ヶ所に不且合があるようです.

各担子の一乙書度

各水草の休鼓

呼出設定の/くイブレーション椴

■出泣虫,〉書&ハイプt■ _______1ほ

呼出虹 のrJL柑 ■■■■lllllll■lllllllllll■ll15

軌作のt話をかける係数______016666666666667

動作のt!舌に出る麻菰 - 018666666668867

■作のメ-んのaflfFJL___ __ __ __・49

払作のメールの支憎係毒虫 o_16868666866887

充t中のほし、飽 + o'L5

充t中のtq.、え臨芸史 -■25

図3 テス ト結果表示

これにより,どの部分がどの程度失敗 したか明確

にした.更に本研究で構築 したアプリケーション

では,実験の結果を分析する際に,重回帰分析を

用いて各因子の失敗への影響度を示 した.

3.2アプリケーションの検証

構築 した支援アプリケーションは直交表を応用

した HAYST法に基づいて組み合わせテス トのテ

ス トケースの生成を行っている.例えば 8水準の

因子 A(水準は 11,】2,13,14,15,16,17,18),

4水準の因子 B(水準は21,22,23,24),4水準の

因子 C(水準は 31,32,33,34),4水準の因子 D(水

準は 41,42,43,44),2水準の因子 E(水準は,

51,52),2水準の因子 F(水準は 61,62)の 6つの

機能を組み合わせテス トする場合,全ての組み合

わせを一つ一つ実施すると 2048回の実験を実施

しなければならない.しかし式(2)を用いると必要

な大きさは 19 と求められるので,本研究で作成

したアプリケーションの案内に従 うと,この数を

満たす L,,2(23-) を用いれば良いことがわかる.

アプリケーションを使用 した際の組み合わせ網

羅率を調べるために,支援アプリケーションで上

記のテス トケースの生成結果から図4のマ トリッ

クスを作成する.グレー部は対角で同一となる組

み合わせを示 してお り,白いマスの部分が本研究

の支援アプリケーションのテス トケースで発生す

る水準間の組み合わせになる.網羅率は式(1)より

網羅率= 228 =1.0=100% (3)(228)-(0)

となり組み合わせを完全に網羅する事がわかる.

山形児立産業技術短期大学校紀要 Vol.16,2010

ll 12 13 1=ILL+A15 t6 t7 18 2ー 7322子823 24 3tl司32子033 3Jl41t司42子DLC 4Ll用51子E52 局61手F62

因子A Il

1213tJl

151817柑

良子E) 2122

2324

gl子C 31

32

3334

因子D 一1LIE43.1451

艶子E 52

図4 全因子 ・全水準の総当り表 (禁則マ トリクス)

4.緒 言

本研究では直交表を応用 した HAYST法を用い

て組み合わせテス トを支援するアプリケーション

を構築 した.また網羅率を確認 し,アプリケーシ

ョンを用いることで組み合わせテス トを効率良く

行 うことができることを確認 した.これにより本

アプリケーションは,効率良くテス ト工程を実施

するツール として有用であると期待できる.

しか しながら,このアプリケーションには現時

点で禁則回避手法が実装 されていない.HAYST

法では禁則回避の手法 として,入力の際に各因

子 ・水準のことを考慮 し,直交表に禁則を発生さ

せないことを考えるが,それは要求定義段階から

テス ト設計を考慮する必要があるので,アプリケ

ーションを要求定義段階から活用できるように,

機能を発展 させることが今後の課題である.

謝 辞

本研究に際し,御意見と御協力をいただきまし

たレクポー ト株式会社の中丸様,管様に深謝申し

上げます.

文 献

))藤原隆次 :ソフ トウェア製品に対する安全性 .信頼性理

論の実務-の適用と問題息 信頼性学会誌,vol.32,No.1,pp.10117(2010)

2)吉樺正孝,秋山浩一,仙石太郎 :ソフ トウェアテス ト

HAYST入門~品質 と生産がアップする直交表の使い

方~,日科技連 (2007)3)山本訓稔,秋山浩一 直交表を利用 したソフ トウェアテ

ス トー1-tAYST法-,ソフ トウェアテス トシンポジュウ

ム2004(JaSST'04)報告 (2004)4)川崎秀二=直交表超入門(1)- ソフ トウェアテス トの効率

的網羅率のための実験-,キャッツ組込みソフ トウェ

ア研究所 (2009)

ー66-