バグなんて見逃しちゃえ

2.8K Views

May 15, 23

スライド概要

profile-image

QAエンジニア、SETエンジニア

シェア

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

可観測性 テストの7原則 バ グ な んて見逃しちゃえ o b s e r v a b i l it y 監視 りふ 22/6/17 NINNO Tech Fest #7 DevOps バグフィルタ JSTQB V字モデル

2.

皆さん、システム開発に 詳しい前提でお話しします NINNO(テクノロジーのプロでイノベーシ ョンを起こす場)ですからね

3.

この絵を見たことある方 いますか?

4.

Katrina Clokie / Bug Filter 🎬後日に翻訳したものを Y o u T u beを 公 開! 💡網目が大きくなる 💡バグが成長している 4

5.

では、 こちらはいかがでしょう?

6.

V 字モデル 6

7.

バグは内容によって見つけるべきタイミングが違う  “バグフィルター”と”V字モデル”は似ている  バグフィルターには、3つが追加されている(後半でお話し)  バグフィルターは、上からバグをふるいにかけていく メソッドやクラス 画 面 間 の パ ラ メ ー タ 引 き渡 し ユーザーの導線に着目 後半でお話し 7

8.

バグを見逃すとどれくらいコストかかる の?

9.

試算した

10.

「コストモデル」を使った開発品質・生産性向上の取組み  IPAが出したシステム開発における1件のバグのコスト  工程よってバグ対応のコストが違い、基本設計を1としたら何倍になるか  稼働後のバグは1件あたり「240万円」 10

11.

たっかい(ワイの年収分や…)

12.

もっと怖いバグのコストが ある

13.

社会的信用の失墜  コスト試算は難しいが、大きい企業だと「億」は超える  システムを使おうかな?と思っていたユーザーが使用ぜす、売り上げを失う  潜在顧客を失う 社会的信用の失墜 ∞ 億 13

14.

どうすればいいの?

15.

JSTQB ✓テストの7原則 早期テストで時間とコストを節約

16.

✓テストの7原則 早期テストで時間とコストを節約  早期は、設計工程を含む  システムが動かせないとテストできないは思い込み  テスト手段はJSTQBのシラバスへ 社会的信用の失墜 ∞ 億 ここでもテストできる なるべく早くテストをする 16

17.

こわいな…ちゃんと全部テストしよ

18.

JSTQB ✓テストの7原則 全数テストは不可能

19.

✓テストの7原則 全数テストは不可能  すべてのテストはすることは不可能である  下の例だと、すべてを組み合わせると、1250通り  機能は、もっとある 機能 ブラウザ O S種類 OS ver 画面サイズ ログイン Chrome iOS 14 4 ログアウト Safari Android 15 4.7 × 1250通り × 作成 Firefox 更新 削除 × × 16 5.5 Opera 8 5.8 LINE 9 6.1 19

20.

無理や…

21.

しかし、 巧妙なバグは必ずいる

22.

完璧な人間なんていない  ある組み合わせだけで、発生する忍者のような巧妙なバグはいる  これを見逃すと、社会的信用の失墜に繋がる 機能 ブラウザ O S種類 OS ver 画面サイズ ログイン Chrome iOS 14 4 ログアウト Safari Android 15 4.7 × × × × 作成 Firefox 16 5.5 更新 Opera 8 5.8 削除 LINE 9 6.1 22

23.

どうするの?

24.

そんなの見逃してください すまんな

25.

リリースしたい v s リリースできない  “早く”リリースができないと、社会的信用の失墜と同じコストが発生する  リリースしていない期間は、その期間で手に入る売り上げを逃す  お互いに、デッドロックがかかっている 早くリリースしないと いっぱいテストしないと 売り上げを逃がす 社会的信用を失墜する どっちが重いの? 25

26.

どっちがコスト大きいの?

27.

分からないよ

28.

けど、社会的信用の失墜を小さくできる

29.

どうやって?

30.

バグは、すぐ見つけて すぐ直す (リリース後でも)

31.

早く見つけて、早く直す  社会的信用の失墜にも段階がある  バグが影響するユーザー数が小さければ、コストは小さくできる  ユーザー数は、バグが発生している時間に比例する 31

32.

どうやってすぐ見つけるの?

33.

ALERTING

34.

ここからは後半戦  最初に出てきたバグフィルターに話を移す  話す:ALERTING(アラーティング)、MONITORING(モニタリング)  話さない:LOGGING(ロギング) 34

35.

ALERTING  ALERTING は、想定外のエラーを検知する  テスト工程で見逃してしまったバグ を見つけるフィルターの役割  エラー処理は適切に なんか危ないよ! Tryで 想定外のエラーを検知 C a t c h して Exceptionを t h r o w しな よ 35

36.

どうやってすぐ直すの?

37.

CI/CD

38.

自動化できるところは自動化  CI/CDは定常作業を自動化することが目的  特に、デプロイ(リリース)はヒトの手だとミスするので自動化最優先  すぐ見つけてすぐ直しても、リリースする時間が長いと意味がない 38

39.

一安心

40.

JSTQB ✓テストの7原則 バグゼロの落とし穴

41.

バグにも色々ある  バグを発生させないために、ユーザーの期待値を下げていないか 41

42.

どうすれば期待を満たせるの?

43.

アンケート ユーザーヒアリング

44.

なるほど、 ユーザーに直接聞けば良いよね

45.

が、それはダメ

46.

ユーザーは、困ったちゃん  ユーザー(人)は、自分の期待を正確には伝えられない  しかも、設計書の行間を読んでほしい、察してチャン 言わなくても ほんとは、こっちだったけど 分かるでしょ 伝わらなかった… 46

47.

どうやって期待を吸い上げるのさ? (察するのさ)

48.

MONITORING

49.

データは嘘をつかない  MONITORING は、ログからユーザーの行動データを蓄積する  データからは、”ユーザーがシステムをどのように使用しているか”を定量で分かる  データからは、ユーザーの察して…? が分かる A/Bテスト Metrics ユーザーの行動を蓄積 Events Logs Traces 49

50.

可観測性・ observability の1つ

51.

まとめ というなの宣伝

52.

J aSST’22 N iigataを2022年7月8日(金) にNINNOで開催  テーマは、”可観測性・ observability”  基調講演は”Autify CTO 松浦様”  Githubでエンジニアを経験されて、オライリーの“入門監視”の翻訳も手がけた  freeeのクラウド障害訓練の舞台裏を”人間性”を交えて発表  SREとQAの交わり方 52

53.

新人の方へ (JaSSTに参加して)ちょっぴり テストの世界を広げみませんか? 会社の方へ 後押ししてくれませんか?

54.

appendix  https://chojugiga.com/  https://www.irasutoya.com/  https://leanpub.com/testingindevops  https://system-kanji.com/posts/v-model  https://www.ipa.go.jp/  https://www.ipa.go.jp/files/000049404.pdf  https://jstqb.jp  https://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2018V31.J03.pdf  https://togetter.com/li/1771436  https://newrelic.com/jp/blog/how-to-relic/metrics-events-logs-and-traces  https://www.jasst.jp/symposium/jasst22niigata.html  https://www.oreilly.co.jp/books/9784873118642/  https://www.itmedia.co.jp/news/articles/2203/17/news038.html 54