Slide 1

Slide 1 text

ソフトウェアテスト・品質勉強会 @nihonbuson P1

Slide 2

Slide 2 text

Agenda ● はじめに ● テストの立ち位置とは ● 何をテストすべきか ● どうやってテストケースを作るのか ● どうやってテストを実施すべきか ● おわりに P2

Slide 3

Slide 3 text

はじめに P3

Slide 4

Slide 4 text

おことわり ● 今日の発表は一個人のお話です。 ● 所属する会社や団体とは一切関係ありません。 ● ただの野菜が喋っているだけです。

Slide 5

Slide 5 text

アンケート ● 開発者? テストエンジニア? ● 勉強会が初めての人? ● テスト関係の勉強会が初めての人? ● JSTQBを知っている人? ● テスト関係の勉強会を運営している人? ● JSTQBの運営に何かしら関わっている人?

Slide 6

Slide 6 text

こんな経験していませんか? 開発はできたけど、 テストをどうやれば良いのか 分からないよ…。 リリースしてから トラブルがいっぱい 起きるなぁ…

Slide 7

Slide 7 text

こんな経験していませんか? 開発はできたけど、 テストをどうやれば良いのか 分からないよ…。 リリースしてから トラブルがいっぱい 起きるなぁ… 品質やテストのことを学べば 解決できるかもしれない!

Slide 8

Slide 8 text

今日話す内容は… QAチームはどうしていくべきか

Slide 9

Slide 9 text

今日話す内容は… QAチームはどうしていくべきか ↓ 開発者はどんなことをすべきか

Slide 10

Slide 10 text

いきなりですが質問です 品質とは何でしょうか? テストの目的は何でしょうか? P4

Slide 11

Slide 11 text

品質とは何か?

Slide 12

Slide 12 text

品質とは何か? 「本来備わっている特性の集まりが 要求事項を満たす程度。」 (ISO9000) 「品物またはサービスが、 使用目的を満たしているかどうかを 決定するための評価の対象となる 固有の性質・性能の全体」 (JIS Z 8101:1981, 1999年に廃止)

Slide 13

Slide 13 text

品質とは何か? 東京海上日動システムズ顧問 横塚 裕志氏 の講演内容より 【具体例2】 デジタルニュースの普及により、 ニュースは、確実な推敲・校正よりも、 「早く伝える」「修正」へ 【具体例1】 トラブルは0でも、 国民の5.8%にしか使われない住基ネットカード。 「ソフトウェアの品質(=存在意義)としては失格」 ※ソフトウェア品質シンポジウム 2014の基調講演にて http://www.publickey1.jp/blog/14/_2014.html P5

Slide 14

Slide 14 text

テストの目的は何か?

Slide 15

Slide 15 text

テストの目的は何か? 以下のような目的があります。 ● 欠陥の検出 ● 対象ソフトウェアの品質レベルが十分であることの確認 ● 意思決定のための情報の提示 ● 欠陥の作りこみの防止 JSTQBシラバスより http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.J02.pdf#page=14 開発前に行うこともある テストの7原則①テストは「欠陥がある」ことしか示せない P6

Slide 16

Slide 16 text

全体の開発サイクルの中での テストの立ち位置とは P7

Slide 17

Slide 17 text

Vモデル(一般的なSIの場合) 要求定義 要件定義 基本設計 詳細設計 コーディング 単体テスト 結合テスト システムテスト 受け入れテスト http://jasst.jp/symposium/jasst12tokyo/pdf/D4-1.pdf を元に作成 P8

Slide 18

Slide 18 text

Wモデル 要求定義 要件定義 基本設計 詳細設計 レビュー&受け入れ テストの設計 レビュー&システム テストの設計 レビュー& 結合テストの設計 レビュー& 単体テストの設計 受け入れテストの 実施 システムテストの 実施 結合テストの 実施 単体テストの 実施 コーディング デバッグ デバッグ デバッグ デバッグ P9 http://jasst.jp/symposium/jasst12tokyo/pdf/D4-1.pdf を元に作成

Slide 19

Slide 19 text

なぜ早期のテスト・レビューをするのか http://www.jaspic.org/event/2009/SPIJapan/keynote/SJ9keynote.pdf#page=31 P10

Slide 20

Slide 20 text

何をテストすべきか P11

Slide 21

Slide 21 text

次の仕様に対してどんなテストをすれば良いか。 ● パスワードは4文字以上12文字以下の 英数字のみを許容する ● パスワードを3分以内に4回以上間違って入力すると アカウントを5分間ロックする http://www.slideshare.net/takashiyamasaki378/ss-55384920 例題 P12

Slide 22

Slide 22 text

パスワードは4文字以上12文字以下の 英数字のみを許容する パスワードを3分以内に4回以上間違って入力すると アカウントを5分間 ロックする 文字列長 文字種 誤期間 入力管理 誤入力 回数管理 ロック保持期間 状態遷移 P14

Slide 23

Slide 23 text

パスワードは4文字以上12文字以下の 英数字のみを許容する パスワードを3分以内に4回以上間違って入力すると アカウントを5分間 ロックする 文字列長 文字種 誤期間 入力管理 誤入力 回数管理 ロック保持期間 状態遷移 許容しないとどうなる? (ボタン制御orエラー画面) 5回目の入力はどうなる? P14

Slide 24

Slide 24 text

パスワードは4文字以上12文字以下の 英数字のみを許容する パスワードを3分以内に4回以上間違って入力すると アカウントを5分間ロックする もしもドキュメントが無かったら… どのようなテストを行えば良いか分からなくなります

Slide 25

Slide 25 text

テストすべき内容(テスト観点)の見つけ方 http://jasst.jp/symposium/jasst13niigata/pdf/S2.pdf P15

Slide 26

Slide 26 text

視座・視野・視点のイメージ https://tech.drecom.co.jp/viewpoint-of-being-leader/

Slide 27

Slide 27 text

視座 P16

Slide 28

Slide 28 text

視野 P17

Slide 29

Slide 29 text

視点 P18

Slide 30

Slide 30 text

(参考)品質特性 http://www.atmarkit.co.jp/ait/articles/0905/13/news124_3.html P19

Slide 31

Slide 31 text

使用性の例

Slide 32

Slide 32 text

使用性の例 面白いデザインだ! 採用! デザイナー どこに何があるのか 分からない! 利用者

Slide 33

Slide 33 text

使用性の例 並び変えるだけでも分かりやすくなる https://note.openvista.jp/2011/redesigning-shinjuku-building-sign

Slide 34

Slide 34 text

どうやって テストケースを作るのか P20

Slide 35

Slide 35 text

テストケースはいくつ? パスワードは4文字以上12文字以下 1文字、2文字、3文字…100文字 膨大な数の テストケース テストの7原則②全数テストは不可能 P21

Slide 36

Slide 36 text

テストケース作成者「○○○のテストをします!」 司会者「ほぉ~、それはどうしてだい?」 テストケース作成者「【理由を一言】」 P22 テストケース作成の心得

Slide 37

Slide 37 text

テスト設計技法 ~境界値分析~ テストの7原則④欠陥の偏在 12 4 有効 無効 無効 3 13 パスワードは4文字以上12文字以下 P23

Slide 38

Slide 38 text

テスト設計技法 ~境界値分析~ テストの7原則④欠陥の偏在 12 4 有効 無効 無効 3 13 パスワードは4文字以上12文字以下 P23 0

Slide 39

Slide 39 text

テスト設計技法 ストップウォッチの例 スタート/ストップ リセット https://goo.gl/iAvVm8

Slide 40

Slide 40 text

テスト設計技法 ~状態遷移テスト~ 待機中 計測中 一時停止中 スタート/ストップ リセット スタート/ ストップ スタート/ ストップ P24 待機中 計測中 一時停止中

Slide 41

Slide 41 text

テスト設計技法 ~状態遷移テスト~ 待機中 計測中 一時停止中 スタート/ストップ リセット スタート/ ストップ スタート/ ストップ P24 待機中 計測中 一時停止中 計測中

Slide 42

Slide 42 text

テスト設計技法 ~状態遷移テスト~ P24 待機中 計測中 一時停止中 スタート/ストップ リセット スタート/ ストップ スタート/ ストップ

Slide 43

Slide 43 text

テスト設計技法 ~状態遷移テスト~ 待機中 計測中 一時停止中 スタート/ストップ リセット リセット リセット スタート/ ストップ スタート/ ストップ P24

Slide 44

Slide 44 text

テスト設計技法 ~状態遷移テスト~ 計測中にリセットボタンを押したら 計測中状態から変わらないなんて、 問題文(仕様)に書いてない!

Slide 45

Slide 45 text

テスト設計技法 ~状態遷移テスト~ 今回は私なりに答えを定めました。 実務では、動作が不明な時点で開発者に確認すべき。 仕様に書いていない→抜け漏れの可能性大→バグの可能性大

Slide 46

Slide 46 text

どうやって テストを実施するのか P25

Slide 47

Slide 47 text

テストは実施して終わりではない パスワードを「123」にして ログインしようとしたら、 ログインできなかった P26

Slide 48

Slide 48 text

テストは実施して終わりではない パスワードを「123」にして ログインしようとしたら、 ログインできなかった 何を確認したくて 「123」にしたのか? 「ログインできない」とは どのような状態なのか? 期待通りの 結果なのか? P26

Slide 49

Slide 49 text

テストレポート例 テスト目的 再現手順 期待値 OK or NG 実際の結果 パスワードが 3桁以下の時 ログイン失敗 ページに 遷移すること パスワード欄に 「123」 と入力する。 ログインボタンを 押す。 ログイン 失敗画面に 遷移する NG ログイン画面 から遷移せず、 「ログイン失敗」と 表示される 他の人や1年後の自分が見ても分かるように書く P27

Slide 50

Slide 50 text

まとめ P28

Slide 51

Slide 51 text

まとめ ● テストの目的は欠陥の検出以外に欠陥の未然防止がある ● テストには開発開始前に行う活動もある ● 早期にテストやレビューをすることでコストを削減できる ● テストすべき内容には、仕様書から見つけられる内容以外に も、過去の経験から得られることや品質特性などがある ● 全てを闇雲にテストすると膨大なケース数と時間が発生する が、その数を削減できる手法がある ● テストを実施したときは、他の人が分かるように結果を書く P29

Slide 52

Slide 52 text

おまけ (講座中にあった質問)

Slide 53

Slide 53 text

QAチームは何をするの? これだけテストが充実できればQAチームは 必要ないのでは?

Slide 54

Slide 54 text

QAチームは何をするの? これだけテストが充実できればQAチームは 必要ないのでは? ⇒まだまだ必要なことが多いです。 本来、テストエンジニアはCheckingではなく Testingを行いたい

Slide 55

Slide 55 text

QAチームは何をするの? http://www.satisfice.com/blog/archives/856

Slide 56

Slide 56 text

QAチームは何をするの? https://www.infoq.com/jp/news/2009/12/testing-or-checking

Slide 57

Slide 57 text

QAチームは何をするの? http://www.jasst.jp/symposium/jasst17tokyo/pdf/A7.pdf#page=29

Slide 58

Slide 58 text

(ブラウザ)自動テストについて 何でも自動テストにすれば良いんじゃない? (テストの工数が0になるのでは?)

Slide 59

Slide 59 text

(ブラウザ)自動テストについて 何でも自動テストにすれば良いんじゃない? (テストの工数が0になるのでは?) https://www.thoughtworks.com/insights/blog/qa-dead 自動テストは 既存のテスト の自動化

Slide 60

Slide 60 text

(ブラウザ)自動テストについて 何でも自動テストにすれば良いんじゃない? (テストの工数が0になるのでは?) 1. 自動テストは手動テストを自動化するだけであり、  新たな不具合を発見できない  (テスト自動化の8原則③) 2. 自動テストはテスト結果分析というコストが発生する  (テスト自動化の8原則⑧) なので「自動テストが出来れば工数が0になる」 ということはありません。

Slide 61

Slide 61 text

(ブラウザ)自動テストについて 自動テストはどんな内容が適しているの?

Slide 62

Slide 62 text

(ブラウザ)自動テストについて 自動テストはどんな内容が適しているの? http://jasst.jp/symposium/jasst16tokyo/pdf/D4.pdf#page=5

Slide 63

Slide 63 text

他社のテスト事例を知りたい

Slide 64

Slide 64 text

他社のテスト事例を知りたい https://techbeacon.com/how-tech-giants-test-software-theres-no-one-way-qa

Slide 65

Slide 65 text

他社のテスト事例1 Google 4段階のテストプロセスを採用している。 1. 専用のテスター(Googleの従業員)によるテスト 2. クラウドテストプラットフォームでのテスト 3. Google従業員に日常業務で使ってもらう (Dogfooding) 4. Google製品のエンドユーザーの  小さなグループに製品を使ってもらう(βテスト)

Slide 66

Slide 66 text

他社のテスト事例1 Google http://nihonbuson.hatenadiary.jp/entry/2017/03/19/000722 「ソフトウェアエンジニアリングカリキュラムの中での 品質とテストについて」 (         パネルディスカッション)より

Slide 67

Slide 67 text

他社のテスト事例2 Facebook 専用のテスターを一切使用しない。 代わりに、開発者が自分自身でテストする。 カナリアリリースを採用している。 先行ユーザーの使用状況によって、 対象ユーザーを増やすか、 完全にその機能を破棄するか選択する。

Slide 68

Slide 68 text

他社のテスト事例3 Amazon 簡単にdeployでき、 簡単にロールバックができるため、 広範囲のテストを必要としない。 収益が減少していたり、 不具合によって顧客が遠ざかると分かった時に、 テストの努力を増やす。

Slide 69

Slide 69 text

テストの勉強方法を知りたい どうやってテストの勉強を すれば良いの? テストの勉強ができる オススメの書籍が知りたい!

Slide 70

Slide 70 text

テストの勉強でオススメの書籍 (入門者向け) https://www.amazon.co.jp/dp/4822282511 https://www.amazon.co.jp/dp/4817193603

Slide 71

Slide 71 text

テストの勉強でオススメの書籍 (自動テスト、入門者向け) https://www.amazon.co.jp/dp/4873118166/ 画面上の自動テストの開発に関わらない人も、 第1章と第8章を読むべき

Slide 72

Slide 72 text

テストの勉強でオススメの書籍 (中級者向け) https://www.amazon.co.jp/dp/4798124699 テストとはどうあるべきかが分かる本 資格勉強用の本だが、資格を取らなくても勉強になる

Slide 73

Slide 73 text

おしまい…?

Slide 74

Slide 74 text

この講座で 伝えたかったこと (裏の目的)

Slide 75

Slide 75 text

社外イベントからの引用が多い

Slide 76

Slide 76 text

社外イベントからの引用が多い

Slide 77

Slide 77 text

テストの勉強は「習うより慣れよ」 ● 1泊2日のワークショップ形式のイベント ● 半年に1度開催(6月と12月)。 ● 10周年を迎えました! ● 新卒1年目の開発・QAも多く参加 ● 参加費は22000円 ● 35歳以上は26000円 ● ほとんどが宿泊費・経費で利益は無し http://wacate.jp

Slide 78

Slide 78 text

最新のテスト事情を知るには JaSSTがオススメ ● 日本最大級のテストのイベント ● 年に8回、各地で実施 ● 東京では3月7日と8日に実施(2018年の場合) ● JaSST'18 Tokyoの基調講演は GoogleのJohn Micco 氏! http://www.jasst.jp/

Slide 79

Slide 79 text

明日も面白そうなイベントが… https://twitter.com/YasuharuNishi/status/966875334762098688

Slide 80

Slide 80 text

http://www.jasst.jp/symposium/jasst17tohoku/pdf/S1.pdf#page=56

Slide 81

Slide 81 text

参考資料1 テストの7原則 ①テストは「欠陥がある」ことしか示せない ②全数テストは不可能 ③初期テスト ④欠陥の偏在 ⑤殺虫剤のパラドックス ⑥テストは条件次第 ⑦「バグゼロ」の落とし穴 http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.J02.pdf#page=15 P31

Slide 82

Slide 82 text

参考資料2 テスト自動化の8原則 ①手動テストはなくならない ②手動で行って効果の無いテストを自動化しても無駄である ③自動テストは書いたことしかテストしない ④テスト自動化の効用はコスト削減だけではない ⑤自動テストシステムの開発は継続的に行うものである ⑥自動化検討はプロジェクト初期から ⑦自動テストで新種のバグが見つかることは稀である ⑧テスト結果分析という新たなタスクが生まれる https://sites.google.com/site/testautomationresearch/test_automation_principle P32

Slide 83

Slide 83 text

参考資料3 この発表で工夫したこと ● 発表の納得感を上げる ● 伝えたいことを印象付ける といった発表時に気を付けたことを書きました。 「ソフトウェアテスト・品質勉強会」での発表時に工夫したこと http://nihonbuson.hatenadiary.jp/entry/2017/12/09/171946

Slide 84

Slide 84 text

(本当に)おしまい