Slide 1

Slide 1 text

わからない?をわかる!に 変えよう!- QAエンジニアが実践している 基本的な考え方と方法 2023.11.02 JaSST’23 Kyushu

Slide 2

Slide 2 text

Hello! I am Rina Fukuda QA Engineer at Mercari, Inc. Fukuoka @____rina____ 2

Slide 3

Slide 3 text

得意/好き ● 開発チームに入ってテストする人 ● 手動>自動 ● プロセス化、トレース:JIRA好き ● お絵かき(絵は下手):すぐJamboardだす ● スクラムマスター 3

Slide 4

Slide 4 text

今日の ゴール. 4

Slide 5

Slide 5 text

“ 🍻ちょっとだけテストがわかったかも 明日からの開発で使ってみよう 5

Slide 6

Slide 6 text

🤝講演の楽しみ方 テストが初めて! 未経験で本格的な開発をしたことがない! 使っている言葉(用語)がわからない! あとでISTQB Glossaryを見てみてね JSTQB Foundation Levelのこともたくさんでてくる よ 業界も規模も違う  共通点を探そう! 6 📙1.3 テストの原則

Slide 7

Slide 7 text

🤝講演の楽しみ方 エクササイズ(演習)を用意しているよ! 紙とペン、または線と文字が書けるツールを用意して ね 楽しもう🍻 #jasstkyushu でポストしてね 7

Slide 8

Slide 8 text

Contents 1 QA・テストエンジニアの姿 ● すごいテストをするって? ● テストのスキル 2 仕事に対するマインド的な話 ● 観点導出 8 3 テストの技術的な話 ● テストパターンの考え方 ● テストの7原則 ● テスト技法 ● コラボレーションベース

Slide 9

Slide 9 text

Exercise 📃と🖊を用意してね

Slide 10

Slide 10 text

“ 🤔テストが上手な QAエンジニア・テストエンジニア? 周りにいるすごいテストをする人ってどう いう思考・行動をする人? 1枚目の紙に書いてみよう 10

Slide 11

Slide 11 text

11 どんなドメイ ンでも テストできる 関係者を ハッと させる インシデ ントを出さ ない 色んな立場 の人の合意 を得ることが できる 修正 してもら える 自動化 できる テストが 早い 思いつかな いテストがで きる CI/CDで安 定してテスト 実行できる 考慮漏れ ≒実装漏 れを指摘 できる スマート にバグを 見つける 行動に 無駄がな い

Slide 12

Slide 12 text

🤝講演の楽しみ方 今書いたのは、あなたに持っていないもの?! 講演中にヒントに使えそう!と思ったら 丸をつけたり、書き込んでみよう 12

Slide 13

Slide 13 text

13 どんなドメイ ンでも テストできる 関係者を ハッと させる インシデ ントを出さ ない 色んな立場 の人の合意 を得ることが できる 修正 してもら える 自動化 できる テストが 早い 思いつかな いテストがで きる CI/CDで安 定してテスト 実行できる 考慮漏れ ≒実装漏 れを指摘 できる スマート にバグを 見つける 行動に 無駄がな い テスト実行が早い 開発者が納得する指 摘・提案ができる

Slide 14

Slide 14 text

14 テストに必要なスキルって何だろう?

Slide 15

Slide 15 text

わたしが思う テストの仕事で大 事なこと お客さまのためにいいものをつくりたい つくっているみんなの役に立ちたい 期限に間に合わせたい みんなで納得のいくレベルにしたい Hotfix絶対出したくない 15

Slide 16

Slide 16 text

テストのスキル 徹底さ、慎重さ、細部へのこだわり、理路整然さ コミュニケーションスキル、積極的な傾聴、チー ムプレーヤーとなる 分析的思考、批判的思考、創造性 技術的な知識 ドメイン知識 16 📙1.5.1 テストに必要な汎用的スキル

Slide 17

Slide 17 text

Exercise 📃と付箋と🖊を用意してね

Slide 18

Slide 18 text

丸を描いて線を引いてください 18

Slide 19

Slide 19 text

Webサイト 👪 参加者として Good👍 Motto💪 円に書いて ください 19

Slide 20

Slide 20 text

線を引いてください 20 Webサイト Good👍 Motto💪

Slide 21

Slide 21 text

丸を描いて線を引いてください 21 󰔡お客さま 時間がわかりやすい 会場の雰囲気がわかる AIチャットbotがほしい

Slide 22

Slide 22 text

Webサイト サイト制作・運営会 社の人に なってみたらどうだろ う🤔 22

Slide 23

Slide 23 text

それぞれの役割になりきって、どんなサイトにしたいか書いてみよう 23 👴 社長・営業・広報・企画・運営 󰠤 デザイナー・CS エンジニア 󰠼 テストエンジニア 󰭈 https://jasst.jp/symposium/jasst15tohoku/pdf/S1.pdf 󰔡お客さま 時間がわかりやすい 会場の雰囲気がわかる AIチャットbotがほしい

Slide 24

Slide 24 text

それぞれの役割になりきって、どんなサイトにしたいか書いてみよう 24 https://jasst.jp/symposium/jasst15tohoku/pdf/S1.pdf 期待通り動作するか 使いやすいか 想定外の動きがないか  参加者が迷わないか  イベントの様子が伝わるか  簡単にアクセスできるか 技術スタック 開発しやすさ 汎用しやすさ 売上・参加者数 アクセス数 業界へのインパクト 👴 社長・営業・広報・企画・運営 󰠤 デザイナー・CS エンジニア 󰠼 テストエンジニア 󰭈 󰔡お客さま 時間がわかりやすい 会場の雰囲気がわかる AIチャットbotがほしい

Slide 25

Slide 25 text

それぞれの役割になりきって、どんなサイトにしたいか書いてみよう 25 https://jasst.jp/symposium/jasst15tohoku/pdf/S1.pdf 期待通り動作するか 使いやすいか 想定外の動きがないか  参加者が迷わないか  イベントの様子が伝わるか  簡単にアクセスできるか 技術スタック 開発しやすさ 汎用しやすさ 売上・参加者数 アクセス数 業界へのインパクト 👴 社長・営業・広報・企画・運営 󰠤 デザイナー・CS エンジニア 󰠼 テストエンジニア 󰭈 󰔡お客さま 時間がわかりやすい 会場の雰囲気がわかる AIチャットbotがほしい

Slide 26

Slide 26 text

それぞれの役割になりきって、どんなサイトにしたいか書いてみよう 26 https://jasst.jp/symposium/jasst15tohoku/pdf/S1.pdf 期待通り動作するか 使いやすいか 想定外の動きがないか  参加者が迷わないか  イベントの様子が伝わるか  簡単にアクセスできるか 技術スタック 開発しやすさ 汎用しやすさ 売上・参加者数 アクセス数 業界へのインパクト 👴 社長・営業・広報・企画・運営 󰠤 デザイナー・CS エンジニア 󰠼 テストエンジニア 󰭈 󰔡お客さま 時間がわかりやすい 会場の雰囲気がわかる AIチャットbotがほしい 󰭈 󰭈

Slide 27

Slide 27 text

27 どんなドメイ ンでも テストできる 関係者を ハッと させる インシデ ントを出さ ない 色んな立場 の人の合意 を得ることが できる 修正 してもら える 自動化 できる テストが 早い 思いつかな いテストがで きる CI/CDで安 定してテスト 実行できる 考慮漏れ ≒実装漏 れを指摘 できる スマート にバグを 見つける 行動に 無駄がな い テスト実行が早い 開発者が納得する指 摘・提案ができる

Slide 28

Slide 28 text

技術的な話 Exercise 📃と🖊を用意してね

Slide 29

Slide 29 text

参加料について 2,500円 未成年無料!学生無料! ご 招待券お持ちの方無料! ⚠学生の方は、学生証のアップロードが必 要です。 ⚠招待者の方は、招待券のアップロードが 必要です。 事前の生年月日の登録により、未成年者は 無料となります。 どんなテストを しますか?

Slide 30

Slide 30 text

どんなテストをしますか? 30 参加料計算 種類を選択し、ボタンをクリックすると金額が表示される 種類は4種類:一般、未成年、学生、招待者 一般:2,500円 未成年(17歳まで):無料 (会員登録時に登録した生年月日で判定) 学生:無料(学生証のアップロードが必要) 招待:無料(招待券のアップロードが必要) 参加料を表示 一般(2,500円) 未成年(0円) 学生(0円) 招待者(0円) 学生証をアップロードする 招待券をアップロードする お名前:福岡太郎さん 生年月日:2000年11月1日 福岡さんの参加料は   円です。

Slide 31

Slide 31 text

参加料計算 31 表示が正しいこと ● 名前 ● 生年月日 ● ラベル(一般、学生、招待者) 選択できること ● 一般、学生、招待者 学生証がアップロードでき ること ● 学生証の画像?がアップロードできる 招待券がアップロードでき ること ● 招待券の画像?がアップロードできる 参加料が計算できること ● 計算結果が表示できる? ● 一般、学生、未成年、招待者 複数ブラウザ ● Chrome , Safari, iOS-Safari ・・・・

Slide 32

Slide 32 text

どんなテストをしますか? 32 参加料計算 種類を入力すると、金額が表示される 種類は4種類:一般、未成年、学生、招待 一般:2,500円 学生:無料(学生証のアップロードが必要) 未成年(17歳まで):無料 (会員登録時に登録した生年月日で判定) 招待:無料(招待券のアップロードが必要) 何日に17歳なら 未成年なのか?

Slide 33

Slide 33 text

33 未成年とは? 未成年(17歳まで):無料 いつに未成年? 参加申込日? 開催日? 2023年11月2日まで17歳? 学年? 2024年4月1日? 日本以外の学校は?

Slide 34

Slide 34 text

● 未成年=自由に使えるお金が比較的少ない ● そのための救済策? ● 未来の技術者への投資? ● 彼らの職業やキャリアの選択肢を広げるための投 資? ○ できるだけ多くの人を未成年としたいかも なぜ 未成年を無料 にしたいの? 34

Slide 35

Slide 35 text

2005/4/10 2005/11/2 2005/11/3 10/20 申込日に成人? 成人 未成年 未成年 11/2開催日に成人? 成人 成人 未成年 同じ学年に未成年はいる? いる いる いる 未成年とは 10/20 申込 11/2 開催 35

Slide 36

Slide 36 text

● 未成年=自由に使えるお金が比較的少ない ● そのための救済策? ○ できるだけ多くの人を未成年としたいかも  👉できるだけ遅い日=学年の最終日 ● 一番説明しやすそう  👉開催日時の年齢 ● システムとして作りやすそう  👉申込日時の年齢 その他の理由? 未成年とは? 36

Slide 37

Slide 37 text

2005/4/10 2005/11/2 2005/11/3 同じ学年に未成年はいる? いる いる いる 未成年とは 37 学年の最終日 https://www.mext.go.jp/a_menu/shotou/shugaku/detail/1422233.htm = 翌年の4月1日までに18歳になる人を未成年とする

Slide 38

Slide 38 text

✔テストケースがたくさん ✔テストケースは漏れる ✔仕様も不備があったりする ✔作り方によってもテストケースがかわる ✔テストの設計によってもテストケースがか わる 38 あとで詳しく見ていくよ

Slide 39

Slide 39 text

39 どんなドメイ ンでも テストできる 関係者を ハッと させる インシデ ントを出さ ない 色んな立場 の人の合意 を得ることが できる 修正 してもら える 自動化 できる テストが 早い 思いつかな いテストがで きる CI/CDで安 定してテスト 実行できる 考慮漏れ ≒実装漏 れを指摘 できる スマート にバグを 見つける 行動に 無駄がな い テスト実行が早い 開発者が納得する指 摘・提案ができる

Slide 40

Slide 40 text

☕こんなことありませんか? 40

Slide 41

Slide 41 text

☕こんなことありませんか? 41 バグが無いようにし て

Slide 42

Slide 42 text

テストは欠陥が あることは示せる が、欠陥がないこ とは示せない テストをしたことに対しての合否 判定はできるが、それはシステ ムに対してバグがゼロになった ことにはならない 42 📙1.3 テストの原則 バグが無い ようにして

Slide 43

Slide 43 text

☕こんなことありませんか? 43 全部テストして

Slide 44

Slide 44 text

全数テストは 不可能 組み合わせを考え出すと 全件は現実的ではない 44 📙1.3 テストの原則 全部テスト して

Slide 45

Slide 45 text

☕こんなことありませんか? 45 がんばって テストして

Slide 46

Slide 46 text

「欠陥ゼロ」の 落とし穴 バグゼロを目指すあまり にお客さまが欲しいものを 提供できない 46 📙1.3 テストの原則 がんばって テストして

Slide 47

Slide 47 text

それぞれの役割になりきって、どんなサイトにしたいか書いてみよう 47 https://jasst.jp/symposium/jasst15tohoku/pdf/S1.pdf 期待通り動作するか 使いやすいか 想定外の動きがないか  参加者が迷わないか  イベントの様子が伝わるか  簡単にアクセスできるか 技術スタック 開発しやすさ 汎用しやすさ 売上・参加者数 アクセス数 業界へのインパクト 👴 社長・営業・広報・企画・運営 󰠤 デザイナー・CS エンジニア 󰠼 テストエンジニア 󰭈 󰔡お客さま 時間がわかりやすい 会場の雰囲気がわかる AIチャットbotがほしい

Slide 48

Slide 48 text

☕こんなことありませんか? 48 全部網羅した チェックリストを 作ろう!

Slide 49

Slide 49 text

テストは コンテキスト次第 粒度や性質の違うテスト に対して 同じも のが使えるとは限らない 49 📙1.3 テストの原則 全部網羅した チェックリストを 作ろう!

Slide 50

Slide 50 text

1.テストは欠陥があることは示せるが、欠陥がないことは示せない 2.全数テストは不可能 3.早期テストで時間とコストを節約 4.欠陥の偏在 5.テストの弱化 6.テストはコンテキスト次第 7.「欠陥ゼロ」の落とし穴 テストの原則 50 󰭈 工夫が必要 📙1.3 テストの原則

Slide 51

Slide 51 text

1.テストは欠陥があることは示せるが、欠陥がないことは示せない 2.全数テストは不可能 3.早期テストで時間とコストを節約 4.欠陥の偏在 5.テストの弱化 6.テストはコンテキスト次第 7.「欠陥ゼロ」の落とし穴 テストの原則 51 📙1.3 テストの原則 󰭈 工夫が必要

Slide 52

Slide 52 text

52 どんなドメイ ンでも テストできる 関係者を ハッと させる インシデ ントを出さ ない 色んな立場 の人の合意 を得ることが できる 修正 してもら える 自動化 できる テストが 早い 思いつかな いテストがで きる CI/CDで安 定してテスト 実行できる 考慮漏れ ≒実装漏 れを指摘 できる スマート にバグを 見つける 行動に 無駄がな い テスト実行が早い 開発者が納得する指 摘・提案ができる

Slide 53

Slide 53 text

テストパターンの 考え方 テスト技法を 学ぼう

Slide 54

Slide 54 text

参加料計算 54 表示が正しいこと ● 名前 ● 生年月日 ● ラベル(一般、学生、招待者) 選択できること ● 一般、学生、招待者 学生証がアップロードでき ること ● 学生証の画像?がアップロードできる 招待券がアップロードでき ること ● 招待券の画像?がアップロードできる 参加料が計算できること ● 計算結果が表示できる? ● 一般、学生、未成年、招待者 複数ブラウザ ● Chrome , Safari, iOS-Safari ・・・・

Slide 55

Slide 55 text

参加料計算 55 表示が正しいこと ● 名前 ● 生年月日 ● ラベル(一般、学生、招待者) 選択できること ● 一般、学生、招待者 学生証がアップロードでき ること ● 学生証の画像?がアップロードできる 招待券がアップロードでき ること ● 招待券の画像?がアップロードできる 参加料が計算できること ● 計算結果が表示できる? ● 一般、学生、未成年、招待者 複数ブラウザ ● Chrome , Safari, iOS-Safari ・・・・ デフォルトの表示系 動作系 マルチブラウザ系

Slide 56

Slide 56 text

参加料計算 ● デフォルトの表示系 ○ 表示が正しいこと ● 動作系 ○ 通信が発生しない系 ■ 選択ができること ○ DB登録が発生しない(かもしれない)系 ■ アップロードが正しいこと ○ 計算・ロジック・登録ある系 ■ 金額のパターン ■ 表示結果が正しいこと ● 複数ブラウザOS系 ○ 期待ブラウザやOSのパターン 56

Slide 57

Slide 57 text

どんなテストをしますか? 57 参加料計算 種類を選択し、ボタンをクリックすると金額が表示される 種類は4種類:一般、未成年、学生、招待者 一般:2,500円 未成年(17歳まで):無料 (会員登録時に登録した生年月日で判定) 学生:無料(学生証のアップロードが必要) 招待:無料(招待券のアップロードが必要) 参加料を表示 一般(2,500円) 未成年(0円) 学生(0円) 招待者(0円) 学生証をアップロードする 招待券をアップロードする お名前:福岡太郎さん 生年月日:2000年11月1日 福岡さんの参加料は   円です。

Slide 58

Slide 58 text

種類に 注目してみる 一般 2,500円 招待  0円 学生 0円 58 未成年  0円

Slide 59

Slide 59 text

金額に 注目してみる 一般 2,500円 招待  0円 学生 0円 59 未成年  0円

Slide 60

Slide 60 text

同値分割 有料 2,500円 無料 0円 60 📙4.2.1 同値分割法

Slide 61

Slide 61 text

種類の 組み合わせに 注目してみる 1 2 3 4 5 6 7 8 未成年 Y Y Y Y N N N N 学生 Y Y N N Y Y N N 招待券 Y N Y N Y N Y N 金額 0円 0円 0円 0円 0円 0円 0円 2,50 0円 61 📙4.2.3 デシジョンテーブルテスト

Slide 62

Slide 62 text

デシジョンテーブ ル 1 2 3 4 未成年 Y N N N 学生 - Y N N 招待券 - - Y N 金額 0円 0円 0円 2,500円 62 📙4.2.3 デシジョンテーブルテスト

Slide 63

Slide 63 text

未成年かどうか 境界値分析 63  4月2日 4月1日 未成年 成年 翌年の4月1日までに18歳になる人を未成年とする 🔽 その年の4月1日時点で17歳以下の人を未成年とする 📙4.2.2 境界値分析

Slide 64

Slide 64 text

ブラックボックス(仕様ベース)テスト技法 ● 同値分割法 ● 境界値分析 ● デシジョンテーブルテスト ● 状態遷移テスト テスト技法 64 📙4.2 ブラックボックステスト技法

Slide 65

Slide 65 text

テスト活動 65 1 3 5 6 4 2 テスト計画 テスト設計 テスト実行 テスト分析 テスト実装 テスト レポート 📙1.4.1 テスト活動とタスク

Slide 66

Slide 66 text

ブラックボックステスト技法(仕様ベース技法とも呼ばれる) ホワイトボックステスト技法(構造ベース技法とも呼ばれる) 経験ベースのテスト技法 また、別のテストアプローチとして コラボレーションベースのテストアプローチ がある テスト技法 66 📙4.1 テスト技法の概要

Slide 67

Slide 67 text

コラボレーション ベースの テストアプローチ

Slide 68

Slide 68 text

ユーザーストーリーの共同執筆 受け入れ基準 受け入れテスト駆動開発(ATDD) コラボレーション ベースのテストア プローチ 68 📙4.5 コラボレーションベースのテストアプローチ

Slide 69

Slide 69 text

ユーザー ストーリー 未成年者は参加申込時に参加費無料 で登録できる。将来の仕事の選択肢に なるためだ 69 [役割]として[達成するゴール]を達成した い、それは[役割 のための結果としてのビ ジネス価値]を実現するためだ

Slide 70

Slide 70 text

ユーザーストーリー 70 参加料を表示 一般(2,500円) 未成年(0円) 学生(0円) 招待者(0円) 学生証をアップロードする 招待券をアップロードする お名前:福岡太郎さん 生年月日:2000年11月1日 福岡さんの参加料は   円です。 参加料を表示 一般 (2,500円) 学生(0円) 招待者(0円) 学生証をアップロー ドする 招待券をアップロー ドする お名前:福岡太郎さん 福岡さんの参加料は   円です。 未成年者は参加申込時に参加費無料で登録できる。 将来の仕事の選択肢になるためだ

Slide 71

Slide 71 text

受け入れ基準 受け入れ条件 ● 生年月日が表示できる ● 未成年を選択できる ● 2005/4/2生まれの人が0円で参加表示できる ● 2005/4/1生まれの人が無料登録できない(エ ラーメッセージが表示される) ● 他の選択(一般、学生、招待者)が参加表示でき る 71 未成年者は参加申込時に参加費無料で登録できる。 将来の仕事の選択肢になるためだ 参加料を表示 一般(2,500円) 未成年(0円) 学生(0円) 招待者(0円) 学生証をアップロードする 招待券をアップロードする お名前:福岡太郎さん 生年月日:2000年11月1日 福岡さんの参加料は   円です。

Slide 72

Slide 72 text

72 どんなドメイ ンでも テストできる 関係者を ハッと させる インシデ ントを出さ ない 色んな立場 の人の合意 を得ることが できる 修正 してもら える 自動化 できる テストが 早い 思いつかな いテストがで きる CI/CDで安 定してテスト 実行できる 考慮漏れ ≒実装漏 れを指摘 できる スマート にバグを 見つける 行動に 無駄がな い テスト実行が早い 開発者が納得する指 摘・提案ができる

Slide 73

Slide 73 text

“ 🍻ちょっとだけテストがわかった? 明日からの開発で使えそう? 73

Slide 74

Slide 74 text

Enjoy! Any questions? You can find me at @____rina____ 74 参考文献 ● 現在のレビューに必要な次の一手を把握 しよう!レビュー実践ウォークスルー / 安 達賢二 (https://jasst.jp/symposium/jasst15tohoku /pdf/S1.pdf) ● ISTQBテスト技術者資格制度 Foundation Level シラバス 日本語版 Version 2023V4.0.J01(https://jstqb.jp/dl/JSTQB-S yllabusFoundation_VersionV40.J01.pdf) ● 実践アジャイルテスト Credits Presentation template by SlidesCarnival(http://www.slidescarnival.com/) Photographs by Unsplash(http://unsplash.com/)

Slide 75

Slide 75 text

extra 時間があまってしまったら 75

Slide 76

Slide 76 text

76 https://engineering.mercari.com/blog/entry/20230617-7f9d4c6486/

Slide 77

Slide 77 text

77 技術でテスト活動 を加速させる取り 組み エンジニアリング ● Web開発 ● モノレポ ● ブランチ戦略 ● Pull Request環境で のテスト実行 ● Feature toggle ● テスト自動化 ● Cypress のUI E2E ● APIテスト プロセス ● スクラムinQA ● QAのミッションとポリ シーの作成 ● 全社おさわりかい ● UI E2Eのテスト管理 ● QAの未来を考える 会 ●