- 会員限定
- 2021/01/29 掲載
Serverspecとは?超入門、テスト自動化で選ばれる3つの強みと注意すべき利用方法
連載:サーバ自動化の勘所
そもそも構成管理ツールとは?
システム開発におけるテスト工程とは、システムが当初の要件通りの機能を有しており、その要件通りに動作するかを確認するための工程であり、システムの品質を担保することを目的とする。その中で使用されるテスト自動化ツールとは、その名の通り「自動でテストを行うツール」であるが、ツールの話をする前に、まずはシステム開発におけるテスト工程では、どのようなことが行われるのか、そして手動でのテスト実施にはどのような課題があるのか、について触れておきたい。
システム開発の中でもインフラ領域のテストといえば、以下のようなテスト仕様書と呼ばれるものを作成し、このチェックリストに従って人の手で一項目ずつ実施していく、というような形のプロジェクトが多い。
No. | 種目 | テスト概要 | 手順 | 想定結果 |
1 | サーバ (ネットワーク) |
ホスト名の設定を確認する。 | 以下のコマンドを実行する。 # uname -n |
パラメータシートの値と等しいこと |
2 | hostsに名前解決に必要なホスト名が記載されていることを確認する。 | 以下のコマンドを実行する。 # cat /etc/hosts |
パラメータシートの値と等しいこと | |
3 | IPアドレス、サブネットマスクの設定を確認する。 | 以下のコマンドを実行する。 # ifconfig <if名> |
パラメータシートの値と等しいこと | |
4 | デフォルトゲートウェイの設定を確認する。 | 以下のコマンドを実行する。 # netstat -rn |
パラメータシートの値と等しいこと |
このような方法でのテストは最初に手順に基づいて手動のオペレーションを行い、その結果のエビデンスを取得し、その内容が想定通りの結果であることを目視で確認する、という流れで行われる。
しかし、このようなテストは人の手、人の目が介在するがゆえに、その品質が作業者により異なってしまう、という課題を抱えている。テスト結果が正当なものであることを確認する際に、間違っているのにそのテスト結果をOKとしてしまうこともあれば、さらにはオペレーションを誤ってしまい、サーバの動作に悪影響を及ぼしてしまう可能性すら考えられる。
このように手動で行うテストは、その品質をどのように担保するかという課題を抱えることになる。前述の通り、テスト工程はシステムの品質を担保することを目的としているのにも関わらずだ。
また上記のようなミスが発覚した場合、再テスト実施が必要になり、そのミスは限定的であるか、類似したものは発生していないかなどの、横並びチェックが入り、テスト工程の工数(費用と期間)がますます膨らむこととなるため、プロジェクトにおいては大きなダメージと言える。
このような課題を解決するために活用するのが、今回紹介するテスト自動化ツールである。
テスト自動化ツールを使用するメリット
テスト自動化ツールを使用すれば、従来では手動で実施していたテストをコード管理による自動実行にて実施することになる。実施内容が同一のコードによって管理されることで、そのテストの「冪等性(べきとうせい)」を保つことができる。前回の記事でも出てきたキーワードである「冪等性」だが、テスト自動化ツールにおいても重要なキーワードになる。テストの「冪等性」を保つことが出来れば、誰が実施しても何度実施しても同様の結果が得られるため、前述したようなミスを回避でき、テストの品質を担保することにつながる。
加えて、ツールが無い場合だと、テスト対象の数に比例して、テスト実施体制(テスト実施要員)もテスト実施期間も膨らんでいくことになるので、工数を削減するというメリットも享受できる。以下にテスト自動化ツール導入の2大メリットをまとめる。
テストの実行内容はコードにより管理されるため、手動オペレーションに伴って生じるミスを極力回避することができ、テストの品質担保が容易になる(注)。
●工数削減
テスト実施に必要な手動オペレーションはテストコードの実行のみとなるため、テスト項目やテスト台数が増加しても工数の増加を抑えることができる。
また再実施も容易となるので、保守作業の中でテストが必要となった場合もコードを流用することで少ない工数でのテストを行うことができる。
Serverspecとは何か?
このように、システム構築において大きなメリットを生むテスト自動化ツールの中で、インフラ領域(主にサーバ)のテストを行うツールとして最も有名なソフトウェアが「Serverspec」である。Serverspecは日本人開発者の宮下剛輔氏を中心に開発されているOSS(オープンソースソフトウェア)である。Rubyにより実装されており、RSpecというRubyのテストフレームワークを用いてテストを行う。
インフラ領域のテスト自動化ツールはServerspec以外にも、いくつか代表的な製品があるが、それぞれは以下のような違いを持っている。
製品名 | 強み |
Terratest | 基盤レイヤ(クラウド基盤・仮想基盤など)の設定確認を行うことができる。 |
Serverspec |
|
Infrataster |
|
このようにServerspecはOSレイヤで、その設定値確認が強みだ。OSから確認できるものであればMWレイヤのテストも実施可能なので、サーバの内部のテストには最も適しているといえるだろう。
設定値の正当性はテスト工程の中でも最もテスト件数が増えやすい傾向がある。ゆえに自動化導入によるメリットも大きく、またテスト項目一つ一つは単調なものが多いため、コード化も容易であり、自動化導入のハードルも低い(学習コストが低い)。そのためテスト工程で自動化を導入する最初の一歩として適していると言える。
【次ページ】Serverspecが利用される3つの特徴
関連コンテンツ
関連コンテンツ
PR
PR
PR
今すぐビジネス+IT会員にご登録ください。
すべて無料!今日から使える、仕事に役立つ情報満載!
-
ここでしか見られない
2万本超のオリジナル記事・動画・資料が見放題!
-
完全無料
登録料・月額料なし、完全無料で使い放題!
-
トレンドを聞いて学ぶ
年間1000本超の厳選セミナーに参加し放題!
-
興味関心のみ厳選
トピック(タグ)をフォローして自動収集!
投稿したコメントを
削除しますか?
あなたの投稿コメント編集
通報
報告が完了しました
必要な会員情報が不足しています。
必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。
-
記事閲覧数の制限なし
-
[お気に入り]ボタンでの記事取り置き
-
タグフォロー
-
おすすめコンテンツの表示
詳細情報を入力して
会員限定機能を使いこなしましょう!
「」さんのブロックを解除しますか?
ブロックを解除するとお互いにフォローすることができるようになります。
ブロック
さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。
さんをブロックしますか?
ブロック
ブロックが完了しました
ブロック解除
ブロック解除が完了しました