Upgrade to Pro — share decks privately, control downloads, hide ads and more …

効率的なアプリ自動化のためのガイドラインと実践方法

KintoTech_Dev
February 21, 2025
2

 効率的なアプリ自動化のためのガイドラインと実践方法

「Appium Meetup Tokyo #1」で2025/02/20に発表した内容です
https://autifyjapan.connpass.com/event/342867/

KINTOテクノロジーズにおけるモバイルアプリのテスト自動化の第一歩をご紹介します

KintoTech_Dev

February 21, 2025
Tweet

Transcript

  1. ©KINTO Corporation. All rights reserved. 5 自己紹介 • SE •

    航空管制システム • 官公庁向けのシステム • 第三者検証 • デジタル漫画 • 不動産アプリ • テーマ型の株式投資 • 証券システム • KINTOテクノロジーズ • アプリチーム所属(TL)
  2. ©KINTO Corporation. All rights reserved. 7 アプリでは、 • iOSとAndroid •

    テスト対象のOSバージョンとスマートフォン端末 • ネイティブアプリの機能 を考慮する必要があるため、機能がそれほど複雑ではないアプリ でも、 「テストの規模が大きくなりがちな 特徴」があります 1.アプリ自動化をKINTOテクノロジーズで行う理由
  3. ©KINTO Corporation. All rights reserved. 8 項目 特徴 iOSとAndroid 開発環境が異なる

    ⇒テストの分量が単純に倍 となる テスト対象のOSバージョンと スマートフォン端末 スマートフォン端末×OSバージョンの組み合わせを網羅し たテストは現実的に不可能 ⇒弊社では、iOS最新2バージョン と Android最新5バージョンでテスト ネイティブアプリの機能 端末独自の機能やスペックがアプリの機能に影響する ⇒Push通知/タッチスクリーン/パーミッション 1.アプリ自動化をKINTOテクノロジーズで行う理由
  4. ©KINTO Corporation. All rights reserved. 9 品質向上に向けて、 ・「開発の週次定例にQAも参加」 ・「案件や定期リリースでの品質向上のためのFB ・「Appiumでの自動化」を行っています

    • 新規案件のQATの不具合率 • Webの案件 :0.4~1.5% • アプリの案件 :4~17% 0.0% 2.0% 4.0% 6.0% 8.0% 10.0% 12.0% 14.0% 16.0% 18.0% 20.0% アプリA アプリB アプリC アプリD WebA WebB WebC WebD 不具合率 1.アプリ自動化をKINTOテクノロジーズで行う理由 676件
  5. ©KINTO Corporation. All rights reserved. 12 画面 項目 iOS(Xpath) Android(Xpath)

    INPUT_MAIL //XCUIElementTypeApplication[@name =\"KINTO かんたん申し込み Stg\"]/XCUIElementTypeWindow[1]/XC UIElementTypeOther[2]/XCUIElementTy peOther/XCUIElementTypeOther/XCUIEl ementTypeOther/XCUIElementTypeOthe r/XCUIElementTypeScrollView/XCUIEle mentTypeOther/XCUIElementTypeOther [2]/XCUIElementTypeOther[2]/XCUIEle mentTypeOther[2]/XCUIElementTypeOt her[1]/XCUIElementTypeOther/XCUIEle mentTypeOther/XCUIElementTypeOther [2]/XCUIElementTypeTextField /hierarchy/android.widget.FrameLayout/androi d.widget.LinearLayout/android.widget.FrameL ayout/d3.n1/android.view.View/android.view.V iew/android.view.View/android.view.View[1]/a ndroid.widget.EditText[1] 2.自動化しやすいアプリの作成 修正された画面のXpath全て 取り直し・・
  6. ©KINTO Corporation. All rights reserved. 13 画面 項目 iOS(Xpath) Android(Xpath)

    INPUT_MAIL //XCUIElementTypeApplication[@name =\"KINTO かんたん申し込み Stg\"]/XCUIElementTypeWindow[1]/XC UIElementTypeOther[2]/XCUIElementTy peOther/XCUIElementTypeOther/XCUIEl ementTypeOther/XCUIElementTypeOthe r/XCUIElementTypeScrollView/XCUIEle mentTypeOther/XCUIElementTypeOther [2]/XCUIElementTypeOther[2]/XCUIEle mentTypeOther[2]/XCUIElementTypeOt her[1]/XCUIElementTypeOther/XCUIEle mentTypeOther/XCUIElementTypeOther [2]/XCUIElementTypeTextField /hierarchy/android.widget.FrameLayout/androi d.widget.LinearLayout/android.widget.FrameL ayout/d3.n1/android.view.View/android.view.V iew/android.view.View/android.view.View[1]/a ndroid.widget.EditText[1] ID化するとiOSとAndroid共通で「txtMail」 2.自動化しやすいアプリの作成
  7. ©KINTO Corporation. All rights reserved. 14 メンテナンス性: 画面レイアウト変更に 伴う修正が不要 パフォーマンス:

    IDを使用した検索は 処理が高速 可読性: IDはシンプルで明確 1 2 3 効果 効果 効果 2.自動化しやすいアプリの作成 QAと開発、共に築く高品質の未来
  8. ©KINTO Corporation. All rights reserved. 16 パンヌウェイ Pann Nu Wai

    • SE • 社内システム • オンライン携帯販売システム • マルチブラウザ対応 • 日本経済計算アプリ • 日本年金システム • 大手携帯会社のお客様情報保存システム • レストラン注文アプリ • KINTOテクノロジーズ(自動化テスト者) • Toyota Walletアプリ (Appium) • Global Kintoアプリ (Appium) • Global Kinto ID Platform Web (Cypress) • Global Kinto ID Platform APIテスト (Cypress) • Kintoかんたん申し込みアプリ (Appium)
  9. 【準備フェーズ】テストケースに従って仕様書作成 データ名 データ情報 環境 Stg4 テストアカウント ******@kinto-technologies.com パスワード ******** レポート名

    iOS用 iOS.poc.login android用android.poc.login 実行ソースファイル iOS用 iOS.poc.login.xml android用android.poc.login.xml 『Kinto かんたん申し込み』アプリのログインシナリオ
  10. ©KINTO Corporation. All rights reserved. 19 確 認 機 能

    画面 操作 確認ポイント 実行ファ イル (xml) ソースファイル メソッド ログ イン する メイン画 面 マイページロゴを押下する ログインボタンが 押下できる iOS.poc .login.x ml iOS.MainPage clickLogo マイペー ジ画面 『お申し込み内容』を押下する iOS.MyPagingPa ge clickApplyTab 『ログインはこちら!』を押下す る clickLoginHereButton ログイン 画面 『メールアドレス(KINTO ID) 』に上記のテストアカウントを記 入する iOS.LoginPage fillMailAddress 『ログインパスワード』に上記の パスワードを記入する fillPassword 『My KINTOへログイン』を押 下する clickToMyKintoLoginButton 【準備フェーズ】 テストケースの仕様書作成
  11. ©KINTO Corporation. All rights reserved. 20 * MainPage.java public class

    MainPage extends Base { public static final String LOGO = ”btnMyPagingLogo"; /** * メイン画面の『マイページ』ロゴのクリックするテストメソッド * このメソッドはIdを使用してメインページ上の"マイページ"ロゴを特定し、 * クリックアクションを実行する * */ @Test(groups = "MainPage") public void clickLogo() { driver.findElementById(LOGO).click(); } } 【準備フェーズ】 Appium自動化テストのJavaファイル
  12. 【準備フェーズ】 Appium自動化テストのXmlファイル xml file <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE suite SYSTEM

    "http://testng.org/testng- 1.0.dtd"> <suite name="iOS.poc.login"> <test verbose="2" name="iOS.poc.login"> <classes> <class name="iOS.MainPage"> <methods> <include name="clickLogo"/> </methods> </class> <class name="iOS.MyPagingPage"> <methods> <include name="clickApplyTab"/> <include name="clickLoginHereButton"/> </methods> </class> <class name="iOS.LoginPage"> <methods> <parameter name=“email” value="******@kinto-technologies.com"/> <parameter name="password" value="*********"/> <include name="fillMailAddress"/> <include name="fillPassword"/> <include name="clickToMyKintoLoginButton"/> </methods> </class> </classes> </test> </suite>
  13. 【課題整理・改善フェーズ】 XpathとID化のパフォーマンス 2/21/2025 26 シナリオ名 テストケース数 Xpath(秒) ID(秒) 時間差分(秒) ログイン

    6 17 16 1 新規アカウント申し込み 52 173 163 10 アプリA (iOS+Android) シナリオ数 60 件 × テストケース数 50 ケース = 約 600 秒 = 約10分 アプリB (iOS+Android) シナリオ数 20 件 × テストケース数 80 ケース = 約 300 秒 = 約5分
  14. ©KINTO Corporation. All rights reserved. 28 ご清聴ありがとうございます QAと開発チームが一丸となって進 める弊社で、一緒に成長しません か?興味のある方はぜひお声かけ

    ください! 【イベント告知】 JaSST’25 Tokyoの スポンサーシップもすることにな りました。ブース設営しているの で、興味ある方はお越し頂けます と嬉しいです! 日程:3/27(木)