勝手にhayst法勉強会 リリカルver

46
勝手に HAYST 法勉強会 リリカル ver. 開催報告 藤沢 耕助(リリカル: @ mhlyc

Upload: kosuke-fujisawa

Post on 22-Jan-2018

641 views

Category:

Software


1 download

TRANSCRIPT

Page 1: 勝手にHayst法勉強会 リリカルver

勝手にHAYST法勉強会リリカルver.開催報告

藤沢 耕助(リリカル:@mhlyc)

Page 2: 勝手にHayst法勉強会 リリカルver

自己紹介

2017/8/17勝手にHAYST法勉強会リリカルver. 2

発表者

• 藤沢耕助

所属

• 某SIer 品質保証部門

業務

• 設計書レビュー

• システムテスト

発表の理由

• テスト技法に興味がある

• 仕事に活かせるかも?

品質保証部

藤沢耕助

Page 3: 勝手にHayst法勉強会 リリカルver

本発表の流れ

1. 私の関心事(私がテスト分析・設計手法を通してやりたいこと)

2. 私の思うHAYST法の良いところ(3つ)

3. 私がHAYST法でよくわかっていないところ(2つ)

4. まとめ(私の思うHAYST法のポイント)

5. 付録

2017/8/17勝手にHAYST法勉強会リリカルver. 3

Page 4: 勝手にHayst法勉強会 リリカルver

私の関心事

2017/8/17勝手にHAYST法勉強会リリカルver. 4

立場:SIerのQA。システムテスト工程のテスト設計〜実行を担当

Page 5: 勝手にHayst法勉強会 リリカルver

私の関心事

2017/8/17勝手にHAYST法勉強会リリカルver. 5

立場:SIerのQA。システムテスト工程のテスト設計〜実行を担当

バグを見逃したくない

Page 6: 勝手にHayst法勉強会 リリカルver

立場:SIerのQA。システムテスト工程のテスト設計〜実行を担当

私の関心事

2017/8/17勝手にHAYST法勉強会リリカルver. 6

バグを見逃したくない

バグを見逃したとしても、許せる範囲だといい

Page 7: 勝手にHayst法勉強会 リリカルver

立場:SIerのQA。システムテスト工程のテスト設計〜実行を担当

私の関心事

2017/8/17勝手にHAYST法勉強会リリカルver. 7

バグを見逃したくない

バグを見逃したとしても、許せる範囲だといい

リスクや影響に基づく、テストの説明ができるようにしたい

Page 8: 勝手にHayst法勉強会 リリカルver

私の関心事

2017/8/17勝手にHAYST法勉強会リリカルver. 8

私がテスト分析設計手法を通してやりたいこと

自分が設計したテストに、納得のいくような説明をつけたい。「なぜこのテストをするのか/しないのか?」という質問に明確に回答できるようになりたい。

Page 9: 勝手にHayst法勉強会 リリカルver

本発表の流れ

1. 私の関心事(私がテスト分析・設計手法を通してやりたいこと)

2. 私の思うHAYST法の良いところ(3つ)

3. 私がHAYST法でよくわかっていないところ(2つ)

4. まとめ(私の思うHAYST法のポイント)

5. 付録

2017/8/17勝手にHAYST法勉強会リリカルver. 9

Page 10: 勝手にHayst法勉強会 リリカルver

HAYST法とは

• 因子どうしは直交している前提

• 直交している因子どうしを組み合わせた時に「本当に問題が起こらないこと」を確認するための手法

参考:ソフトウェアテスト技法ドリル

2017/8/17勝手にHAYST法勉強会リリカルver. 10

Page 11: 勝手にHayst法勉強会 リリカルver

HAYST法の流れ(違っていたら教えてください)

2017/8/17勝手にHAYST法勉強会リリカルver. 11

# 内容

1 6W2Hでテストの分析

2 FV表(テスト分析結果)の作成・目的機能(ユーザストーリー)・検証内容・テスト技法

3 ラルフチャートを描画してテストの設計

4 FL表を作成して、テストとして取り上げる因子と水準を整理

5 直交表への割付

Page 12: 勝手にHayst法勉強会 リリカルver

HAYST法の流れ(違っていたら教えてください)

2017/8/17勝手にHAYST法勉強会リリカルver. 12

# 内容

1 6W2Hでテストの分析

2 FV表(テスト分析結果)の作成・目的機能(ユーザストーリー)・検証内容・テスト技法

3 ラルフチャートを描画してテストの設計

4 FL表を作成して、テストとして取り上げる因子と水準を整理

5 直交表への割付

①6W2H

Page 13: 勝手にHayst法勉強会 リリカルver

①6W2H

思ったより色々出てくる

“Where”や“Whom”

など、普通に考えたら見落としてしまう

2017/8/17勝手にHAYST法勉強会リリカルver. 13

Page 14: 勝手にHayst法勉強会 リリカルver

①6W2H

2017/8/17勝手にHAYST法勉強会リリカルver. 14

この書き方は間違っているらしい

Page 15: 勝手にHayst法勉強会 リリカルver

解説1:6W2H

間違い①

Whyの直下には要素はつかない(あえて描けなくしているとのこと)

Why

Whom(ユーザのお客様)

How much(量、金額など)

2017/8/17勝手にHAYST法勉強会リリカルver. 15

Page 16: 勝手にHayst法勉強会 リリカルver

解説1:6W2H

間違い②

6W2Hは、全てが同列ではない

「ユーザー」「開発者」「お客様のお客様」の3つの視座から8つの視野(6W2H)でテストの分析をする

2017/8/17勝手にHAYST法勉強会リリカルver. 16

Page 17: 勝手にHayst法勉強会 リリカルver

①6W2H

2017/8/17勝手にHAYST法勉強会リリカルver. 17

Page 18: 勝手にHayst法勉強会 リリカルver

解説1:6W2H

なぜ、Whyの下に直接要素をぶらさげないのか?

一般に、仕様は要求を元に決定され、Why(要求)は理由に基づく

How toはその実現方法(設計)

設計の結果、作成された成果物が納品される

参考文献:[入門+実践]要求を仕様化する技術・表現する技術 –仕様が書けていますか?-

2017/8/17勝手にHAYST法勉強会リリカルver. 18

Page 19: 勝手にHayst法勉強会 リリカルver

解説1:6W2H

製品のリリースには、根本的な「目的」がある

HAYST法では要求ではなく「根本」を狙いたい

2017/8/17勝手にHAYST法勉強会リリカルver. 19

Page 20: 勝手にHayst法勉強会 リリカルver

ここを狙いたい!

解説1:6W2H

2017/8/17勝手にHAYST法勉強会リリカルver. 20

理由 要求 仕様決定

設計

リリース 目的

Page 21: 勝手にHayst法勉強会 リリカルver

解説1:6W2H

「理由」というのは「誰かが昔『欲しい』と言ったから」

これを満たしたところで、その人は喜ぶかもしれないが、みんなが喜んでくれるかはわからない

理由ができた頃から時間も経っている・・・その時と今で状況が変わっているかもしれない

2017/8/17勝手にHAYST法勉強会リリカルver. 21

Page 22: 勝手にHayst法勉強会 リリカルver

解説1:6W2H

3年後に「これ買っててよかったな〜」と思ってもらえるようにするには?

苦情やクレーム(Why)に対応するのでは、後追いになってしまう

そのため、Whyを直接考えるのではなくWhomやHow muchを考える。そのほうが根本により近づける

2017/8/17勝手にHAYST法勉強会リリカルver. 22

Page 23: 勝手にHayst法勉強会 リリカルver

HAYST法の流れ(違っていたら教えてください)

2017/8/17勝手にHAYST法勉強会リリカルver. 23

# 内容

1 6W2Hでテストの分析

2 FV表(テスト分析結果)の作成・目的機能(ユーザストーリー)・検証内容・テスト技法

3 ラルフチャートを描画してテストの設計

4 FL表を作成して、テストとして取り上げる因子と水準を整理

5 直交表への割付

②目的機能の抽出

Page 24: 勝手にHayst法勉強会 リリカルver

②目的機能(ユーザストーリー)

2017/8/17勝手にHAYST法勉強会リリカルver. 24

目的機能を考えないと、バグを見逃すことがある

「そもそも必要なのはこの機能ではないのでは?」といった疑問にも気づける

Page 25: 勝手にHayst法勉強会 リリカルver

HAYST法の流れ(違っていたら教えてください)

2017/8/17勝手にHAYST法勉強会リリカルver. 25

# 内容

1 6W2Hでテストの分析

2 FV表(テスト分析結果)の作成・目的機能(ユーザストーリー)・検証内容・テスト技法

3 ラルフチャートを描画してテストの設計

4 FL表を作成して、テストとして取り上げる因子と水準を整理

5 直交表への割付

ここが間違い

Page 26: 勝手にHayst法勉強会 リリカルver

解説2:FV表はテスト分析結果ではない

FV表はテスト分析結果ではない。テスト対象を分割したもの

要素が大きすぎると考えづらくなるため、分割して小さくして扱いやすくする

分けた後に使いやすくするため、目的機能ごとに分割する

2017/8/17勝手にHAYST法勉強会リリカルver. 26

Page 27: 勝手にHayst法勉強会 リリカルver

解説2:FV表はテスト分析結果ではない

FV表はテスト分析結果ではない。テスト対象を分割したもの

目的機能ごとに分割することで、非機能系の確認がしやすくなる

例:プロジェクターの投影機能

台形補正

色調整

明るさ

個別の確認を行うだけではダメ。組み合わせた結果目的を達成していることを確認しなければならない

2017/8/17勝手にHAYST法勉強会リリカルver. 27

Page 28: 勝手にHayst法勉強会 リリカルver

②目的機能(ユーザストーリー)

2017/8/17勝手にHAYST法勉強会リリカルver. 28

ここの番号も間違い(ただの順番ではない)

Page 29: 勝手にHayst法勉強会 リリカルver

解説3:FV表の左のNo.列に記載する番号

FV表の左のNo.列に記載する番号は、ただの順番ではない

対応する仕様書の章番号を記載することで、仕様に対する抜け漏れのチェックが行える

ある章が抜けていた場合:目的を考えられていないor 不要な機能の可能性がある

2017/8/17勝手にHAYST法勉強会リリカルver. 29

Page 30: 勝手にHayst法勉強会 リリカルver

HAYST法の流れ(違っていたら教えてください)

2017/8/17勝手にHAYST法勉強会リリカルver. 30

# 内容

1 6W2Hでテストの分析

2 FV表(テスト分析結果)の作成・目的機能(ユーザストーリー)・検証内容・テスト技法

3 ラルフチャートを描画してテストの設計

4 FL表を作成して、テストとして取り上げる因子と水準を整理

5 直交表への割付

③ラルフチャート

Page 31: 勝手にHayst法勉強会 リリカルver

③ラルフチャート

2017/8/17勝手にHAYST法勉強会リリカルver. 31

「ノイズ」と「アクティブノイズ」に分けて発想することで、多くの因子を見つけ出せる

Page 32: 勝手にHayst法勉強会 リリカルver

解説4:ノイズとアクティブノイズ

ノイズ:セーフティ。自然の脅威。

アクティブノイズ:セキュリティ。人為的な脅威。

入出力の関係を妨げる要因のことをノイズと呼ぶ。

2017/8/17勝手にHAYST法勉強会リリカルver. 32

Page 33: 勝手にHayst法勉強会 リリカルver

本発表の流れ

1. 私の関心事(私がテスト分析・設計手法を通してやりたいこと)

2. 私の思うHAYST法の良いところ(3つ)

3. 私がHAYST法でよくわかっていないところ(2つ)

4. まとめ(私の思うHAYST法のポイント)

5. 付録

2017/8/17勝手にHAYST法勉強会リリカルver. 33

Page 34: 勝手にHayst法勉強会 リリカルver

HAYST法の流れ(違っていたら教えてください)

2017/8/17勝手にHAYST法勉強会リリカルver. 34

# 内容

1 6W2Hでテストの分析

2 FV表(テスト分析結果)の作成・目的機能(ユーザストーリー)・検証内容・テスト技法

3 ラルフチャートを描画してテストの設計

4 FL表を作成して、テストとして取り上げる因子と水準を整理

5 直交表への割付

①テスト技法

Page 35: 勝手にHayst法勉強会 リリカルver

①テスト技法

2017/8/17勝手にHAYST法勉強会リリカルver. 35

「テスト技法」の列にはどんなことを書くのが

いい?

ここはテストにおけるHowの部分のはず。How

(どうテストするか)がわかるようなことを書く

べき?

Page 36: 勝手にHayst法勉強会 リリカルver

解説5:FV表のT(テスト技法)に書く内容

FV表のT(テスト技法)にはどのようなことを書いたら良いのか?

FV表のT(テスト技法)は、分担を考えるために使う。

UTチーム、統合テストチーム、システムテストチーム・・・

分担しない場合は、Tを書く必要はないのか?

書かなくていい。ただ、書いておくとテストの順番を決めるときに役立つ。

Tを書くときは、V(検証)は見ない。Fr(目的機能)だけを見る。(個人的にモヤモヤポイント。後日また確認する予定)

2017/8/17勝手にHAYST法勉強会リリカルver. 36

Page 37: 勝手にHayst法勉強会 リリカルver

HAYST法の流れ(違っていたら教えてください)

2017/8/17勝手にHAYST法勉強会リリカルver. 37

# 内容

1 6W2Hでテストの分析

2 FV表(テスト分析結果)の作成・目的機能(ユーザストーリー)・検証内容・テスト技法

3 ラルフチャートを描画してテストの設計

4 FL表を作成して、テストとして取り上げる因子と水準を整理

5 直交表への割付

②ラルフチャート

Page 38: 勝手にHayst法勉強会 リリカルver

②ラルフチャート

2017/8/17勝手にHAYST法勉強会リリカルver. 38

ラルフチャートにうまくハマらないケースがあるEx)大規模業務システム

のテスト

よりテスト対象をよく表したモデルを使用する方が、良い分析を行えることもあるのでは。

Page 39: 勝手にHayst法勉強会 リリカルver

解説6:ラルフチャートとFV表

FV表の1行がラルフチャート一つに対応する

沸騰ポットで言えば、ミルクを沸かす機能、お湯を沸かす機能それぞれに対して別々のラルフチャートを作成する

FV表の1行が正しく分割できているかは、INVESTの原則で確認する(次スライドで解説)

大規模システム開発においては、ある程度分割した単位でないとラルフチャートを作成するのは難しい

2017/8/17勝手にHAYST法勉強会リリカルver. 39

Page 40: 勝手にHayst法勉強会 リリカルver

解説6:ラルフチャートとFV表

I(Independent)独立している

N(Negotiable) 交渉可能である(別のものと交換できる)

V(Valuable) 価値がある(目的、意味を持つものである)

E(Estimable) 見積もり可能である

S(Small) 適切な大きさであること、大きすぎないこと

T(Testable) テストできること

2017/8/17勝手にHAYST法勉強会リリカルver. 40

要求がとらえられているか?

仕様化・具体化が行えているか?(Specify)

Page 41: 勝手にHayst法勉強会 リリカルver

本発表の流れ

1. 私の関心事(私がテスト分析・設計手法を通してやりたいこと)

2. 私の思うHAYST法の良いところ(3つ)

3. 私がHAYST法でよくわかっていないところ(2つ)

4. まとめ(私の思うHAYST法のポイント)

5. 付録

2017/8/17勝手にHAYST法勉強会リリカルver. 41

Page 42: 勝手にHayst法勉強会 リリカルver

私の思うHAYST法のポイント

• とにかく「どうやって因子を漏れなく出すか」だと思う。やり方にこだわる必要はない

• 因子の漏れ=テストの漏れ

• 6W2Hやラルフチャートといった、因子を抽出するための仕掛けをどううまく使うかが鍵

2017/8/17勝手にHAYST法勉強会リリカルver. 42

Page 43: 勝手にHayst法勉強会 リリカルver

本発表の流れ

1. 私の関心事(私がテスト分析・設計手法を通してやりたいこと)

2. 私の思うHAYST法の良いところ(3つ)

3. 私がHAYST法でよくわかっていないところ(2つ)

4. まとめ(私の思うHAYST法のポイント)

5. 付録(VSTeP、ゆもつよメソッドとの比較)

2017/8/17勝手にHAYST法勉強会リリカルver. 43

Page 44: 勝手にHayst法勉強会 リリカルver

VSTeP、ゆもつよメソッドとの比較(独断と偏見)

2017/8/17勝手にHAYST法勉強会リリカルver. 44

HAYST法 ゆもつよメソッド VSTeP

得意なドメイン

組み込み エンプラ? 全般?

テストレベル

システムテスト?

システムテスト システムテスト

表現の自由度

低い 低い 高い

あると良い知識

基本的なテスト技法

クラス・インスタンス

クラス・インスタンス

つまずきポイント

因子・水準の出し方

テストカテゴリの出し方

ツリーの要素の抽象化・具象化

Page 45: 勝手にHayst法勉強会 リリカルver

VSTeP、ゆもつよメソッドとの比較(独断と偏見)

2017/8/17勝手にHAYST法勉強会リリカルver. 45

HAYST法 ゆもつよメソッド VSTeP得意なドメイン

全般(一部例外あり)

全般 全般

テストレベル

結合〜システムテスト

システムテスト システムテスト

フォーマットの提供

あり あり NGT準拠だが、実質ほとんどなし?

あると良い知識

基本的なテスト技法オブジェクト指向設計技術目的工学

基本的なテスト技法テストケースのリバースエンジニアリングの経験

基本的なテスト技法構造化分析・設計技術

つまずきポイント

目的機能の抽出(特に、内部機能や安全機構に関する機能)

テストカテゴリの出し方 ツリーの要素の抽象化・具象化

Page 46: 勝手にHayst法勉強会 リリカルver

参考

• ソフトウェアテスト技法ドリル テスト設計の考え方と実際 秋山浩一著 日科技連出版社

2017/8/17勝手にHAYST法勉強会リリカルver. 46