Slide 1

Slide 1 text

テスト自動化って なんで失敗するの? JaSST nano Vol.5

Slide 2

Slide 2 text

2 1. 自己紹介 2. 発表しようと思ったきっかけ 3. テスト自動化ってなんで失敗するの? 4. まとめ アジェンダ

Slide 3

Slide 3 text

3 1. 自己紹介 2. 発表しようと思ったきっかけ 3. テスト自動化ってなんで失敗するの? 4. まとめ アジェンダ

Slide 4

Slide 4 text

4 舘石 光寛(たていし みつひろ) Twitter:MT(@mt3_set) 2016/4~:新卒で入社 → テスター → QAエンジニア 2019/4~:QAやりながらSETとしてテスト自動化も 2021/7~:自動化推進のお仕事 ← 今ココ 所属 経歴 資格 自動化ツール 趣味 JSTQB FL、JCSQE 初級、基本情報技術者 キャンプ、筋トレ Selenium WebDriver、mabl

Slide 5

Slide 5 text

5 1. 自己紹介 2. 発表しようと思ったきっかけ 3. テスト自動化ってなんで失敗するの? 4. まとめ アジェンダ

Slide 6

Slide 6 text

6 発表しようと思ったきっかけ JaSST nano Vol.4 やるよ ほーん... おもしろい 儀式が~ やってみよう 申し込み JaSSTnano

Slide 7

Slide 7 text

7 1. 自己紹介 2. 発表しようと思ったきっかけ 3. テスト自動化ってなんで失敗するの? 4. まとめ アジェンダ

Slide 8

Slide 8 text

8 前置き ・自動化失敗事例(経験談) ・↑の経験から、これから自動化をはじめようとしている人(=過去の自分)に伝えたいこと 話すこと 話さないこと ・失敗原因に対する具体的な予防策・解決策 ・自動化の戦略や手法など、細かい技術の話 その他 ・本日お話しする内容は個人の見解です。

Slide 9

Slide 9 text

9 「自動化失敗の原因(一般論含む)」を洗い出してみた

Slide 10

Slide 10 text

10 「自動化失敗の原因(一般論含む)」を洗い出してみた 自動化が失敗する原因は非常に多い...

Slide 11

Slide 11 text

11 個人的に辛かった失敗原因 3選 コスト削減のみを 目的とする マニュアルテストを すべて自動化する 自動テストが失敗したときに すぐにメンテナンスをしない ... ALL

Slide 12

Slide 12 text

12 コストの削減のみを目的、モチベーションにすると続かない テスト自動化で新たに掛かるコスト - 初期環境構築 - 初期学習 - テストスクリプト作成 - メンテナンス ∟ テスト環境のメンテナンス ∟テストスクリプトの修正 - テスト結果分析 ∟テスト結果の確認・反映・管理 ∟テスト失敗時の調査 - 標準化・マニュアル化 - メンバー教育 最初のうちは減った分と同じかそれ以上に作業が増える(ただし減らないわけではない) 「コスト削減のみを目的とする」問題

Slide 13

Slide 13 text

13 自動化の効果、目的を多面的に捉える 本当にコスト削減だけしかできないのか?他のメリットもあるのでは? - テストサイクルの高速化 - テスト実行品質の統一 - 自動化対象テストのカバレッジ向上 - 長期的に見ればもちろんコスト削減の側面も コスト削減の先の「本当の目的」を考える 削減したコストで本当にやりたかったことは? - 非機能要件テストの充実 - 全体的なテストカバレッジの向上 - ひいてはサービス品質の向上 どうすれば良いか?

Slide 14

Slide 14 text

14 自動化するテストの選定を行わないとコストだけが膨らんでいく 前提としてすべてのテストは自動化できない 使用する自動化ツールやテストの特性、確認しているテスト観点によって向き不向きがある 「テスト範囲の決定」だけでなく、テスト計画、設計全体に言えること 決めないことによる弊害 - 自動化ツール:コストが膨らむ、スキル不足に陥る - 作業スケジュール:自動化が進まない、リソース不足に陥る - 作業担当者・体制:自動化が進まない、 リソース不足に陥る、スキル不足に陥る - 自動化範囲:コストが膨らむ、効果が出ない - 優先度:運用されない、効果が出ない - 実行頻度:運用されない、効果が出ない 「マニュアルテストをすべて自動化する」問題

Slide 15

Slide 15 text

15 しっかりと計画、設計を実施する - 自動化ツール 比較検討をしっかりと行い、要件に沿った的確なツールを選定する - 作業スケジュール 長期的なスケジュールで少しずつ作る→運用するのサイクルを回す - 作業担当者・体制 専任の担当者を1人以上立てる or 全員で行う - 自動化範囲 最初の1歩はリグレッションテストからがおすすめ - 優先度 「ここだけは絶対に止まっちゃダメ」な機能のテストから始める - 実行頻度 リリース時のマニュアルテストと一緒に自動テストも流す、などルールを決めて運用する どうすれば良いか?

Slide 16

Slide 16 text

16 メンテナンスを行わないと自動テストは廃れる UIの変更により失敗するテストが多発する →修正を後回しにして手動でテストをやってしまう →テスト自動化の信頼がなくなる、効果が出なくなる →評価されなくなる →誰も触らなくなる 「自動テストが失敗したときにすぐにメンテナンスをしない」問題

Slide 17

Slide 17 text

17 常に自動テストが回り続ける状態にしておく 実行→テスト結果分析→失敗していたら調査→メンテナンスをルーティン化する 上記が難しい場合は結果分析までを行っておいて、調査→メンテナンスは別で時間を確保して行う メンテナンスがしやすい作り、体制にする テスト設計時のルール設定や、運用フェーズのマニュアル化、ナレッジなどをしっかりと溜めておく メンテナンスにはコストが多く掛かることを理解する、理解してもらう 関係者、他メンバーの理解が必要、テスト自動化を業務全体の一部として捉えて進めていく どうすれば良いか?

Slide 18

Slide 18 text

18 1. 自己紹介 2. 発表しようと思ったきっかけ 3. テスト自動化ってなんで失敗するの? 4. まとめ アジェンダ

Slide 19

Slide 19 text

19 テスト自動化が失敗する原因はたくさんあるが、それと同時に多くの現場でその対処法、 ベストプラクティスも出始めてきている 「テスト自動化≠現状のテストの悩みを全て解決してくれるもの」であり、 目的、ゴールにあった進め方が必要 関係者全員がテスト自動化のことを正しく理解して、組織として取り組んでいくことが できればベスト まとめ これから自動化を始めようと思っている人に 少しでも「テスト自動化の考え方」みたいなものが伝われば幸いです

Slide 20

Slide 20 text

20 「ソフトウェアテスト自動化カンファレンス2021」で発表します。 最後にちょっと宣伝

Slide 21

Slide 21 text

ご清聴ありがとうございました