はじめに
概要
10年ぶりにコーディングをすることになったおじさんのように、10年ぶりに画面系ソフトウェアテスト自動化に取り組むことになりました。時代の変化や技術の進化についていくため、どうキャッチアップしたらよいかを記載します。
想定読者
画面の自動テストに関する知見を知りたい方を読者に想定しています。また、この記事を読む時間は3分程度になります。
本題
基礎の学習
ソフトウェアテストの自動化に関する基礎知識については、10年前と変わっていません。基礎を学習/復習するにあたり、書籍の「ソフトウェアテスト自動化の教科書」がオススメです。「ソフトウェアテスト自動化の教科書」内の「第2章:自動テストの正しい知識を身につける」「第3章:自動化を成功させるための4つのプロセス」は自動テストに関する普遍的な内容であり、自動テストに取り組む前に読んでおくのがよいかと思います。
自動化方式の多様化
かつてはDOM(Document Object Model)ベースで操作対象を特定する自動化ツールが主流でした。しかし、今日(こんにち)においては画像認識やOCRで操作対象を特定するツールが出てきております。このような画像認識やOCRは10年前も存在していましたが、AI技術の発展によって10年前と比較してスクリプト作成/メンテナンスの難易度が低下しつつ、自動化の安定性が高まっています。
自動化の対象システムによって、最適な操作対象特定方式は異なります。例えば、UIに改修が入るたびにDOMが複雑に変わるようなWebアプリケーションの場合、DOMではなく画像やOCRで操作対象を特定したほうがよりスクリプト作成/メンテナンスの難易度が下がる可能性があります。自動化方式に複数の方法があることを理解するべきです。
代表的な画像やOCRで操作対象を特定できるテストツールとしてEggPlantがあります。
自動化対象の多様化
かつてはテスト自動化といえばブラウザのテスト自動化を指すものだったと思います。しかし、今日(こんにち)においてはタブレットやスマートフォンアプリのソフトウェアテスト自動化対象となりえます。スマートフォンアプリがテスト対象の場合、旧来のDOMベースのツールでは自動化に対応していないことが多いです。そのため、スマートフォンアプリ等が自動化できるツールの知見も獲得しておくべきです。なお、スマートフォンアプリの自動化には端末準備等に時間や負荷がかかることが多いため、リードタイムが必要なことを考慮してテスト自動化のスケジュールをたてるとよいでしょう。
代表的なスマートフォンアプリを自動できるOSSツールとしてAppiumがあります。
SaaS系テストサービスの発展
かつてはローカルPCにツールをインストールする方式が主流でした。しかし、今日(こんにち)においてはSaaSベースのテスト自動化サービスが多く出てきております。ノーコードで操作対象を特定できる機能があったり、自分でテスト打鍵用端末を用意する必要がない、など使いやすさの観点でSaaS系テストサービス多くのメリットがあります。ただし、SaaSテストサービスのサービサーにテストに関するデータを管理されるため、セキュリティ観点で利用できないシステム多くあります。また、インターネットにつながらない閉域網のテスト環境は簡単に利用できない、などの問題もあります。セキュリティ観点やテスト環境のネットワークを考慮しつつ、テスト自動化の選択肢として検討いただくとよいかと思います。
代表的なSaaS系テストサービスとしてはmablやAutifyがあります。
OSSテストツールのトレンドの理解
かつてはOSSテストツールとしてはSelenium一強でした。しかし、今日においてはSeleniumとは異なるOSSテストツールの利用が伸びています。代表的なOSSテストツールはcypressとplaywrightです。ダウンロード数比較リンクを確認すれば、主流となりつつあるOSSテストツールが理解できるかと思います。
まとめ
今日においてはソフトウェアテスト自動化するにも多くの方法があり、テスト自動化を進めるにあたっては各ツールの特徴や方式を理解するのが必要です。自動化対象のシステムの特徴や、セキュリティや費用、ツールの習熟コストやメンテナンス時にどうしていくかなど多角的な観点で評価し、ソフトウェアテスト自動化を進めていくのが良いかと考えています。