$30 off During Our Annual Pro Sale. View Details »

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

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

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

mabl株式会社おだしょーさんと
株式会社カカクコム伊藤由貴の発表資料です。

https://event.shoeisha.jp/devsumi/20230727/session/4455/

YoshikiIto

July 27, 2023
Tweet

More Decks by YoshikiIto

Other Decks in Technology

Transcript

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

    View Slide

  2. スピーカー紹介
    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運営。

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  18. For your
    information

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  22. 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 に掲載可能

    View Slide

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

    View Slide

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

    View Slide