34
誰誰誰誰誰誰誰誰誰誰誰誰誰誰 誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰 ~ 誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰誰 2014/10/24 誰誰 誰誰誰 kotaro.ogino@ mail.rakuten.com

【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech

Embed Size (px)

DESCRIPTION

誰がテスト自動化をするべきか 継続的システムテストスピンオフ企画第一弾 ~あなたのテスト自動化は大量のテストを高速実行するだけですか?〜 というタイトルのLT発表のスライドです。 詳細はこちらです。 http://kokotatata.hatenablog.com/entry/2014/10/24/190131

Citation preview

Page 1: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

誰がテスト自動化をするべきか継続的システムテストスピンオフ企画第一弾

~ あなたのテスト自動化は大量のテストを高速実行するだけですか?〜2014/10/24

荻野 恒太郎[email protected]

Page 2: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

2

「テストの自動化」と聞くと

何をイメージしますか?

Page 3: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

3

「テストの自動化」と聞くと

何をイメージしますか?大量のテストを

高速に実行する事

Page 4: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

4

“ 俺”のテスト自動化

開発 PRJ で  •1万件  のテストシナリオ • 100 時間の実行時間のシステムテストを自動化

Page 5: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

5

“ 俺”のテスト自動化

開発 PRJ で  •1万件  のテストシナリオ • 100 時間の実行時間のシステムテストを自動化継続的システムテスト

Page 6: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

6

継続的システムテストについて社外講演

http://www.jasst.jp/http://www.juse.jp/sqip/symposium/

Page 7: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

7

そろそろこのディスカッションに決着をつけようか

「テスト自動化って

誰がするべき?」

Page 8: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

8

テスト自動化の大変なところ

仕様設計 レビュー

テスト実装プロセス

機能実装プロセス

テストレビュー

Page 9: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

9

テスト自動化の大変なところ

仕様設計 レビュー

テスト実装プロセス

機能実装プロセス

テストレビュー

① 十分な量のテストを自動化出来ないとバグを見逃してしまう

テスト自動化 = 大量のテストの高速実行 ?

Page 10: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

10

ある開発 PRJ での 2013 年のバグカーブ

0 200 400 600 800 10000

20

40

60

80

100

(検

出バ

グ数

)

累積コミット数

Page 11: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

11

大量のテストを高速実行しているだけだと…

0 200 400 600 800 10000

20

40

60

80

100

(検

出バ

グ数

)

累積コミット数

Page 12: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

12

大量のテストを高速実行しているだけだと…

0 200 400 600 800 10000

20

40

60

80

100

(検

出バ

グ数

)

累積コミット数

イテレーション終了のギリギリまでバグが出続ける = 炎上

Page 13: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

13

テスト自動化の大変なところ

仕様設計 レビュー

テスト実装プロセス

機能実装プロセス

テストレビュー

① 十分な量のテストを自動化出来ないとバグを見逃してしまう

Page 14: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

14

テスト自動化の大変なところ

仕様設計 レビュー

テスト実装プロセス

機能実装プロセス

テストレビュー

① 十分な量のテストを自動化出来ないとバグを見逃してしまう

テスト自動化 = 開発プロセスの品質改善

Page 15: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

15

開発プロセスの品質改善からみたテスト自動化の大変なところ

仕様設計 レビュー

テスト実装プロセス

機能実装プロセス

テストレビュー

① 十分な量のテストを自動化出来ないとバグを見逃してしまう

Page 16: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

16

開発プロセスの品質改善からみたテスト自動化の大変なところ

仕様設計 レビュー

テスト実装プロセス

機能実装プロセス

テストレビュー

② 抜け漏れや間違いが あると手戻りが大変

③ 同時に終わらないと サイクルタイムが遅くなる!!

① 十分な量のテストを自動化出来ないとバグを見逃してしまう

④ 欠陥特定は 自動化が困難

Page 17: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

17

開発プロセスが品質改善されテスト自動化がうまく回ると

0 200 400 600 800 10000

20

40

60

80

100

(検

出バ

グ数

)

累積コミット数

Page 18: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

18

開発プロセスが品質改善されテスト自動化がうまく回ると

0 200 400 600 800 10000

20

40

60

80

100

(検

出バ

グ数

)

累積コミット数

Page 19: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

19

開発プロセスが品質改善されテスト自動化がうまく回ると

0 200 400 600 800 10000

20

40

60

80

100

(検

出バ

グ数

)

累積コミット数

イテレーションの初期でバグが見つかる!!

Page 20: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

20

開発プロセスの品質改善とテスト自動化のスキルセット

スキルセット

① 抜け漏れや間違い

レビュースキル  (アプリケーション知識)  (運用知識)  (設計知識)  (テスト容易性)

② 網羅的な自動テスト

様々なテスト設計技法ソフトウェア開発スキル網羅性評価 設計知識とメトリクス

③ マネージメント テストの優先順位付け  設計知識とメトリクススクラム

④ 欠陥特定 テストアーキテクチャアプリケーション知識

Page 21: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

21

開発プロセスの品質改善とテスト自動化のスキルセット

スキルセット

① 抜け漏れや間違い

レビュースキル  (アプリケーション知識)  (運用知識)  (設計知識)  (テスト容易性)

② 網羅的な自動テスト

様々なテスト設計技法ソフトウェア開発スキル網羅性評価 設計知識とメトリクス

③ マネージメント テストの優先順位付け  設計知識とメトリクススクラム

④ 欠陥特定 テストアーキテクチャアプリケーション知識

開発とテスト両方のスキルセットが必要

Page 22: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

22

色々言いたい事がある .. 例えば…

開発者への問い :- 非機能要件について運用やユーザ視点のテスト書けてる ?- C1,C2 と Mutation testing を使って、 テストケースを減らす事、欠陥特定を行えている ?

テスターへの問い :- 仕様策定や設計の段階で不具合を見つけてる ?- アプリケーション知識とソースコード、ログ、テスト結果から 素早く欠陥特定出来てる ?

マネージャーへの問い :- リスク、設計、バグ、プロダクトとプロセスメトリクスを 使用してテストプロセスの改善出来てる ?- 機能とテスト実装が同時に終わるようタスク分割出来てる ?

Page 23: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

23

LT では時間がないので3つだけ

開発者への問い :- 非機能要件について運用やユーザ視点のテスト書けてる ?- C1,C2 と Mutation testing を使って、 テストケースを減らす事、欠陥特定を行えている ?

テスターへの問い :- 仕様策定や設計の段階で不具合を見つけてる ?- アプリケーション知識とソースコード、ログ、テスト結果から 素早く欠陥特定出来てる ?

マネージャーへの問い :- リスク、設計、バグ、プロダクトとプロセスメトリクスを 使用してテストプロセスの改善出来てる ?- 機能とテスト実装が同時に終わるようタスク分割出来てる ?

Page 24: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

24

LT では時間がないので3つだけ

開発者への問い :- 非機能要件について運用やユーザ視点のテスト書けてる ?- C1,C2 と Mutation testing を使って、 テストケースを減らす事、欠陥特定を行えている ?

テスターへの問い :- 仕様策定や設計の段階で不具合を見つけてる ?- アプリケーション知識とソースコード、ログ、テスト結果から 素早く欠陥特定出来てる ?

マネージャーへの問い :- リスク、設計、バグ、プロダクトとプロセスメトリクスを 使用してテストプロセスの改善出来てる ?- 機能とテスト実装が同時に終わるようタスク分割出来てる ?

一人で全部やれるスーパーエンジニアがいるならその人にお任せするのも選択肢

でも、そうじゃないならみんなが協力した方がいいんじゃないかな

Page 25: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

25

テスト自動化は誰がするべきか?

大量のテストの高速実行が目的ならば

キーワード駆動テストとかPageObject パターン使え

ば誰がやっても同じ

けど、確実に炎上します w

Page 26: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

26

テスト自動化は誰がするべきか?

開発プロセスの品質改善活動としてみんなが協力したら

バグ修正日数やバグの早期発見で

高い効果が出る YO

Page 27: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

27

継続的システムテストについて社外講演

http://www.jasst.jp/http://www.juse.jp/sqip/symposium/

メリット①バグが速く直せる!

メリット②バグを早期発見!

Page 28: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

28

もっと知りたい方は検索!

Page 29: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

29

似たような話って他にもありますよね

「障害対応って誰がするべき?」

Page 30: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

30

“10+ Deploys Per Day: Dev and Ops Cooperation at Flickr”http://www.slideshare.net/jallspaw/10-deploys-per-day-dev-and-ops-cooperation-at-flickr

Page 31: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

31

あ、そうだ

Page 32: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

32

Continuous Testing や DevOps のエンジニアを探してるんだった!!!

Page 33: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

33

Continuous Testing や DevOps のエンジニアを探してるんだった!!!

・ ビジネスをさらにドライブさせていくための 開発スピードの高速化 (アジャイル、  CD 、 Continuous Testing )

・ レガシーシステムをテクノロジーで 変革を加えていく (テクニカルチャレンジ)

・ 開発スピードを殺さず、サービス / システムの 信頼性を向上させるためのさらなる取り組み ( DevOps )

Page 34: 【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか  #rakutentech

34

Let’s improve quality