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

テスト自動化ってなんで失敗するの?

tateishi
October 21, 2021

 テスト自動化ってなんで失敗するの?

JaSST nano vol.5 での発表資料になります。

イベントページ:https://jasst-nano.connpass.com/event/226547/

Twitter:https://twitter.com/mt3_set
note:https://note.com/mt3_set/

tateishi

October 21, 2021
Tweet

More Decks by tateishi

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide