ソフトウェアテスト自動化カンファレンス2021 https://testautomationresearch.connpass.com/event/228204/
での発表資料です
Learn & UnlearnYoshiki Ito #STAC 2021, Dec 11テスト自動化
View Slide
おことわり:本セッションの用語やスコープなど2◼ テスト自動化=システムテスト自動化⚫ Unit TestやAPI Testなどの自動化は、明示しない限り対象外◼ 具体的な技術の話ではなく、自動化をうまくやるには話⚫ 地獄の話ではないです⚫ 特定の言語やフレームワークの話はしないので、知らなくとも聞けます⚫ 逆に、具体的な技術の話が聞きたい方は、裏の「組込み向けテスト実行フレームワークのご紹介 / 見澤 広志さん」へGO!
おことわり:資料の公開やSNSシェアなど3◼ 資料はあとでSpeaker Deckに公開予定◼ 動画もYouTubeに公開されるはず◼ コメントや感想や質問などDiscordに随時お願いします⚫ あとからお返事します
今回のゴール4◼ Unlearnしよう!という気になってもらう◼ 普段仕事をしているチームや組織においてのLearn&Unlearnを促そう!という気になってもらうテスト自動化がうまくいっている状態になるための役に立てば嬉しいです
目次1. 自己紹介2. LearnとUnlearnをしよう3. 過去のUnlearn体験4. Unlearnを促そう5. まとめ5
伊藤由貴 / Yoshiki Ito◼ テスト自動化エヴァンジェリスト◼ 仕事の経歴⚫ 2012年 株式会社ベリサーブに入社⚫ 以降テスト自動化ツールの開発や導入支援など⚫ 2019年~ 自動テスト推進課を立ち上げ活動中◼ コミュニティ活動⚫ JaSST東北 実行委員⚫ JSTQB AL シラバス テスト自動化エンジニア日本語翻訳ワーキンググループ6
普段(チームで)やっていること7◼ 社内のエンジニアの教育やサポート⚫ 各現場への技術的なQ&A対応やトラブルシュート⚫ 研修を開く◼ 他社さんからのテスト自動化の相談にのる、お手伝いをする⚫ ヒアリングや自動化デモ、コンサルテーションなどなどテスト自動化を「うまくやる」ためのお手伝いを行っている人です
目次1. 自己紹介2. LearnとUnlearnをしよう3. 過去のUnlearn体験4. Unlearnを促そう5. まとめ8
教育・普及の過程でのあるある9x年前の私 今の私○○○はAです ○○○はBです
Learn & Unlearnをしている(つもり)
Unlearn(アンラーン)◼ 意味⚫ 得意技を捨てること、成功体験に溺れないこと via 『仕事のアンラーニング』⚫ 過去の学びを手放す行為 via 『リフレクション』◼ 言い換え⚫ 学びほぐし、脱学習、学習棄却、学び直し、知の断捨離 など
本セッションにおける “Unlearn”12“過去の成功体験に溺れない”に絞らず、常識と思っていること、既に学んだ(学んでしまった)ことを改めて考え直してみることとします。※これは厳密には、狭義の、Unlearnではない。ただしここではテスト自動化をうまくやるための考え方を端的に表す「キャッチーなワード」として、語義を広く解釈して用いることにする。
我々はまだ溺れるほど成功していない・・・1357%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 2020Q4. システムテスト自動化はうまくいっていますか?a. 多くの/深刻な問題があるb. 小さな問題があるc. うまくいっているSTAC2020アンケート集計結果より
14さておき
再掲:普段(チームで)やっていること15◼ 社内のエンジニアの教育やサポート⚫ 各現場への技術的なQ&A対応やトラブルシュート⚫ 研修を開く◼ 他社さんからのテスト自動化の相談にのる、お手伝いをする⚫ ヒアリングや自動化デモ、コンサルテーションなどなどテスト自動化を「うまくやる」ためのお手伝いを行っている人です
テスト自動化を組織でうまくやるための壁16壁1 始められない壁2 続かない壁3 広がらない
壁を越えるにはUnlearnが必要になる17x年前の私今の私○○○はAです○○○はBです通用しないUnlearnLearnLearn
壁になる要素18◼ 技術の進歩や新しいツールの登場などにより、アップデートされやすい◼ 常にキャッチアップ=LearnやUnlearnが必要、という共通認識が既にある⚫ Java+Seleniumが出来ればテスト自動化は一生OK、と思っている人はいないテスト自動化スキル◼ 能動的にUnlearnしていく必要があるテスト自動化に対する考え方
身近な例:キャプチャーリプレイ19◼ 昔⚫ “キャプチャーリプレイはテスト自動化ではない”via 『システムテスト自動化標準ガイド』 P35◼ 今⚫ AutoHealing機能を持つテスト自動化ツールにより、キャプチャーリプレイによるテスト自動化が可能に※これをキャプチャーリプレイと呼ぶかどうかについてはここでは議論しない
目次1. 自己紹介2. LearnとUnlearnをしよう3. 過去のUnlearn体験4. Unlearnを促そう5. まとめ20
壁になる要素21◼ 技術の進歩や新しいツールの登場などにより、アップデートされやすい◼ 常にキャッチアップ=LearnやUnlearnが必要、という共通認識が既にある⚫ Java+Seleniumが出来ればテスト自動化は一生OK、と思っている人はいないテスト自動化スキル◼ 能動的にUnlearnしていく必要があるテスト自動化に対する考え方
始められない・続かない原因になっている考え方22例1 テスト自動化は3回やれば元がとれる例2 テスト自動化の目的はコスト削減例3 「テスト自動化プロジェクト」を成功させる
懺悔:言ってました23x年前の私• 3回やれば元が取れるらしいですよ• コスト削減に繋がりますよ• テスト自動化を3ヶ月後には成功させましょう!
Learn & Unlearnしました
例1:テスト自動化は3回やれば元がとれる25◼ 思っていたこと⚫ 1回10人日の手動テストを自動化すると5人日にできる自動化するのに15人日かかるから、4回め以降は得!という計算◼ ところが実際は⚫ 試算をしても3回で元が取れなかった⚫ 「2年かかる」という試算結果が出ることも(実話)⚫ 実際に自動化してみたところ、初期の自動化や自動テストの運用に手間がかかり、試算通りには元が取れない⚫ かつ、一度大掛かりに自動化を始めてしまうと「止める」決断がしづらく、楽にならないままズルズル自動化が続いてしまうことも(実話)
例2:テスト自動化の目的はコスト削減26◼ 思っていたこと⚫ テストを自動化することでコストが減らせる⚫ テスターの人数を減らせる、など◼ ところが実際は⚫ テスターが減ったがテスト自動化エンジニアが増えた⚫ 「自動化したんだから」と人を減らした結果、残った人の仕事が増えた(実話)⚫ 「コスト」の指す範囲があいまいで、数字のマジックでしかなかった⚫ テスト実行のコストが減ったが、しわ寄せが別に(実話)※コスト削減に絶対つながらない、と言いたいわけではなく、安易に/よく考えずに「テストを自動化すればコスト削減できる」と思うのがNG、の意
例3:「テスト自動化プロジェクト」を成功させる27◼ 思っていたこと⚫ 設定した期限までに一定量のテスト自動化をすれば成功⚫ テスト会社視点では「期日までに指定された自動テストを納めて完了」◼ ところが実際は⚫ テスト自動化に「終わり」は無い⚫ 作って納めても、その後活用されないままになってしまった(実話)
今はこう言ってます28今の私• 実行コストの削減以外の効果がありますよ• テスト自動化はずっと続けるものですよ
目次1. 自己紹介2. LearnとUnlearnをしよう3. 過去のUnlearn体験4. Unlearnを促そう5. まとめ29
個人のUnlearnだけではテスト自動化はうまくいかない30◼ もしテスト自動化が得意な個人が居ればうまくいくなら、皆さんの組織ではテスト自動化が既にうまくいっているはず⚫ 土曜にSTAC2021に参加するような方は、Unlearnを自然にやっているのでは◼ テスト自動化は一人ではできない⚫ 主担当者に任せておけば組織でテスト自動化が進む、は間違い⚫ テスト自動化は組織の文化
みんなで壁を越える31通用しないUnlearnLearnLearn
参考:文化を変えるには32引用:テスト自動化の理論と技術と戦略:LINE Developer Meetup Tokyo #39 – Testing & Engineering
みんなで壁を越えるために33◼ 手段の目的化や硬直化があった場合は、それを解きほぐす◼ テスト自動化に関して、さまざまな情報や知見を提供するLearnとUnlearnを促すことが大事
①問いを投げかける34◼ 削減したい“コスト”は何コスト? →目的の明確化◼ 今かかっている費用もしくはコストはどのくらい? →現状把握答えられない、という場合もある。「自分たちがやりたかったこととは・・・」と改めて考え直すきっかけにもなる。
②実体験や、外部の事例を伝える35◼ 別プロジェクトではこうでしたよ◼ 自動化カンファレンスでこんな話がありましたよ視点を変える、ずらす。自分たちとは異なる背景・状況における情報から、ヒントを得る。
目次1. 自己紹介2. LearnとUnlearnをしよう3. 過去のUnlearn体験4. Unlearnを促そう5. まとめ36
まとめ37◼ テスト自動化で壁を越えるためにはUnlearnが要る⚫ 個人でも、組織でも◼ 今日お集まりの皆さんは自身のLearn&Unlearnはできると思うので、ぜひ周囲のUnlearnを促してください⚫ テスト自動化が更に(スムーズに)広まるはず
参考:アンラーンについての書籍38◼ 仕事のアンラーニング 働き方を学びほぐす⚫ 松尾睦 著◼ まなびほぐしのデザイン⚫ 苅宿俊文, 佐伯胖, 高木光太郎 著◼ リフレクション 自分とチームの成長を加速させる内省の技術⚫ 熊平美香 著
参考:アンラーンについての記事や資料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 andUnlearning Team⚫ https://speakerdeck.com/takaking22/learning-and-unlearning-team
ありがとうございました質問・感想・ご意見などあれば以下までお願いします ☺◼ e-mail: yoshikiito.elあっとgmail.com◼ Twitter: @yoshikiito
41Appendix
テスト自動化がうまくいっている/いないの(私の)捉え方42◼ うまくいっている、とは⚫ 品質向上や自分たちのビジネスの成長に、テスト自動化が役に立っている実感が持てている◼ うまくいっていない、とは⚫ 始められなかった⚫ 始めたが、やめてしまった⚫ 続いているが、品質や自分たちのビジネスの成長に寄与していない
ベストプラクティスやアンチパターンは多数語られている43◼ ギア本◼ A Journey through Test Automation Patterns◼ JSTQB テスト自動化エンジニアシラバス◼ EXPERIENCES of TEST AUTOMATIONなどの書籍や資料