はじめに
本書について
第1章 TTCN-3とは?
第2章 環境セットアップ
第3章 Hello, Test!
第4章 Hello, Config!
第5章 TTCN-3コードの歩き方
第6章 TTCN-3 の文法
第7章 DNSテストの実例
最後に
参考文献
本書をお手に取って頂きありがとう御座います。
私は普段通信系の業界でインフラエンジニアとしてネットワーク・サーバーの構築やサポート、検証試験の自動化などに携わってきました。毎回技術書のイベントに買う側で参加するたびに自分でも何か書いてみたいなと思い、この度勇気を出してチャンレンジしてみました。初めての執筆ということもあり至らない点ばかりかと思いますが、もしあなたのお仕事や趣味に少しでもお役に立てると幸いです。
本書はそんな背景から同人誌として執筆したものを底本に、加筆修正を行ったものとなります。
本書ではテスト自動化ツールであるTTCN-3のご紹介を行います。
普段ネットワークやインフラまわりの試験をされている方ならご経験があるかもしれませんが、手動での試験ってめんどくさくないですか?私はとてもめんどくさいです。
シールドルームやサーバールームといった落ち着かない環境で実機や慣れない端末を使ったり、キャプチャを取ったり細々としたことを順序よくやらなくてはいけません。しかも細かい設定を間違えていて試験のやり直し……などなど、例をあげるときりがありません。
またネットワーク系の場合は複数のプロジェクトで検証環境を共有しているため、トラフィックインパクトを出していい時間や必要な設備をすべて押さえられる時間が夜間しかなく、どうしても夜勤に……と、体力的にしんどくなることもしばしばです。
プロジェクトマネジメント観点でも検証試験期間が長引くことで工数がかさむこともあり、コストの増加要因としても見逃せないのではと思います。
私はこれまで、そうしたネットワーク機器のインテグレーション作業実施後の検証試験の自動化のため、TTCN-3とPythonで実装したツールを使用してきました。しかし何かカスタマイゼーションをしようとした時や自分でも何か簡単な物を作ろうとトライした時には、公式ドキュメントのどこから手をつければいいのか分からない……しかも日本語での文章がなかなか見つからない……という状況でした。
特に環境を作っても、何か簡単なものでいいから作る、という面での情報があまりにも少ないと感じました。
そんな背景から無いなら自分で作ってしまおうということで今回作成してみました。インフラやネットワークのテストでお悩みの方のご参考になれば幸いです。また私自身初学者ですから、こんな使い方があるよ!とアイデアを教えていただけると助かります。それでは全てのインフラとテスターの方の幸せをお祈りしつつ。
2021年9月 角田 洋一郎
本書の目的はネットワークエンジニア、インフラエンジニアの方向けにテスト自動化スクリプトを実装するためのプログラミング言語を紹介することです。本書を読むことでTTCN-3に関して基礎的な概念や実装の上での必要な知識を学習できると思います。
またシングルモードでの簡単なネットワークへのテストの実装を行うことで実用へのとっかかりを作ることを目標としています。本書で紹介した内容に関しては2021年9月時点の情報となります。
またスクリプト・コマンドに関しましてはMac OS Big Sur 環境での実行を確認しております。万が一本書の内容で発生しました影響に関しましては筆者はその責任を負いかねますことを予めご了承下さい。
本書に関するご質問やコメントはyakecsson@gmail.comまでお知らせ下さい。著者は一般の社会人として余暇に活動をしています。そのためタイムリーなご回答は難しいと思われます。予めご了承のほどよろしくお願いします。
本書の作成にあたりご提案、取りまとめを頂きました山城様、また表紙イラストを作成頂きましたα様に感謝致します。同人誌版作成時にイラストの提供、レビューを実施頂いたudさん、かねこさん、かみじょうさん、こんさんに感謝します。実務の上での知見を教えて頂いた同僚の方々に感謝します。技術書典スタッフの方々、当日スタッフとして協力頂いた方々に感謝します。最後になりますが、本書をお買い上げ頂きました読者のあなたに感謝いたします。
本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。
本書ではテスト・言語に関して略語が多数登場します。ここでは共通して使用される略語に関して正式名称と意味をまとめます。
略語 | 正式名称 | 意味 |
SUT | System Under Test | テスト実行対象のシステム |
IUT | Implementation Under Test | SUT の内実際の実装部分を指す呼び方 |
TSI | Test System Interface | テストを行うモジュールのインターフェイス |
MTC | Master Test Component | テストを実行するメインコンポーネント |
PTC | Parallel Test Componet | テストを複数の対象に並列に実施するコンポーネント |
MC | Main Controller | テスト自体の実行を管理するコンポーネント |
HC | Host Controller | テスト対象の管理を行うコンポーネント |
ATS | Abstract Test Suites | テストのモデル、TTCN-3によるソースコード本体 |
ETS | Executable Test Suites | コンパイル後のテスト実行ファイル |
MBT | Model Based Testing | プロトコル標準/仕様を元にしたテスト手法 |
PDU | Protocol Data Unit | コードの中でプロトコルを記載したデータ構造 |