出版

高品質なアプリケーション単体テスト環境を作成することで、IT の時間とコストを節約し、重大なエラーを防ぐことができます。

私がソフトウェア開発を管理していたとき、最も乱雑で非効率的な領域の 1 つは、プログラマーがアプリケーションの単体テストを行えるように設定されたシステム テスト領域でした。
厳しいプロジェクトの納期に追われる中で、私たちはアプリケーションの品質保証テスト、ステージング、そして本番環境へのリソース配分に注力しました。開発者がアプリケーションを開発しながらユニットテストを行えるシステム「サンドボックス」の構築は、それほど重視されていませんでした。
参照: 採用キット: Python 開発者(TechRepublic Premium)
その結果、ユニットテスト終了後もデプロビジョニングされないまま、無駄なシステムリソースが増大しました。アプリケーションのQAパスに時間がかかり、本番環境では動作しなくなることさえありました。これらはすべて、アプリケーション開発の初期段階で、プログラマーが古いデータを使ってアプリをテストせざるを得なかったことに起因しています。
公平を期すために言うと、各ショップがこのようなやり方をしていたのには理由がありました。アプリケーション開発グループでは、アプリケーションのエラーをテストして検出するのは品質保証チームの仕事だと考えていました。開発者は、コードがコンパイルされ、アプリケーションが実行されることを確認するだけでよかったのです。さらに、データベースグループとシステムグループは常に業務で手一杯でした。どちらのグループにとっても、アプリケーションサンドボックスのデータ更新の優先順位を下げるのは容易でした。
この考え方は、多くの IT 部門では昔も今も一般的な慣行ですが、今日のリソースではそうである必要はありません。
アプリケーションテストシステムを改善する方法
ここでは、サイトが新しいアプリケーションの単体テスト環境を改善するために使用できる 3 つの方法を紹介します。
テンプレートシステム割り当てスクリプトを使用する
アプリケーション開発者が特定のLinuxオペレーティングシステムのディストリビューションとリリースでアプリケーションをテストする必要がある場合、OSのプロビジョニング用の汎用スクリプトにアクセスでき、わずかな調整のみで済むようにする必要があります。アプリに適したOS環境をプロビジョニングするためのスクリプトを手動で作成する必要はありません。
Linuxを例に挙げると、このオペレーティングシステムの複数のベンダーが、アプリケーションのユニットテストを目的として、新しいOSの自動プロビジョニング機能を提供しています。OSプロビジョニングの自動化により、開発者はアプリケーションのテストOS環境を作成するために独自のスクリプトを手動で記述する必要がなくなります。また、手動スクリプト作成時に発生する可能性のある人為的エラーの可能性も排除されます。
リソースの割り当てと割り当て解除を自動化する
アプリケーション単体テストにおける 2 番目の問題点は、アプリケーションに適したテスト環境を作成するためにロードする必要があるデータベースやその他のシステム ライブラリの割り当てです。
アプリケーション開発者は、多くの場合、これらのテスト領域とリソースをセットアップするために、データベースおよびシステム グループが利用可能になるまで待機する必要があります。
この問題を解決するため、多くのベンダーが開発者向けにポイントアンドクリックインターフェースを提供しており、アプリケーションのユニットテスト環境に必要なデータベースとシステムリソースを自由に選択できます。このポイントアンドクリックによるリソース選択により、開発者はデータベース部門やシステム部門に支援を求めることなく、独自のユニットテスト環境を自ら構成できるため、時間と労力の節約につながります。
開発のバックエンドでは、アプリケーションのユニットテストが完全に完了すると、ユニットテスト用に確保されたシステムリソースとストレージをメンテナンスする必要がなくなります。しかし残念ながら、開発者はそれを忘れがちで、ストレージとリソースはアイドル状態のままになってしまいます。
参照:採用キット: バックエンド開発者(TechRepublic Premium)
この無駄は、データベースグループやシステムグループがテスト領域を自動的にデプロビジョニングするためのパラメータを設定すれば排除できます。例えば、「90日後にアプリケーションxyzのテスト領域は、使用状況が検出されない場合、デプロビジョニングされます」というメッセージを開発者に送信することで、開発者に事前に通知することができます。
テストデータを定期的に更新する
アプリケーションテスト環境では、データの更新頻度が低いことがよくあります。データが古い場合、そのデータを使用してテストされたアプリケーションがQA環境だけでなく本番環境でも動作しなくなるリスクが高まります。
データベースグループは、テストデータを定期的に更新する必要があります。これにより、テストとQAチェックアウトの時間を節約できるだけでなく、本番環境で発生する可能性のある重大なアプリケーションエラーを防ぐことができます。
TechRepublic Academy には、ソフトウェア エンジニアリング、ソフトウェア開発認定、ソフトウェア エンジニアリング管理、Scrum に関する興味深いコースが多数用意されています。
こちらもご覧ください
- Pythonプログラミング言語:このトレーニングであなたのコーディングキャリアをスタートさせましょう
- Linux開発者に必須のツール8選
- 採用キット: JavaScript 開発者
- プログラミング言語と開発者のキャリアリソース

メアリー・シャックレット
メアリー・E・シャックレットは、技術調査・市場開発会社であるトランスワールド・データの社長です。同社設立以前は、金融サービス企業TCCU, Inc.でマーケティング・技術担当シニアバイスプレジデント、コンピュータソフトウェア企業Summit Information Systemsで製品研究・ソフトウェア開発担当バイスプレジデント、半導体業界の多国籍製造企業FSI Internationalで戦略計画・技術担当バイスプレジデントを務めました。基調講演者であり、1,000本以上の論文、調査研究、技術出版物を出版しています。