正しいオートマトンができたと思ったら,オートマトンの動作を検証するための自動テストを実行します.
検証用ファイルの読み込み
「Test」メニューの「Test...」を選びます.すると下のようなウインドウが表示されます.
「テストファイルのURL:」と題された欄に,以下のURLをコピーして貼り付け, 「読込」ボタンを押します.コピーを行うにはURL全体を選択して右クリックし,メニューから「コピー」を選びます.またコピーしたURLを貼り付けるには入力欄上で右クリックをして「ペースト」を選択します.右クリックメニューが現れない場合には,「コマンドキー(四つ葉のクローバーが描かれたキー)」を押しながら「C」を押すことでコピー,「コマンドキー」+「V」を押すことでペーストを行うこともできます.
自動テストの内容が読み込まれると,「テスト」と書かれたボタンと左側に,オートマトンの一覧が表示されます.
検証用自動テストの実行
オートマトンの一覧の中から「My first automaton」をクリックして選択し,「テスト」を押しましょう.用意された入力についてオートマトンが自動的にテストされ,その結果が次のように表示されます.
- 「成功 <文字列:'aabac', 期待:非終了状態, 結果:非終了状態>」とあるのは,初期状態から「aabac」と入力した時点では,非終了状態になっているはずで,実際その通りなので「成功」であるという意味です.
- 「●失敗● <文字列:'abaca', 期待:非終了状態, 結果:遷移がありません>」とあるのは,初期状態から「abaca」を入力したときに,「abac」を入力した後の状態には「a」に対応する遷移がなかったので,そこで止まってしまったという意味です.
- また仮に「●失敗● <文字列:'aba', 期待:非終了状態, 結果:終了状態>」とあるとすれば,初期状態から「aba」を入力したときには非終了状態になっているはずなのに,実際には終了状態になっていたので「失敗」したという意味になります.
このように,上で定義したオートマトンは一度解錠した後に,さらに入力されたときのことを考えていなかったことが分かりました.今回は「abac」に加えて入力が行われた場合には,解錠が失敗することとします.この点を修正するには,最後の状態から何を入力しても「失敗」を意味する状態への遷移を加えるだけです.
もう一度テストしてみましょう.すべてのテストに成功すると「テスト」ボタンの左の表示が「My first automaton: 成功」に変わります.