テストの組み立て方

K
2019/6/15 WACATE 2019 Summer
1
テストの組み立て方
WACATE2019 夏
自己紹介
• 氏名:なかむら こうじ
• あなたとテストの関わり:
– テストを考えながら基本設計をしています。
• テストに関する資格:
– JSTQB AL TM/TA, JCSQE 中級
• 派閥
– 猫派
2019/6/15 WACATE 2019 Summer
2
身に着けてほしいこと
• テストの目的を定めて、
目的に対応したテストを行うということ
• プロジェクト/プロダクトに合った「品質」
のためのテスト
• テストを全部出来ない中で「やりきる」
ためのテスト
2019/6/15 WACATE 2019 Summer
3
テストに対する制約と向き合う
2019/6/15 WACATE 2019 Summer
4
制約 要求される品質レベル
テストに投入できる人数・スキル
テストを行う期間
テストに必要な機器・施設
人を殺さない・環境を壊さない
経済的な損失を与えない
不快感を与えない
両者のバランスをとってテストを組み立てることが重要
テストに対する制約と向き合う
好きなだけいつまでもテストできるわけではない
– 時間がない
– 予算がない
2019/6/15 WACATE 2019 Summer
5
これくらいまで
テスト
できるよ
ムリぽ!
(/ω\)
与えられたリソース テスト対象の範囲
<
テストに対する制約と向き合う
• そんな時どうする?
– 前から順番にできるとこまでテストする
– とりあえず気になったところはテストする
• こんなやり方だと・・・
– やっぱり全部はテストできていない
さらに
– 結局どんな品質が担保されたのか説明できない
2019/6/15 WACATE 2019 Summer
6
テストに対する制約と向き合う
• バランスをとるということは・・・
– 全部できないの仕方ない
– その中で何をテストすると価値が高いのか
– その中でどうテストすると効率的なのか
2019/6/15 WACATE 2019 Summer
7
その1:全部できないなら「やること」「やらないこと」をはっきり決める
その2:「やること」の優先を決めて、「やり方」に濃淡をつける
テストに対する制約と向き合う
テスト対象の優先度をきめたり、
やること/やらないことを明確にするためには、
なんらかの判断基準となる“軸” が必要です。
本セッションではその“軸”となるいくつかの
考え方を紹介していきます。
2019/6/15 WACATE 2019 Summer
8
テストの目的
2019/6/15 WACATE 2019 Summer
9
テストの目的
• WACATEの申し込みサイトをテストしてください
2019/6/15 WACATE 2019 Summer
10
・・・
テストの目的
• 何を目的とするかでテストすべきことが変わる
– 設計書どおりにできているか(設計書ないけど)
– 誤字脱字、不適切な表現がないか
– 申し込みに必要な情報が網羅されているか
– 個人情報が漏洩しないか
2019/6/15 WACATE 2019 Summer
11
目的を“軸”として優先度をつけてテストする範囲を決める
テストの目的(JSTQB-FL)
• 検証(正しく作られているか)
– 要件、ユーザーストーリー、設計、およびコードなどを評価する。
– 明確にしたすべての要件を満たしていることを検証する。
– 欠陥の作りこみを防ぐ。
– 故障や欠陥を発見する。
– テスト対象がそのような要件や標準に準拠していることを検証する。
• 妥当性確認(正しいものがつくられているか)
– テスト対象が期待通りの動作内容であることの妥当性確認をする。
– テスト対象の品質が所定のレベルにあることを確証する。
– ステークホルダーが意志決定できる、特にテスト対象の品質レベル
についての十分な情報を提供する。
– 不適切なソフトウェア品質のリスクレベルを低減する。
2019/6/15 WACATE 2019 Summer
12
テストの目的もさまざま
• 難しく考えずにざっくりとした目的でも有効
例)
– 正しく操作したら正しく動くこと
– 間違った操作をしたらブロックすること
2019/6/15 WACATE 2019 Summer
13
やらない
やる
表裏一体で同じように見えるけど、両方やるかは状況次第
テストの目的を定める
• では、どうやってテスト目的を定めるのか
• JSTQBではテストレベルとテストタイプという
観点でテストを構造化して目的を定める
• ちなみにISO29119はリスクベースドの考え方なので、
リスクアセスメントに基づいて目的を定める
・・・と思われるけど今回は扱いません
2019/6/15 WACATE 2019 Summer
14
テストレベル
2019/6/15 WACATE 2019 Summer
15
テストレベル(JSTQB-FL)
• テストレベルは系統的にまとめ、マネジメント
していくテストの活動のグループである。
• テストレベルは、以下の属性で特徴付けられる。
– 特定の目的
– テストベース(テストケースの導出時に参照)
– テスト対象(すなわち、テストするものは何か)
– 典型的な欠陥と故障
– (そのテストレベルでの)アプローチと責務
2019/6/15 WACATE 2019 Summer
16
テストレベル
• なんやよう分からん感じやけど
目的、テストベース、テスト対象、欠陥、
アプローチとかのまとまりを“軸”とする
• 目的・・・はさっきやったやつね
2019/6/15 WACATE 2019 Summer
17
テストレベル
• レベル(水準)なんで深さを表すものです
• 開発プロセスと関連させて考えます
2019/6/15 WACATE 2019 Summer
18
要件定義
基本設計
詳細設計
実装
コンポーネント
テスト
統合テスト
システムテスト
要求分析 受け入れテスト
レ
ベ
ル
○○な問題を解決したい
システムで△△できる
こんな仕組み
こんな構造で
テストレベルを考える
• JSTQBで紹介されている4段階が絶対ではない
– 開発は何段階に分かれていますか?
• テスト設計のインプットとなる資料は何があるか
– テスト対象としてどの単位のテストをしますか?
• クラス/メソッドなどのプログラム/部品単位
• 画面単位/複数画面の連携も含めた機能単位
– どの段階でどのような欠陥を取り除きますか?
• 必須チェックが正しいことはどこで担保するか
– 誰がどの環境でテストしますか?
• 開発者はテストするの?どこまで責任持ってもらうの?
2019/6/15 WACATE 2019 Summer
19
ワーク
• うちではこんなテストレベルがありますよ。
– テストレベル間の違いは何ですか?
• 目的
• テストベース
• テスト対象
• 狙っている欠陥
• 誰がどの環境でテストするかとか
2019/6/15 WACATE 2019 Summer
20
テストタイプ
2019/6/15 WACATE 2019 Summer
21
テストタイプ(JSTQB-FL)
• 特定のテストの目的から見たソフトウェアシステム
(あるいはシステムの一部分)の特性をテストする
ための活動を束ねたものである。
– 機能の品質特性、例えば完全、正確および適切であること
などを評価する。
– 非機能の品質特性、例えば信頼性、性能効率性、セキュリ
ティ、互換性、使用性などを評価する。
– コンポーネントまたはシステムの、構造またはアーキテク
チャーが正しく完全で仕様通りであることを評価する。
– 欠陥が修正されていることを確認するなどの変更による影
響を評価し(確認テスト)、ソフトウェアや環境の変更に
よって意図しない振る舞いの変化が発生していないかを探
す(リグレッションテスト)。
2019/6/15 WACATE 2019 Summer
22
テストタイプ
えーと、要するに・・・
正確で仕様通りで性能効率性が良く、
互換性もあって適切な使用性であること
のテストケース書いてって言うとカオスですよね。
テスト対象のどういった側面をテストするのかを
“軸”に切り分けて考えましょう
2019/6/15 WACATE 2019 Summer
23
おっきなところからいくと
• 機能/非機能
• 正常系/異常系
• 変更差分/回帰
– 組み合わせてもいいよ
2019/6/15 WACATE 2019 Summer
24
変更差分 回帰
正常系 異常系 正常系
機能 非機能 機能 非機能 機能 非機能
例えばISO/IEC 25000シリーズから
2019/6/15 WACATE 2019 Summer
25
システム/ソフトウェア製品品質
機能適合性
機能完全性
機能正確性
機能適切性
性能効率性
時間効率性
資源効率性
容量満足性
互換性
共存性
相互運用性
使用性
適切度認識
性
習得性
運用操作性
ユーザーエラー
防止性
ユーザーインタ
フェース快美性
アクセシビリティ
信頼性
成熟性
可用性
障害許容性
回復性
セキュリティ
機密性
インテグリティ
否認防止性
責任追跡性
真正性
保守性
モジュール性
再利用性
解析性
修正性
試験性
移植性
適応性
設置性
置換性
他には?
• 非機能要求グレード(IPA)
– https://www.ipa.go.jp/sec/softwareengineering/reports/20100416.html
• プロダクトリスク
– 主要なリスクに的を絞ったテストなど
• 特定の欠陥を狙ったテスト
– 社内の欠陥分析の結果から特定の欠陥を狙うとか
2019/6/15 WACATE 2019 Summer
26
特定の目的に基づいて
複数のテスト対象やテストレベルにまたがったテストが必要
所感
• テストタイプって目的の設定次第ですよね?
• 自由度が高い分センスが問われそうですね
– 目的の妥当性
– テストタイプとして他と分けて管理する意味があるか
– そのテストタイプでテストすべき網羅性が検証可能か
2019/6/15 WACATE 2019 Summer
27
ワーク
• うちではこんなテストタイプありますよ。
• テストタイプの自慢は何ですか?
– 何を狙ったテスト?
– 他のテストとはどういう違いがある?
テストレベルより難しいから要フォロー
2019/6/15 WACATE 2019 Summer
28
テストレベルとテストタイプ
2019/6/15 WACATE 2019 Summer
29
例えばクレジットに対する機能適合性
テストレベルとテストタイプを組み合わせた目的
2019/6/15 WACATE 2019 Summer
30
テストレベル 目的
コンポーネントテスト 金額計算や請求月が設計通りか
コンポーネント統合テスト UI上の入力に対して出力が正しいか
システムテスト 限度額など他の入力と整合性があるか
システム統合テスト 外部APIなどと正しく連携できるか
受け入れテスト 不正な取引をブロックできるか
テストレベルとテストタイプ
テスト対象をテストレベルとテストタイプで分解
2019/6/15 WACATE 2019 Summer
31
テスト対象
テストレベルとテストタイプ
テストレベルは段階的にテストを分割
2019/6/15 WACATE 2019 Summer
32
テスト対象
コンポーネントテスト
統合テスト
システムテスト
受け入れテスト
テストレベルとテストタイプ
テストタイプは目的の特性でテストを分割
2019/6/15 WACATE 2019 Summer
33
テスト対象
機能適合性 性能効率性 セキュリティ
テストレベルとテストタイプ
メッシュ状にすることで細かなコントロールができる
2019/6/15 WACATE 2019 Summer
34
テスト対象
コンポーネントテスト
統合テスト
システムテスト
受け入れテスト
機能適合性 性能効率性 セキュリティ
Must
MustMust Want
Must Want
Want
Must
Must
Want
ちょっと抽象的すぎるので
• 機能適合性テストとか言われてもピンとこない
• もっと目的を絞った方がブレない
– 入出力の整合性
• A画面の入力とB画面に出力は整合しているか
– 基準日の一貫性
• 消費税増税の前後、過去日入力などで税計算は正しい?
– 状態遷移
• 登録→訂正→承認→承認取消…ちゃんと元に戻ってる?
2019/6/15 WACATE 2019 Summer
35
まとめ
2019/6/15 WACATE 2019 Summer
36
テストを組み立てるということ
• 目に見えないテストの領域を、
目に見える形で料理できる大きさに切り分ける
• 制約によって限られたリソースの中で、
最も価値の高い部分を特定する
• やる部分とやらない部分を合意して、
やると決めた部分は網羅的にきっちりやる
2019/6/15 WACATE 2019 Summer
37
やり方はいろいろあるけど
2019/6/15 WACATE 2019 Summer
38
やること やらないこと
優
先
高
低
がっつりやる!
死なない程度にやる
不安があってもやらない
範囲と頑張り度合いを説明できて共有できることが大事
1 of 38

Recommended

みんなどんな書式でテストケース書いているの by
みんなどんな書式でテストケース書いているのみんなどんな書式でテストケース書いているの
みんなどんな書式でテストケース書いているのkauji0522
451 views15 slides
テスト分析入門 -「ゆもつよメソッド」を例に- #wacate by
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateテスト分析入門 -「ゆもつよメソッド」を例に- #wacate
テスト分析入門 -「ゆもつよメソッド」を例に- #wacateKinji Akemine
20.2K views53 slides
探索的テストはじめの一歩 #wacate by
探索的テストはじめの一歩 #wacate探索的テストはじめの一歩 #wacate
探索的テストはじめの一歩 #wacateToshiyuki Kawanishi
14K views39 slides
テスト技法の背景を考察する - WACATE2021夏 by
テスト技法の背景を考察する - WACATE2021夏テスト技法の背景を考察する - WACATE2021夏
テスト技法の背景を考察する - WACATE2021夏kauji0522
486 views15 slides
概説 テスト分析 by
概説 テスト分析概説 テスト分析
概説 テスト分析崇 山﨑
31.7K views51 slides
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう by
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しようテスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しよう
テスト分析・設計を体感しよう ~マインドマップを活用してテスト観点を発想しようAkira Ikeda
9.1K views50 slides

More Related Content

What's hot

テスト分析.pptx by
テスト分析.pptxテスト分析.pptx
テスト分析.pptxkauji0522
697 views24 slides
テスト観点に基づくテスト開発方法論 VSTePの概要 by
テスト観点に基づくテスト開発方法論VSTePの概要テスト観点に基づくテスト開発方法論VSTePの概要
テスト観点に基づくテスト開発方法論 VSTePの概要Yasuharu Nishi
9.6K views69 slides
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版) by
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)Yasuharu Nishi
20.1K views17 slides
LINE Developer Meetup in Tokyo #39 Presentation by
LINE Developer Meetup in Tokyo #39 PresentationLINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 PresentationYasuharu Nishi
36.6K views90 slides
テストプロセス改善モデルの最新動向 by
テストプロセス改善モデルの最新動向テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向崇 山﨑
6.7K views56 slides
テスト設計技法の適用・・・その前に by
テスト設計技法の適用・・・その前にテスト設計技法の適用・・・その前に
テスト設計技法の適用・・・その前にkauji0522
6.3K views83 slides

What's hot(20)

テスト分析.pptx by kauji0522
テスト分析.pptxテスト分析.pptx
テスト分析.pptx
kauji0522697 views
テスト観点に基づくテスト開発方法論 VSTePの概要 by Yasuharu Nishi
テスト観点に基づくテスト開発方法論VSTePの概要テスト観点に基づくテスト開発方法論VSTePの概要
テスト観点に基づくテスト開発方法論 VSTePの概要
Yasuharu Nishi9.6K views
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版) by Yasuharu Nishi
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
Yasuharu Nishi20.1K views
LINE Developer Meetup in Tokyo #39 Presentation by Yasuharu Nishi
LINE Developer Meetup in Tokyo #39 PresentationLINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 Presentation
Yasuharu Nishi36.6K views
テストプロセス改善モデルの最新動向 by 崇 山﨑
テストプロセス改善モデルの最新動向テストプロセス改善モデルの最新動向
テストプロセス改善モデルの最新動向
崇 山﨑6.7K views
テスト設計技法の適用・・・その前に by kauji0522
テスト設計技法の適用・・・その前にテスト設計技法の適用・・・その前に
テスト設計技法の適用・・・その前に
kauji05226.3K views
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!- by 崇 山﨑
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
崇 山﨑4K views
テスト計画の立て方 WACATE2019 夏 by Naoki Nakano
テスト計画の立て方 WACATE2019 夏テスト計画の立て方 WACATE2019 夏
テスト計画の立て方 WACATE2019 夏
Naoki Nakano5.3K views
幅広なテスト分析ができるようになろう by scarletplover
幅広なテスト分析ができるようになろう幅広なテスト分析ができるようになろう
幅広なテスト分析ができるようになろう
scarletplover4.1K views
60分でわかった気になるISO29119 #wacate by Kinji Akemine
60分でわかった気になるISO29119 #wacate60分でわかった気になるISO29119 #wacate
60分でわかった気になるISO29119 #wacate
Kinji Akemine19.5K views
LINE Developer Meetup in Tokyo #39 Presentation (modified) by Yasuharu Nishi
LINE Developer Meetup in Tokyo #39 Presentation (modified)LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)
Yasuharu Nishi5.3K views
What is exploratory testing? by Mineo Matsuya
What is exploratory testing?What is exploratory testing?
What is exploratory testing?
Mineo Matsuya8.7K views
What should you shift left by Yasuharu Nishi
What should you shift leftWhat should you shift left
What should you shift left
Yasuharu Nishi1.7K views
Agile Quality アジャイル品質パターン (QA2AQ) by Hironori Washizaki
Agile Quality アジャイル品質パターン (QA2AQ)Agile Quality アジャイル品質パターン (QA2AQ)
Agile Quality アジャイル品質パターン (QA2AQ)
Hironori Washizaki6.4K views
テスト分析についての説明資料公開用 by Tsuyoshi Yumoto
テスト分析についての説明資料公開用テスト分析についての説明資料公開用
テスト分析についての説明資料公開用
Tsuyoshi Yumoto12.8K views
テストアプローチにデータ分析を使おう by Sayaka Nakano
テストアプローチにデータ分析を使おうテストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おう
Sayaka Nakano4.2K views
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証 by Yasuharu Nishi
QAアーキテクチャの設計による説明責任の高いテスト・品質保証QAアーキテクチャの設計による説明責任の高いテスト・品質保証
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
Yasuharu Nishi24.8K views
テスト観点に関する取り組み事例 by NaokiKashiwagura
テスト観点に関する取り組み事例テスト観点に関する取り組み事例
テスト観点に関する取り組み事例
NaokiKashiwagura3.3K views
Re-collection of embedded software qa in the last decade by Yasuharu Nishi
Re-collection of embedded software qa in the last decadeRe-collection of embedded software qa in the last decade
Re-collection of embedded software qa in the last decade
Yasuharu Nishi5.3K views
ドメインテストとは by Kumiko Ohmi
ドメインテストとはドメインテストとは
ドメインテストとは
Kumiko Ohmi4.1K views

More from kauji0522

品質とは何か.pdf by
品質とは何か.pdf品質とは何か.pdf
品質とは何か.pdfkauji0522
361 views37 slides
Wacate2018 winter jstqb-al-ta by
Wacate2018 winter jstqb-al-taWacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-takauji0522
5.6K views36 slides
ユースケースとアクティビティとテスト by
ユースケースとアクティビティとテストユースケースとアクティビティとテスト
ユースケースとアクティビティとテストkauji0522
6.1K views29 slides
みんなのメトリクス 公開用 by
みんなのメトリクス 公開用みんなのメトリクス 公開用
みんなのメトリクス 公開用kauji0522
3.1K views19 slides
Cmmiに振り回されないために知っておきたい事 by
Cmmiに振り回されないために知っておきたい事Cmmiに振り回されないために知っておきたい事
Cmmiに振り回されないために知っておきたい事kauji0522
3.1K views89 slides
テスト分析とは何か by
テスト分析とは何かテスト分析とは何か
テスト分析とは何かkauji0522
630 views4 slides

More from kauji0522(6)

品質とは何か.pdf by kauji0522
品質とは何か.pdf品質とは何か.pdf
品質とは何か.pdf
kauji0522361 views
Wacate2018 winter jstqb-al-ta by kauji0522
Wacate2018 winter jstqb-al-taWacate2018 winter jstqb-al-ta
Wacate2018 winter jstqb-al-ta
kauji05225.6K views
ユースケースとアクティビティとテスト by kauji0522
ユースケースとアクティビティとテストユースケースとアクティビティとテスト
ユースケースとアクティビティとテスト
kauji05226.1K views
みんなのメトリクス 公開用 by kauji0522
みんなのメトリクス 公開用みんなのメトリクス 公開用
みんなのメトリクス 公開用
kauji05223.1K views
Cmmiに振り回されないために知っておきたい事 by kauji0522
Cmmiに振り回されないために知っておきたい事Cmmiに振り回されないために知っておきたい事
Cmmiに振り回されないために知っておきたい事
kauji05223.1K views
テスト分析とは何か by kauji0522
テスト分析とは何かテスト分析とは何か
テスト分析とは何か
kauji0522630 views

テストの組み立て方

Editor's Notes

  1. マニュアルどおりに常に通り一辺倒のテストをしてたら無駄や過剰が発生する。 毎回、同じ環境で同じ物を作り続けているわけでないなら、バランスを考えて調整を図る必要がある。