SlideShare une entreprise Scribd logo
1  sur  3
Télécharger pour lire hors ligne
Ralph's Chart Analysis: Test Analysis Technique
Using Common Factors among Software Functions
高木 智彦,古川 善吾,秋山 浩一
香川大学工学部
富士ゼロックス
Abstract ラルフチャートはテスト対象ソフトウェアの各機能の抽象化された仕様を表すのに適した表記法であ
る.本研究では,テストするべき機能群を抽出し,適切なテストケース設計技法を選択するために,ラルフチャー
トの連結による体系的なテスト分析手法を提案する.
Keyword software testing, test analysis, test architecture
1. はじめに
コ ン ピ ュ ー タ シ ス テ ム は ソ フ ト ウ ェ ア に よ っ て 制
御されており,ソフトウェアのディペンダビリティを
確保するための必須の技術がソフトウェアテストであ
る.ソフトウェアテストでは,テスト対象システムの
仕様からテストするべき抽象化された仕様を抽出し,
その抽象化された仕様に基づいてテストケースを設計
する.そのテストケースを実行することによってフォ
ールトを発見し出荷前に除去できれば,ソフトウェア
のディペンダビリティを改善することができる.
体 系 的 な テ ス ト ケ ー ス 設 計 技 法 に つ い て す で に 数
多くの検討がなされており,開発現場への導入が 広く
行われている.しかしながら,ソフトウェアのフォー
ルトに起因する事故が後をたたず,近年社会問題化し
ている.その原因は,テストケースに漏れが生じてい
るためであり,その漏れが生じている最も大きな原因
のひとつが,テストするべき抽象化された仕様の抽出
と,その抽象化された仕様に相応しいテストケース設
計技法の選択という作業が必ずしも適切に行われてい
ないためである.この作業のことを「テスト分析」,ま
たテスト分析の結果得られる成果物を「テストアーキ
テクチャ」といい,テスト戦略を決定する際の基盤的
な情報として重要性が近年認識されつつある.
ソフトウェアは多数の機能から構成されるので,テ
スト分析では,各機能間の関係や影響を整理し,テス
トすべき機能群を抽出できる必要がある.そして,抽
出した機能群を表す抽象化された仕様に対して,適切
なテストケース設計技法を選択するための指針が示さ
れなければならない.しかしながら,これらを体系的
に行う技術は確立されていないため,開発現場では経
験と勘に頼っているのが現実である.そこで本研究で
は,機能間の組合せに着目したテスト分析を行 うため
のラルフチャート分析と呼ばれる新たな手法を提案す
る.本手法では,ソフトウェアの各機能をラルフチャ
ートと呼ばれる独自のモデルを用いて定義し,機能間
で共通する因子をキーとして複数のラルフチャートを
関連付ける.関連付けられた複数のラルフチャ ートは
テストアーキテクチャとしてテスト戦略を決定する際
に利用する.本手法によってテストすべき抽象化され
た仕様を適切に導出し,適切なテストケース設計技法
を選択するための指針が得られる ので,テストケース
の漏れを削減し,ソフトウェアのディペンダビリティ
改善に貢献できる.本手法が対象とするテストレベル
は,結合テスト,システムテスト,受入れテストであ
り,アプリケーションドメインを問わ ず多数の機能か
ら構成される大規模で複雑なソフトウェアに対して 効
果が期待できる.
2. 基本概念
本節では,独自のモデルであるラルフチャートにつ
いて概説する.
我 々 は 直 交 表 を 用 い た ソ フ ト ウ ェ ア 組 合 せ テ ス ト
技法である HAYST 法に関する研究を行ってきた[1].
ラルフチャートは,HAYST 法においてテスト対象シス
テムの目的機能ごとの因子とその構造を明らかにし,
考慮すべき因子が漏れることを防止することを目的と
して提案された図的表記法である.ここでいう目的機
能とはシステムの目的を達成するための働きのことで
ある.図 1 にラルフチャートのフォーマットを示す.
中央のボックスは,当該目的機能に関する抽象化され
た仕様を定義する領域であり,状態遷移図 または因果
ループ図(Causal Loop Diagrams)で記述する.そして
中央のボックスの周辺に以下の情報を網羅的に記述す
る.
入力因子:当該目的機能に対する入力可能な値あるい
は同値類の集合である.ここでいう入力とは,ユー
ザや連携する他のシステムから入力される データ,
デバイスからの信号,他のモジュールによって更新
される共有変数の値などである.
出力:当該目的機能から出力される値あるいは同値類
の集合である.ここでいう出力とは,ユーザや連携
する他のシステムに出力されるデータ,デバイスへ
の信号,他のモジュールが参照可能な共有変数に書
き込む値などである.
状態因子:当該目的機能が取り得る状態変数の集合で
ある.状態は当該目的機能の振舞いを決定する内部
変数の値の組合せによって定義される.機能は現在
の状態と与えられた入力値に基づいて,出力 および
遷移先状態を決定することができる.同じ入力を与
えられたとしても,当該目的機能の現在の状態が異
なっていれば,異なる出力と遷移先状態を出力する.
ノイズ:通常の利用において当該目的機能の入出力の
関 係 を 妨 げ る 利 用 環 境 や 利 用 方 法 に 関 わ る 因 子 の
集合である.たとえば,当該機能の実行環境である
OS の種類やバージョン,当該機能に与える負荷の
大きさなどである.
ラ ル フ チ ャ ー ト は 品 質 工 学 で 提 案 さ れ て い る シ ス
テムチャート[2]に近いが,ボックス構造モデル[3]で現
れる状態因子を扱う点に特徴がある. ボックス構造モ
デルの視点でいえば,ラルフチャートの特徴は,ノイ
ズやアクティブノイズを明示的に記述している点や,
状態因子を当該機能に対する入出力の 一種としてとら
え,ボックスの外に定義している点などである .
3. ラルフチャート分析
従 来 ラ ル フ チ ャ ー ト は 個 々 の 目 的 機 能 の 分 析 に 用
いられていただけであった.本研究の核心は, 目的機
能間の関連や影響を明らかにしてテスト分析を行うた
めに,個々のラルフチャートを共通する因子で連結さ
せるところにある.特に有効性が期待できる連結方法
として以下の 4 通りを提案する.
(1) 状態因子同士の連結
テ ス ト 対 象 シ ス テ ム と し て 重 要 性 が 高 い 状 態 因 子
をキーとしてラルフチャートを連結することで,複
数 の 機 能 が 一 つ の 重 要 な 状 態 因 子 を 読 み 書 き す る
処理に関する仕様 を抽出できる.これに基づいて,
組合せテストを適用する.図 2 の例題では(a)(b)を
連結する.
(2) 入力因子と出力の連結
複 数 の ラ ル フ チ ャ ー ト を 入 力 因 子 と 出 力 で 連 結 す
ることで,各機能の実行順序に関する仕様を抽出で
きる.これに基づいてシナリオテストを実施する.
図 2 の例題では(a)(b)(d)を連結する.
(3) 入力因子と状態因子の連結
あ る ラ ル フ チ ャ ー ト が 入 力 因 子 と 状 態 因 子 と し て
同じ因子をもつ場合,当該ラルフチャートは 初期設
定を行う機能を表している.そのような ラルフチャ
ートを集めて入力因子を組み合わせることで ,テス
ト 対 象 シ ス テ ム の 初 期 設 定 に 関 す る 仕 様 を 抽 出 で
きる.これに基づいて (1)(2)の組合せテストやシナ
リオテストの前提となる環境を作成する.図 2 の例
題では(a)(c)を連結する.
(4) 出力とノイズ因子の連結
ラルフチャート a の出力因子とラルフチャート b の
ノイズ因子が同じ場合,a が表す機能の出力は b が
表す機能の入出力を妨げる要因となっている .これ
は主に並行処理に起因するものであるので,当該因
子 を キ ー と し て ラ ル フ チ ャ ー ト を 連 結 す る こ と に
よって,テストすべき並行処理の条件を抽出できる.
これに基づいて並行処理テストを実施する.図 2 の
例題では(c)(d)を連結する.
4. 考察と今後の方針
我々は本手法を支援するツールを開発している.本
ツールを用いて,ある商用ソフトウェアに対して試験
的に(1)を適用した.この商用ソフトウェアは保険業務
に用いられるものであり,規模はおよそ 20KLOC であ
図 1:ラルフチャート
図 2:単純な例題
Input Factors
{I1, I2, I3, ...}
Outputs
Noise Factors
{N1, N2, N3, ...}
Target
read write
State Factors
{S1, S2, S3, ...}
{F1} Outputs
{F4}
read write
{F1, F3}
{F2} Outputs
{F6}
read write
{F2}
read write
{F3}
{F4}
{F5} Outputs
{F6}
Outputs
{F5}
TargetTarget
TargetTarget
(a) (b)
(c) (d)
る.25 個の機能が識別され,それらすべてについてラ
ルフチャートが作成された.共通仕様のみに記載され
るという意味で特に重要度の高 い状態因子がレビュー
時に識別されたので,この状態因子をキーとして 5 個
のラルフチャートが連結され, 組合せテストが追加で
実施された.その結果フォールト を発見することがで
きた.それまでのレビューやテストにおいてこの問題
を見落とした原因として,個々の機能の仕様書に記載
されていなかったこと,暗黙的な知識としてドキュメ
ント化されていなかったことが考えられる.結論とし
て,本手法を適用することによって,見落としがちな
問題点を効果的に抽出することができた .
今後の研究では,ラルフチャートの有効な連結方法
についてさらに検討する.そして様々なソフトウェア
に対して本手法を適用し有効性を評価する予定である.
文 献
[1] H.D. Mills, "Stepwise Refinement and Verification in
Box Structured System", IEEE Computer, 1993.
[2] K. Akiyama, T. Takagi and Z. Furukawa,
"Development and Evaluation of HAYST Method
Tool", New Trends in Software Methodologies, Tools
and Techniques, IOS Press, pp.398-414 2010.

Contenu connexe

Similaire à Ralph's Chart連結

20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)
Hiromu Shioya
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
Masatoshi Itoh
 
機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価
Shintaro Fukushima
 

Similaire à Ralph's Chart連結 (20)

2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
2015-11-17 きちんと知りたいApache Spark ~機械学習とさまざまな機能群
 
Spock's world
Spock's worldSpock's world
Spock's world
 
Project lambda
Project lambdaProject lambda
Project lambda
 
画像認識で物を見分ける
画像認識で物を見分ける画像認識で物を見分ける
画像認識で物を見分ける
 
Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~
 
自己結合Sqlクエリ検出ツールによるチューニングの提案
自己結合Sqlクエリ検出ツールによるチューニングの提案自己結合Sqlクエリ検出ツールによるチューニングの提案
自己結合Sqlクエリ検出ツールによるチューニングの提案
 
20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)
 
前期講座08
前期講座08前期講座08
前期講座08
 
Open棟梁機能紹介 v02-00
Open棟梁機能紹介 v02-00Open棟梁機能紹介 v02-00
Open棟梁機能紹介 v02-00
 
JMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使うJMeterをWebでしか設定できないサーバの設定自動化に使う
JMeterをWebでしか設定できないサーバの設定自動化に使う
 
科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要
 
最先端NLP勉強会2017_ACL17
最先端NLP勉強会2017_ACL17最先端NLP勉強会2017_ACL17
最先端NLP勉強会2017_ACL17
 
20190625 OpenACC 講習会 第1部
20190625 OpenACC 講習会 第1部20190625 OpenACC 講習会 第1部
20190625 OpenACC 講習会 第1部
 
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
 
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
Shizuoka.py #6 WebTestでWeb APIのテスト & Pythonメタプログラミングでテストの自動生成
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
 
機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 
20190119 aws-study-pg-extension
20190119 aws-study-pg-extension20190119 aws-study-pg-extension
20190119 aws-study-pg-extension
 
問合せ最適化インサイド
問合せ最適化インサイド問合せ最適化インサイド
問合せ最適化インサイド
 

Plus de Kouichi Akiyama

20150424 jasst新潟基調講演
20150424 jasst新潟基調講演20150424 jasst新潟基調講演
20150424 jasst新潟基調講演
Kouichi Akiyama
 

Plus de Kouichi Akiyama (16)

業務状態遷移テストを語る夕べ
業務状態遷移テストを語る夕べ業務状態遷移テストを語る夕べ
業務状態遷移テストを語る夕べ
 
20180421 Issueの書き方と伝えかた勉強会
20180421 Issueの書き方と伝えかた勉強会20180421 Issueの書き方と伝えかた勉強会
20180421 Issueの書き方と伝えかた勉強会
 
Oa mat
Oa matOa mat
Oa mat
 
20170203 test analysisdesign
20170203 test analysisdesign20170203 test analysisdesign
20170203 test analysisdesign
 
20160619 wacate 解答
20160619 wacate   解答20160619 wacate   解答
20160619 wacate 解答
 
20160619 wacate
20160619 wacate20160619 wacate
20160619 wacate
 
20160607 SS2016 FP
20160607 SS2016 FP20160607 SS2016 FP
20160607 SS2016 FP
 
SS2016 Workshop
SS2016 WorkshopSS2016 Workshop
SS2016 Workshop
 
よいアーキテクチャ、よいライブラリ、よいテスター
よいアーキテクチャ、よいライブラリ、よいテスターよいアーキテクチャ、よいライブラリ、よいテスター
よいアーキテクチャ、よいライブラリ、よいテスター
 
20150424 jasst新潟基調講演
20150424 jasst新潟基調講演20150424 jasst新潟基調講演
20150424 jasst新潟基調講演
 
20080615 wacate
20080615 wacate20080615 wacate
20080615 wacate
 
20140610 秋山-ss2014
20140610 秋山-ss201420140610 秋山-ss2014
20140610 秋山-ss2014
 
Answer
AnswerAnswer
Answer
 
20081024 ja sst-sapporo
20081024 ja sst-sapporo20081024 ja sst-sapporo
20081024 ja sst-sapporo
 
N-Switchカバレッジテストの問題点と解決策
N-Switchカバレッジテストの問題点と解決策N-Switchカバレッジテストの問題点と解決策
N-Switchカバレッジテストの問題点と解決策
 
とてか2
とてか2とてか2
とてか2
 

Ralph's Chart連結

  • 1. Ralph's Chart Analysis: Test Analysis Technique Using Common Factors among Software Functions 高木 智彦,古川 善吾,秋山 浩一 香川大学工学部 富士ゼロックス Abstract ラルフチャートはテスト対象ソフトウェアの各機能の抽象化された仕様を表すのに適した表記法であ る.本研究では,テストするべき機能群を抽出し,適切なテストケース設計技法を選択するために,ラルフチャー トの連結による体系的なテスト分析手法を提案する. Keyword software testing, test analysis, test architecture 1. はじめに コ ン ピ ュ ー タ シ ス テ ム は ソ フ ト ウ ェ ア に よ っ て 制 御されており,ソフトウェアのディペンダビリティを 確保するための必須の技術がソフトウェアテストであ る.ソフトウェアテストでは,テスト対象システムの 仕様からテストするべき抽象化された仕様を抽出し, その抽象化された仕様に基づいてテストケースを設計 する.そのテストケースを実行することによってフォ ールトを発見し出荷前に除去できれば,ソフトウェア のディペンダビリティを改善することができる. 体 系 的 な テ ス ト ケ ー ス 設 計 技 法 に つ い て す で に 数 多くの検討がなされており,開発現場への導入が 広く 行われている.しかしながら,ソフトウェアのフォー ルトに起因する事故が後をたたず,近年社会問題化し ている.その原因は,テストケースに漏れが生じてい るためであり,その漏れが生じている最も大きな原因 のひとつが,テストするべき抽象化された仕様の抽出 と,その抽象化された仕様に相応しいテストケース設 計技法の選択という作業が必ずしも適切に行われてい ないためである.この作業のことを「テスト分析」,ま たテスト分析の結果得られる成果物を「テストアーキ テクチャ」といい,テスト戦略を決定する際の基盤的 な情報として重要性が近年認識されつつある. ソフトウェアは多数の機能から構成されるので,テ スト分析では,各機能間の関係や影響を整理し,テス トすべき機能群を抽出できる必要がある.そして,抽 出した機能群を表す抽象化された仕様に対して,適切 なテストケース設計技法を選択するための指針が示さ れなければならない.しかしながら,これらを体系的 に行う技術は確立されていないため,開発現場では経 験と勘に頼っているのが現実である.そこで本研究で は,機能間の組合せに着目したテスト分析を行 うため のラルフチャート分析と呼ばれる新たな手法を提案す る.本手法では,ソフトウェアの各機能をラルフチャ ートと呼ばれる独自のモデルを用いて定義し,機能間 で共通する因子をキーとして複数のラルフチャートを 関連付ける.関連付けられた複数のラルフチャ ートは テストアーキテクチャとしてテスト戦略を決定する際 に利用する.本手法によってテストすべき抽象化され た仕様を適切に導出し,適切なテストケース設計技法 を選択するための指針が得られる ので,テストケース の漏れを削減し,ソフトウェアのディペンダビリティ 改善に貢献できる.本手法が対象とするテストレベル は,結合テスト,システムテスト,受入れテストであ り,アプリケーションドメインを問わ ず多数の機能か ら構成される大規模で複雑なソフトウェアに対して 効 果が期待できる. 2. 基本概念 本節では,独自のモデルであるラルフチャートにつ いて概説する. 我 々 は 直 交 表 を 用 い た ソ フ ト ウ ェ ア 組 合 せ テ ス ト 技法である HAYST 法に関する研究を行ってきた[1]. ラルフチャートは,HAYST 法においてテスト対象シス テムの目的機能ごとの因子とその構造を明らかにし, 考慮すべき因子が漏れることを防止することを目的と して提案された図的表記法である.ここでいう目的機 能とはシステムの目的を達成するための働きのことで ある.図 1 にラルフチャートのフォーマットを示す. 中央のボックスは,当該目的機能に関する抽象化され た仕様を定義する領域であり,状態遷移図 または因果 ループ図(Causal Loop Diagrams)で記述する.そして 中央のボックスの周辺に以下の情報を網羅的に記述す る. 入力因子:当該目的機能に対する入力可能な値あるい は同値類の集合である.ここでいう入力とは,ユー ザや連携する他のシステムから入力される データ,
  • 2. デバイスからの信号,他のモジュールによって更新 される共有変数の値などである. 出力:当該目的機能から出力される値あるいは同値類 の集合である.ここでいう出力とは,ユーザや連携 する他のシステムに出力されるデータ,デバイスへ の信号,他のモジュールが参照可能な共有変数に書 き込む値などである. 状態因子:当該目的機能が取り得る状態変数の集合で ある.状態は当該目的機能の振舞いを決定する内部 変数の値の組合せによって定義される.機能は現在 の状態と与えられた入力値に基づいて,出力 および 遷移先状態を決定することができる.同じ入力を与 えられたとしても,当該目的機能の現在の状態が異 なっていれば,異なる出力と遷移先状態を出力する. ノイズ:通常の利用において当該目的機能の入出力の 関 係 を 妨 げ る 利 用 環 境 や 利 用 方 法 に 関 わ る 因 子 の 集合である.たとえば,当該機能の実行環境である OS の種類やバージョン,当該機能に与える負荷の 大きさなどである. ラ ル フ チ ャ ー ト は 品 質 工 学 で 提 案 さ れ て い る シ ス テムチャート[2]に近いが,ボックス構造モデル[3]で現 れる状態因子を扱う点に特徴がある. ボックス構造モ デルの視点でいえば,ラルフチャートの特徴は,ノイ ズやアクティブノイズを明示的に記述している点や, 状態因子を当該機能に対する入出力の 一種としてとら え,ボックスの外に定義している点などである . 3. ラルフチャート分析 従 来 ラ ル フ チ ャ ー ト は 個 々 の 目 的 機 能 の 分 析 に 用 いられていただけであった.本研究の核心は, 目的機 能間の関連や影響を明らかにしてテスト分析を行うた めに,個々のラルフチャートを共通する因子で連結さ せるところにある.特に有効性が期待できる連結方法 として以下の 4 通りを提案する. (1) 状態因子同士の連結 テ ス ト 対 象 シ ス テ ム と し て 重 要 性 が 高 い 状 態 因 子 をキーとしてラルフチャートを連結することで,複 数 の 機 能 が 一 つ の 重 要 な 状 態 因 子 を 読 み 書 き す る 処理に関する仕様 を抽出できる.これに基づいて, 組合せテストを適用する.図 2 の例題では(a)(b)を 連結する. (2) 入力因子と出力の連結 複 数 の ラ ル フ チ ャ ー ト を 入 力 因 子 と 出 力 で 連 結 す ることで,各機能の実行順序に関する仕様を抽出で きる.これに基づいてシナリオテストを実施する. 図 2 の例題では(a)(b)(d)を連結する. (3) 入力因子と状態因子の連結 あ る ラ ル フ チ ャ ー ト が 入 力 因 子 と 状 態 因 子 と し て 同じ因子をもつ場合,当該ラルフチャートは 初期設 定を行う機能を表している.そのような ラルフチャ ートを集めて入力因子を組み合わせることで ,テス ト 対 象 シ ス テ ム の 初 期 設 定 に 関 す る 仕 様 を 抽 出 で きる.これに基づいて (1)(2)の組合せテストやシナ リオテストの前提となる環境を作成する.図 2 の例 題では(a)(c)を連結する. (4) 出力とノイズ因子の連結 ラルフチャート a の出力因子とラルフチャート b の ノイズ因子が同じ場合,a が表す機能の出力は b が 表す機能の入出力を妨げる要因となっている .これ は主に並行処理に起因するものであるので,当該因 子 を キ ー と し て ラ ル フ チ ャ ー ト を 連 結 す る こ と に よって,テストすべき並行処理の条件を抽出できる. これに基づいて並行処理テストを実施する.図 2 の 例題では(c)(d)を連結する. 4. 考察と今後の方針 我々は本手法を支援するツールを開発している.本 ツールを用いて,ある商用ソフトウェアに対して試験 的に(1)を適用した.この商用ソフトウェアは保険業務 に用いられるものであり,規模はおよそ 20KLOC であ 図 1:ラルフチャート 図 2:単純な例題 Input Factors {I1, I2, I3, ...} Outputs Noise Factors {N1, N2, N3, ...} Target read write State Factors {S1, S2, S3, ...} {F1} Outputs {F4} read write {F1, F3} {F2} Outputs {F6} read write {F2} read write {F3} {F4} {F5} Outputs {F6} Outputs {F5} TargetTarget TargetTarget (a) (b) (c) (d)
  • 3. る.25 個の機能が識別され,それらすべてについてラ ルフチャートが作成された.共通仕様のみに記載され るという意味で特に重要度の高 い状態因子がレビュー 時に識別されたので,この状態因子をキーとして 5 個 のラルフチャートが連結され, 組合せテストが追加で 実施された.その結果フォールト を発見することがで きた.それまでのレビューやテストにおいてこの問題 を見落とした原因として,個々の機能の仕様書に記載 されていなかったこと,暗黙的な知識としてドキュメ ント化されていなかったことが考えられる.結論とし て,本手法を適用することによって,見落としがちな 問題点を効果的に抽出することができた . 今後の研究では,ラルフチャートの有効な連結方法 についてさらに検討する.そして様々なソフトウェア に対して本手法を適用し有効性を評価する予定である. 文 献 [1] H.D. Mills, "Stepwise Refinement and Verification in Box Structured System", IEEE Computer, 1993. [2] K. Akiyama, T. Takagi and Z. Furukawa, "Development and Evaluation of HAYST Method Tool", New Trends in Software Methodologies, Tools and Techniques, IOS Press, pp.398-414 2010.