はじめての
ソフトウェアテスト
2019.7.26
@____rina____
Software testing to learn
for the first time
Who is?
Rina Fukuda
2
Mercari,Inc. at Fukuoka QA Engineer
*Chairman:
Japan Symposium on Software Testing
(JaSST) Kyushu
*Board member:
Association of Software Test Engineering
(NPO ASTER):JaSST Responsible director
*Technical commissioner:
Japan Software Testing Qualifications Board (JSTQB)
*Founder:
Kyushu Software Testing Study Group
*Blog : テストする人。
@ ____rina____
 品質に関するおはなし
 QCDについて
 ワーク1:立ち位置からの観点導出
 品質モデルの話:狩野モデル
 ソフトウェア品質モデルのおはなし
 ソフトウェアテストのおはなし
 ワーク2:マイヤーズの三角形問題
 ソフトウェアテストのお勉強的なおはなし
アジェンダ
3
品質に関するおはなし
4
 品質に関するおはなし
 QCDについて
 ワーク1:立ち位置からの観点導出
 品質モデルの話:狩野モデル
 ソフトウェア品質モデルのおはなし
 ソフトウェアテストのおはなし
 ワーク2:マイヤーズの三角形問題
 ソフトウェアテストのお勉強的なおはなし
アジェンダ
5
Quality
QCDについて
6
Cost Delivery
品質
コスト 納期
 品質に関するおはなし
 QCDについて
 ワーク1:立ち位置からの観点導出
 品質モデルの話:狩野モデル
 ソフトウェア品質モデルのおはなし
 ソフトウェアテストのおはなし
 ワーク2:マイヤーズの三角形問題
 ソフトウェアテストのお勉強的なおはなし
アジェンダ
7
それぞれの立ち位置(立場)で“製品の観点”を
挙げてください。
A:市場・顧客 B:製品企画
C:設計・開発 D:テスト
参考:現在のレビューに必要な次の一手を把握しよう! レビュー実践ウォークスルー
安達 賢二
http://www.slideshare.net/AdachiKenji/20150529-ja-sst15web
ワーク1:立ち位置からの観点導出
8
“製品の観点”
A:市場・顧客 B:製品企画
C:設計・開発 D:テスト
発表 | 立ち位置からの観点導出
9
“製品の観点”
A:市場・顧客 B:製品企画
使いたいか、流行りそうか、 売れそうか
見た目のよさ、ステータス
C:設計・開発 D:テスト
簡単に 作れそうか、汎用性、 問題なく使えるか、
最新技術が使えるか 使いやすいか
発表(ほんの一例) | 立ち位置からの観点導出
10
立ち位置が変わると
同じ製品でも重要となる箇所が変わる
ワークの目的 | 立ち位置からの観点導出
11
 品質に関するおはなし
 QCDについて
 ワーク1:立ち位置からの観点導出
 品質モデルの話:狩野モデル
 ソフトウェア品質モデルのおはなし
 ソフトウェアテストのおはなし
 ワーク2:マイヤーズの三角形問題
 ソフトウェアテストのお勉強的なおはなし
アジェンダ
12
狩野モデル
https://sites.google.com/site/techdmba/kanomodel
13
顧客の満足感
物
理
的
充
足
状
況
魅力的品質
一元的品質
当たり前品質
満足
不満足
不充足 充足
製品品質モデル ISO/IEC 25010:2011
14
ソフトウェアテストのおはなし
15
 品質に関するおはなし
 QCDについて
 ワーク1:立ち位置からの観点導出
 品質モデルの話:狩野モデル
 ソフトウェア品質モデルのおはなし
 ソフトウェアテストのおはなし
 ワーク2:マイヤーズの三角形問題
 ソフトウェアテストのお勉強的なおはなし
アジェンダ
16
次のプログラムをテストするのに十分と思われる
一連のテストケース(すなわち、十分なデータ
のセット)を書き記してみよ。
例:XXなテストケース
1.このプログラムは、カードから3つの整数を読
む。
2.この3つの値は、それぞれ三角形の3辺の長さ
を表すものとする。
3.プログラムは、三角形が不等辺三角形、二等辺
三角形、正三角形のうちどれであるかを決める
メッセージを印字する。
ワーク2:マイヤーズの三角形問題
ソフトウェア・テストの技法 より GLENFORD J.MYERS
17
有効
1. 有効な不等辺三角形をあらわすテストケース
例[A=3,B=4,C=5]
2. 有効な正三角形 [A=B=C]をあらわすテストケース
例[A=1,B=1,C=1]
3. 有効な二等辺三角形 [A=B]をあらわすテストケース
例[A=2,B=2,C=3]
4. 有効な二等辺三角形の場合、2つの等辺を含む
3種類の組み合わせ [A=B, B=C, C=A]をあらわす
テストケース
例[A=3,B=3,C=4][A=3,B=4,C=3][A=4,B=3,C=3]
ワーク2(解答):マイヤーズの三角形問題
18
無効❶
5. 入力した項目が0の値を持つテストケース
例[A=0,B=3,C=4 他1つが0の場合 3パターン]
[A=0,B=0,C=1 他2つが0の場合 3パターン]
6. 入力した項目が負の値を持つテストケース
例[A=-1,B=3,C=4 他1つがマイナスの場合 3パターン]
[A=-1,B=-1,C=1 他2つがマイナスの場合 3パターン]
[A=-1,B=-1,C=-1]
ワーク2(解答):マイヤーズの三角形問題
19
無効❷
7. 全ての項目が0を超える整数だが、2つの項目
の和が残りの1つの項目と等しい [A+B=C] テス
トケース
例[A=1,B=2,C=3]
8. 「7」の項目において、3種類の組み合わせ
[A+B=C]を持つテストケース
例[A=1,B=2,C=3][A=1,B=3,C=2][A=3,B=2,C=1]
ワーク2(解答):マイヤーズの三角形問題
20
無効❸
9. 全ての項目が0を超える整数だが、2つの項目
の和が残り1つの項目より小さい [A+B<C]テス
トケース
例[A=1,B=2,C=4]
10.「9」の項目において、3種類の組み合わせ
[A+B<C,B+C<A,C+A<B]を持つテストケース
例[A=1,B=2,C=4],[A=1,B=4,C=2], [A=4,B=2,C=1]
ワーク2(解答):マイヤーズの三角形問題
21
無効❹
11.全ての項目が0 [A=B=C=0]のテストケース
例[A=0,B=0,C=0]
12.半角数字の整数ではない値が入力されているテスト
ケース
例[小数点、制御コード、半角/全角スペース、
半角/全角英大小文字、半角/全角カナ、
全角数字、かな、漢字 等]
13.入力されている値が3個に満たないテストケース
例 [A=null,B=3,C=4 他1つが空欄の場合3パターン],
[A=null,B=null,C=1 他2つが空欄の場合3パターン],
[A=null,B=null,C=null]
ワーク2(解答):マイヤーズの三角形問題
22
http://blog.livedoor.jp/hime78/archives/50980099.html
有効(表示)
14.入力した値に対して期待される表示結果と実際
の表示結果が合っているか
ワーク2(解答):マイヤーズの三角形問題
23
http://blog.livedoor.jp/hime78/archives/50980099.html
簡単そうな問題でも、
テストの抜け・漏れが発生する
テストパターンはたくさんある
ワークの目的 |マイヤーズの三角形問題
24
マイヤーズの三角形問題を勉強会でするよーっ
て言ったら、思ってたより色々大変だというこ
とを教えてもらって深かったときの話
http://togetter.com/li/843768
三角形問題で必要なテストケース数
http://a-lifelong-tester.cocolog-
nifty.com/blog/2011/06/post-caee.html
三角形問題のテストの考え方いろいろ
http://a-lifelong-tester.cocolog-
nifty.com/blog/2011/06/post-790a.html
余談|マイヤーズの三角形問題
25
 品質に関するおはなし
 QCDについて
 ワーク1:立ち位置からの観点導出
 品質モデルの話:狩野モデル
 ソフトウェア品質モデルのおはなし
 ソフトウェアテストのおはなし
 ワーク2:マイヤーズの三角形問題
 ソフトウェアテストのお勉強的なおはなし
アジェンダ
26
ソフトウェアテストのお勉強的なおはなし
テストの7原則
テスト技法
テストレベル
テストタイプ
テストの4象限
テスト自動化のピラミッド
ソフトウェアテストのお勉強的なおはなし |アジェンダ
27
1. テストは欠陥があることは示せるが、欠陥がない
ことは示せない
2. 全数テストは不可能
3. 早期テストで時間とコストを節約
4. 欠陥の偏在
5. 殺虫剤のパラドックスにご用心
6. テストは条件次第
7. 「バグゼロ」の落とし穴
テストの7原則
28
テストをすることで
「欠陥がない」と
示すことはできない
1.テストは欠陥があることは示せるが、欠陥がないことは示せない
29
2.全数テストは不可能
1×1 2通り
2×2 12通り
3×3 184通り
4×4 8512通り
5×5 126万2516通り
6×6 5億7578万564通り
『フカシギの数え方』 おねえさんといっしょ! みんなで数えてみよう!
https://www.youtube.com/watch?v=Q4gTV4r0zRs
30
S
G
この4角形からスタートからゴールまで何通り
遠回りしていいけど、同じところは2度通ったらだめ
ソフトウェア開発
システム開発
のライフサイクルの
なるべく早い時期に見つけようね☺
3.早期テストで時間とコストを節約
31
4.欠陥の偏在
2:8の法則
32
何回も同じことをやっても
新しい欠陥は見つからなくなるよ
5.殺虫剤のパラドックスにご用心
33
システムによって
最重要視するテストは変わるよね
6.テストは条件次第
34
バグが(限りなく)0に近い
システムができても
とても起動に時間がかかるような
システムじゃだめよね
7.「バグゼロ」の落とし穴
35
ソフトウェアテストのお勉強的なおはなし
テストの7原則
テスト技法
テストレベル
テストタイプ
テストの4象限
テスト自動化のピラミッド
ソフトウェアテストのお勉強的なおはなし |アジェンダ
36
◼ 仕様ベース/ブラックボックスのテスト技法
構造ベース/ホワイトボックスのテスト技法
経験ベースのテスト技法
テスト技法
37
同値分割法
仲間分け
境界値分析
はじっこ
デシジョンテーブルテスト
規則表
状態遷移テスト
切り替え
ユースケーステスト
使用場面
https://thinkit.co.jp/images/article/40/2/4021_zoom.gif
仕様ベース/ブラックボックスのテスト技法 | テスト技法
39
りんごの販売価格
① 1個~4個:単価200円
② 5個~9個:単価170円
③ 10個以上:単価160円
同値分割(仲間分け)・境界値分析(はじっこ)
0 1 4 5 9 10
単価200円 単価170円 単価160円
『ソフトウェアテスト技法ドリル』秋山浩一著 40
あるショップで購入者が教育従事者の場合、
特定の商品が10%割引になる
デシジョンテーブルテスト(規則表)
41
1 2 3
条件 購入者は教育従事者 N Y Y
購入商品は対象商品 - N Y
動作 10%割引 N N Y
ショップの割引判定
状態遷移テスト(切り替え)
『ソフトウェアテスト技法ドリル』秋山浩一著 42
動作中
針は進む
停止中
内部も停止
動作中
針は停止
初期状態
スタートボタン
スタート
ボタン
スタート
ボタン
ラップ
ボタン
ラップ
ボタン
ラップボタン
終了状態
ストップウォッチの状態遷移図
ユースケーステスト(使用場面)
https://thinkit.co.jp/images/article/40/2/4021_zoom.gif 43
出張申請システム
申請者
承認者
経理担当者
出張申請を登録する
出張申請を提出する
出張申請を承認する
出張申請を却下する
出張申請を差し戻す
出張申請を確認する
ユースケース図の例
ソフトウェアテストのお勉強的なおはなし
テストの7原則
テスト技法
テストレベル
テストタイプ
テストの4象限
テスト自動化のピラミッド
ソフトウェアテストのお勉強的なおはなし |アジェンダ
44
テストレベル | テスト技法
45
ソフトウェアテストのお勉強的なおはなし
テストの7原則
テスト技法
テストレベル
テストタイプ
テストの4象限
ソフトウェアテストのお勉強的なおはなし |アジェンダ
46
機能テスト
「何をするのか」のテスト
非機能テスト
「どのように動作するのか」のテスト
構造テスト
「構造をどの程度網羅したか」のテスト
再テスト、およびリグレッションテスト
テスト済みのプログラムを何度もテスト
テストタイプ | テスト技法
47
ソフトウェアテストのお勉強的なおはなし
テストの7原則
テスト技法
テストレベル
テストタイプ
テストの4象限
テスト自動化のピラミッド
ソフトウェアテストのお勉強的なおはなし |アジェンダ
48
テストの4象限 | テスト技法
49
ソフトウェアテストのお勉強的なおはなし
テストの7原則
テスト技法
テストレベル
テストタイプ
テストの4象限
テスト自動化のピラミッド
ソフトウェアテストのお勉強的なおはなし |アジェンダ
50
テスト自動化のピラミッド
Martin Fowler : TestPyramid
https://martinfowler.com/bliki/TestPyramid.html
まとめ
52
① 色んな立場からの視点でテストをする
② 簡単そうなプログラムでも、テストケースが沢
山あるということ
③ QCD[品質(Quality)、価格(Cost)、
納期(Delivery/Time)を意識する
良いか悪いかだけでなく、
提案やカイゼンもして品質を高めましょう
まとめ
53
◆ソフトウェア・テストの技法
◆JSTQB FoundationLebelシラバス
◆ソフトウェアテスト教科書JSTQB Foundation
第3版
◆実践アジャイルテスト
◆ソフトウェアテスト293の法則
◆ソフトウェア品質知識体系ガイド 第2版 –
SQuBOK Guide V2-
◆ソフトウェアテスト技法ドリル-テスト設計の
考え方と実際
参考文献など
54

はじめてのソフトウェアテスト2019