Slide 1

Slide 1 text

効率的なアプリ自動化のための ガイドラインと実践方法 KINTOテクノロジーズ株式会社 2025/2/20

Slide 2

Slide 2 text

©KINTO Corporation. All rights reserved. 2

Slide 3

Slide 3 text

©KINTO Corporation. All rights reserved. 3

Slide 4

Slide 4 text

©KINTO Corporation. All rights reserved. 4 QAチーム構成 FEチーム BOチーム APPチーム パ ー ト ナ ー さ ん パ ー ト ナ ー さ ん

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

©KINTO Corporation. All rights reserved. 6 アジェンダ 1.アプリの自動化を行う理由 2.自動化しやすいアプリの作成 3.コーディングでこだわっていること 4.自動化結果の連携方法

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

©KINTO Corporation. All rights reserved. 8 項目 特徴 iOSとAndroid 開発環境が異なる ⇒テストの分量が単純に倍 となる テスト対象のOSバージョンと スマートフォン端末 スマートフォン端末×OSバージョンの組み合わせを網羅し たテストは現実的に不可能 ⇒弊社では、iOS最新2バージョン と Android最新5バージョンでテスト ネイティブアプリの機能 端末独自の機能やスペックがアプリの機能に影響する ⇒Push通知/タッチスクリーン/パーミッション 1.アプリ自動化をKINTOテクノロジーズで行う理由

Slide 9

Slide 9 text

©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件

Slide 10

Slide 10 text

©KINTO Corporation. All rights reserved. 10 2. 自動化しやすいアプリの作成 QAと開発チームで一緒に作業中!!

Slide 11

Slide 11 text

©KINTO Corporation. All rights reserved. 11 自動化のID化って何?

Slide 12

Slide 12 text

©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全て 取り直し・・

Slide 13

Slide 13 text

©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.自動化しやすいアプリの作成

Slide 14

Slide 14 text

©KINTO Corporation. All rights reserved. 14 メンテナンス性: 画面レイアウト変更に 伴う修正が不要 パフォーマンス: IDを使用した検索は 処理が高速 可読性: IDはシンプルで明確 1 2 3 効果 効果 効果 2.自動化しやすいアプリの作成 QAと開発、共に築く高品質の未来

Slide 15

Slide 15 text

©KINTO Corporation. All rights reserved. 15 Appiumの 自動化作業を 主で担当している パンヌさんに繋ぎます

Slide 16

Slide 16 text

©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)

Slide 17

Slide 17 text

モバイルアプリ自動テストで出来ること 実施フェーズ テスト実施 準備フェーズ 1. 仕様書作成 2. コード実装 記録フェーズ 1. レポート出力 2. Slack通知 3. Box保存 課題整理・ 改善フェーズ パフォーマンス

Slide 18

Slide 18 text

【準備フェーズ】テストケースに従って仕様書作成 データ名 データ情報 環境 Stg4 テストアカウント ******@kinto-technologies.com パスワード ******** レポート名 iOS用 iOS.poc.login android用android.poc.login 実行ソースファイル iOS用 iOS.poc.login.xml android用android.poc.login.xml 『Kinto かんたん申し込み』アプリのログインシナリオ

Slide 19

Slide 19 text

©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 【準備フェーズ】 テストケースの仕様書作成

Slide 20

Slide 20 text

©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ファイル

Slide 21

Slide 21 text

【準備フェーズ】 Appium自動化テストのXmlファイル xml file

Slide 22

Slide 22 text

【実施フェーズ】 テスト結果動画の自動出力 3/7/2025 22

Slide 23

Slide 23 text

【記録フェーズ】 テスト結果を Slackに 自動送信 #Appium結果連携 成功結果 失敗結果

Slide 24

Slide 24 text

3/7/2025 24 【記録フェーズ】Boxにテスト結果レポート送信

Slide 25

Slide 25 text

テスト結果 レポート 出力 3/7/2025 25

Slide 26

Slide 26 text

【課題整理・改善フェーズ】 XpathとID化のパフォーマンス 3/7/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分

Slide 27

Slide 27 text

【改善フェーズ】Github Copilotを利用してid取得 3/7/2025 27

Slide 28

Slide 28 text

©KINTO Corporation. All rights reserved. 28 ご清聴ありがとうございます QAと開発チームが一丸となって進 める弊社で、一緒に成長しません か?興味のある方はぜひお声かけ ください! 【イベント告知】 JaSST’25 Tokyoの スポンサーシップもすることにな りました。ブース設営しているの で、興味ある方はお越し頂けます と嬉しいです! 日程:3/27(木)