Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ソフトウェアテスト・品質勉強会(投影資料)/Software test and quality study (Presentation)

nihonbuson
February 27, 2018

ソフトウェアテスト・品質勉強会(投影資料)/Software test and quality study (Presentation)

ソフトウェアテスト・品質勉強会の投影用資料です。

この資料を利用する際には、以下の記事も参考にしてください。

「ソフトウェアテスト・品質勉強会」での発表時に工夫したこと
http://nihonbuson.hatenadiary.jp/entry/2017/12/09/171946

当日に配布した資料はこちら
https://speakerdeck.com/nihonbuson/software-test-and-quality-study-handouts

右下に「P○」と書いてあるスライドは、配布資料のページ数と対応しています。

以下、スライド内記載のURL一覧

P13
http://www.publickey1.jp/blog/14/_2014.html

P15
http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.J02.pdf#page=14

P17,18
http://jasst.jp/symposium/jasst12tokyo/pdf/D4-1.pdf

P19
http://www.jaspic.org/event/2009/SPIJapan/keynote/SJ9keynote.pdf#page=31

P21
https://www.slideshare.net/takashiyamasaki378/ss-55384920

P25,27,28,29
http://jasst.jp/symposium/jasst13niigata/pdf/S2.pdf

P26
https://tech.drecom.co.jp/viewpoint-of-being-leader/

P33
https://note.openvista.jp/2011/redesigning-shinjuku-building-sign

P55
http://www.satisfice.com/blog/archives/856

P56
https://www.infoq.com/jp/news/2009/12/testing-or-checking

P57
http://www.jasst.jp/symposium/jasst17tokyo/pdf/A7.pdf#page=29

P59
https://www.thoughtworks.com/insights/blog/qa-dead

P62
http://jasst.jp/symposium/jasst16tokyo/pdf/D4.pdf#page=5

P64-68
https://techbeacon.com/how-tech-giants-test-software-theres-no-one-way-qa

P66
http://nihonbuson.hatenadiary.jp/entry/2017/03/19/000722

P70
https://www.amazon.co.jp/dp/4822282511
https://www.amazon.co.jp/dp/4817193603

P71
https://www.amazon.co.jp/dp/4873118166/

P72
https://www.amazon.co.jp/dp/4798124699

P77
http://wacate.jp/

P78
http://www.jasst.jp/

P79
https://twitter.com/YasuharuNishi/status/966875334762098688

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

P81
http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.J02.pdf#page=15

P82
https://sites.google.com/site/testautomationresearch/test_automation_principle

P83
http://nihonbuson.hatenadiary.jp/entry/2017/12/09/171946

nihonbuson

February 27, 2018
Tweet

More Decks by nihonbuson

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. はじめに
    P3

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    開発者はどんなことをすべきか

    View Slide

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

    View Slide

  11. 品質とは何か?

    View Slide

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

    View Slide

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

    View Slide

  14. テストの目的は何か?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  20. 何をテストすべきか
    P11

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  27. 視座
    P16

    View Slide

  28. 視野
    P17

    View Slide

  29. 視点
    P18

    View Slide

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

    View Slide

  31. 使用性の例

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  50. まとめ
    P28

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  73. おしまい…?

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  84. (本当に)おしまい

    View Slide