Developers Summit 10/02/2023
株式会社ヒューマンクレストコラボレーションがテスト⾃動化の成否を分ける継続的テスト、できていますか︖浅⻩ 友隆
View Slide
© 2023 Human Crest Co., Ltd.会社紹介● ソフトウェアのテストを専業にしている2
© 2023 Human Crest Co., Ltd.会社紹介3
© 2023 Human Crest Co., Ltd.会社紹介● 機能テスト、リグレッションテスト、APIテストなどを⾃動化704
© 2023 Human Crest Co., Ltd.⾃⼰紹介Tomotaka Asagi技術推進本部 本部⻑5● 現在地︓マレーシア● 趣味︓カメラ、ドライブ● 職歴︓営業→開発→テスト→経営︖
© 2023 Human Crest Co., Ltd.本⽇の事例に関して● 決してだれかを⾮難しているわけではありません。● ⾃動テストは、UI/Serviceのテストに限った話です。Unitテストは含まれておりません。UIServiceUnit6
© 2023 Human Crest Co., Ltd.⾃動テストやってますか︖7
© 2023 Human Crest Co., Ltd.「⾃動テストは続かない」8
© 2023 Human Crest Co., Ltd.「⼀回チャレンジしたんだけどね。」9
© 2023 Human Crest Co., Ltd.なぜ、⾃動テストという取り組みが失敗するのか︖10
© 2023 Human Crest Co., Ltd.AGENDA本日のアジェンダ1. 成功事例2. 失敗事例3. Test Automation Circles4. コラボレーション5. コンテキスト6. まとめ11
© 2023 Human Crest Co., Ltd.成功事例1.12
© 2023 Human Crest Co., Ltd.成功している事例● 事例1○ テスト対象︓BtoB Webシステム(グループウェア)○ テストタイプ︓シナリオテスト(40シナリオ)○ 実⾏トリガー︓定期実⾏ 毎⽇0時○ IF︓PCブラウザ(Chrome,firefox,Edge)● 事例2○ テスト対象︓BtoC Web、スマホ向けシステム(HR系)○ テストタイプ︓シナリオテスト(30シナリオ)○ 実⾏トリガー︓定期実⾏ 毎⽇8時、14時○ IF︓PCブラウザ(Chrome)スマホブラウザ(Chrome,Safari)スマホアプリ13
© 2023 Human Crest Co., Ltd.成功している事例● 事例3○ テスト対象︓BtoC スマホアプリ○ テストタイプ︓機能テスト(26ケース)→チェックポイント数百箇所○ 実⾏トリガー︓定期実⾏ 毎⽇0時,12時○ IF︓スマホアプリ(Android、iPhone)● 事例4○ テスト対象︓BtoB Webシステム(リアルエステート)○ テストタイプ︓機能テスト(260ケース)○ 実⾏トリガー︓Push時○ IF︓WEBブラウザ(DockerChrome)14
© 2023 Human Crest Co., Ltd.Test Automation Circles15
© 2023 Human Crest Co., Ltd.層 項⽬ 事例1 事例2 事例3 事例4コア ⽬的機能が正常に動いていることユーザに価値が届いていることを確かめる機能が動作していることバグが流出しないことリグレッションが発⽣してないこと開発者がすぐに修正できることコンセプト 戦略範囲設計メイン機能シナリオテスト正常系のみメイン機能のみシナリオテスト正常系のみ全機能機能テスト境界値含む主要機能データパターン網羅アーキテクチャ CI/CDツールフレームワーク環境⾃動テスト専⽤環境クラウドSelenium, Java開発環境、本番環境スマホ実機アプリスマホ実機ブラウザSelenium, Java開発環境、ステージングスマホ実機アプリJenkins,bitriseCucumber, Appiumステージング環境JenkinsJunit, Selenideモニタリングとコントロール⾃動化システム実⾏分析可視化定期実⾏、分析DashboardMail定期実⾏、分析DashboardMail定期実⾏、分析DashboardSlackPush時実⾏Slack→レポートベース リソースチームスキルセット⽂化開発チームテストチームステークホルダーDEVチームステークホルダー開発チームQAチームQAチームインフラチーム成功している事例16
© 2023 Human Crest Co., Ltd.層 項⽬ 事例1 事例2 事例3 事例4コア ⽬的◯ ◯ ◯ ◯コンセプト 戦略範囲設計△⼿動→⾃動◯ △設計が✗◯アーキテクチャ CI/CDツールフレームワーク環境✗CI/CDなし✗CI/CDなし◯ ◯モニタリングとコントロール⾃動化システム実⾏分析可視化◯ ◯ ◯ ◯ベース リソースチームスキルセット⽂化◯ ◯ ◯ ◯成功している事例17
© 2023 Human Crest Co., Ltd.なぜ成功しているのか︖● デベロッパーが⾃動テストの結果を欲している。● バグが発⽣した際の、⼿順が明確になっている。18
© 2023 Human Crest Co., Ltd.失敗事例2.19
© 2023 Human Crest Co., Ltd.定着しなかった事例● 事例5○ テスト対象︓BtoB Webシステム(IoT)○ テストタイプ︓機能テスト○ テストケース数︓60○ 実⾏トリガー︓デベロッパーが必要な時○ IF︓Webブラウザ(Chrome)● 事例6○ テスト対象︓BtoC Webシステム(管理系)○ テストタイプ︓機能テスト○ テストケース数︓45○ 実⾏トリガー︓Merge時選択○ IF︓Webブラウザ(DockerChrome)This Photo by Unknown Author is licensed under CC BY-NC20
© 2023 Human Crest Co., Ltd.層 項⽬ 事例5 事例6コア ⽬的機能が正常に動いていることリグレッションが発⽣してないこと開発者がすぐに修正できることコンセプト 戦略範囲設計メイン機能機能テストメイン機能テスト画⾯の正常系、および画⾯遷移アーキテクチャ CI/CDツールフレームワーク環境開発環境ローカルSelenium,Javaステージング環境クラウドSelenide,Javaモニタリングとコントロール⾃動化システム実⾏分析可視化開発者が都度実⾏(テストスクリプトの作成、メンテはテストチームが⾏う。)merge時実⾏(実⾏時間が20分超え)Slack→レポートベース リソースチームスキルセット⽂化開発チーム↕ 分断テストチーム設計チーム開発チームインフラチーム定着しなかった事例21
© 2023 Human Crest Co., Ltd.層 項⽬ 事例5 事例6コア ⽬的◯ ◯コンセプト 戦略範囲設計◯ ◯アーキテクチャ CI/CDツールフレームワーク環境◯ ◯モニタリングとコントロール⾃動化システム実⾏分析可視化◯ △ベース リソースチームスキルセット⽂化✗ △定着しなかった事例22
© 2023 Human Crest Co., Ltd.なぜ、⾃動テストという取り組みが失敗するのか︖23
© 2023 Human Crest Co., Ltd.Test Automation Circles3.24
© 2023 Human Crest Co., Ltd.Test Automation Circles25
© 2023 Human Crest Co., Ltd. 26⽬的実⾏レポーティング結果分析ツールフレームワーク環境CI/CDスコープ戦略設計リソース チーム⽂化スキルセットテスト⾃動化ソリューション
© 2023 Human Crest Co., Ltd. 27⽬的実⾏レポーティング結果分析ツールフレームワーク環境CI/CDスコープ戦略設計リソース チーム⽂化スキルセットテスト⾃動化ソリューション
© 2023 Human Crest Co., Ltd. 28⽬的実⾏レポーティング結果分析ツールフレームワーク環境CI/CDスコープ戦略設計リソース チーム⽂化スキルセットテスト⾃動化ソリューションWhy︖
© 2023 Human Crest Co., Ltd. 29⽬的実⾏レポーティング結果分析ツールフレームワーク環境CI/CDスコープ戦略設計リソース チーム⽂化スキルセットテスト⾃動化ソリューションWhy︖How︖
© 2023 Human Crest Co., Ltd. 30⽬的実⾏レポーティング結果分析ツールフレームワーク環境CI/CDスコープ戦略設計リソース チーム⽂化スキルセットテスト⾃動化ソリューションWhy︖How︖What︖
© 2023 Human Crest Co., Ltd. 31⽬的実⾏レポーティング結果分析ツールフレームワーク環境CI/CDスコープ戦略設計リソース チーム⽂化スキルセットテスト⾃動化ソリューションWhy︖How︖What︖Real
© 2023 Human Crest Co., Ltd. 32⽬的実⾏レポーティング結果分析ツールフレームワーク環境CI/CDスコープ戦略設計リソース チーム⽂化スキルセットテスト⾃動化ソリューションWhy︖How︖What︖RealBase
© 2023 Human Crest Co., Ltd. 33⽬的ツールフレームワーク環境CI/CDスコープ戦略設計Why︖How︖What︖実現にむけて、利害関係者で話し合い、合意を得ることが重要な部分
© 2023 Human Crest Co., Ltd. 34実⾏レポーティング結果分析テスト⾃動化ソリューションRealテスト⾃動化を実現し、運⽤していく部分↓⾃動テストにオーナーシップを持って取り組む⼈の存在が必要
© 2023 Human Crest Co., Ltd.それでも失敗する35
© 2023 Human Crest Co., Ltd. 36深い溝があるときがある責任範囲の違いから、無関⼼誰かがやってくれるだろうちょっと⾯倒なことになりそうだから、、
© 2023 Human Crest Co., Ltd. 37リソース チーム⽂化スキルセット深い溝があるときがあるBase
© 2023 Human Crest Co., Ltd. 38リソース (⼈) チーム⽂化関係者、チーム内・外のコラボレーションができてない⽂化が育たないスキルセットBase様々なコンテキスト(環境や、社会、規則など)への理解
© 2023 Human Crest Co., Ltd.層 項⽬ 1 2 3 4 5 6コア ⽬的◯ ◯ ◯ ◯ ◯ ◯コンセプト 戦略範囲設計△ ◯ ◯ ◯ ◯ ◯アーキテクチャ CI/CDツールフレームワーク環境✗ ✗ ◯ ◯ ◯ ◯モニタリングとコントロール⾃動化システム実⾏分析可視化◯ ◯ ◯ ◯ ◯ △ベース リソースチームスキルセット⽂化◯ ◯ ◯ ◯ ✗ △何が違うのか︖39
© 2023 Human Crest Co., Ltd.コラボレーション4.40
© 2023 Human Crest Co., Ltd.コラボレーションとは● Wikipedia○ コラボレーション(英: collaboration)は、「共に働く」「協⼒する」の意味で、「共演」・「合作」・「共同作業」・「利的協⼒」を指す語である。⽇本語ではコラボと略されることが多い。● IT⽤語辞典○ コラボレーションとは、協⼒、協調、協業、共同作業、共同制作、合作などの意味を持つ英単語。複数の⼈や集団の間で協⼒して⼀つの作業を⾏うことや、その結果⽣み出された作品などのことを指す。俗に「コラボ」と略されることもある。41
© 2023 Human Crest Co., Ltd.コラボレーションとはとある休⽇、妻との会話で、、私「コラボレーションって⼤事だよね」 (つぶやいただけ、、)妻「そうだよね、信頼関係がないとできないよね︕」私「えっ︖ どういうこと︖」妻「お互いが対等な⽴場で、お互いが信頼してないとコラボレーションできないってこと。」私「何︕ その即答は︖ どこからの引⽤︖」妻「作業療法の話」42
© 2023 Human Crest Co., Ltd.コラボレーションとは● 協働(Collaboration)には、相互理解を基盤とした⽬標の共有が必要です。● 協働関係は、⽬標達成のために分担された業務を遂⾏するのではなく、相⼿を尊重し合い、それぞれの考えや意⾒を対等に表現し合い、共に取り組んでいく関係です。43吉川ひろみ・鈴木洋介.『プロセスモデルで読み解く作業療法』.CBR.2019,120Pクライアントとその家族、ケアマネージャ、医師、地域介護関連職の⽅々、それぞれが、対等な⽴場でサポート、介⼊していくことが重要になる。
© 2023 Human Crest Co., Ltd.共通の⽬的を持ちお互いに信頼し共に取り組んでいる44
© 2023 Human Crest Co., Ltd.誰とコラボレーション45開発 運⽤
© 2023 Human Crest Co., Ltd.誰とコラボレーション46開発 QA 運⽤
© 2023 Human Crest Co., Ltd.誰とコラボレーション47開発QA運⽤
© 2023 Human Crest Co., Ltd.誰とコラボレーション48開発(Web)開発(スマホアプリ)インフラ(SRE)
© 2023 Human Crest Co., Ltd.成功する要因● 共通の⽬的であること● 成果がみえるようにすること● 関係者全員で⽬的と成果を共有していること● ⼩さな成功を積む● ⼈、チームの関係性を良好にする橋渡し、担当者を置く✗ だめなこと⾃動テストを⽬的にする(開発側が興味をなくす)49
© 2023 Human Crest Co., Ltd.コンテキスト5.50
© 2023 Human Crest Co., Ltd.コンテキスト● どんな対象物なのか︖○ プロダクト要素︓採⽤しているアーキテクチャ︖○ 環境要素︓開発環境、テスト環境、本番環境は、オンプレ・クラウド︖● どのような進め⽅をしているのか︖○ プロセス要素︓WF・Agile、ビルド、デプロイ、リリースタイミング● どんな⼈が集まっているのか︖○ スキル要素︓利⽤スキル、習得しているスキル、習得したいスキル○ チーム要素︓同僚、他部署、ステークホルダーなど関連する⼈々、関連性51
© 2023 Human Crest Co., Ltd.コンテキスト● どのような考え⽅があるのか︖○ ⽂化的要素︓社内の⾵⼟・新しもの好き、保守的○ 組織的要素︓組織、会社の規則、価値観● 周囲の状況はどうなのか︖○ 場所的要素︓住んでいる場所、経済、歴史的背景● 現在、過去に何を⾏ったか︖○ 時間的要素︓取り組んだ内容︖● どのような課題を持っているか︖○ 課題要素︓何を問題と思っていて、どうやって解決したいと考えているのか︖■ やりたいと思っていること■ やらなければならないこと■ やることが期待されていること52
© 2023 Human Crest Co., Ltd.コンテキストの変化に気を配る● 世の中の変化に応じてやりたいことが変わっていく場合がある○ WF→Agile○ バグの発⾒→⽣産性向上○ バックエンド→フロントエンド53
© 2023 Human Crest Co., Ltd.まとめ6.54
© 2023 Human Crest Co., Ltd.まとめ● デベロッパーは、様々な⼈々(職種、役割、チーム)とコラボレーションしなければならない。● コラボレーションとは、共通の⽬標を持ち、お互いに信頼し、取り組んでいくことである。● コンテキストを知ることが近道になる○ 時代 いま○ 会社の⽂化、規則、⽅針○ チームのルールや価値観に沿っているか○ 個⼈のスキル、習慣、価値観○ 課題55⾒えるところだけでなく、⾒えないところが⼤事
© 2023 Human Crest Co., Ltd.あるがままでなく、あるべき世界をみろSee the world not as it is,but as it should be.56
© 2023 Human Crest Co., Ltd.ご清聴ありがとうございました57