本文へスキップします。

ページタイトル

COLUMNコラム

COLUMN

Seleniumとは?
その概要と問題点、テスト自動化ツールを選ぶ際のポイントを解説
システム開発におけるテストには多くの工数がかかりますが、テスト自動化ツールを導入することで開発業務の効率化やコスト削減を図れます。本記事では、テスト自動化が注目される背景や、Seleniumの概要、ツールの選定ポイントなどを解説します。

                                                
             
                                                PC

システム開発におけるテストは、システムが正しく使える状態にあるか、セキュリティは万全かなどを確認するために必須の工程です。テストには多くの工数と時間がかかりますが、自動化ツールを導入することで開発業務の効率化やコスト削減を図れます。そうはいっても、テスト自動化ツールは多く存在し、どのようなツールを導入すべきか迷っているシステム担当者も多いのではないでしょうか。
本記事では、テスト自動化が注目される背景、代表的な自動化ツールであるSeleniumの概要、テスト自動化ツールの選定のポイントなどを解説します。

テスト自動化が注目される背景

テスト自動化が注目される背景には、次のような理由が挙げられます。

ビジネス環境の変化に伴う開発手法の変化

テスト自動化が注目される背景にあるもののひとつが、昨今見られるシステム開発手法の変化です。
以前は、ウォーターフォール型と呼ばれる、要件定義→設計→プログラミング→テストとプロジェクトの最初から順番に進める開発手法が主流でした。しかし近年は、市場ニーズの変化が激しくなっていることから、効率を最重視した開発手法のアジャイル型が増えています。
アジャイル型は、あらかじめ「開発の工程で仕様変更や設計変更が発生する」ことを前提に、短期間でシステム開発を進める手法です。機能単位ごとに実装し、何度もテストを実施します。アジャイル型が普及した昨今では、短期間で高品質なシステムを納品するために、テストの自動化が注目されるようになったのです。

テスト項目の増加

システム開発やアプリケーション開発の分野は変化が早く、技術の発展に伴って、新しい機能を持ったモデルが次々に誕生しています。
システムやアプリケーションの機能が増えると、テスト対象となる項目も増加するため、ひとつのテストにかけられる時間の短縮が求められます。一方で、時間を短縮してもテストの品質を低下させるわけにはいきません。
高品質の製品を納品・運用するために、細部まで確認もれのないテストを短期間で行う必要が出てきました。それを実現するためにテスト自動化が注目されています。

                                                                                  

代表的なテスト自動化ツールSeleniumとは

では、テスト自動化にはどのようなツールを使えばよいのでしょうか? ツールの一例として、オープンソースであり無料で利用できるため、多くの開発現場で使用されている「Selenium」について紹介します。
Seleniumとは、画面のテストを自動化し実行することを可能にする、クロスブラウザ・クロスプラットフォームのUIテストツールです。
多様なOSとWebブラウザに対応しており、システムやアプリケーションの画面をクリックする、テキストを入力するといった動作を自動で行います。表示内容の確認や動作時間の測定もでき、システムの機能チェックとユーザー側の使いやすさを検証することが可能です。
UIテストについての詳細は、「UIテストの自動化で期待できることは?導入時の注意点も紹介」をご参照ください。
Seleniumは複数のコンポーネントから構成されており、サポート環境が幅広いことが代表的な特徴です。順に見ていきましょう。

Seleniumの主なコンポーネント

代表的なコンポーネントを紹介します。 ・Selenium RC
Seleniumを構成する要素のなかで、最初にオープンソース化されたコンポーネントです。Seleniumのテストを外部から遠隔操作するためのツールであり、テストを実行するWebブラウザにJavaScriptというプログラムのコードを埋め込んで動作させます。現在では、後述するSelenium WebDriverが登場したことにより、そちらに役割が移行しています。

・Selenium WebDriver
Selenium RCの後継となるコンポーネントであり、同様にWebブラウザでのテストを自動的に操作できます。RCと異なるのは、ブラウザの拡張機能やOSの機能を利用して操作できる点です。また、テストだけでなく、Webから特定の情報を収集する「スクレイピング」に使用できるのも特徴です。

・Selenium IDE
Seleniumを使った自動テストを実行するための統合開発環境(IDE:Integrated Development Environment)です。統合開発環境とは、システム開発に必要なツールを統合して提供した環境のことであり、Selenium IDEの場合はブラウザの拡張機能として提供されます。人が操作したブラウザの動きを記録し、その内容を自動化テストに反映することが可能なので、プログラミングの知識がなくても使用できます。

・Selenium Grid
複数のマシンに存在するSeleniumの実行環境を一元管理し、同時並行的に自動化テストを実行するためのツールです。さまざまなOSとブラウザを複数の組み合わせでテストしたい場合に使用できます。複数の製品のテストにかかる時間を大幅に短縮することが可能です。

Seleniumのサポート環境

以下のように、Seleniumは多様な環境に対応可能です。
・OS:Windows・macOS・Linux
・ブラウザ:Google Chrome・Edge・Firefox・Safari
・プログラミング言語:Java、JavaScript、Python、Ruby、C#
以上のように、一般的に使用されている代表的なOSやブラウザで動作することがわかります。また、開発現場で使用される主なプログラミング言語にも対応しており、汎用性の高さが大きな特徴だといえます。

                                                                                  

Seleniumの問題点

テスト自動化ツールとしてシェアの高いSeleniumですが、以下のような問題点もあります。

メンテナンスの負担が増大する

テストの自動化にはプログラムコードを書く必要があることから、プログラミングの知識・スキルがある担当者でなければテストの自動化ができず、大量のテストを作成する場合にも工数がかかります。また、プログラムコードの読み書きができる人しかメンテナンスができません。
Seleniumでは、開発中のシステムの仕様に少しでも変更点があると、自動テストのために用意したプログラムが動作しないことがあります。
担当者の負担が大きいだけでなく、属人化によりシステム開発がスムーズに進まなくなるなどの弊害も考えられます。

画像比較やレポートなどの機能がない

Seleniumは、テスト結果のエビデンスとして操作前と操作後の画像を比較したり、テスト結果をレポートに記録したりすることができません。
記録をつける場合は知識・スキルのある担当者がプログラミングする必要があり、ヒューマンエラーの発生の可能性も出てきます。

                                                                                  

テスト自動化ツール選定で失敗しないためのチェックポイント

ここまではSeleniumについて紹介してきましたが、テスト自動化ツールには、ほかにもさまざまなものがあります。テスト自動化ツールの選定で失敗しないために見るべきポイントを紹介します。

多様なテストに対応しているか

ライセンスひとつにつき、何種類のOSやブラウザに対応できるのかを確認しましょう。
開発現場では、複数のブラウザやOSを組み合わせて検証するケースがあります。そのような場合、複数のプラットフォームに対応できれば、ひとつのツールでさまざまなプロジェクトに使用できます。

テストのレポート作成機能が備わっているか

テストのレポートを自動的に作成できる機能の有無もチェックしましょう。
テストを自動化してもレポートを自動で作成できなければ、記録をまとめる手間が発生し、記入もれが起こる可能性もあります。テスト結果を自動的に記録するツールであれば、製品の不具合や改善点の報告をもれなくレポートに記録できます。
レポート機能によりテスト開始前の仕様書作成やエビデンスを自動生成できれば、テストにかかる時間をいっそう短縮できます。

さまざまなテスト対象へ手間なく適応させられるか

自動化テストの対象となる製品のプログラミング言語に非対応だったり、新しいOSに対応していなかったりすることがないよう、複数のプログラミング言語や最新のOSに対応したツールを選びましょう。
製品ごとにテストコードを修正する必要のないツールを選べば、より効率的に自動化されたテストを実行できます。

専門知識・スキルなしでも使えるか

システムのテストを自動化する際、プログラムコードを書かずにすむツールを選びましょう。
プログラミングの知識・スキルがある人でなければテストの自動化ができないツールでは、業務の属人化が発生するリスクが生じます。プログラミングの知識・スキルのない人でも使えるツールが理想的です。
                                                                                  

テスト自動化ツールでシステム開発を効率化しよう

代表的なテスト自動化ツールあるSeleniumは、幅広いプラットフォーム、プログラミング言語に対応しており、さまざまな環境で活用できます。一方で、テストコードを書くプログラミングスキルが必要であるといった問題点も存在します。テストを自動化する目的は、多くの場合テストの効率化であるため、メンテナンスにかかる手間は大きなデメリットです。
オープンソースを使用できるプログラミングスキルがない場合は、有償ツールも選択肢になります。
SRAの「Testablish」は、プログラミングスキルが不要で、誰でもテストコードを作成・高精度の自動テストを実行できるツールのひとつです。先に紹介したチェックポイントもすべて満たしています。
無料トライアル期間が設けられているので、まずはお気軽に試してみてはいかがでしょうか?
Web・GUIアプリのテスト自動化ツールなら「Testablish」

参考:
Seleniumとは?メリットについて解説します|IT求人ナビ
Seleniumを使ってテスト自動化。[第1回 Seleniumを始める時に最初に知っておくべきこと。]|コールセンタートレンド
テスト自動化が注目される理由とは?メリット・デメリットやおすすめのツールも紹介|TECH CAMP blog

一覧に戻る