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

アジャイル開発における自動化推進活動 ~育成からの改革~/NTTコムウェア 伊山 宗吉、藤田 ...

Kazutaka
December 25, 2023

アジャイル開発における自動化推進活動 ~育成からの改革~/NTTコムウェア 伊山 宗吉、藤田 瑞希、最上 一昴

2023年12月9日に開催された「ソフトウェアテスト自動化カンファレンス2023」において登壇した際の資料です。

■講演(資料)内容
実案件でテストCI/CDやテスト自動化を促進していくのはハードルが高いのが実態でした。そこで、人材育成段階からの改革を目指して活動してきましたので、紹介いたします。また、社内で開発・利用しているE2E自動テストツールも、お見せします。

■講演者
NTTコムウェア 伊山 宗吉、藤田 瑞希、最上 一昴

Kazutaka

December 25, 2023
Tweet

Other Decks in Technology

Transcript

  1. Copyright ©︎ NTT COMWARE CORPORATION 2023 アジャイル開発における自動化推進活動 ~育成からの改革~ 2023.12.09 NTTコムウェア株式会社

    伊山 宗吉 / 藤田 瑞希 / 最上 一昴 ソフトウェアテスト自動化カンファレンス2023
  2. Copyright ©︎ NTT COMWARE CORPORATION 2023 自己紹介 3 いやま むねよし

    伊山 宗吉 NTTコムウェア(株) NTT IT戦略事業本部 2009年~ NTTの通信サービス関連の情報システム開発 2015年~ 初めてアジャイル開発を経験 2018年~ 数度の実践経験を経て社内推進活動を開始 現在に至る 主な業務: • 社内のアジャイル推進 • アジャイルコーチ(チームの立ち上げ、改善支援) • アジャイルエバンジェリスト(社外へ情報発信)
  3. Copyright ©︎ NTT COMWARE CORPORATION 2023 • 下図の赤字部分をテスト自動化の検討範囲とする。 本発表におけるテスト自動化の定義 4

    CI環境 開発環境 ステージング環境 本番環境 設計/実装/テスト ビルド 検証環境 デプロイ テスト デプロイ テスト デプロイ テスト ユニットテスト、 Linter ユニットテスト、 静的解析 システムテスト(E2Eテスト等)、 ユーザー受入テスト 結合テスト 動作確認 (スモークテスト等)
  4. Copyright ©︎ NTT COMWARE CORPORATION 2023 スクラム • アジャイル開発はスクラムを対象として説明する。 本発表におけるアジャイル開発

    5 プロダクトバックログ スプリント プランニング スプリント レビュー スプリント レトロスペクティブ (振り返り) デイリー スクラム インクリメント スプリントバックログ スプリント 1~2週間(とする事例が多い)の反復 プロダクトを 作り上げる人 開発者 成長するチーム作り を支える人 スクラム マスター プロダクトの価値を 最大化させる人 プロダクト オーナー 専門スキルでチーム を支援する人 サポートチーム (スクラムでは未定義) 藤田 最上
  5. Copyright ©︎ NTT COMWARE CORPORATION 2023 • NTTグループやお客様のビジネスを支える 大規模、高品質なシステムを長年開発。 •

    従来は全てウォーターフォール開発。 NTTコムウェアのシステム開発 6 ソフトウェア本部 NTTコムウェアグループ NTTドコモグループ 1997年 2022年 ウォーターフォール開発 要件 設計 テスト 実装 アジャイル開発にも取り組み 2016 2017 2018 2019 2020 2021 2022 アジャイル開発 案件数 件 数 年度 • 2013年頃からアジャイル開発に取り組み始めた。 • 2022年 NTTドコモグループへの参画に伴い、C向けサービス などアジャイル開発が求められる領域が拡大している。 2013年頃
  6. Copyright ©︎ NTT COMWARE CORPORATION 2023 • アジャイル開発に取り組む以前から、コスト削減を目的に自動化に取り組んできた。 • ビルド・デプロイの自動化

    • UIテストの自動化 従来からのテスト自動化の取り組み 7 CI/CD (ビルド・デプロイの自動化) UIテストの自動化 ×
  7. Copyright ©︎ NTT COMWARE CORPORATION 2023 • アジャイル開発では継続的なシステム変更に対して、継続的に自動テストによる検査を通過することで 頻繁にリリース可能な状態を作るため、テスト自動化の重要性が高い(コスト削減が主目的ではない)。 •

    現実では、手動テストが多く、リリース前にQA期間を必要とする案件が少なくない。 アジャイル開発とテスト自動化の状況 8 あるべき 多くの場合の現実 頻繁にリリース可能 リリース前にQA期間を必要とする QAテスト 手動テストが中心 継続的に自動テストで検査 ピラミッド型 の自動テスト アイスクリームコーン型 の自動テスト
  8. Copyright ©︎ NTT COMWARE CORPORATION 2023 テスト自動化が進まない原因 9 • 開発初期は、プロダクトがユーザーに受け入れられるかの評価を優先

    ⇒ 機能開発を優先、テスト自動化は後回し • 開発が進んでからも、プロダクトオーナーが自らの役割である価値最大化や関係者からの期待に応えることを優先 ⇒ 機能開発を優先、テスト自動化の優先順位が高くならない • システムテスト(主にUIテスト)の自動化 • テスト増加に伴い実行時間が増加していく。 • 変更の影響を受けやすいためメンテナンスコストが高い。 ⇒ 頻繁なテスト実行と維持が難しくなっていく • 単体・結合テストの自動化 • 従来開発では十分な経験のあるメンバーが少ない。 ⇒ 学習と実践に時間を要する=開発に影響する ビジネス上の都合 技術・時間コストの都合
  9. Copyright ©︎ NTT COMWARE CORPORATION 2023 徐々に理想の形へ近づけていくために 10 最初はここから自動化を 始めるケースが多い

    徐々にでも理想へ 近づける • 最初は構造的に単体や結合テストコードが書きづらいことが多い • まずは外側の主要なUIテストを自動化し、徐々に内部構造を整理して理想のピラミッド型に近づけていく アプローチが現実的と言える。 できれば初めから この形を目指す
  10. Copyright ©︎ NTT COMWARE CORPORATION 2023 自己紹介 13 ふじた みずき

    藤田瑞希(みーちゃん) NTTコムウェア(株) 地域事業本部 ウォーターフォール開発案件に従事 設計~製造~テスト(約10年) アジャイル開発実案件に従事 Dev(2021/04~2022/04) SM(2022/07~09) PO(2023/04~09) SM(2023/10~12)★いまここ!★ 主な業務: • 社内アジャイル人材育成施策の運営 • 社内のアジャイル推進 テスト自動化に 関連するところを 重点的にお話
  11. Copyright ©︎ NTT COMWARE CORPORATION 2023 育成からの改革:背景~なぜ育成から改革しようとしたのか?~ 14 「どうやってやるの?何すればいいの?」 そもそもメンバに自動化のスキルや知識がない

    「自動化したいけどそんな時間ないよ・・・」 納期あり&機能開発優先 社内の実案件でテストやデプロイ等の自動化が進んでいない現実・・・ 「自動化って必要なの?」 自動化への関心が薄い
  12. Copyright ©︎ NTT COMWARE CORPORATION 2023 育成からの改革:背景~なぜ育成から改革しようとしたのか?~ 15 自動化の スキルや知識を

    持ったメンバが 増える そのメンバが 率先して 自動化を実施 別メンバへ スキルを展開 理想の循環
  13. Copyright ©︎ NTT COMWARE CORPORATION 2023 育成からの改革:背景~なぜ育成から改革しようとしたのか?~ 16 自動化の スキルや知識を

    持ったメンバが 増える そのメンバが 率先して 自動化を実施 別メンバへ スキルを展開 理想の循環
  14. Copyright ©︎ NTT COMWARE CORPORATION 2023 育成からの改革:背景~なぜ育成から改革しようとしたのか?~ 17 自動化の スキルや知識を

    持ったメンバが 増える そのメンバが 率先して 自動化を実施 別メンバへ スキルを展開 理想の循環
  15. Copyright ©︎ NTT COMWARE CORPORATION 2023 育成からの改革:実践したこと一覧 19 1.自動化に関する基礎知識を注入 2.品質サポートチームによる活動サポート

    4.社内のUIテスト自動化ツールの展開 3.チーム内部からの働きかけで誘導 育成施策でテスト自動化の効果をしみこませる活動 育成施策に参加した卒業生へのフォロー活動
  16. Copyright ©︎ NTT COMWARE CORPORATION 2023 「コムウェア」が「新ドコモグループ」として「ソフトウェア開発力」の貢献が求められる中で、 「アジャイル開発が実践できる人材」を増やすために立ち上げた社内の育成施策。 通称SBCと呼ばれている。 育成からの改革:どんな育成施策?

    20 SBC 研修ではなく 実際に使われる プロダクトを開発 実践 1期=3カ月で実施。1カ月アジャイル開発&テクニカル研修、2カ月スクラム開発実践。 1週間Sprintで約7Sprintほど、アジャイル開発を実践できる。 After 商用案件で 活躍できる人材に!!! Before アジャイル 開発? AWS? Lambda? Git? TDD? React? Node.js? ある商用案件で求められる要素
  17. Copyright ©︎ NTT COMWARE CORPORATION 2023 育成からの改革:実践したこと一覧 21 1.自動化に関する基礎知識を注入 2.品質サポートチームによる活動サポート

    4.社内のUIテスト自動化ツールの展開 3.チーム内部からの働きかけで誘導 育成施策でテスト自動化の効果をしみこませる活動 育成施策に参加した卒業生へのフォロー活動
  18. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その1:自動化に関する基礎知識を注入 スクラム開発に必要なスキルを 最初の1カ月で叩き込む 10月

    2023 日 月 火 水 木 金 土 1 2 3 4 5 6 7 キックオフ オリエンイベント SCRUM+ Sprint0 心理的安全性 ワーク Git Webサービス構 築カリキュラム 1日目 8 9 10 11 12 13 14 Webサービス構 築カリキュラム 2日目 Webサービス構 築カリキュラム 3日目 Webサービス構 築カリキュラム 4日目 15 16 17 18 19 20 21 Webサービス構 築カリキュラム 5日目 Webサービス構 築カリキュラム 6日目 Webサービス構 築カリキュラム 7日目 22 23 24 25 26 27 28 品質とテスト TDD 29 30 31 1 2 3 4 実践 Sprint0 実践 Sprint0(随時Sprint1へ) 実践 Sprint0 端末設定 端末設定・自己学習等 自己学習等 自己学習等 自己学習等 自己学習等 品質とテスト、TDD等、 テストとその自動化に関するインプットも多い Webサービス構築カリキュラムは 座学とハンズオンを交えた 実際に簡単なアプリを作成する講義
  19. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その1:自動化に関する基礎知識を注入 day4までに手動で構築・作成したものを day5でCI/CDの環境を 実際に構築・設定するハンズオンを実施

    Webサービス構築カリキュラム day1 ネットワーク、AWS基礎(VPC、EC2、 RDS etc...) 座学・個人ワーク day2 可用性、冗長化、AWS基礎(ELB、 CloudFront etc...) 座学・個人ワーク day3 Webサービス、コンテナ、AWS基礎 (API Gatway、Lambda etc...) 座学・個人ワーク day4 サーバレス、AWS基礎(CloudWatch etc...) 座学・個人ワーク day5 CI/CD、Webサービス構築(設計) 座学・個人ワーク day6 Webサービス構築(設計、実装) グループワーク day7 Webサービス構築(実装、テスト) グループワーク CI/CDが何か理解! 自動化の効果をハンズオンで体感! 研修資料に手順もあるし私にもできそう~! 「修正する度に手動でビルド&デプロイで面倒だったのに CI/CDを設定すれば勝手にデプロイされて便利!」
  20. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その1:自動化に関する基礎知識を注入 実案件で活用できるようになるには、 実際のプロダクトで、自分たちの頭で考えて構築してみるしかない! 研修自体を理解したつもり

    それを応用できない いざ構築!となったとき・・・ 「研修資料の通りだったらできるけど、 実際のプロダクトではどうやって設定するの??」 「この設定値でとりあえず動くけど なんでこの値を設定するんだろう?」
  21. Copyright ©︎ NTT COMWARE CORPORATION 2023 育成からの改革:実践したこと一覧 25 1.自動化に関する基礎知識を注入 2.品質サポートチームによる活動サポート

    4.社内のUIテスト自動化ツールの展開 3.チーム内部からの働きかけで誘導 育成施策でテスト自動化の効果をしみこませる活動 育成施策に参加した卒業生へのフォロー活動
  22. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その2:品質サポートチームによる活動サポート 26 「品質とテスト」の講義 品質向上の勉強会の開催

    チームの品質評価指標の収集やFB 単体テストコードの書き方支援 チームで取り組む品質向上施策の支援…等 品質が大切なことは理解 品質サポートチーム 「自動化についても便利そう」 「興味はあるのでぜひやってみたい!」
  23. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その2:品質サポートチームによる活動サポート 27 実際に開発が始まると 機能開発優先

    開発が始まると着手が難しい ⇒ Sprint0(準備)の段階で導入する こまめにリリースする状況で必要性をつくりだす 導入コストが低いものは取り入れるが、高そうなものは避ける 必要に迫られないと導入コストが高めな「自動化」の優先度が上がらない
  24. Copyright ©︎ NTT COMWARE CORPORATION 2023 育成からの改革:実践したこと一覧 28 1.自動化に関する基礎知識を注入 2.品質サポートチームによる活動サポート

    4.社内のUIテスト自動化ツールの展開 3.チーム内部からの働きかけで誘導 育成施策でテスト自動化の効果をしみこませる活動 育成施策に参加した卒業生へのフォロー活動
  25. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その3:チーム内部から誘導する 30 SMからの働きかけ2 「アジャイル開発の講義(※1)

    をチームで視聴&感想戦の実施」 アジャイルで求められるのは品質もスピードも両方だよね! 自動化は必須だよね 自動化をやりたい気持ちはあるけど時間がない・・・ (※1)「AgileJapan:形だけのアジャイルから中身のあるアジャイルへ変わるために~アジャイルの原点に立ち戻る~」
  26. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その3:チーム内部から誘導する 31 SMからの働きかけ3 「育成施策として優先度が低いタスクを別チームで巻き取り」

    このタスクは テクニカル支援チームで お願いします OK! タスクがなくなった分自動化実施しようよ! やっと自動化に着手できる! 苦戦しながらも自分たちで構築&設定完了! エラーを自分たちで 解決しながら構築 →自信に繋がる!
  27. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その3:チーム内部から誘導する 32 SMからの働きかけ4 「品質サポートチームとSMが密に連携」

    品質サポートチームからのFB 「受入テスト自動化が実践できていない ためプロダクトに対しデグレードの潜在リ スクが保有されたままです。」 流れていきそうなFB 「品質サポートチームのFBがあったから課題リストにあげておくね!」 課題リスト : 受入テスト自動化
  28. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その3:チーム内部から誘導する 33 SMからの働きかけ5 「テクニカルコーチにTDD

    (※1) を実践してもらうよう依頼」 単体テストコードの作成について理解 今後TDDにもチャレンジ! モブプロ (※1)TDD=テスト駆動開発(Test-Driven Development: TDD)とは、テストファーストな(テストを先に書く)プログラムの開発手法 (※2)モブプロ=モブプログラミングとは、全てのチームメンバーが同時に同じタスクに取り組むソフトウェア開発手法の一つ 今日はTDDに強いコーチがきてくれるから、 TDDをモブプロ(※2)でやってみようよ!
  29. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その3:チーム内部から誘導する 34 積極的に働きかけるメンバがいないと、コストが高めの施策や未知なる領域へのチャレンジを実行へ移すことは厳しい チーム内部から「やってみようよ!」の働きかけを実施することが大切

    ※今回はSMが実施したがDevでも良い 育成の場での導入ですら大変なので、商用案件への導入はさらに大変なことを痛感 育成の場の中でも、自身の頭で考えて実践すれば、今後の実案件でも活用できるスキルが身に着く 自動化の スキルや知識を 持ったメンバが 増える そのメンバが 率先して 自動化を実施 別メンバへ スキルを展開 理想の循環 背中を見せる 自動化の効果を体感 自動化をやりたいと感じる
  30. Copyright ©︎ NTT COMWARE CORPORATION 2023 育成からの改革:実践したこと一覧 35 1.自動化に関する基礎知識を注入 2.品質サポートチームによる活動サポート

    4.社内のUIテスト自動化ツールの展開 3.チーム内部からの働きかけで誘導 育成施策でテスト自動化の効果をしみこませる活動 育成施策に参加した卒業生へのフォロー活動
  31. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その4:社内のUIテスト自動化ツールの展開 36 UIテストの自動化!? むずかしそうだから無理無理無理・・・!

    リグレッションテストって毎回同じこと確認するじゃないですか? 実は社内にこんな便利なツールがあるんですよ! 習熟コスト高いし 費用対効果が 低そうじゃない?
  32. Copyright ©︎ NTT COMWARE CORPORATION 2023 自動化の効果を染み込ませる活動その4:社内のUIテスト自動化ツールの展開 37 ブラウザの操作を自動化し 何度も繰り返すテストや

    定型的な業務を自動実行できる 社内ツール この後第三章で詳細にご説明しますのでお楽しみに! 簡単マウス操作でシナリオ作成、習熟コストが低いので気軽に導入できる!
  33. Copyright ©︎ NTT COMWARE CORPORATION 2023 育成からの改革:実践したこと一覧 38 1.自動化に関する基礎知識を注入 2.品質サポートチームによる活動サポート

    4.社内のUIテスト自動化ツールの展開 3.チーム内部からの働きかけで誘導 育成施策でテスト自動化の効果をしみこませる活動 育成施策に参加した卒業生へのフォロー活動
  34. Copyright ©︎ NTT COMWARE CORPORATION 2023 アジャイル交流会 ~ゆるく、真剣に~ • SMが悩みを抱えていた状況をきっかけにスタート

    • 定例イベントは強制力は無く、業務時間内に実施(自主的に業務調整。作業しながら聴くだけの耳だけ参加もOK) • 毎週月曜日の11:00-12:00(1時間) • 社内のアジャイル開発においての悩み相談やディスカッションを実施。 参考:育成施策の卒業生へのフォロー活動:アジャイル交流会 39 事前準備はなし、テーマはその場で募集 議論が長引いてしまうが、どうすればよい? ふりかえり手法を今調べて相互教授してみよう チームビルディングをリモート下でも効果的に行いたい チームメンバが変わる際の引継ぎや情報整理について 一見アジャイル開発に向かなそうなメンバがチームに入る(入りそう)。どうする? 実録:DevとSMを兼務して苦労した体験談 完璧なSMだったら、アジャイルコーチは不要? アジャイル開発の中で自動化ってどこまでやってる? などなど… 育成施策の卒業後も、実案件に従事したときに発生した悩みを解決できるような場を提供
  35. Copyright ©︎ NTT COMWARE CORPORATION 2023 第二章まとめ 40 ✓ 社内で自動化が進まない背景として以下の事情があった

    1. 納期あり&機能開発優先 2. 自動化への関心が薄い 3. そもそもメンバに自動化のスキルや知識がない ✓ 人材育成の場で、自動化の効果を染み込ませる活動をチームへ行い、 「自動化のスキルや知識を持ったメンバが増える」ようにアプローチ ✓ 今は「自動化のスキルや知識を持ったメンバを増やしている」種まき中、 この施策を卒業したメンバが自動化を推進していくことで、 理想の循環が生まれる
  36. Copyright ©︎ NTT COMWARE CORPORATION 2023 自己紹介 最上 一昴(もがみ かずたか)

    • WEBアプリのテスト自動化導入推進 • 探索的テストの検証、普及活動 • アジャイル開発の品質プロセス検討 ←イマココ! 氏名 テスト関連の業務 今日の意気込み 初めての社外講演で緊張気味ですが、 皆さんに興味を持ってもらえるお話をします! 地域事業本部 北海道支店
  37. Copyright ©︎ NTT COMWARE CORPORATION 2023 もともとはWF開発でのシステム品質を高めるため、上流工程からアプローチできるテスト方法の検討きっかけにスタート。 2011年より始まった「テスト自動化」に関する活動は、現在、13年目に突入しアジャイル開発でのUIテスト自動化導入推 進(育成からの改革)導入推進にまでたどり着く。 テスト自動化に関する活動の歴史

    43 Seleniumツール群(EXCEL版) 画面仕様書からテストスクリプト作成 2017年 Web版のUIテスト自動化スクリプトの手順 書作成ツール開発 (「FunTest」の前進ツール) 「FunTest」の開発(手順書作成部分のUI向上) 「FunTest」の導入推進(主にWF開発) UIテスト自動実行機能部分の 拡充開発 アジャイル開発での UIテスト自動化導入推進(育成からの改革) 2011年 2014年 2015年 2023年 ※本スライド以降「WIZARK FunTest」を 「FunTest」と表記 CI/CDの自動化
  38. Copyright ©︎ NTT COMWARE CORPORATION 2023 スクリプト作成の課題に対し「FunTest」で下げたハードル 45 UIテスト自動化ツール調達コスト UIテスト自動化ツールでの解決策

    課題 下げたハードル スクリプトのメンテナンスの負担 スクリプト作成の難易度 コーディングを必要とせずにスクリプト作成 コマンドとマニュアルの充実 EXCELのようなUIや操作感 マウス右クリックでロケーターを簡単取得 テスト手順修復サポート機能 コーディングスキル 自動化ツールの学習コスト スクリプトのメンテナンス 自動化ツールの調達コスト OSSを活用し社内向けに提供 UIテスト自動化ツールでのスクリプト作成においては、「コーディングスキル」が必要となるなど、導入における大きな課題を認識し ていた。 所属担当ではUIテスト自動化導入のメリットをイメージできていたため、 UIテスト自動化を推進するべく「FunTest」 側での改善にて課題解決を図ろうとした。
  39. Copyright ©︎ NTT COMWARE CORPORATION 2023 UIテスト自動化ツールでのスクリプト作成においては、「コーディングスキル」が必要となるなど、導入における大きな課題を認識し ていた。 所属担当ではUIテスト自動化導入のメリットをイメージできていたため、 UIテスト自動化を推進するべく「FunTest」

    側での改善にて課題解決を図ろうとした。 スクリプト作成の課題に対し「FunTest」で下げたハードル 46 UIテスト自動化ツール調達コスト UIテスト自動化ツールでの解決策 課題 下げたハードル スクリプトのメンテナンスの負担 スクリプト作成の難易度 コーディングを必要とせずにスクリプト作成 コマンドとマニュアルの充実 EXCELのようなUIや操作感 マウス右クリックでロケーターを簡単取得 テスト手順修復サポート機能 コーディングスキル 自動化ツールの学習コスト スクリプトのメンテナンス 自動化ツールの調達コスト OSSを活用し社内向けに提供 デモで皆さんに お見せします!
  40. Copyright ©︎ NTT COMWARE CORPORATION 2023 前提の確認!「FunTest」でのスクリプト作成のプロセス 48 リグレッション テストシナリオ

    ロケーター 取得 画面操作や入力値、 出力値、テストの確認項目の設定 テスト 実行結果 OK デグレード 確認結果 NG NG スクリプトのメンテナンス デモ① デモ② デモ③ これから紹介するデモは、下記の前提におけるスクリプト作成時のプロセスである。 テスト対象:リグレッションテスト(スクリプト作成対象のシナリオは入力や出力、テストの確認項目も含め決まっている) スクリプト作成対象:育成施策で開発のプロダクト 育成施策で開発のプロダクト
  41. Copyright ©︎ NTT COMWARE CORPORATION 2023 「FunTest」導入の目的は、「リグレッションテスト」や「マルチブラウザテスト」などが多い。(※) また、プロダクトリリース後の維持・運用フェーズでのテストでも活用している。 効果は?「FunTest」導入の目的とあわせて 52

    目的 効果 リグレッションテスト 一度、自動化スクリプトを作成すると画面項目やテストデータが変わらない限り、何度でもテスト自動が実行でき、デグレード 確認の時間を短縮できる。 マルチブラウザテスト 自動化スクリプトを作り替えずに様々なOS/ブラウザ(Edge・FF・Chrome)の組合せテストが自動実行でき、組合せテス トの時間を短縮できる。 画面レイアウト照合 新旧環境でそれぞれ画像を取得し、ツールの画像比較機能を使い、画面レイアウトに差異がないことを確認できる。 目視より精度が高い。 長時間安定化テスト 人手を介さずに一定間隔で長時間連続して画面操作のテストを実施できる。 ⇒72H連続での画面操作の場合、夜間帯にもテスト実行できるため、より効果的。 定期テスト CIツールと組合せ、人手を介さずにテスト実施できる。 ⇒リリースサイクルの短縮につながる。 作業時の確認テスト パッチ投入やOS/ミドルウェアの入れ替え後の確認テストを自動化できる。 ⇒リグレッションテストケースを流用。 同一画面操作 同じ画面での連続操作を自動化すること、画面操作の時間短縮や操作誤りを防止できる。 ⇒画面操作は同じだが異なる入力値である手順(データ登録時など入力データが大量にある場合)で有効 ※わたしの担当で把握している情報
  42. Copyright ©︎ NTT COMWARE CORPORATION 2023 効果は?「FunTest」導入~育成施策のチームからの声~ 53 Q:「リグレッションテストってどうやってるの?」 A:「フィーリングで、各Devが一通り確認してます!」

    「定義されたシナリオに沿って各自手動でやってます!(とくエビデンスはない)」 導入前~スプリントレビューでデグレが頻発!~ どの程度の確認をしているかはDevによる=属人化
  43. Copyright ©︎ NTT COMWARE CORPORATION 2023 効果は?「FunTest」導入~育成施策のチームからの声~ 54 品質サポートチームとSMが密に連携し「FunTest」の導入を支援 リグレッションテストで導入

    「属人化しないテストで品質を担保できる!」 「自動テストの実施中、別作業できるので効率的! CI/CDパイプラインに組み込めば実行も意識しなくていいじゃん!」 「レポートや画面キャプチャを残せるので後から結果を確認できる」 「マウス操作で簡単にシナリオ作成できるので 習熟が簡単!思った以上に導入コストが低い!」
  44. Copyright ©︎ NTT COMWARE CORPORATION 2023 「FunTest」の導入で、UIテスト自動化に関連する課題がなくなったわけではない。 WF開発での「FunTest」導入実績はあがってきているものの、アジャイル開発含め解決するべき課題はまだある。 課題は?「FunTest」のみならず 55

    課題 アイスクリームコーン型 テスト クラウド環境での ツール適用検証 (※) スプリントとの同期 スクリプトのメンテナンス 開 発 形 態 に よ ら ず ア ジ ャ イ ル 開 発 実状 「FunTest」にロケーターを簡単に再設定できる機能はあるが、スクリプトのメンテナンスコストを考慮 した実装は必要。そのため、ソースコードにID属性やカスタムデータ属性(test-id属性 など)付与を推奨している。現在、育成施策の場では実践中。 「FunTest」で画面入力のバリエーションテストなどを作成してしまい、テストシナリオが多くなりがち。 育成施策の場では単体テストコード作成の難易度が高いのも要因か。 短いスプリントの中で、 UIテスト自動化ツール導入、スクリプト作成、スクリプトメンテナンスの時間 確保が難しい。機能開発の実装が優先されがち。 クラウド環境のCIサービスと連動し、「FunTest」の実行までは適用検証済み。 残りは、「FunTest」のテスト実行結果をCIサービスへ連携する検証。 ※前提:WF開発では、オンプレミス環境が多い
  45. Copyright ©︎ NTT COMWARE CORPORATION 2023 • UIテスト自動化ツールの推進にあたっては、どんなテストを自動化するのが効果的か仮説を立て、 スモールスタートでの導入がオススメ。 •

    初めて使うツールでのUIテスト自動化実践において難しいシナリオ、あるいは大量のテストシナリオを対象とした場合、 UIテスト自動化のメリットを体感できず挫折につながる。 UIテスト自動化ツール導入に向けたアドバイス 56 UIテスト自動化の実行 UIテスト自動化スクリプト作成 UIテスト自動化のメンテナンス 実装へのフィードバック UIテスト自動化対象の設計 スモールスタート 02 01 04 03 ✓ 繰り返し実施するテスト ✓ ユーザーのメインになる操作のテスト ✓ 複数シナリオの連携 ✓ データのライフサイクル (登録→参照→修正→削除)を考慮 ✓ CIツールとの連携 ✓ 効果を体感しつつ ✓ 導入スキルもあげつつ ✓ 課題も理解しつつ ✓ スクリプトの修正 (ロケータ修正や画面要素追加など) ✓ スクリプトのメンテナンスコストを考慮した実装 ✓ UIテスト自動化ツールに慣れる ✓ テスト結果の分析
  46. Copyright ©︎ NTT COMWARE CORPORATION 2023 UIテスト自動化ツール導入に向けたアドバイス 57 UIテスト自動化の実行 UIテスト自動化スクリプト作成

    UIテスト自動化のメンテナンス 実装へのフィードバック UIテスト自動化対象の設計 スモールスタート 02 01 04 03 ✓ 効果を体感しつつ ✓ 導入スキルもあげつつ ✓ 課題も理解しつつ ✓ スクリプトの修正 (ロケータ修正や画面要素追加など) ✓ スクリプトのメンテナンスコストを考慮した実装 ✓ UIテスト自動化ツールに慣れる ✓ テスト結果の分析 UIテスト自動化対象の設計 UIテスト自動化のメンテナンス 実装へのフィードバック より大切なのはツールではなく • UIテスト自動化ツールの推進にあたっては、どんなテストを自動化するのが効果的か仮説を立て、 スモールスタートでの導入がオススメ。 • 初めて使うツールでのUIテスト自動化実践において難しいシナリオ、あるいは大量のテストシナリオを対象とした場合、 UIテスト自動化のメリットを体感できず挫折につながる。 ✓ 繰り返し実施するテスト ✓ ユーザーのメインになる操作のテスト ✓ 複数シナリオの連携 ✓ データのライフサイクル (登録→参照→修正→削除)を考慮 ✓ CIツールとの連携
  47. Copyright ©︎ NTT COMWARE CORPORATION 2023 まとめ 59 ✓ 1章アジャイル開発とテスト自動化の取り組み

    ✓ 社内でもアジャイル開発が増えてきたが、なかなか自動化が進まない現状 をご紹介 ✓ 2章:育成からの改革 ✓ テスト自動化を実施できる人材を増やすため、育成施策の場でテスト自 動化を実案件で活用できるスキルを身に着けられるよう、様々な取り組み を実施 ✓ 3章:UIテスト自動化ツールの活用 ✓ UIテスト自動化導入のハードルを下げる社内向けUIテスト自動化ツール のご紹介とUIテスト自動化ツール導入に向けたアドバイス
  48. Copyright ©︎ NTT COMWARE CORPORATION 2023 60 ※ 「FunTest」、 「FunTest」ロゴはNTTコムウェア株式会社の登録商標です。

    ※ 「Jenkins」、「Jenkins」ロゴは、SOFTWARE IN PUBLIC INTEREST,INCの登録商標です。 ※ 「Selenium」、「Selenium」ロゴは、Software Freedom Conservancy,Incの登録商標です。 その他の記載されている社名、商品名などは各社の商標または登録商標である場合があります。 ご清聴ありがとうございました