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

テスト自動化Learn&Unlearn

YoshikiIto
December 11, 2021

 テスト自動化Learn&Unlearn

ソフトウェアテスト自動化カンファレンス2021
https://testautomationresearch.connpass.com/event/228204/

での発表資料です

YoshikiIto

December 11, 2021
Tweet

More Decks by YoshikiIto

Other Decks in Technology

Transcript

  1. Learn & Unlearn
    Yoshiki Ito #STAC 2021, Dec 11
    テスト自動化

    View Slide

  2. おことわり:本セッションの用語やスコープなど
    2
    ◼ テスト自動化=システムテスト自動化
    ⚫ Unit TestやAPI Testなどの自動化は、明示しない限り対象外
    ◼ 具体的な技術の話ではなく、自動化をうまくやるには話
    ⚫ 地獄の話ではないです
    ⚫ 特定の言語やフレームワークの話はしないので、知らなくとも聞けます
    ⚫ 逆に、具体的な技術の話が聞きたい方は、裏の
    「組込み向けテスト実行フレームワークのご紹介 / 見澤 広志さん」
    へGO!

    View Slide

  3. おことわり:資料の公開やSNSシェアなど
    3
    ◼ 資料はあとでSpeaker Deckに公開予定
    ◼ 動画もYouTubeに公開されるはず
    ◼ コメントや感想や質問などDiscordに随時お願いします
    ⚫ あとからお返事します

    View Slide

  4. 今回のゴール
    4
    ◼ Unlearnしよう!という気になってもらう
    ◼ 普段仕事をしているチームや組織においてのLearn&Unlearnを
    促そう!という気になってもらう
    テスト自動化がうまくいっている状態になるための
    役に立てば嬉しいです

    View Slide

  5. 目次
    1. 自己紹介
    2. LearnとUnlearnをしよう
    3. 過去のUnlearn体験
    4. Unlearnを促そう
    5. まとめ
    5

    View Slide

  6. 伊藤由貴 / Yoshiki Ito
    ◼ テスト自動化エヴァンジェリスト
    ◼ 仕事の経歴
    ⚫ 2012年 株式会社ベリサーブに入社
    ⚫ 以降テスト自動化ツールの開発や導入支援など
    ⚫ 2019年~ 自動テスト推進課を立ち上げ活動中
    ◼ コミュニティ活動
    ⚫ JaSST東北 実行委員
    ⚫ JSTQB AL シラバス テスト自動化エンジニア
    日本語翻訳ワーキンググループ
    6

    View Slide

  7. 普段(チームで)やっていること
    7
    ◼ 社内のエンジニアの教育やサポート
    ⚫ 各現場への技術的なQ&A対応やトラブルシュート
    ⚫ 研修を開く
    ◼ 他社さんからのテスト自動化の相談にのる、お手伝いをする
    ⚫ ヒアリングや自動化デモ、コンサルテーションなどなど
    テスト自動化を「うまくやる」ためのお手伝いを行っている人
    です

    View Slide

  8. 目次
    1. 自己紹介
    2. LearnとUnlearnをしよう
    3. 過去のUnlearn体験
    4. Unlearnを促そう
    5. まとめ
    8

    View Slide

  9. 教育・普及の過程でのあるある
    9
    x年前の私 今の私
    ○○○はAです ○○○はBです

    View Slide

  10. Learn & Unlearn
    をしている(つもり)

    View Slide

  11. Unlearn(アンラーン)
    ◼ 意味
    ⚫ 得意技を捨てること、成功体験に溺れないこと via 『仕事のアンラーニング』
    ⚫ 過去の学びを手放す行為 via 『リフレクション』
    ◼ 言い換え
    ⚫ 学びほぐし、脱学習、学習棄却、学び直し、知の断捨離 など

    View Slide

  12. 本セッションにおける “Unlearn”
    12
    “過去の成功体験に溺れない”に絞らず、
    常識と思っていること、既に学んだ(学んでしまった)ことを
    改めて考え直してみること
    とします。
    ※これは厳密には、狭義の、Unlearnではない。
    ただしここではテスト自動化をうまくやるための考え方を端的に表す「キャッチーなワード」として、
    語義を広く解釈して用いることにする。

    View Slide

  13. 我々はまだ溺れるほど成功していない・・・
    13
    57%
    60% 60%
    56% 56.3%
    53.4%
    39%
    35% 37%
    42%
    38.4%
    42.4%
    4% 5%
    3% 2%
    5.4%
    4.2%
    0%
    10%
    20%
    30%
    40%
    50%
    60%
    70%
    2015 2017 2017-2 2018 2019 2020
    Q4. システムテスト自動化はうまくいっていますか?
    a. 多くの/深刻な問題がある
    b. 小さな問題がある
    c. うまくいっている
    STAC2020アンケート集計結果より

    View Slide

  14. 14
    さておき

    View Slide

  15. 再掲:普段(チームで)やっていること
    15
    ◼ 社内のエンジニアの教育やサポート
    ⚫ 各現場への技術的なQ&A対応やトラブルシュート
    ⚫ 研修を開く
    ◼ 他社さんからのテスト自動化の相談にのる、お手伝いをする
    ⚫ ヒアリングや自動化デモ、コンサルテーションなどなど
    テスト自動化を「うまくやる」ためのお手伝いを行っている人
    です

    View Slide

  16. テスト自動化を組織でうまくやるための壁
    16
    壁1 始められない
    壁2 続かない
    壁3 広がらない

    View Slide

  17. 壁を越えるにはUnlearnが必要になる
    17
    x年前の私
    今の私
    ○○○はAです
    ○○○はBです
    通用しない
    Unlearn
    Learn
    Learn

    View Slide

  18. 壁になる要素
    18
    ◼ 技術の進歩や新しいツールの登場などにより、アップデートされやすい
    ◼ 常にキャッチアップ=LearnやUnlearnが必要、という共通認識が既にある
    ⚫ Java+Seleniumが出来ればテスト自動化は一生OK、と思っている人はいない
    テスト自動化スキル
    ◼ 能動的にUnlearnしていく必要がある
    テスト自動化に対する考え方

    View Slide

  19. 身近な例:キャプチャーリプレイ
    19
    ◼ 昔
    ⚫ “キャプチャーリプレイはテスト自動化ではない”
    via 『システムテスト自動化標準ガイド』 P35
    ◼ 今
    ⚫ AutoHealing機能を持つテスト自動化ツールにより、
    キャプチャーリプレイによるテスト自動化が可能に
    ※これをキャプチャーリプレイと呼ぶかどうかについてはここでは議論しない

    View Slide

  20. 目次
    1. 自己紹介
    2. LearnとUnlearnをしよう
    3. 過去のUnlearn体験
    4. Unlearnを促そう
    5. まとめ
    20

    View Slide

  21. 壁になる要素
    21
    ◼ 技術の進歩や新しいツールの登場などにより、アップデートされやすい
    ◼ 常にキャッチアップ=LearnやUnlearnが必要、という共通認識が既にある
    ⚫ Java+Seleniumが出来ればテスト自動化は一生OK、と思っている人はいない
    テスト自動化スキル
    ◼ 能動的にUnlearnしていく必要がある
    テスト自動化に対する考え方

    View Slide

  22. 始められない・続かない原因になっている考え方
    22
    例1 テスト自動化は3回やれば元がとれる
    例2 テスト自動化の目的はコスト削減
    例3 「テスト自動化プロジェクト」を成功させる

    View Slide

  23. 懺悔:言ってました
    23
    x年前の私
    • 3回やれば元が取れるらしいですよ
    • コスト削減に繋がりますよ
    • テスト自動化を3ヶ月後には成功させましょう!

    View Slide

  24. Learn & Unlearn
    しました

    View Slide

  25. 例1:テスト自動化は3回やれば元がとれる
    25
    ◼ 思っていたこと
    ⚫ 1回10人日の手動テストを自動化すると5人日にできる
    自動化するのに15人日かかるから、4回め以降は得!という計算
    ◼ ところが実際は
    ⚫ 試算をしても3回で元が取れなかった
    ⚫ 「2年かかる」という試算結果が出ることも(実話)
    ⚫ 実際に自動化してみたところ、初期の自動化や自動テストの運用に手間がかかり、
    試算通りには元が取れない
    ⚫ かつ、一度大掛かりに自動化を始めてしまうと「止める」決断がしづらく、
    楽にならないままズルズル自動化が続いてしまうことも(実話)

    View Slide

  26. 例2:テスト自動化の目的はコスト削減
    26
    ◼ 思っていたこと
    ⚫ テストを自動化することでコストが減らせる
    ⚫ テスターの人数を減らせる、など
    ◼ ところが実際は
    ⚫ テスターが減ったがテスト自動化エンジニアが増えた
    ⚫ 「自動化したんだから」と人を減らした結果、残った人の仕事が増えた(実話)
    ⚫ 「コスト」の指す範囲があいまいで、数字のマジックでしかなかった
    ⚫ テスト実行のコストが減ったが、しわ寄せが別に(実話)
    ※コスト削減に絶対つながらない、と言いたいわけではなく、
    安易に/よく考えずに「テストを自動化すればコスト削減できる」と思うのがNG、の意

    View Slide

  27. 例3:「テスト自動化プロジェクト」を成功させる
    27
    ◼ 思っていたこと
    ⚫ 設定した期限までに一定量のテスト自動化をすれば成功
    ⚫ テスト会社視点では「期日までに指定された自動テストを納めて完了」
    ◼ ところが実際は
    ⚫ テスト自動化に「終わり」は無い
    ⚫ 作って納めても、その後活用されないままになってしまった(実話)

    View Slide

  28. 今はこう言ってます
    28
    今の私
    • 実行コストの削減以外の効果がありますよ
    • テスト自動化はずっと続けるものですよ

    View Slide

  29. 目次
    1. 自己紹介
    2. LearnとUnlearnをしよう
    3. 過去のUnlearn体験
    4. Unlearnを促そう
    5. まとめ
    29

    View Slide

  30. 個人のUnlearnだけではテスト自動化はうまくいかない
    30
    ◼ もしテスト自動化が得意な個人が居ればうまくいくなら、
    皆さんの組織ではテスト自動化が既にうまくいっているはず
    ⚫ 土曜にSTAC2021に参加するような方は、Unlearnを自然にやっているのでは
    ◼ テスト自動化は一人ではできない
    ⚫ 主担当者に任せておけば組織でテスト自動化が進む、は間違い
    ⚫ テスト自動化は組織の文化

    View Slide

  31. みんなで壁を越える
    31
    通用しない
    Unlearn
    Learn
    Learn

    View Slide

  32. 参考:文化を変えるには
    32
    引用:テスト自動化の理論と技術と戦略:LINE Developer Meetup Tokyo #39 – Testing & Engineering

    View Slide

  33. みんなで壁を越えるために
    33
    ◼ 手段の目的化や硬直化があった場合は、それを解きほぐす
    ◼ テスト自動化に関して、さまざまな情報や知見を提供する
    LearnとUnlearnを促す
    ことが大事

    View Slide

  34. ①問いを投げかける
    34
    ◼ 削減したい“コスト”は何コスト? →目的の明確化
    ◼ 今かかっている費用もしくはコストはどのくらい? →現状把握
    答えられない、という場合もある。
    「自分たちがやりたかったこととは・・・」と
    改めて考え直すきっかけにもなる。

    View Slide

  35. ②実体験や、外部の事例を伝える
    35
    ◼ 別プロジェクトではこうでしたよ
    ◼ 自動化カンファレンスでこんな話がありましたよ
    視点を変える、ずらす。
    自分たちとは異なる背景・状況における情報から、
    ヒントを得る。

    View Slide

  36. 目次
    1. 自己紹介
    2. LearnとUnlearnをしよう
    3. 過去のUnlearn体験
    4. Unlearnを促そう
    5. まとめ
    36

    View Slide

  37. まとめ
    37
    ◼ テスト自動化で壁を越えるためにはUnlearnが要る
    ⚫ 個人でも、組織でも
    ◼ 今日お集まりの皆さんは自身のLearn&Unlearnはできると思うので、
    ぜひ周囲のUnlearnを促してください
    ⚫ テスト自動化が更に(スムーズに)広まるはず

    View Slide

  38. 参考:アンラーンについての書籍
    38
    ◼ 仕事のアンラーニング 働き方を学びほぐす
    ⚫ 松尾睦 著
    ◼ まなびほぐしのデザイン
    ⚫ 苅宿俊文, 佐伯胖, 高木光太郎 著
    ◼ リフレクション 自分とチームの成長を加速させる内省の技術
    ⚫ 熊平美香 著

    View Slide

  39. 参考:アンラーンについての記事や資料
    39
    ◼ アジャイルとUnlearn(まなびほぐし、脱学習、学習棄却)について
    の覚書:野中郁次郎、鶴見俊輔、あるいはヨーダ
    ⚫ https://ky-yk-d.hatenablog.com/entry/2018/11/18/204320
    ◼ 最近気になる「アンラーニング(学習棄却)」の話とか
    ⚫ https://kdnakt.hatenablog.com/entry/2018/02/08/070000
    ◼ 学習する/Unlearnするチームへ #RSGT2019 / Learning and
    Unlearning Team
    ⚫ https://speakerdeck.com/takaking22/learning-and-unlearning-team

    View Slide

  40. ありがとうございました
    質問・感想・ご意見などあれば以下までお願いします ☺
    ◼ e-mail: yoshikiito.elあっとgmail.com
    ◼ Twitter: @yoshikiito

    View Slide

  41. 41
    Appendix

    View Slide

  42. テスト自動化がうまくいっている/いないの(私の)捉え方
    42
    ◼ うまくいっている、とは
    ⚫ 品質向上や自分たちのビジネスの成長に、
    テスト自動化が役に立っている実感が持てている
    ◼ うまくいっていない、とは
    ⚫ 始められなかった
    ⚫ 始めたが、やめてしまった
    ⚫ 続いているが、品質や自分たちのビジネスの成長に寄与していない

    View Slide

  43. ベストプラクティスやアンチパターンは多数語られている
    43
    ◼ ギア本
    ◼ A Journey through Test Automation Patterns
    ◼ JSTQB テスト自動化エンジニアシラバス
    ◼ EXPERIENCES of TEST AUTOMATION
    などの書籍や資料

    View Slide