分テストはなぜ必要かアプリケーション開発におけるテストとは,アプリケーションが問題なく動作しているかどうかを確認する作業のことです。このテストを行わないとアプリケーションに不具合を残したままユーザが利用することになり,サービス提供側からすると,以下のようなデメリットを引き起こすことが考えられます。信用の失墜によるユーザの離脱サービス停止による経済的な損失データ破損などの物理的な損失このような事態に陥らないために,適切にテストを行って十分なクオリティのサービスをユーザに提供する必要があります。テストを手作業で行うと面倒これまででテストの重要性を理解できたと思いますが,このテストをすべて手作業で行うと人件費や時間などのコストが非常にかかります。1年に1回程度バージョンアップするアプリケーションであれば,それなりにテストにかける時間もかけることができ,それほど問題にはならないかもしれません。最近のWebアプリケーションでは,毎日のように変更が発生し,日々改善されています。その際,新たに追加された,もしくは変更された機能のテストだけでなく,既存の機能がそれらの変更に影響を受けず,正しく動作しているかを確認するテストも必要になります。このテストを回帰テストと呼びます。回帰テストはアプリケーションが大きくなればなるほどその量は増えていき,バージョンアップのたびに回帰テストを行っていると,テストにかかるコストは非常に大きなものになります(図1⁠)⁠。図1自動テストツールとはその課題を解決するために利用されるのが自動テストツールです。このツールによって手作業で行っていたことを自動化することができ,適切に使いこなすことによってテストにかかるコストを劇的に引き下げることができます。自動化できるとはいっても,テストスクリプトの作成やテスト結果の確認と分析などを行う必要があり,かつきちんと使いこなさないと,別の余計なコストがかかることになるので注意が必要です。自動テストツールは数多く用意されています。ここでは,テストツールの種類とその内容について簡単に紹介します。ユニットテストツールテストプログラムによって関数やクラス単体の動作をチェックするのがユニットテストツールです。テストの実行や値のチェック,テスト結果レポートの生成など,さまざまな機能が備わっており,効率良くテストプログラムを作成できます。負荷テストツールシステムに対する負荷テストを支援するのが負荷テストツールです。システムの実行にかかる時間を測定したり,サーバへの大量のリクエストを擬似的に発生させたりできます。セキュリティテストツールシステムの脆弱性検査を行うのがセキュリティテストツールです。SQLインジェクションやクロスサイトスクリプティングなど,さまざまな攻撃に対する脆弱性を検出します。画面テストツール作成したプログラムを組み合わせ,実際にユーザが利用するのと同じ状態にしたシステムに対して行うテストをシステムテストと呼びます。クリックやマウス操作などの画面操作を自動で行いシステムテストを自動化するのが画面テストツールです。代表的なツールとしてSeleniumがあります。このツールについては『Selenium実践入門』で詳しく解説しています。本稿でアプリケーション開発におけるテストの重要性,またテストの自動化についておわかりいただけたかと思います。テストを自動化していない開発者がいれば,自動テストツールの導入を検討してみてはいかがでしょうか。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。書店・販売店の皆様へデベロッパアドミニストレータWEB+デザインライフスタイルサイエンスニュース&レポートメールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。