情報科学 › ソフトウェア設計とテスト › テストの理論

制御フローグラフと実行

定義 2.3(「テストの理論」§2)

制御フローグラフによるプログラム pp とは、次のものの組をいう。

  • 有向グラフ G=(N,E)G = (N, E)(定義 2.1[グラフアルゴリズム])と、入口 s∈Ns \in N、出口 t∈Nt \in N。tt の出次数は 00。
  • 状態の集合 Σ\Sigma、入力から初期状態への写像 in:X→Σ\mathrm{in} : X \to \Sigma、状態から出力への写像 out:Σ→Y\mathrm{out} : \Sigma \to Y。
  • tt 以外の各頂点 nn は文か判定のどちらかである。文 nn は出次数が 11 で、写像 an:Σ→Σa_n : \Sigma \to \Sigma(文の効果)をもつ。判定 nn は出次数が 22 で、2 本の辺に 11(真)と 00(偽)のラベルが付き、写像 dn:Σ→{0,1}d_n : \Sigma \to \{0, 1\} をもつ。dnd_n は、条件 cn,1,…,cn,k:Σ→{0,1}c_{n,1}, \ldots, c_{n,k} : \Sigma \to \{0, 1\} とブール関数 φn:{0,1}k→{0,1}\varphi_n : \{0, 1\}^k \to \{0, 1\}(定義 2.1[コンピュータアーキテクチャとCPUの構造])によって dn(σ)=φn(cn,1(σ),…,cn,k(σ))d_n(\sigma) = \varphi_n(c_{n,1}(\sigma), \ldots, c_{n,k}(\sigma)) と表されているとする。

入力 xx に対する実行とは、次で定まる列 (n0,σ0),(n1,σ1),…(n_0, \sigma_0), (n_1, \sigma_1), \ldots をいう。n0=sn_0 = s、σ0=in(x)\sigma_0 = \mathrm{in}(x)。nin_i が文なら σi+1=ani(σi)\sigma_{i+1} = a_{n_i}(\sigma_i) で、ni+1n_{i+1} は nin_i から出る辺の先。nin_i が判定なら σi+1=σi\sigma_{i+1} = \sigma_i で、ni+1n_{i+1} はラベル dni(σi)d_{n_i}(\sigma_i) の辺の先。nL=tn_L = t となったら実行は終わり、p(x)=out(σL)p(x) = \mathrm{out}(\sigma_L) を出力とする。このとき頂点の列 πp(x)=(n0,…,nL)\pi_p(x) = (n_0, \ldots, n_L) は ss から tt への歩道(定義 2.2[グラフアルゴリズム])で、これを xx の実行経路という。tt に至らないとき p(x)p(x) は定まらない。

頂点・辺・ss から tt への歩道が、ある x∈Dx \in D の実行経路に現れる(歩道の場合は実行経路に等しい)とき、それは実行可能であるという。

本文で読む(前後の説明と例)→

閉包の状態

定義

定義は閉包の起点です(証明を要しません)。

印の意味: ✓公理まで証明済み ・ △証明あり(閉包未完)・ ※主張のみ。テーマごとの集計は 閉包の状況。

これを使っている定理

証明で明示的に参照している定理は、まだありません。