意外と奥深い?ネットワーク機器の単体・結合テストの実践ポイント

アイキャッチ画像

1.単体テストとは

単体テストとは、最初に実施されるテスト工程を指す。単体テストでは、詳細設計書と構築したシステムの設定値が同じであることを確認する。指定した通りのIPアドレス・DNS、インターフェース等の設定が投入されているか、指定したドメインに参加しているか、指定したホスト名になっているか等々、全てのパラメータと設定値を確認する。詳細設計書で記載した設定値に差異があれば、随時修正して再テストを実施する。機器によっては細部まで設定値を定めているので、一台あたりの所要時間がかかってしまう。修正する時間も含めて余裕を持って時間を確保したい。この工程で時間を要してしまうと、それ以降の工程に影響が出る可能性があるのでなるべく止まらずに実施していきたい。

2.結合テストとは

周辺機器と接続した状態で、各機能の正常性確認や、障害&復旧時の動作確認を行う。構築場所によって、倉庫などキッティング&試験できるスペースがある場合は、事前に試験を行うこともある。ただし、事前の試験はあくまでも疑似環境で行うので本番環境でも同様の試験は行う。このテストは単体テストとは違い、複数の機器との接続状況を様々なパターンで確認するので単体テストより時間を要する。したがって、単体テストより長くスケジュールを立てておきたい。

3.単体・結合テストの実践ポイント

・単体テストの実践ポイントとテスト項目 まず、単体テストは例として以下の項目がよく挙げられる

例)コマンドはCisco

外観確認・・・機器に傷やへこみがないか

電源起動確認・・・電源ケーブルを接続して、正常に起動するか

LEDステータス確認・・・電源LEDが緑色に点灯するか

コンソールログイン・・・機器とPCをコンソールケーブルで繋げてログインできるか

show environment all・・・確認観点:StatusがgoodまたはOK,Normalであること

show version・・・想定通りのバージョンであること

reload(y/n?と聞かれるがyでOK)・・・再起動を行い、正常に起動するか確認

show running-config・・・設定を投入してから、正常に投入されたか確認

単体テストは、1つの画面や1つの機能で実施される動作をテストすることが目的となっている。目視で行うテスト項目に関しては、見落とさないことが実践ポイントである。コマンドを用いて確認するテスト項目については、判定基準を設けているのでそれを満たしているかを見落とさないように慎重に確認する。show running-configの内容に関しては設定内容によっては量が多く一つ一つ確認するのが困難なので、事前に設定内容を反映して作成したconfigをWinMergeで差分比較すると良い。そうすることにより、見落としを軽減したり、確認時間を短縮できる。単体テストの実践ポイントを簡単にまとめると、時間をかけても良いので目視のテスト項目は確実に、config関連の確認項目は、長ければWinMergeを使用、短ければ判断基準と照らし合わせて慎重に確認をする。

    

・結合テストの実践ポイントとテスト項目

まず、結合テストは以下の項目がよく挙げられる 例)コマンドはCisco

正常性試験

show interfaces・・・インターフェースの確認

show ip route・・・ルーティングの確認(static、eigrp、ospf、bgp、rip等々)

show ntp status・・・NTPの状態を確認

show snmp・・・SNMP設定値確認

show standby・・・インターフェースの HSRP グループ、状態(Active/Standby)、仮想IP などを確認

show vrrp・・・VRRP グループの状態(Master/Backup)、仮想IP、優先度などを確認

障害試験

#区分試験項目補足
1リンク障害障害発生冗長箇所や経路切替が生じる箇所で実施
2リンク障害障害復旧
3筐体障害障害発生全筐体に対して電源OFF/ONで実施
4筐体障害障害復旧

結合テストは「モジュールを結合させたときに、設計したように動作するのか」「想定外の状況のエラーが出力されても、システム要件が満たされているか」といったことを検証するのが目的である。結合テストは単体テストと違いテスト範囲が広く確認項目も多いので、とても時間がかかってしまう。実践ポイントとしては、スムーズに行くようにテストを行う順番を考慮しなければならない。例えば、あるテスト項目の内容によっては対象機器の設定変更を行うケースがある。その際に次の項目へ移行がスムーズに行くように順番が考慮されていれば、確認時間を短縮、設定を都度戻す二度手間を減らすことができる。実際に現場で結合テストを行ったときは、まず時間がかかるテスト項目(障害テスト)を先に行い、正常性試験は後半に回していた。また、テストの規模が大きい際には障害テストで特に筐体テストは起動に時間がかかるので、起動している間に影響がないテスト項目(本番、開発環境で構築し正常性試験)を並行して行い効率的に実施していた。以上で単体テストと結合テストの実践ポイントについて述べたが、ミスのないように行うのは前提として、それに加えて並行で行えるテストはテストスケジュールの進捗状況に応じて行うことを推奨する。

参考文献

https://zenn.dev/ms_update/articles/000f09e8920924

https://qiita.com/m-yoshimura/items/9d91e4d2397bff5c163f