テスト環境

ヘッダー広告
スポンサードリンク
システムを開発するうえで気をつけなくてはいけないことの一つとして、本番環境と全てが同じ状況でテストしてはいけないということがいえます。
システム開発を行っている人であれば当たり前のことだと思いますですが、改めてその意味やどのようにテスト環境を構築するのかをお伝えしたいと思います。

本番環境とテスト環境


なぜテスト環境が必要なのか


システムを開発するうえで、テストは絶対にやらなくてはいけない重要な作業です。
ウォーターフォールテストでは、一つ一つのプログラムが途中で止まってしまうことなく(論理エラー、コンパライルエラーとならずに)動作するかを確認する単体テストから、システム全体を実際の業務を流れに沿ってテストするシステムテストやユーザーテストまでテストの種類があります。
そのテスト工程ごとにテスト環境は用意してあることが多いと思います。

以下はWebアプリケーションでの例となります。
単体テストでは一つ一つのソースファイルが正しい動きをするかを確かめるのが目的となります。
そのため各自がローカルで開発をしたソースに対して、わざわざアプリケーションサーバにデプロイしたりせず、そのままローカルでテストをすることが多いです。
この時に、ローカルでは実行できないロジックが出てきます。
例えば他の人が開発途中のプログラムを呼び出している。ファイルパスが違う。(OSが本番はLinux、ローカルはWindowsなどが原因) などです。
この時にどうするのかというと、実行出来ない原因となっているファイルを仮で作成したり、ファイルパスなど変動する可能性があることが容易に判断つくものについては、定数なりプロパディファイルなどで変更しやすくなっていると思うので、ローカル用に書き換えるなどを行ってテストをします。

続いて結合テストや総合テストでは、実際にアプリケーションサーバにデプロイを行って画面操作しつつテストしていきます。
単体テストで起こっていた開発途中であるとか、OSが違うなどはこの段階のテストではほぼないです。
ここでの大きな本番との違いとしては、機器の性能が本番よりも大きく劣ることが多いことです。
サーバのサイズ容量から、動作速度まで、本番と比較すると大きな違いがあります。
そのため、テストを実施していると変なところで想定外の動きをして、調べてみたら容量不足だったなんてこともままあります。
これは予算などの問題もありますのでしょうがないことですが。

その他には、外部からテスト用のサーバには接続されないようになっていたり、逆にサーバ側から外にあるサーバに接続出来ないというものもあります。
ここが結構厄介な部分で、外部と接続する機能をテストをするような場合には、スタブというものを代わりに作成する必要があります。
ここでいうスタブは、外部と接続して返ってくるであろうデータを仮で作成しておくというものです。
実際に外部と接続しての確認はUAT環境で行うのですが、ここの段階になってから想定外事象が発生することもあり、問題があると大きな手戻りとなる部分です。

最後にユーザーテストですが、こちらは本番環境とほぼ同じ状況となります。
機器の性能面でも本番までとは言いませんが、かなり良いものを使用しています。
そのため性能テストなどはこのユーザーテストを実施する環境を使用してテストを行います。
もちろんこのユーザーテスト環境だからといってすべてが本番と同じではなく、例えばサーバ名等は本番と異なります。

テスト環境用にファイルを設定する


上記のことから、本番環境とテスト環境で多くのことが変わっていきます。
テストの度に手動で修正して確認するというのはミスや工数がかかってしまうリスクもありますので、私の現場では事前にテスト環境用に設定値ファイルを事前に作成します。
同じファイル名で、違うファイルを作成して、環境差分ファイルとして別で管理します。
SVNでUT→ITA→ST→UATとソースファイルを上げていくのですが、その時に環境差分ファイルが存在する場合には、本番用ファイルを上書きして環境差分ファイルを優先してサーバに反映するように設定しています。
テスト環境用のファイルは、設計段階で事前に必要なものを洗い出しておいて、漏れがないようにするのも重要です。

よくある環境差分ファイルとしては、 サーバー名、ファイルのパス、href先URL、スタブ、ファイル名などです。

テスト環境でよくある問題


最後にテスト環境でよくある問題をお伝えします。

■削除バッチが動いていないので、容量オーバー
 本番では定期的に動いているデータ削除用のバッチが、テスト環境では動いていないので、サーバの容量オーバーになることが多々あります。

■使用できるユーザが見つからない
 現在使用しているシステムは、一般ユーザも使用しているシステムなのですが、IDとパスワードが必要となります。
テスト環境でテストする際に、使用できるユーザーが見つからず苦労することがよくある問題です。
パスワードは暗号化されたままDBに保存されているので、なかなかユーザーのパスワードがわからずログイン出来ないのでテスト出来ないという問題ですね。

■他の案件に影響されて想定と違う結果となってしまう
 テスト環境には、他の人が担当している案件も随時反映されていくので、想定していた結果と違くなってしまい焦るというのもよくあります。
同じような機能を対応する案件は、ある程度は事前に確認しているのですが、たまに忘れていたりすると上記のようなことが起こります。

以上、簡単ではございますが、テスト環境がどのようなものかを紹介してきました。
どのようなシステムであってもテストは重要な作業です。
その中でテスト環境というのも強く意識しなくくてはいけない要素ですので、しっかり考えて設計しなくてはいけないと思います。


最後に関係ないですが、2017年の甲子園がついに決勝戦ですね。
毎年見ていますが、なぜか高校生の野球を一生懸命にしている姿には感動してしまうものがあります。
あと1試合最後まで両校とも悔いのないよう頑張って試合をしてもらいたいなと思います。
フッター広告

スポンサードリンク



シェアする

  • このエントリーをはてなブックマークに追加

フォローする