Slide 1

Slide 1 text

× アーキテクチャで理解する テスト自動化システム Developers Summit 2023 Summer

Slide 2

Slide 2 text

スピーカー紹介 odasho (@odashoDotCom) Quality Advocate / Product Marketing, mabl Japan 国内SIerにてインフラやPaaS App開発まで幅広く経験。その 後コミュニティ活動をきっかけにMicrosoftに入社。 EvangelistとしてAudience Marketingに従事。2022年10月 にmablにJoinし、TestingやQAの啓蒙活動に取り組む。現在 もDevRel Meetup in Tokyoを中心に複数のコミュニティを運 営/支援。 Most DevRel Committer 2020、名城大学 情報工学部講師 伊藤 由貴 (@yoshikiito) QAエンジニア, 株式会社カカクコム 株式会社ベリサーブにてテスト自動化導入支援や技術推進など を経験し、2023年に株式会社カカクコムにJoin。 部門一人目のQAエンジニアとして、QA組織立ち上げや各開発 チームでの品質向上活動を行っている。 JSTQB AL テスト自動化シラバス日本語翻訳WGメンバー、 TestingCommunityJP運営。

Slide 3

Slide 3 text

セッションアンケートのお願い アンケートに回答して mabl の Workshop に 参加しよう! ● mablのテスト自動化を体験できるイベントを都内 某所で開催 (参加希望者多数の場合は抽選になります ) ● さらに回答者の中からAmazon Gift Cardを 抽選で2名にプレゼント! (Workshop参加の有無は問いません )

Slide 4

Slide 4 text

本セッションの概要 ソフトウェアテストを自動化する仕組みについて、 テスト自動化アーキテクチャという概念を通じて考えてみましょう。

Slide 5

Slide 5 text

テスト自動化と、主なやり方 ● 意味:テストに関する活動の何かしらを自動化すること ○ テストケースの自動生成や、テストの自動実行など ○ 一般的には「テスト実行の自動化」を「テスト自動化」と呼ぶことが多い。 以降、本セッションでもテスト実行の自動化をテスト自動化と表現する。 ● 開発の現場では、さまざまなテストが自動化されている ○ 単体テスト:言語ごとのフレームワーク(xUnitなど)を用いてテストを書き、IDEやCI環境で実行 ○ 結合テスト(APIテスト):PostmanやKarateなどを用いてリクエストを投げてレスポンスを確認 ○ システムテスト:画面を操作するツールやライブラリを用いて、ユーザー操作と確認を自動化

Slide 6

Slide 6 text

テスト自動化の導入は失敗しやすい? ● 特に結合以降のテストにおいて、自動化に失敗したという話をよく聞く ○ 自動テストのメンテナンスが追いつかなくなった ○ ツール選びに失敗した ○ 自動テストが不安定で信頼できなくなった など ● 失敗原因の一つは、テスト自動化=ツール導入と捉えているから ○ 特定のツール(ライブラリ・フレームワーク)を使えばOK!ではない ツール単体ではなく、テストを自動化する仕組みの構築=システム開発の一種として取り組む必要がある テスト自動化アーキテクチャ、で考えよう

Slide 7

Slide 7 text

テスト自動化アーキテクチャとは ● テスト自動化の仕組みを構築するためのアーキテクチャで、 テスト自動化の成否に大きく関わると言われている。 ● 下図の流れでテスト自動化ソリューションを設計・開発・実装すると、 都度ゼロから構成要素を検討しなくて済み、考慮漏れ等も防止できる。 汎用テスト自動化 アーキテクチャ gTAA テスト自動化 ソリューション TAS テスト自動化 アーキテクチャ TAA 具体的な構成を決める 実装する

Slide 8

Slide 8 text

汎用テスト自動化アーキテクチャ generic Test Automation Architecture (gTAA) ● テスト自動化ソリューションの 全体概要を提供する ○ 個別に考えるものではなく、すでにあるもの ○ テンプレートやフレームのようなものと捉える ● 主に4つの層で構成 ○ テスト生成レイヤー ○ テスト定義レイヤー ○ テスト実行レイヤー ○ テスト適合レイヤー テスト技術者資格制度 Advanced Level シラバス テスト自動化エンジニア より

Slide 9

Slide 9 text

テスト自動化アーキテクチャ Test Automation Architecture (TAA) ● TASのアーキテクチャを定義するために gTAAを具体化したもの ○ gTAA中の各要素を、どんなツールやフレームワークを用いて実現するかの設計 ○ 汎用のアーキテクチャから、自分たちが実現したいもののアーキテクチャを作る、という流れ ● 適切なアーキテクチャを作成するために、様々な検討が必要 ○ どの段階の、どの内容のテストをサポートするか(単体/結合/システム、機能テスト/非機能テスト、など) ○ どんな役割の方が用いるのか ○ テスト対象のどんな技術要素をサポートすべきか(言語、フレームワークなど)

Slide 10

Slide 10 text

テスト自動化ソリューション Test Automation Solution(TAS) ● TAAを具体化/実装したもので、テストハーネス やテストライブラリなどの 成果物を含む ○ 実際に個々のツールやライブラリ等を用いて作った、テストを自動化して実行するための仕組みのこと

Slide 11

Slide 11 text

テスト自動化アーキテクチャを考えるメリット ● 考慮漏れを防止する ○ 特にテスト自動化の仕組みづくりが初めてor経験が浅い場合、本来必要な要素が漏れる可能性があるが、 gTAAを元に検討することで、防止できる ○ テスト適合レイヤーとテスト実行レイヤーのみ考えてしまいがち ● テスト自動化ソリューションが構造化される ○ アーキテクチャを考えずに仕組みを作ると、一部が密結合になるなどして、 部分的に別のツールやライブラリに変更する等の対応が難しくなる可能性アリ ○ 構造化されることで部分的な変更ができる

Slide 12

Slide 12 text

gTAAでアーキテクチャを考える:Seleniumの場合 ● Selenium ○ ブラウザ操作を自動化するためのライブラリ ● gTAA中の該当箇所 ○ テスト適合レイヤーの一部 ● Seleniumでテストを自動化するには ○ テスト実行レイヤー(UnitTest FrameworkやReporterなど)、 テスト定義レイヤー(UnitTest Frameworkやテスト管理ツールなど)、 を用意しつつ、テスト生成レイヤーとして 手動でのテスト設計もしくはツールを用いてテスト生成 テスト技術者資格制度 Advanced Level シラバス テスト自動化エンジニア より

Slide 13

Slide 13 text

gTAAでアーキテクチャを考える:mablの場合 ● mabl ○ E2EテストやAPIテストなどの自動化ができるプラットフォーム ● gTAA中の該当箇所 ○ テスト定義レイヤーからテスト適合レイヤーまでをカバー ● mablでテストを自動化するには ○ テスト生成レイヤーとしてテスト設計を行い、 それをmabl上で操作記録することで自動化ができる テスト技術者資格制度 Advanced Level シラバス テスト自動化エンジニア より

Slide 14

Slide 14 text

様々なライブラリを組み合わせる or 単一のツールで広くカバー 組み合わせる 例:Selenium 広くカバー 例:mabl 特徴 ● 特定のツールに依存せず、 部分的な入れ替え等が可 ● ニーズに応じた柔軟な構成 ● 設計・実装がスピーディ ● 自前で実装する部分が少ない たとえば こんなとき ● Developer / SRE / SET(Software Engineer in Test)主体で自動テスト ● QA主体で自動テスト

Slide 15

Slide 15 text

参考:gTAAを元に作成されたTAAの例 ● Helsenorge(ノルウェー国民向けポータル) のTAA ● テスト自動化フレームワーク自体を自作 Achieving Test Automation with Testers without Coding Skills: An Industrial Report より

Slide 16

Slide 16 text

まとめ ● テスト自動化は単一のツール導入ではなく仕組みの構築と考える ● 仕組みを構築する際に使えるのが、テスト自動化アーキテクチャ ○ 汎用テスト自動化アーキテクチャ → テスト自動化アーキテクチャ → テスト自動化ソリューション ● テスト自動化アーキテクチャの構成要素を 一つのプラットフォームで広くカバーするのか、 ツールやライブラリを組み合わせて作り上げるのか、 チーム状況に応じた判断をしよう

Slide 17

Slide 17 text

参考 ● テスト技術者資格制度 Advanced Level シラバス テスト自動化エンジニア ○ 汎用テスト自動化アーキテクチャ、テスト自動化アーキテクチャ、テスト自動化ソリューション の考え方が掲載

Slide 18

Slide 18 text

For your information

Slide 19

Slide 19 text

If you want to learn more about mabl...? アンケートに回答して mabl の Workshop に 参加しよう! ● mablのテスト自動化を体験できるイベントを都内 某所で開催 (参加希望者多数の場合は抽選になります ) ● さらに回答者の中からAmazon Gift Cardを 抽選で2名にプレゼント! (Workshop参加の有無は問いません )

Slide 20

Slide 20 text

mabl user community! mabl の User Community『mablers_jp』 ● ユーザーによるユーザーのための コミュニティ ● ユーザーによる忖度のない生の声を聞く 絶好のチャンスです。是非ご参加ください! https://mablersjp.connpass.com/

Slide 21

Slide 21 text

You can try it now! ● 今すぐできる2週間の無料トライアル! mabl Uのお供にどうぞ! ● デモリクエストも大歓迎! https://www.mabl.com/ja

Slide 22

Slide 22 text

About the mabl University How-to Videos (English only) How-to Lessons (Japanese only) On-Demand Training (English & Japanese) mabl Skills Certifications (English & Japanese) ● 33 ビデオ (各3 - 8 分程度) ● 英語字幕あり、日本語字幕なし ● 26 レッスン ● Step by stepで学習可能 ● 4 ラーニングパス ● 設定、基礎、高度、統合でそれ ぞれ30 - 90 分の学習パス ● 学習目標に応じたパスを提供 ● 3 つの資格 ● Foundations と Advanced ● NonFunctional ←NEW ● LinkedIn に掲載可能

Slide 23

Slide 23 text

About the mabl Skills Certification 出題数60問の選択式テストを通じて、mablのナビゲー ション、設定、テスト作成、出力、自動テスト戦略につい て解答し、examをパスしましょう! Why get certified? ● LinkedInで認定資格合格後を登録可能 ● 認定資格試験の取得を通じてmablプラットフォー ムの一定への知見をアピールできます ● mablers_jpのようなコミュニティを通じて、得たス キルを活かしたOutputをしましょう! ● 2023年3月~日本語での提供を開始しました

Slide 24

Slide 24 text

Thanks! You can connect at... odasho Quality Advocate / Product Marketing, mabl Japan 伊藤 由貴 QAエンジニア, 株式会社カカクコム odashoDotCom odasho0618 odasho odasho0618 yoshikiito