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
[完全版] あなたが自動テストを行う目的は何ですか? / what-is-your-purpo...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
O3(ozono)
April 16, 2020
Programming
800
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[完全版] あなたが自動テストを行う目的は何ですか? / what-is-your-purpose-for-performing-automated-tests
O3(ozono)
April 16, 2020
More Decks by O3(ozono)
See All by O3(ozono)
TestingOsaka6_Ozono
o3
0
460
なぜ人はE2E自動テストの継続に失敗するのか / Why we could not continue the E2E automation testing
o3
4
2.9k
SETを約10年やってみたけど質問ある? / Any Questions about my 10 years SET career?
o3
0
1.7k
これからのCI、これからのE2E自動テスト / The future of CI, the future of E2E automation testing
o3
2
1k
testlab2_introduction.pdf
o3
0
350
てすらぼ#1 / Introduction for autotest-lab #1
o3
0
680
Other Decks in Programming
See All in Programming
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
140
AI 時代のソフトウェア設計の学び方
masuda220
PRO
29
13k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
14
5.6k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
550
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
スマートグラスで並列バイブコーディング
hyshu
0
160
OSもどきOS
arkw
0
570
C# and C++ Interoperability - cho-dotnetnew
harukasao
0
260
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
540
さぁV100、メモリをお食べ・・・
nilpe
0
150
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
Featured
See All Featured
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.7k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
970
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
200
Skip the Path - Find Your Career Trail
mkilby
1
150
GitHub's CSS Performance
jonrohan
1033
470k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
66
55k
Marketing to machines
jonoalderson
1
5.5k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Transcript
[完全版]あなたが⾃動テストを⾏ う⽬的は何ですか? 2020/04/16 Ozono Hiroaki てすらぼ #1
30秒で⾃⼰紹介
なぜこんなことを話そうと思ったか
なぜこんなことを話そうと思ったか https://qiita.com/ozhiro/items/5aa95c6360a8930df325
どんな⼈に向けての話なのか - これから自動テストや りたい人 - 今自動テストやって て悩んでいる人 - 部下に自動テストや らせたい偉い人
どんな⼈に向けての話なのか 上司から「⾃動テストやってみてよ」って丸投 げされたあなた、無⾔でこのスライド(Qiita)の リンクぶん投げてあげてください
注意点 - 自動テスト == E2EのUIテスト。ブラウザやエミュ レーター、実機などをプログラムで操作して行うテ スト として定義しています - こうやって失敗した、という経験のシェアを趣旨とし
ています - 私の所属する組織は開発組織とQA組織が独 立しています - ちゃんと関係者の許可もらってるよ!
導⼊編 自動テストを実装し始 める前に考えておいた 方がいいこと
それは… あなたが⾃動テストを⾏う⽬的はなんですか?
実際に周りで聞いたことがある例 - プログラミングを仕事にしたいから - テスト自動化エンジニアになりたいから - 他ではやってるから - 手動テストのコストを減らしたいから -
手動テスターの負担を減らしたいから
実際に周りで聞いたことがある例 - プログラミングを仕事にしたいから - テスト自動化エンジニアになりたいから - 他ではやってるから - 手動テストのコストを減らしたいから -
手動テスターの負担を減らしたいから キャリア コスト
わたしの場合 当時の上司 キャリア 当時のわたし コスト
共通すること ⾃動テストをすることで プロジェクト・サービスをどう良くしたいのか という観点がない
⼿段の⽬的化 - キャリアに関する観 点は手段の目的化 になっている - 動機としては悪くな いと思う - プロジェクトが利益
を得られるよう、上 司が誘導してあげる べき
⼿段の⽬的化 - 実装を担当する部 下はプログラムを書 くこと自体が楽しくて 楽しくてしょうがない 状態になるかも - 自動化ハイなんてよ く言われます
⼿段の⽬的化 - あなたたちの目的は 自動テストを書くこと ですか?サービスを よくすることでしょ う? - 当時のわたしと当時 の上司に1000回くら
い言ってあげたいで す
コストの削減 ⾃動テストで⼈的コストを削減することは⾄難 のわざです
コストの削減 - 局所的に切り取れ ばいくらでも良く見せ ることは可能 - わたし自身丸4年で 人的コスト減らせ た!という実績はな い
- むしろ増えてる場合 も多い
コストの削減 - コストは増えても別 にいいんです。自動 テストをやる目的が 別であれば - ただし、コスト削減 が目的になっている と…茨の道を通る可
能性が
コストの削減 - UIの自動テスト自 体が一般的にコスト が高いと言われてい る - コストが高いもの(自 動テスト)でコストが 高いもの(手動テス
ト)のコストを削減す る…ハードな匂いが
結果的にどうなったか 見事に燃え尽きた
どうするべきだったのか - 手動テストでカバーできていない部分を自動テストで カバーして、ユーザー体験をよりよくしたい。 - 本番環境で起きるサービスの障害を自動テストでひと つでも減らし、機会損失を減らしたい。 - 開発のライフサイクルを改善するために自動テストを 活用して、エンジニアがもっと仕事しやすい環境を作り
たい。 こんな目的持ってたらどうだったでしょうか?
⾃動テストの守備範囲 開発のため ビジネスのため
ちなみに - 同僚からどうやってコス ト意識から抜け出せた のか?と質問をもらいま した - 外の世界を知った、とい うのが一番大きかったと 思います
- おすすめはこれ https://www.amazon.co.jp/dp/B00IE3B522
次に運⽤編 ⽬的の次に⼤事だと思っていること →いかに⾃動テストを運⽤していくかということ →使⽤する⾔語やソフトウェアはその次でいい
失敗したときどうなるか考えていますか? - 初めての試み、挑戦的 な取り組みに失敗はつ きもの - 大事なのは失敗しない ことではなく、失敗して も大丈夫なように準備 しておくこと(自動テスト
に限った話ではない)
失敗したときどうなるか考えていますか? - 早く成果を出したいから と焦っていませんか? - 精査せずにいきなり自 動テスト書き始めてま せんか? - これが初めてのチャレン
ジなら要注意
失敗したときどうなるか考えていますか? - もしなにも考えずに始 めて失敗してしまった場 合、逆にコストがかかっ たりプロジェクトがうまく 回らなくなったり、といっ た弊害が出ることもあり ます。
失敗したときどうなるか考えていますか? - 逆に言えば、ある程度 リスクを考慮しておけば いいだけの話です。 - 私と同じ失敗をみなさ まがしませんように…
周りの⼈たちを巻き込めていますか? 閉じた場所で、限られた⼈だけで議論をしてい ませんか?
周りの⼈たちを巻き込めていますか? - テスト自動化を組織立 ててやることは、ひとつの サービスを作ることと同 様の大変さがあります。 - 開発チーム or QAチー
ムなどに議論が閉じて しまってはいませんか?
周りの⼈たちを巻き込めていますか? - それなりの実装コストと メンテナンスコストがか かることをプロジェクト全 員から理解を得ましょう - とりあえずやってみたい、 勉強タスクとしてやらせ たい、の結果、儚く消え
ていく例を何度も見て きました…
それ、本当にやる必要ありますか? - 開発エンジニア未経験 から自動テストに取り 組む場合で特に見てき た例 - プログラム勉強したいか らという理由でスクリプト をスクラッチから書こうと
する例をよく見てきまし た。
それ、本当にやる必要ありますか? - それってすでにOSSでな いですか? - それってすでにベンダー さんがサービスとして提 供してないですか? - もちろん様々な理由か
ら自分で作らないとい けないことはあると思い ます
まとめ ⽬的って⼤事
最後に じゃあ今の私の⽬標は?
最後に DX(Developer eXperience)の向上
最後に テスト⾃動化エンジニアがE2Eのテストスクリ プトを書いて、メンテするだけの時代はもう終 わる →それって本当にテスト⾃動化エンジニアみた いな専⾨職必要? →プログラム書かなくてもE2Eのテストできる ツールいっぱいあるんじゃないの?
最後に じゃあテストに関わる部分で、⾃動テストのス クリプトを書くだけじゃなくて、サービス開発 がもっとしやすくなるお⼿伝いしたらどうか な?
最後に Making testable-infrastructure - Motivation - Develop branchにおいて⾃動テストがバグを⾒つけたとしても、 サービス開発者へのフィードバックは早くない -
もうすでにDevelop branchへたくさんのPull requestが取り込まれたあとかも しれない - その場合、どれが影響したのか⾒つけるのが⾟い - そもそもPull request取り込まれたの先週だし内容覚えてない。。 - E2Eテストは環境に依存してしまうケースが多い - 開発環境、QA環境で⾃動テストを⾏なっていると、予期せぬデータの操作・変 更が⾃動テストに影響してしまい、結果⾃動テストが不安定になってしまう
最後に Making testable-infrastructure - Motivation - Develop branchにおいて⾃動テストがバグを⾒つけたとしても、 サービス開発者へのフィードバックは早くない -
もうすでにDevelop branchへたくさんのPull requestが取り込まれたあとかも しれない - その場合、どれが影響したのか⾒つけるのが⾟い - そもそもPull request取り込まれたの先週だし内容覚えてない。。 - E2Eテストは環境に依存してしまうケースが多い - 開発環境、QA環境で⾃動テストを⾏なっていると、予期せぬデータの操作・変 更が⾃動テストに影響してしまい、結果⾃動テストが不安定になってしまう Pull request-drivenでテストできる環境を Kubernetesにでも⾃動で作っちゃおう
最後に
ご清聴ありがとうございました!