Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
テスト自動化Learn&Unlearn
Search
YoshikiIto
December 11, 2021
Technology
0
3.5k
テスト自動化Learn&Unlearn
ソフトウェアテスト自動化カンファレンス2021
https://testautomationresearch.connpass.com/event/228204/
での発表資料です
YoshikiIto
December 11, 2021
Tweet
Share
More Decks by YoshikiIto
See All by YoshikiIto
アーキテクチャで理解する テスト自動化システム Developers Summit 2023 Summer
yoshikiito
6
6.3k
迷いながらも前に進むための テスト自動化ツールの選定ポイント
yoshikiito
2
630
60分で学ぶE2Eテスト(テスト設計編)
yoshikiito
0
360
ソフトウェアテスト自動化、一歩前へ
yoshikiito
7
2.7k
テストエンジニアのための初めてのプログラミング
yoshikiito
0
510
テスト自動化プロジェクトを支える技術と仕組み
yoshikiito
2
3.2k
テスト自動化チームでペアプロにトライした話 / trying to pair programming on test automation team
yoshikiito
0
870
テスト自動化とお掃除ロボット
yoshikiito
0
4.1k
抜け出そう、テスト自動化あるある
yoshikiito
4
6k
Other Decks in Technology
See All in Technology
【技術書典17】OpenFOAM(自宅で極める流体解析)2次元円柱まわりの流れ
kamakiri1225
0
210
AWS re:Inventを徹底的に楽しむためのTips / Tips for thoroughly enjoying AWS re:Invent
yuj1osm
1
560
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
290k
2024-10-30-reInventStandby_StudyGroup_Intro
shinichirokawano
1
630
Vueで Webコンポーネントを作って Reactで使う / 20241030-cloudsign-vuefes_after_night
bengo4com
4
2.5k
Automated Promptingを目指すその前に / Before we can aim for Automated Prompting
rkaga
0
110
30万人が利用するチャットをFirebase Realtime DatabaseからActionCableへ移行する方法
ryosk7
5
350
IaC運用を楽にするためにCDK Pipelinesを導入したけど、思い通りにいかなかった話
smt7174
1
110
omakaseしないための.rubocop.yml のつくりかた / How to Build Your .rubocop.yml to Avoid Omakase #kaigionrails
linkers_tech
3
730
AWS CDKでデータリストアの運用、どのように設計する?~Aurora・EFSの実践事例を紹介~/aws-cdk-data-restore-aurora-efs
mhrtech
4
650
Fargateを使った研修の話
takesection
0
110
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.6k
Featured
See All Featured
Raft: Consensus for Rubyists
vanstee
136
6.6k
Building Applications with DynamoDB
mza
90
6.1k
We Have a Design System, Now What?
morganepeng
50
7.2k
Six Lessons from altMBA
skipperchong
26
3.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
264
13k
Statistics for Hackers
jakevdp
796
220k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
How to Ace a Technical Interview
jacobian
275
23k
Embracing the Ebb and Flow
colly
84
4.4k
Code Reviewing Like a Champion
maltzj
519
39k
How GitHub (no longer) Works
holman
311
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
107
49k
Transcript
Learn & Unlearn Yoshiki Ito #STAC 2021, Dec 11 テスト自動化
おことわり:本セッションの用語やスコープなど 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
教育・普及の過程でのあるある 9 x年前の私 今の私 ◦◦◦はAです ◦◦◦はBです
Learn & Unlearn をしている(つもり)
Unlearn(アンラーン) ◼ 意味 ⚫ 得意技を捨てること、成功体験に溺れないこと via 『仕事のアンラーニング』 ⚫ 過去の学びを手放す行為 via
『リフレクション』 ◼ 言い換え ⚫ 学びほぐし、脱学習、学習棄却、学び直し、知の断捨離 など
本セッションにおける “Unlearn” 12 “過去の成功体験に溺れない”に絞らず、 常識と思っていること、既に学んだ(学んでしまった)ことを 改めて考え直してみること とします。 ※これは厳密には、狭義の、Unlearnではない。 ただしここではテスト自動化をうまくやるための考え方を端的に表す「キャッチーなワード」として、 語義を広く解釈して用いることにする。
我々はまだ溺れるほど成功していない・・・ 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アンケート集計結果より
14 さておき
再掲:普段(チームで)やっていること 15 ◼ 社内のエンジニアの教育やサポート ⚫ 各現場への技術的なQ&A対応やトラブルシュート ⚫ 研修を開く ◼ 他社さんからのテスト自動化の相談にのる、お手伝いをする
⚫ ヒアリングや自動化デモ、コンサルテーションなどなど テスト自動化を「うまくやる」ためのお手伝いを行っている人 です
テスト自動化を組織でうまくやるための壁 16 壁1 始められない 壁2 続かない 壁3 広がらない
壁を越えるにはUnlearnが必要になる 17 x年前の私 今の私 ◦◦◦はAです ◦◦◦はBです 通用しない Unlearn Learn Learn
壁になる要素 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 「テスト自動化プロジェクト」を成功させる
懺悔:言ってました 23 x年前の私 • 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 通用しない Unlearn Learn Learn
参考:文化を変えるには 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 and Unlearning Team ⚫ https://speakerdeck.com/takaking22/learning-and-unlearning-team
ありがとうございました 質問・感想・ご意見などあれば以下までお願いします ☺ ◼ e-mail: yoshikiito.elあっとgmail.com ◼ Twitter: @yoshikiito
41 Appendix
テスト自動化がうまくいっている/いないの(私の)捉え方 42 ◼ うまくいっている、とは ⚫ 品質向上や自分たちのビジネスの成長に、 テスト自動化が役に立っている実感が持てている ◼ うまくいっていない、とは ⚫
始められなかった ⚫ 始めたが、やめてしまった ⚫ 続いているが、品質や自分たちのビジネスの成長に寄与していない
ベストプラクティスやアンチパターンは多数語られている 43 ◼ ギア本 ◼ A Journey through Test Automation
Patterns ◼ JSTQB テスト自動化エンジニアシラバス ◼ EXPERIENCES of TEST AUTOMATION などの書籍や資料