テスト自動化成功の鍵「テスト自動化アーキテクチャ」、構築のポイントと考え方とは
【A-3】アーキテクチャで理解するテスト自動化システム
開発の現場では、単体テストの自動化、結合テスト(APIテスト)の自動化、システムテストの自動化など、段階ごとにさまざまなテスト実行が自動化されている。だが、特に結合以降において、テスト自動化の導入を失敗するケースは少なくない。その原因の一つは、テストの自動化をツール導入と捉えていることにある。本セッションでは、テスト自動化アーキテクチャという概念を通じて、ソフトウェアテストを自動化する仕組み、テスト自動化システム構築のポイントについて語られた。
テスト自動化成功の大きな鍵「テスト自動化アーキテクチャ」
テスト自動化アーキテクチャはその名の通り、テスト自動化の仕組みを構築するためのアーキテクチャを意味し、テスト自動化が成功するか失敗するかの大きな鍵と言われている。
本セッションは、mablのQuality Advocateを務め、TestingやQAの啓蒙活動に取り組むおだしょーこと小田祥平氏のファシリテーションのもと、カカクコムのQAエンジニアとしてチームの立ち上げや複数の開発チーム支援を担当する伊藤由貴氏による解説が行われた。
テスト自動化アーキテクチャは、具体的な構成を決める「汎用テスト自動化アーキテクチャ(gTAA)」、実際に動く仕組みとなる「テスト自動化アーキテクチャ(TAA)」、それを実装した「テスト自動化ソリューション(TAS)」の3つのステップにおけるアーキテクチャで構成される。
まずは、それぞれのアーキテクチャについて簡単に説明していきたい。
汎用テスト自動化アーキテクチャ(gTAA)とは
汎用テスト自動化アーキテクチャ(generic Test Automation Architecture)は、テスト自動化ソリューションで最終的に作りたい仕組みであり、その汎用的な元となる全体概要となる。個別に考えるものではなく、すでにあるテンプレートやフレームだというふうに捉えるといいだろう。
以下スライドのように、主に「テスト生成レイヤー」「テスト定義レイヤー」「テスト実行レイヤー」「テスト適合レイヤー」の4つの層で構成されている。
「例えば、テスト適合レイヤーを作る場合、GUIを操作するテストを自動化したいのか、それともAPI、サービス、プロトコル、データベースなのかをこの図を元に考えていきます」(伊藤)
テスト自動化アーキテクチャ(TAA)とは
テスト自動化アーキテクチャ(Test Automation Architecture)は、gTAAを元に各要素を自分たちが実現したいものを具体化していくアーキテクチャだ。適切なアーキテクチャをつくるために、さまざまな検討ポイントがある。例えば、以下の3つが挙げられる。
- どの段階の、どの内容のテストをサポートするか
- どんな役割の方が用いるのか
- テスト対象のどんな技術要素をサポートすべきか
「例えば、そのテスト対象のアプリケーションがどんな言語で作られているか、どんなフレームワークで作られているのかによって、テストの仕組みを検討する対応が必要となります」(伊藤)
テスト自動化ソリューション(TAS)とは
TAAで検討したポイントを具体化して実装し、最終的に出来上がったものが、テスト自動化ソリューション(Test Automation Solution)である。テストハーネスやテストライブラリなどの成果物も含まれる。
「こうした汎用テスト自動化アーキテクチャから3段階のステップを経て、実際に動く仕組みを作っていくのが、テスト自動化アーキテクチャにまつわる考え方になります」(伊藤)
このように、テスト自動化アーキテクチャを考えることによって得られるメリットとしては、大きく2つが挙げられる。
1つは「考慮漏れを防止する」こと。特に、テスト自動化の仕組みづくりが初めてや経験が浅い場合は、必要な要素や考えるべき要素が漏れたりすることが多いが、gTAAの図をもとに考えていくことで、それが起きにくくなるメリットがある。
もう1つは「テスト自動化ソリューションが構造化される」ことだ。アーキテクチャなしで考えていくと、密結合なものが出来上がりがちだが、きちんと適切に構造化されて出来上がるメリットがある。
この記事は参考になりましたか?
- Developers Summit 2023 Summer セッションレポート連載記事一覧
- この記事の著者
-
馬場 美由紀(ババ ミユキ)
エンジニアとテクノロジーが好きな編集・ライター。エンジニア向けキャリアサイト「Tech総研」「CodeIQ MAGAZINE」、Web技術者向けの情報メディア「HTML5 Experts.jp」などでライティング、コンテンツディレクション、イベント企画などを行う。HTML5 開発者コミュニティ「h...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
丸毛 透(マルモ トオル)
インタビュー(人物)、ポートレート、商品撮影、料理写真をWeb雑誌中心に活動。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営する開発者のための情報メディアです。日々の開発に取り組むエンジニアやテクノロジーを学びたい方に向けて、プログラミングやAI活用、開発ツール、エンジニアの学びとキャリアに関する記事をお届けしています。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
提供:mabl K.K.
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア
