通信プロトコルの国際標準であるOSI(Open Systems Interconnection:開放型システム間相互接続)では,公的な試験センターによって,国際的に定められた一定の質の試験基準をパスしたものにだけOSI製品であるという証明を与えることにしている.しかしそのためには,試験についての公平で信頼できる評価方法の確立が必要である.本論文の目的は,適合性試験の質の客観的な評価方法を考え,ISO10025規約に定めたトランスポート試験スイートの質を評価することである. 本論文の内容と成果は次のようなものである. (1)通信プロトコルの適合性試験の研究動向と,その制約や問題点の紹介 ・ソフトウェアとLSIの検証試験についての研究動向を概説し,通信プロトコルの適合性試験が,ソフトウェアの開発試験とハードウェアの出荷検査の中間的な位置にあることを述べた. ・試験手法についてISOのガイドラインであるIS9646の考え方や,学会で主流として研究されている状態遷移図による同定法の考え方を分析した.IS9646の方法は実際的ではあるがこれで十分であるという評価方法がなく,また状態遷移図の同定法では余分な状態の数が多くないという前提が必要であり,いずれにしても完全な検証ではないこと,さらに適合性試験にパスしても相互接続が保証されるわけではないということを例を挙げて説明した. ・ブラックボックス試験という制約上,試験不可能な機能や,プロトコル自体の問題があり,またOSIの適合性試験ではOSIの普及を促進するために試験できない,または試験しない場合もあることを述べた. (2)適合性試験の試験スイートの質の評価のための理論と手法の提案 トランスポート試験スイートについて,パス分解法という手法を提案した.パス分解法については後で紹介するが,これによって下記の成果を得た. ・プロトコルの複雑度を,その状態遷移図を構成するパスを長さ別に並べたベクトルという形で表した. ・状態遷移図のパスカバレジ試験のフォールトモデルとして,水の流れになぞらえた水源汚染モデルを提案し,カバレジ試験によるエラー見逃し率が0となる条件を示した. ・試験項目の疑似カバレジという試験の評価指標を提案し,エラー見逃し率との関係を示した. ・パス分解法に基づくプロトコル試験計画を提案し,その手順を示した. ・試験項目の件数を広さと深さという分け方で見積る考え方を示した. ・状態遷移図で表される試験対象のテスタビリティ改善策を示した. ・具体的な試験項目の作成方法と選択方法を示した. ・エラー発見率の推定方法を示した. (3)提案した手法によるトランスポート試験スイートの評価 提案した手法をISOで開発したトランスポート試験スイートに適用し,次のような結論を得た. ・機能試験項目その他の試験項目を,その件数,標準文体,試験項目のパスの長さなどによって分析した.すなわち,試験スイートの件数を長さ別に分類し,各クラスの状態遷移図のバスの長さで割ってノーマライズすると,その分布はクラスに関係なくほぼ同しである. ・トランスポートプロトコルのパスベクトルについて,クラス0,クラス2,クラス4のパスの個数は,パスの長さLの1次式,2次式,4次式となる.すなわち,クラスが上がると急速に複雑になると言える. ・これらの試験スイートの質はThroughテストのレベルで,C1カバレジは100%であるがC2にカバレジは100%に至らず,本論文で提案している疑似カバレジを使って評価すると62点前後となり,適合性を保証できるようなレベルではない. ・OSIで推奨している4種の適合性試験手法のうち,R法は試験可能範囲が狭く,適合性試験としてはもの足りないものである. ・ISO10025トランスポート試験スイートは,ISOで提案している4種の試験法のうちのD法でほぼ処理できるレベルである. 本論文で提案するパス分解法の思想と特徴は次のようなものである. (1)状態遷移図のパスへの分解 本論文での試験スイートの評価手法の基本は,状態遷移図のパスを長さ別に分解することにある.すなわち,状態遷移図の長さLのパスの個数をPLと表すと,ループを含んだ状態遷移図は一般に無限の長さとなるベクトル{PL}で表される.このベクトルは状態遷移図の複雑度の指標となることを,サイクロマチック数や構造化プログラミングと結び付けて説明できる.さらにまたトランスポートプロトコルの場合,このPLがLの多項式で近似できる. (2)パスカバレジ試験の有効性の理論付け 試験項目は一般に無限個必要になる.そのためにカバレジ試験をする場合には,たとえば,ブランチのすべての組合せまでは試験しないとか,ループを有限回で打ち切ってその範囲内でのカバレジを求めるとかする.パス分解法では,エラー発見率はエラーの原因であるフォールトからの隔たりにつれて小さくなると考え,リンクあたりエラー発見率をrとすると,長さLのパスカバレジ試験によるエラー見逃し率が となるとして,Lを増やすとエラー見逃し率が0に収束することを示した.これによりパスカバレジ試験の有効性を理論的に証明でき,また発見したエラーの数から残存エラー数の推定ができる. (3)試験項目の試験効果の指標の提案 試験項目の効果は,試験項目が状態遷移図のパスをどれだけカバーしたかで評価できると考え,(2)式に示すように,試験項目によるパスの長さ別のカバレジ{CL}に0.5Lという重みを掛けて合計し,疑似カバレジと名付ける. これは長さ1のパスを全部カバーすると50になり,{CL}を全部カバーすると100になる.この(2)式は(1)式において,PLをCL,rを0.5としたものである. またこのパス分解法の妥当性について,次のような裏付けデータを示した. (1)パスベクトルによる複雑度はサイクロマチック数や構造化プログラミングの思想と矛盾しない.すなわち,サイクロマチック数が小さいか,構造化プログラミングにしたがうかすると,パス数の増加は抑えられる. (2)疑似カバレジという指標によって,ISO10025トランスポート試験スイートを評価し,クラス横並びに62点という常識的な評価点を得た. (3)状態遷移図のパス数が増加すれば発見エラー数の収束が遅くなり,リンク当りエラー発見率が増加すれば収束は速まるということが数式で表せる. (4)バグ累積曲線がゴンペルツ関数やロジスティック関数で近似できるという現象を説明することができる.すなわち,試験作業の初期にはパスの長さの短いうちに発見されるエラーによって長いパスによるエラーはブロックされて発見できない.したがってエラーは試験の初期では少ししか見つからず,発見エラー数は試験半ばでは増加し,終わりのころにまた減少するというバグ累積曲線の特徴的なカーブが得られる. 以上 |