目次

はじめに

本書について

目的
ご意見とご質問
謝辞
表記関係について
略語・用語

第1章 TTCN-3とは?

1.1 TTCN-3
1.2 テストの対象
1.3 TTCN-3を使うメリット
1.4 TTCN-3を使うデメリット
1.5 Eclipse Titan

第2章 環境セットアップ

2.1 Titanの構成
2.2 docker image セットアップ
2.3 リポジトリからのインストール
2.4 ライセンス

第3章 Hello, Test!

3.1 テストの実装、ビルド、実行

第4章 Hello, Config!

4.1 テスト実行の際の設定変更
4.2 config項目

第5章 TTCN-3コードの歩き方

5.1 TTCN-3の構成

第6章 TTCN-3 の文法

6.1 変数の定義
6.2 変数
6.3 データ構造
6.4 条件制御文
6.5 ループ
6.6 テスト特有の機能
6.7 細かい話

第7章 DNSテストの実例

7.1 テスト環境の作成
7.2 テストコードの作成
7.3 テストの実行
7.4 テストの改造

最後に

まとめ

参考文献

はじめに

 本書をお手に取って頂きありがとう御座います。

 私は普段通信系の業界でインフラエンジニアとしてネットワーク・サーバーの構築やサポート、検証試験の自動化などに携わってきました。毎回技術書のイベントに買う側で参加するたびに自分でも何か書いてみたいなと思い、この度勇気を出してチャンレンジしてみました。初めての執筆ということもあり至らない点ばかりかと思いますが、もしあなたのお仕事や趣味に少しでもお役に立てると幸いです。

 本書はそんな背景から同人誌として執筆したものを底本に、加筆修正を行ったものとなります。


 本書ではテスト自動化ツールであるTTCN-3のご紹介を行います。

 普段ネットワークやインフラまわりの試験をされている方ならご経験があるかもしれませんが、手動での試験ってめんどくさくないですか?私はとてもめんどくさいです。

 シールドルームやサーバールームといった落ち着かない環境で実機や慣れない端末を使ったり、キャプチャを取ったり細々としたことを順序よくやらなくてはいけません。しかも細かい設定を間違えていて試験のやり直し……などなど、例をあげるときりがありません。

 またネットワーク系の場合は複数のプロジェクトで検証環境を共有しているため、トラフィックインパクトを出していい時間や必要な設備をすべて押さえられる時間が夜間しかなく、どうしても夜勤に……と、体力的にしんどくなることもしばしばです。

 プロジェクトマネジメント観点でも検証試験期間が長引くことで工数がかさむこともあり、コストの増加要因としても見逃せないのではと思います。


 私はこれまで、そうしたネットワーク機器のインテグレーション作業実施後の検証試験の自動化のため、TTCN-3とPythonで実装したツールを使用してきました。しかし何かカスタマイゼーションをしようとした時や自分でも何か簡単な物を作ろうとトライした時には、公式ドキュメントのどこから手をつければいいのか分からない……しかも日本語での文章がなかなか見つからない……という状況でした。

 特に環境を作っても、何か簡単なものでいいから作る、という面での情報があまりにも少ないと感じました。

 そんな背景から無いなら自分で作ってしまおうということで今回作成してみました。インフラやネットワークのテストでお悩みの方のご参考になれば幸いです。また私自身初学者ですから、こんな使い方があるよ!とアイデアを教えていただけると助かります。それでは全てのインフラとテスターの方の幸せをお祈りしつつ。

2021年9月 角田 洋一郎

本書について

目的

 本書の目的はネットワークエンジニア、インフラエンジニアの方向けにテスト自動化スクリプトを実装するためのプログラミング言語を紹介することです。本書を読むことでTTCN-3に関して基礎的な概念や実装の上での必要な知識を学習できると思います。

 またシングルモードでの簡単なネットワークへのテストの実装を行うことで実用へのとっかかりを作ることを目標としています。本書で紹介した内容に関しては2021年9月時点の情報となります。

 またスクリプト・コマンドに関しましてはMac OS Big Sur 環境での実行を確認しております。万が一本書の内容で発生しました影響に関しましては筆者はその責任を負いかねますことを予めご了承下さい。

ご意見とご質問

 本書に関するご質問やコメントはyakecsson@gmail.comまでお知らせ下さい。著者は一般の社会人として余暇に活動をしています。そのためタイムリーなご回答は難しいと思われます。予めご了承のほどよろしくお願いします。

謝辞

 本書の作成にあたりご提案、取りまとめを頂きました山城様、また表紙イラストを作成頂きましたα様に感謝致します。同人誌版作成時にイラストの提供、レビューを実施頂いたudさん、かねこさん、かみじょうさん、こんさんに感謝します。実務の上での知見を教えて頂いた同僚の方々に感謝します。技術書典スタッフの方々、当日スタッフとして協力頂いた方々に感謝します。最後になりますが、本書をお買い上げ頂きました読者のあなたに感謝いたします。

表記関係について

 本書に記載されている会社名、製品名などは、一般に各社の登録商標または商標、商品名です。会社名、製品名については、本文中では©、®、™マークなどは表示していません。

略語・用語

 本書ではテスト・言語に関して略語が多数登場します。ここでは共通して使用される略語に関して正式名称と意味をまとめます。

表1: 用語・略語
略語 正式名称 意味
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 コードの中でプロトコルを記載したデータ構造


試し読みはここまでです。
この続きは、製品版でお楽しみください。