Slide 1

Slide 1 text

1 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! みんなに役立つ 「テスト」(と、品質の考え方) を学んでみよう! みずのり(水野のりゆき) @WARAI(関西SWテスト勉強会)

Slide 2

Slide 2 text

2 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! メモ 本資料は得られた知見や 新しいやり方の発見で 常時バージョンアップを行います。 ご意見等ありましたら 取り入れてみますので、 是非ともお願いします。

Slide 3

Slide 3 text

3 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 本資料のターゲット&目的 出来る限り「多くの人」が 「わかりやすい」と思う内容を 展開したいと考えています。 ※「広く」内容を紹介します。

Slide 4

Slide 4 text

4 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! コンテンツ~ 3章の構成です。 その1:テストの必要性と品質の考え方 その2:テストの技術をざっくり紹介 その3:テスト技法紹介 ~それぞれ演習を添えて

Slide 5

Slide 5 text

5 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! その1 テストの必要性と 品質の考え方 その1:テストの必要性と品質の考え方 その2:テストの技術をざっくり紹介 その3:テスト技法紹介 ~ワークを添えて

Slide 6

Slide 6 text

6 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストって何でしょうね? ?? xUnit? テスト技法? 出荷前の砦? 品質保証? 新人のお仕事? テスト駆動開発? ビッグバンテスト?

Slide 7

Slide 7 text

7 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 良く言われるテストの必要性 JSTQB Foundation Level シラバスより… 1.1.1. ソフトウェアシステムの状況(K1) ソフトウェアシステムは、ビジネス分野(銀行など)から、一般消費財(自動車など)に至るまで、 社会を構成する要素として必須となっている。ソフトウェアが期待通りに動かなかった経験は 誰もが持っている。ソフトウェアが正しく動作しないと、経済的な損失、時間の浪費、 信用の失墜など、いろいろな問題が発生し、時には傷害や死亡事故になることもある。 … 1.1.3. ソフトウェアの開発、保守、運用におけるテストの役割(K2) システムやドキュメントを厳しく テストし、システムが稼動する前に欠陥を 摘出して修正するならば、実行環境で問題が 発生するリスクを低減でき、 ソフトウェアシステムの品質向上に効果がある。 また、契約や法律上の適格要件や各業界の 標準に合致していることを証明するため、 ソフトウェアのテストが必要になるケースもある。 http://www.jstqb.jp/syllabus.html

Slide 8

Slide 8 text

8 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 良く言われるテストの必要性 JSTQB Foundation Level シラバスより… 1.1.1. ソフトウェアシステムの状況(K1) ソフトウェアシステムは、ビジネス分野(銀行など)から、一般消費財(自動車など)に至るまで、 社会を構成する要素として必須となっている。ソフトウェアが期待通りに動かなかった経験は 誰もが持っている。ソフトウェアが正しく動作しないと、経済的な損失、時間の浪費、 信用の失墜など、いろいろな問題が発生し、時には傷害や死亡事故になることもある。 … 1.1.3. ソフトウェアの開発、保守、運用におけるテストの役割(K2) システムやドキュメントを厳しく テストし、システムが稼動する前に欠陥を 摘出して修正するならば、実行環境で問題が 発生するリスクを低減でき、 ソフトウェアシステムの品質向上に効果がある。 また、契約や法律上の適格要件や各業界の 標準に合致していることを証明するため、 ソフトウェアのテストが必要になるケースもある。 http://www.jstqb.jp/syllabus.html JSTQBに興味を持った人は ゆっくり読んでみて下さい。 ひとまず、 「開発に関わる人」を 中心に考えてみましょう

Slide 9

Slide 9 text

9 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストが無いと何が起こる?? ・問題の見逃し ⇒運用での課題、市場での不具合 ・使った人の不満 じゃあ、 テストを やらないと どうなるの?

Slide 10

Slide 10 text

10 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストが無いと何が起こる?? ・問題の見逃し ⇒運用での課題、市場での不具合 ・使った人の不満 じゃあ、 テストを やらないと どうなるの? がっかり、残念なもの 作った人も使う人もうれしくない +心配 開発者 マネージャ 顧客

Slide 11

Slide 11 text

11 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストが無いと何が起こる?? ・問題の見逃し ⇒運用での課題、市場での不具合 ・使った人の不満 じゃあ、 テストを やらないと どうなるの? がっかり、残念なもの 作った人も使う人もうれしくない +心配 開発者 マネージャ 顧客(BtoB、BtoC)

Slide 12

Slide 12 text

12 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストが無いと何が起こる?? ・問題の見逃し ⇒運用での課題、市場での不具合 ・使った人の不満 じゃあ、 テストを やらないと どうなるの? がっかり、残念なもの 作った人も使う人もうれしくない +心配 開発者 マネージャ 顧客(BtoB、BtoC)

Slide 13

Slide 13 text

13 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 良いものをつくって喜んでもらいたい! ・問題の見逃し ⇒運用での課題、市場での不具合 ・使った人の不満 がっかり、残念なもの 作った人も使う人もうれしくない +心配 開発者 マネージャ 顧客 良いものを 作らないとね 「スゴイ」って 言われたい! 問題が起きない! 期待に合致してる! 安心! 良いものを作る!

Slide 14

Slide 14 text

14 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 良いものをつくって喜んでもらいたい! ・問題の見逃し ⇒運用での課題、市場での不具合 ・使った人の不満 がっかり、残念なもの 作った人も使う人もうれしくない +心配 開発者 マネージャ 顧客 良いものを 作らないとね 「スゴイ」って 言われたい! 問題が起きない! 期待に合致してる! 安心と 納得! 良いものを作る! ・リスクを下げる ・システム品質を改善 ・計測する(&予測する) ・証拠の提示

Slide 15

Slide 15 text

15 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 今回の考え方でテストって? 問題が起きない! 期待に合致してる! 安心と 納得! 良いものを作る! テストは改善すべき点を 見つけやすくしてくれます。 また、品質関連の フレームワークは 考えるヒントをくれますよ。 例えば…

Slide 16

Slide 16 text

16 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例① 例えば①:状態遷移テスト ※「状態遷移テスト」はテスト技法のひとつの項目とされております。 状態系のバグを検出するには、状態遷移を表現するモデル記法が役に立ちます。 テスト時において状態遷移モデルを検討することで不具合を検出できます。 また、記法を知っていると開発段階から役立てて、最初から混入を防ぐことも。 ↓ BeforeState- Transition→ 【3章:条件 1】蓋センサ ON&水位セ ンサにONが 存在 【3章:条件 2】蓋センサ OFF&全ての 水位  セン サがOFF 沸騰ボタン押 下 エラーを検知 ※条件は【5 章:エラー検 知.】に別途 記載 エラーを検 知 ※条件は【5 章:エラー 検知.】に別 途記載 カルキ抜 き完了 アイドル 沸騰行為 ignore ignore ignore ignore ignore 沸騰行為 ignore アイドル ignore エラー状態 ignore 保温行為 保温行為 ignore アイドル 沸騰行為 ignore エラー状態 ignore エラー状態 ignore ignore ignore ignore ignore ignore

Slide 17

Slide 17 text

17 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! ちょっと Big Word だよね 問題が起きない! 期待に合致してる! テスト、品質の考え方が役立つ例② 例えば②:良いものを作って喜んでもらいたいけれど…

Slide 18

Slide 18 text

18 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! こんな 感じだと OK? 問題が起きない! 期待に合致してる! テスト、品質の考え方が役立つ例② 例えば②:良いものを作って喜んでもらいたいけれど… 正確な数値計算結果、ふるまいを示す システムが成熟して不具合が殆ど発生しない 障害に対して強い、復旧が早い 使用するシステムが安全で怪我をしない 利用者が目的を果たすことが出来る、 短時間で目的を果たすことが出来る 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある

Slide 19

Slide 19 text

19 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! モデルで 分類 してみよー 問題が起きない! 期待に合致してる! テスト、品質の考え方が役立つ例② 例えば②:良いものを作って喜んでもらいたいけれど… 正確な数値計算結果、ふるまいを示す システムが成熟して不具合が殆ど発生しない 障害に対して強い、復旧が早い 使用するシステムが安全で怪我をしない 利用者が目的を果たすことが出来る、 短時間で目的を果たすことが出来る 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある 利用時の 品質特性 ソフトウェア 内部外部 品質特性 狩野モデル ソフトウェア品質モデル (ISO 9126 ver)

Slide 20

Slide 20 text

20 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! ソフトウェア品質モデル(ISO9126ベース) ISO9126ベースの品質モデル ソフトウェアの品質特性モデル (カッコは副特性) 利用時の 品質特性モデル 機能性 (合目的性、正確性、相互運用性、セキュリティ、標準適合性) 信頼性 (成熟性、障害許容性、回復性、標準適合性) 使用性 (理解性、習得性、運用性、魅力、標準適合性) 効率性 (時間効率性、資源効率性、標準適合性) 保守性 (解析性、変更性、安定性、試験性、標準適合性) 移植性 (環境適応性、設置性、置換性、標準適合性) 有効性 生産性 安全性 満足性 ISOの ベストセラー だってさ

Slide 21

Slide 21 text

21 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! ソフトウェア品質モデル(ISO250XX SQuaREベース) ISO250XXベースの品質モデル システム・ソフトウェア品質特性 モデル(カッコは副特性) データ品質モデル 利用時の 品質特性モデル 機能適合性 (機能完全性、機能正確性、機能適切性) 性能効率性 (時間効率性、資源効率性、容量満足性) 互換性 (共存性、相互運用性) 使用性 (適切認識性、習得性、運用操作性、ユーザーエラー防止性、 ユーザーインタフェース快適性(美しさ?)、アクセシビリティ) 信頼性 (成熟性、可用性、障害許容性、回復性) セキュリティ (機密性、インテグリティ、否認防止性、責任追跡性、真正性) 保守性 (モジュール性、再利用性、解析性、修正性、試験性) 移植性 (適応性、設置性、置換性) 固有 正確性、完全性、 一貫性、信憑性、 最新性 固有&システム依存 アクセシビリティ、 標準的合成、 機密性、効率性、 精度、追跡可能性、 理解性 システム依存 可用性、移植性、 回復性 有効性 効率性 満足性 (実用性、信用性、 快感性、快適性) リスク回避性 (経済リスク緩和性、 健康・安全リスク緩和性、 環境リスク緩和性) 利用状況網羅性 (利用状況完全性、柔軟性) 時代に ついて 行こう

Slide 22

Slide 22 text

22 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 問題が起きない! 期待に合致してる! テスト、品質の考え方が役立つ例② 例えば②:良いものを作って喜んでもらいたいけれど… 正確な数値計算結果、ふるまいを示す システムが成熟して不具合が発生しない 障害に対して強い、復旧が早い 使用するシステムが安全で怪我をしない 利用者が目的を果たすことが出来る、 短時間で目的を果たすことが出来る 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある ちょっと 分かった? 機能性->正確性 信頼性->成熟性 信頼性->耐障害性、回復性 利用品質->安全性 利用品質->有効性 利用品質->生産性 9126ベースで スミマセン。 そのうち250XX に更新します。

Slide 23

Slide 23 text

23 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例② 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある 狩野モデル 無いと不満 あるのが 当たり前~ 不充足 充足 不満足 満足 顧客の 満足感 物理的 充足状況 一元品質 当たり前品質 魅力品質 不具合無し 当たり前機能

Slide 24

Slide 24 text

24 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例② 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある 狩野モデル 増えたり 速くなると 満足度UP 不充足 充足 不満足 満足 顧客の 満足感 物理的 充足状況 一元品質 当たり前品質 魅力品質 機能の充実 性能面向上

Slide 25

Slide 25 text

25 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例② 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある 狩野モデル リモコン発明 洗濯乾燥機 i-modeの登場 iPhoneとか? 不充足 充足 不満足 満足 顧客の 満足感 物理的 充足状況 一元品質 当たり前品質 魅力品質 魅力的要素 脅威の新技術

Slide 26

Slide 26 text

26 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例② 当たり前のものが入っている あって欲しい機能がキッチリ入っている 持っているとうれしい、他にない魅力がある 狩野モデル と、いうことで 何を考えるか 少しだけ 見えるかも 不充足 充足 不満足 満足 顧客の 満足感 物理的 充足状況 一元品質 当たり前品質 魅力品質 魅力的要素 脅威の新技術 機能の充実 性能面向上 不具合無し 当たり前機能

Slide 27

Slide 27 text

27 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例 こういった(品質の)フレームワークは、 「もやもやしている」ものを考えたり、 整理するためのきっかけ、参考に出来ます。 また、判断する際の基準や根拠に出来ると共に、 納得感をもたらす※ ことが出来ます。 ※一般的に広まっている規格等であれば、 上手に説明に取り込むことで 偉い人への説明や納得につなげやすいです。 知っておくと 便利~。

Slide 28

Slide 28 text

28 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例 じゃあ、品質の考え方とテストをつなぐには? 検証 Verification Validation 妥当性 確認 利用時の 品質要求 外部 品質要求 内部 品質要求 実現された 利用時品質 実現された 外部品質 実現された 内部品質 利用者 視点 開発者 視点 要求 製品 ニーズ 開発・実現 利用時 品質特性 システム ソフトウェア 品質特性 ※東 基衞氏の資料より

Slide 29

Slide 29 text

29 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方が役立つ例 じゃあ、品質の考え方とテストをつなぐには? 検証 Verification Validation 妥当性 確認 利用時の 品質要求 外部 品質要求 内部 品質要求 実現された 利用時品質 実現された 外部品質 実現された 内部品質 利用者 視点 開発者 視点 要求 製品 ニーズ 開発・実現 利用時 品質特性 システム ソフトウェア 品質特性 ※東 基衞氏の資料より 適切なものを 作っているか? 適切にものを 作っているか?

Slide 30

Slide 30 text

30 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! V&V:検証と妥当性(検証と誤解) 検証と妥当性の考え方を見てみましょう。 ・検証(Verification)と誤解 皆さんご存知のV字モデルの実際は? 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 ※SLCP: Software Life Cycle Process (共通フレーム参考)ベース 【メモ】 V字モデル自体は よく出来たモデルです! 考えずに 使っている 奴等がunk…

Slide 31

Slide 31 text

31 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! V&V:検証と妥当性(検証と誤解) 検証と妥当性の考え方を見てみましょう。 ・検証(Verification)と誤解 皆さんご存知のV字モデルの実際は? 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 ※SLCP: Software Life Cycle Process (共通フレーム参考)ベース (なんでもそうですが) 何も考えないで 使ってしまうことで イマイチな感じに… 【メモ】 V字モデル自体は よく出来たモデルです! ⇒V字の道は思考停止禁止!

Slide 32

Slide 32 text

32 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! V&V:検証と妥当性(妥当性のアナロジー) 検証と妥当性の考え方を見てみましょう。 ・妥当性のアナロジー 完璧に 当たって 信頼性 ばっちり!

Slide 33

Slide 33 text

33 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! V&V:検証と妥当性(妥当性のアナロジー) 検証と妥当性の考え方を見てみましょう。 ・妥当性のアナロジー …あれれ? 的を外したものを確実だと 「検証」しても…? 作って確認もした内容が、 さらに上位の狙い、 目的に合致しているコト!

Slide 34

Slide 34 text

34 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! V&V:検証と妥当性(妥当性のアナロジー) 検証と妥当性の考え方を見てみましょう。 ・妥当性のアナロジー …あれれ? 的を外したものを確実だと 「検証」しても…? 作って確認もした内容が、 さらに上位の狙い、 目的に合致しているコト! 現在の作業は何を 確認しているのか? どの部分の作業を 行っているのか、 意味を考えることが 大事です!

Slide 35

Slide 35 text

35 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! V&V:検証と妥当性(具体例) 例:とあるタイマーの操作における妥当性 Setボタンを1秒追加。長押しで1分が追加される。 ちなみに、長押しで自動カウントアップしない。 ※長押し⇒+1分⇒ボタンを離してもう一度長押し… 使いづらく ないの…? 10 分 00 秒 Set/Clear Start/Stop ※初見で触って「えー!?Σ( ̄□ ̄)」と なるモノはイマイチという感覚かなー。

Slide 36

Slide 36 text

36 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト、品質の考え方 テストとか品質の考え方は沢山あります。 多くの方が興味を持っていただいて、 学んでみると面白いと思います。 ニーズ ⇒妥当性 開発・実現 ⇒検証 マーケット担当、デザイナー、 プロダクトオーナー、 プロジェクトマネージャ、 SE、PG、 テスト担当、品質保証… 学んでみよう 役立てよう!

Slide 37

Slide 37 text

37 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! まとめ その1:テストの必要性と品質の考え方 その1のまとめッ! テストがどうして必要なのか紹介したよ 品質のフレームワークの活用例を紹介したよ ※品質モデル(品質特性、狩野モデル)も! 検証と妥当性をちょっとだけ紹介

Slide 38

Slide 38 text

38 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! その1演習 自分たちのテストを 考えてみよう! (品質特性ベース)

Slide 39

Slide 39 text

39 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストを考えよう!(ソフトウェア品質モデル) ISO9126ベースの品質モデル ソフトウェアの品質特性モデル (カッコは副特性) 利用時の 品質特性モデル 機能性 (合目的性、正確性、相互運用性、セキュリティ、標準適合性) 信頼性 (成熟性、障害許容性、回復性、標準適合性) 使用性 (理解性、習得性、運用性、魅力、標準適合性) 効率性 (時間効率性、資源効率性、標準適合性) 保守性 (解析性、変更性、安定性、試験性、標準適合性) 移植性 (環境適応性、設置性、置換性、標準適合性) 有効性 生産性 安全性 満足性 ひとまず、 ISO9126ベースで 自分たちのテスト を考えてみよう! 会社の話が出たら “忘れよう!”

Slide 40

Slide 40 text

40 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! その2 テストの技術を ざっくり紹介 その1:テストの必要性と品質の考え方 その2:テストの技術をざっくり紹介 その3:テスト技法紹介 ~ワークを添えて

Slide 41

Slide 41 text

41 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 「テスト」の印象って? テストXX、 言葉多いよ… テストレベル テスト技法 テストカテゴリ? テストの印象って如何でしょう? ・用語がたくさんあってなんか難しそう ・どこから勉強しよう…? テストプロセス テストタイプ テスト計画 テスト戦略 テスト観点? テスト設計 テスト対象 回帰テスト テスト目的 単体テスト システムテスト 統合テスト 機能テスト ストレステスト 性能テスト モンキーテスト テスト自動化 探索的テスト …

Slide 42

Slide 42 text

42 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 「テスト」をざっくり分けてみる まずは ざっくりと ひとまずざっくり分けました。(個人的な分類、考え方です) 技術: ・全体を俯瞰、整理する ・個々のテストケースを 効果的、効率的に作り出す プロセス: ・(技術を上手に活用するための) 手順、繋がりを明らかにする (もれなく、等) (説明可能な削減、等) 全体 プロセス 個々 個々 個々 個々 ※個人的な理解、分類、考え方が含まれますので取扱い注意

Slide 43

Slide 43 text

43 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 「テスト」をざっくり分けてみる ひとまずざっくり分けました。(個人的な分類、考え方です) 技術: ・全体を俯瞰、整理する ・個々のテストケースを 効果的、効率的に作り出す プロセス: ・(技術を上手に活用するための) 手順、繋がりを明らかにする (もれなく、等) (説明可能な削減、等) 全体 プロセス 個々 個々 個々 個々 技術部分を 中心に紹介~ ※個人的な理解、分類、考え方が含まれますので取扱い注意

Slide 44

Slide 44 text

44 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 個々 「テスト」で紹介する用語 今回紹介するのは以下の3つ。 全体 プロセス 個々 個々 個々 個々 個々 上2つ、厄介な 用語なのです… テストレベル テスト技法 テストタイプ 全体 プロセス 全体 ※個人的な理解、分類、考え方が含まれますので取扱い注意 全体

Slide 45

Slide 45 text

45 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルの紹介 テスト用語のベースとなるJSTQBでは…? テストレベル:系統的にまとめ、管理していくテストの活動のグループ。 各テストレベルはプロジェクトの特定の責務と対応付けができる。テストレベルの例には、 コンポーネントテスト、統合テスト、システムテスト、受け入れテストがある。 テストレベル テスト技法 テストタイプ 受け入れテスト コンポーネントテスト システムテスト 統合テスト 作業の 段階? いろいろ 分かりづらい 理由が…orz ※大きく2つの考え方 (段階、対象範囲/サイズ) に分かれるのですね… ※個人的な理解、分類、考え方が含まれますので取扱い注意

Slide 46

Slide 46 text

46 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルの紹介 実際の開発プロセスとか、あわせて並べてみたりすると…? 言葉が… どうなん? 受け入れテスト コンポーネントテスト システムテスト 統合テスト JSTQB システムテスト ユニットテスト 統合テスト コンポーネントテスト Beizerさんの定義 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 SLCP2007:Software Life Cycle Process (共通フレーム参考)ベース ※個人的な理解、分類、考え方が含まれますので取扱い注意 テストレベル テスト技法 テストタイプ

Slide 47

Slide 47 text

47 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルの紹介 実際の開発プロセスとか、あわせて並べてみたりすると…? 受け入れテスト コンポーネントテスト システムテスト 統合テスト JSTQB システムXX SW設計 SWテスト SW統合テスト SW構築 Automotive SPICEベース SW要件分析 システムXX ※個人的な理解、分類、考え方が含まれますので取扱い注意 全て同じ 意味を 示して いるの? システムテスト ユニットテスト 統合テスト コンポーネントテスト Beizerさんの定義 テストレベル テスト技法 テストタイプ

Slide 48

Slide 48 text

48 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! プロ セス テストレベル:何が大事か考えてみよう! 実際の開発をV字ベースで考えてみると…? 例)開発時に予定したアプリを実現時に複数のプロセスで実現 本当に V字だけで いける? 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 予定 アプリ 複数の プロセス で実現 プロ セス 予定 アプリ プロ セス プロ セス テストレベル テスト技法 テストタイプ

Slide 49

Slide 49 text

49 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 運用環境 計算機 プロ セス テストレベル:何が大事か考えてみよう! 実際の開発をV字ベースで考えてみると…? 例)開発時に予定したアプリを実現時に複数のプロセスで実現 …テストってどうします? 結合テストで 一気に まとめ結合? 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 予定 アプリ 複数の プロセス で実現 プロ セス 予定 アプリ プロ セス プロ セス プロ セス プロ セス 予定 アプリ プロ セス プロ セス 結合テストを イキナリこの 範囲で実施! テストレベル テスト技法 テストタイプ

Slide 50

Slide 50 text

50 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! プロ セス ビッグ バーン 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 予定 アプリ 複数の プロセス で実現 プロ セス 予定 アプリ プロ セス プロ セス 実際の開発をV字ベースで考えてみると…? 例)開発時に予定したアプリを実現時に複数のプロセスで実現 イキナリ全て組合わせたりしたら、ねぇ… テストレベル:何が大事か考えてみよう! テストレベル テスト技法 テストタイプ 本番環境 計算機 プロ セス プロ セス 予定 アプリ プロ セス プロ セス 結合テストを イキナリこの 範囲で実施!

Slide 51

Slide 51 text

51 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 運用環境 計算機 プロ セス V字に 縛られず 考えて みよう! 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成 予定 アプリ 複数の プロセス で実現 プロ セス 予定 アプリ プロ セス プロ セス プロ セス プロ セス 予定 アプリ プロ セス プロ セス 結合テストを 青⇒赤の範囲で 段階的に実施 実際の開発をV字ベースで考えてみると…? 例)方式設計で複数に分割されるのであれば、結合テストも 分割した各個別の確認⇒全体の確認、という方が良いのでは テストレベル:何が大事か考えてみよう! テストレベル テスト技法 テストタイプ 方式設計 方式設計 方式設計 詳細設計 詳細設計 詳細設計 単体テスト 単体テスト 単体テスト 結合テスト 結合テスト 結合テスト① 結合テスト②

Slide 52

Slide 52 text

52 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:テストは塗り絵?積み木? 実際の開発対象というものを考えてみましょう。 皆様の「単体テスト」や「結合テスト」は何処でしょう? システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ テストレベル テスト技法 テストタイプ

Slide 53

Slide 53 text

53 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:テストは塗り絵?積み木? 実際の開発対象というものを考えてみましょう。 用語にこだわらず考えてみましょう(Googleテスト本では“SML”ですね。) システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ テストレベル テスト技法 テストタイプ

Slide 54

Slide 54 text

54 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:テストは塗り絵?積み木? 実際の開発対象というものを考えてみましょう。 用語にこだわらず考えてみましょう(Googleテスト本では“SML”ですね。) システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ テストレベル テスト技法 テストタイプ

Slide 55

Slide 55 text

55 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:テストは塗り絵?積み木? 実際の開発対象というものを考えてみましょう。 用語にこだわらず考えてみましょう(Googleテスト本では“SML”ですね。) システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ テストレベル テスト技法 テストタイプ

Slide 56

Slide 56 text

56 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:テストは塗り絵?積み木? 実際の開発対象というものを考えてみましょう。 用語にこだわらず考えてみましょう(Googleテスト本では“SML”ですね。) システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ 対象システムに あわせて、 段階的に 「塗りつぶす」 ようにテスト テストレベル テスト技法 テストタイプ

Slide 57

Slide 57 text

57 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:テストは塗り絵?積み木? 実際の開発対象というものを考えてみましょう。 皆様の「単体テスト」や「結合テスト」は何処でしょう? システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ メソッドの確認後、 アプリの範囲で テストしてみたら どうなるでしょうね… テストレベル テスト技法 テストタイプ

Slide 58

Slide 58 text

58 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:テストは塗り絵?積み木? 実際の開発対象というものを考えてみましょう。 皆様の「単体テスト」や「結合テスト」は何処でしょう? システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ 単にV字に従うのではなく、 「なぜ必要か?」を 少し考えてみましょう~。 テストレベル テスト技法 テストタイプ

Slide 59

Slide 59 text

59 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:現実世界は複雑① 実際の開発対象というものを考えてみましょう。 皆様の「単体テスト」や「結合テスト」は何処でしょう? システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ 現実世界はもっと複雑。 ・対象範囲を示す文書がある? ・対象開発での担当組織は何処? ・今回は省略できる部分もあるよね。 …といった部分も考えて 良いモノを作るための効率的・ 最適な形を考えましょう! テストレベル テスト技法 テストタイプ アプリの要求仕様書と機能仕様、 IF仕様はSIの親会社で定義する。 【文書】 XXアプリ要求仕様書 XXアプリ機能仕様書、IF仕様書 アプリ内の実際の構造、 使用するフレームワーク、実現方法は 子会社(ソフトハウス)で決める。 【文書】 アプリ方式設計書、プロセスIF定義…etc

Slide 60

Slide 60 text

60 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベル:現実世界は複雑② 実際の開発対象はさらに広い場合があります。 テストレベル テスト技法 テストタイプ システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ System of Systems 人が使うシステムを 複数集めて、さらに 大きなサービスが 構築されている場合も あったりします。 システム システム システム システムは さらに大きな システムの 一部という例

Slide 61

Slide 61 text

61 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 機能1-1 機能1-2 機能1-3 機能2-1 機能2-2 機能3-1 機能3-2 機能3--3 機能1 機能2 機能3 XX機能 テストレベル:現実世界は複雑③ 単体機能、 複数組合せ… 機能面を 考える場合も 範囲や粒度を 考える必要が ありますよね テストレベル テスト技法 テストタイプ 入力機能 計算機能 入力インタフェースの提供 入力範囲、形式のチェック 登録機能 出力機能 購入個数 購入種類 購入結果 購入機能

Slide 62

Slide 62 text

62 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルの紹介 テストレベルという用語説明は本資料では明示しません。 ※JSTQBありますし、ねー。 ただ、実際に発生しそうな課題を踏まえて 「なぜこのような考え方が必要か?」という点は 頭の中に入れておくと良いかもしれません。 テストレベル テスト技法 テストタイプ 結局… テストレベルって 何なのですかね? まあ、JSTQBありますし… 用語の再定義はしないとして、 どんなことを考えた方が良いか、 って一例を紹介してみました。

Slide 63

Slide 63 text

63 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! その2演習① 自分たちのテストを 考えてみよう! (テストレベル)

Slide 64

Slide 64 text

64 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 入力機能 計算機能 入力インタフェースの提供 入力範囲、形式のチェック 登録機能 出力機能 購入個数 購入種類 購入結果 購入機能 システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ テストを考えよう!(テストレベル) テストレベルの参考になりそうなお絵かきシリーズ みなさんが 行っている 「テストレベル」 を考えてみよう! 会社の話が出たら “忘れよう!” 要求分析 方式設計 詳細設計 SW適格性 確認テスト 結合テスト 単体テスト コード作成

Slide 65

Slide 65 text

65 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト用語のベースとなるJSTQBでは…? テストタイプ:コンポーネント又はシステムをテストするためのテスト活動をまとめたものであり、 たとえば機能テスト、使用性テスト、(回帰テスト)等のように特定のテスト目的に 焦点を当てている。テストタイプは一つ又は複数のテストレベル又はテストフェーズで行われる。 テストレベル テスト技法 テストタイプ 人によって 解釈が違う ですの…orz ※個人的な理解、分類、考え方が含まれますので取扱い注意 活用している例を紹介するので、各自で解釈してください… ・品質特性(ISO9126/250XX)ベース ・Myersのシステムテストカテゴリ ・(個人的ライブラリ)お仕事で行っている テスト実施内容や不具合分析結果を 整理して活用するとか。 テストタイプの紹介

Slide 66

Slide 66 text

66 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプ:例を見てみましょう とりあえず、例を見てみましょう。 ・品質特性 Don’t Think! Feel! ※個人的な理解、分類、考え方が含まれますので取扱い注意 品質特性(ISO9126) 機能性 信頼性 使用性 効率性 保守性 移植性 適切さ 正確性 相互運用性 セキュリティ 成熟度 フォールトレランス 復元力 理解のしやすさ 学習のしやすさ 操作のしやすさ 魅力 時間挙動 資源の活用度 分析のしやすさ 変更のしやすさ 安定性 テストのしやすさ 順応性 インストールのしやすさ 共存力 置換製 テストレベル テスト技法 テストタイプ

Slide 67

Slide 67 text

67 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプ:例を見てみましょう とりあえず、例を見てみましょう。 ・品質特性を活用する例(しんすく流⇒@snsk) http://snsk.hateblo.jp/entry/20120227/p1 使うときには 考えよう! ※シンプルで考えやすく、参考にしやすい方法だと思いますよ~。 テストレベル テスト技法 テストタイプ

Slide 68

Slide 68 text

68 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプ:例を見てみましょう とりあえず、例を見てみましょう。 ・Myersのシステムテストカテゴリ ※注:説明は個人的解釈です。 本内容、結構 役立ちますよ♪ ※ただ、勝手な解釈 で訳してます… 原典も見てね 原典はこちら: http://www.testdesigners.com/systemtesting.html Facility Testing Volume Testing ボリュームテスト 非常に大きなデータを扱うためのテスト。 Stress Testing ストレステスト 非常に大きな負荷、ストレス(瞬間的なデータ量)をかけるテスト。 ボリュームテストと は混同すべきではない。 Usability Testing ユーザビリティテスト 人間的な要素を取り扱う。 学習や人間的要素は計算機の システム上はまだ確立され ていない。 Security Testing セキュリティテスト プライバシーの課題に対しての対処を実施する。 Performance Testing 性能/パフォーマンステスト 答時間、スループット、とある条件における 一定の負荷率などを確認する。 Storage Testing ストレージテスト 時折、記録媒体における課題が発生することがある。 Configuration Testing 設定 コンフィグレーションテスト 様々な設定による問題の発生が存在する。 それぞれのHWデバイスに対して、 最小、 最大設定は確認すべきである。 Compatibility conversion Testing 互換性 コンパチビリティテスト 殆どのプログラムは新規ではなく派生で開発される。 既存のシステムから移行するた めに特別な確認が必要となる。 Installability Testing インストーラビリティテスト いくつかのシステムでは、煩雑なインストール手順が存在する… Reliability Testing 信頼性テスト プログラムは信頼性について 特別な課題をもつ場合もあるので、 特殊な確認が必要 となる。 Recovery Testing リカバリーテスト OSやDB管理システム、遠隔で扱うシステムは、復帰の機能を持つ。 プログラム異常 やHW故障、データのエラーなどに対処する確認が必要となる。 Serviceability Testing サービスアビリティテスト 保守もしくは有用性の特徴を持つ。これらの側面もテストされるべきである。 Documentation Testing ドキュメンテーションテスト システムテストはユーザ向けドキュメントの正しさを確認する。 Procedure Testing 手続きテスト システムは、人々によって実施される手順を含めるものである。 関係者による手続き、 手順を合わせてテストする必要がある。 機能テストを意味する(テストレベルのFunction Testと分けている) テストレベル テスト技法 テストタイプ

Slide 69

Slide 69 text

69 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプ:例を見てみましょう 個人的なライブラリ: 実施したテストや不具合項目を階層的に整理しておくと便利! おまえは 今まで設計した テストの種類を 覚えているのか? テストレベル テスト技法 テストタイプ  仕様書出図後の仕様変更、ユーザ固有の環境、MWとのIF  メモリがあふれた時、ハード的なエラー  想定外、数値、起動、終了、割り込み、タイミング 抜けやすい観点 無し、増加、減少、他に、一部、 逆、異なる、早い、遅い、前、後 詳細 参考:HAZOP リトライ(成功)、再接続(成功)、 規制、 再送、未接続でHHH、 未契約でGGG、 契約外、無応答 リカバリ エラー、異常、NG、例外、XX失敗、 リトライオーバー、 タイムアウト、不正、Reject、 状態不一致、障害、 同期はずれ、 想定外/未知 異常系 信頼性、異常系 ガイドワード 外側、例外、間、対象、類推 そ、れ、あ、た、る 狙いどころ パステスト 構造テスト 競合 状態 カバレッジ 構造 両立性テスト 構成テスト データ互換性テスト 拡張性テスト ストレステスト ロードテスト ユーザビリティテスト 信頼性テスト 回復性テスト ロバストネステスト セキュリティテスト シナリオテスト 機能組合せテスト 機能テスト ※ゆもつよメソッドより 移植性 保守性 効率性 使用性 信頼性 機能性 置換製 共存力 インストールのしやすさ 順応性 テストのしやすさ 安定性 変更のしやすさ 分析のしやすさ 資源の活用度 時間挙動 魅力 操作のしやすさ 学習のしやすさ 理解のしやすさ 復元力 フォールトレランス 成熟度 セキュリティ 相互運用性 正確性 適切さ 手続きテスト ドキュメンテーションテスト サービスアビリティテスト リカバリーテスト 信頼性テスト インストーラビリティテスト 互換性/コンパチビリティテスト 設定/コンフィグレーションテスト ストレージテスト 性能/パフォーマンステスト セキュリティテスト ユーザビリティテスト ストレステスト ボリュームテスト 機能テストを意味する(テストレベルのFunction Testと分けている) Procedure Testing Documentation Testing Serviceability Testing Recovery Testing Reliability Testing Installability Testing Compatibility/conversion Testing Configuration Testing Storage Testing Performance Testing Security Testing Usability Testing Stress Testing Volume Testing Facility Testing 開発プロセス改善の指標となる(改善、予防) リリース後の品質リスクを見積もる(リスク) 要件を満たすことを保証する(保障) 欠陥やバグを検出する(検出) 「バグゼロ」の落とし穴 テストは条件次第 殺虫剤のパラドックス 欠陥の偏在 初期テスト 完全なテストは不可能 テストは欠陥があることしか示せない 一般的なテストの必要性 テストの原則 移植性 保守性 効率性 使用性 信頼性 機能性 テストタイプ一覧 Myersの システムテストカテゴリ 品質特性(ISO9126) 汎用観点 (追加予定) 負荷時使用 シナリオ(シーン) 要求 物理特性 仕様/機能 水温変化の規定 起動、アップデート 競合 状態遷移 ロジック 仕様適合 外観検査 特性/精度 タイミング変化 H/W ポットのシステム ロジック 高温層を用いた加速確認 シナリオ(シーン) 環境 ユースケース 要求 負荷時仕様 連続 振る舞い 水質 負荷時性能 分かりやすさ H/W 要求 シナリオ(シーン) 仕様/機能 H/W性能 レスポンス 状態遷移 シナリオ(シーン) ロジック 環境(電圧、温度、振動・衝撃) 意地悪 タイミング変化 競合 仕様適合(当たり前品質) 量産における品質安定性 長期使用可能な耐久性 ユーザにとっての使用性 安全性 テスコン'12@東京 タイミング、状態信頼性テスト 機能、状態、環境組合せ(無側の確認) 連続テスト 取説・シナリオテスト ユーザビリティテスト 機器性能評価/スペック評価 構造テスト/ユーザ提供の状態確認 機能テスト 安全性テスト 参考:テストタイプ一覧 ノイズのタイミングへの影響 アクティブノイズ 割込み操作、タイミング 動的分析 時系列での検討 ワンプレートスタイルで分析 シナリオベース メモ タイミング、状態信頼性テスト 割込み 操作 ノイズ 静的分析(内部構成) アクティブノイズ 外部環境 使用環境 静的分析(外部構成) ワンプレートスタイルで分析 システム、構成ベース メモ 機能、状態、環境組合せ(無側の確認) CPU メモリ 確認項目 タイマも使用する 沸騰、保温の繰り返し 水を補充しながら連続操作 連続操作 夜沸騰して朝まで保温 連続稼動 家庭環境 コンビニ環境 繰り返しで使用される環境を活用 想定シーン 連続テスト 状態網羅 テストシナリオ タイマ ロックON時 ロックOFF時 構造テスト/ユーザ提供の状態確認 音声、ブザー通知 LED表示 液晶表示 表示 カルキ抜き 節電タイマ機能 タイマ機能 便利機能 エラー検知 ロック機能 安全機能 吐水量 容量 沸騰機能 保温機能 基本機能 機器性能評価/スペック評価 想定ユーザテスト エキスパートレビュー 方法 満足度 分かりやすさ 操作学習 操作認識 主観評価、アンケート 企業イメージへの配慮 ユーザと環境に合せる 操作のしやすさ 理解のしやすさ 見つけやすさ、見易さ 評価基準 温度異常を知る 水位センサ異常を知る 水が満水を知る 水が空になったことを知る 温度を見る 水位を確認する タイマ使用を止める 時間を計る 給湯ロックを解除する 給湯ロックを行う カルキ抜きを行う 沸騰させる モード切替 60℃ 90℃ 98℃ 保温する 給湯する 操作 ユーザビリティテスト 各テストフレーム (システム/ユーザ) 競合表に従った状態、ボタン組合せパターン 競合表 チャタリング想定 状態網羅(遷移表ベース、2スイッチ) タイマボタン エラーの割込みパターン想定 状態網羅(遷移表ベース、2スイッチ) 沸騰行為 状態網羅(遷移表ベース、2スイッチ) 温度制御 状態網羅(遷移表ベース、2スイッチ) 水位メータ チャタリング想定 状態網羅(遷移表ベース、2スイッチ) 解除ボタン チャタリング想定 状態網羅(遷移表ベース、2スイッチ) 保温ボタン チャタリング想定 状態網羅(遷移表ベース、2スイッチ) 沸騰ボタン 状態遷移 構造テスト モード遷移時間 保温制御精度 精度 範囲 サーミスタ水温検出 温度推移 保温時間 保温性能 温度制御 吐水量の確認 給湯量 給湯口 給湯 機器性能評価/スペック評価 条件網羅 ブザー 条件網羅 ポンプ デバイス:出力 条件網羅 サーミスタ 条件網羅 第n水位センサ 条件網羅 満水センサ 条件網羅 蓋センサ デバイス:入力 条件網羅 水位メータ 条件網羅 温度/モード表示窓 条件網羅 保温ランプ 条件網羅 沸騰ランプ 条件網羅 ロックランプ 条件網羅 タイマ残り時間表示枠 操作パネル:出力 条件網羅 給湯ボタン 条件網羅 保温設定ボタン 条件網羅 沸騰ボタン 条件網羅 解除ボタン 条件網羅 タイマボタン 操作パネル:入力 デバイス機能 ヒータへの制御出力の妥当性確認 ヒータ制御 温度判定のロジック確認、パターンによる妥当性検証 温度判定 水位判定の論理組合せ条件網羅 水位判定 エラー発生条件の条件網羅 エラー判定 状態遷移×構造テストで確認 状態網羅 ボタン入力の論理判定条件網羅 保温モード 状態遷移×構造テストで確認 状態網羅 ボタン入力の論理判定条件網羅 ロック/解除 サブ機能 状態遷移×構造テストで確認 状態網羅 タイマ 状態遷移×構造テストで確認 状態網羅 給湯停止 給湯する ふるまいが目的に適合していること ボタン押下時の有則組合せ 給湯 状態遷移×構造テストで確認 状態網羅 ミルク 節約 高温 各モード保温 カルキ抜き 沸騰 アイドル ふるまいが目的に適合していること ボタン押下時の有則組合せ 温度制御 メイン機能 メイン機能、サブ/サポート機能、デバイス機能の3層で検討 仕様->保温モード×機能テスト 仕様->ロック/解除×機能テスト 仕様->温度制御×機能テスト 仕様->給湯×機能テスト 仕様->タイマ×機能テスト 詳細分割(メモ) 機能テスト 蓋状態が獲得できない時の起動時処理確認 状態×ボタンを押しっぱなしにした場合の振る舞い確認(All Pair) 沸騰中に蓋を開けた場合の加熱停止 水が無い、少ない場合の沸騰ボタン押下 温度が上がらないエラー 温度上がりすぎのケース ノイズ、環境 HW故障 HWの異常、故障による要因 無意識 わざと、意地悪 人による要因 検討方法(メモ) 安全性テスト(機器及びユーザ) 各テストフレーム (ソフトウェア/機器) テスコン'13 テストタイプベース

Slide 70

Slide 70 text

70 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプ:何が大事か考えてみよう! テストタイプはテストを何らかの形でグループ化した ようなものに「もやっと」見えました。使えそうな気もします。 …で、結局、何が出来ると良かったでしたっけ? ・不具合を出したくない ⇒抜けが無いよう、過去の不具合を反映…etc ・予算に似合った適切なテストを実施したい ⇒効率的にテストを行いたい、 重要度に応じて優先順位づけしたい…etc ※個人的な理解、分類、考え方が含まれますので取扱い注意 発散しそう なので 別途整理 してみる~ テストレベル テスト技法 テストタイプ

Slide 71

Slide 71 text

71 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプ:何が大事か考えてみよう! ※個人的な理解、分類、考え方が含まれますので取扱い注意 不具合を 出したくない 効率的に テストケース を導出したい 1つの詳細範囲に 集中検討すると 抜けが少ない テストタイプとして グルーピング、 整理して活用する! 過去の不具合を テストの検討に 反映させる ※全ての不具合を 1つずつ検討は 時間がかかる テストの検討時 抜けが無いことを 確認したい 上手なテスト検討、 他の人の検討を整理・ 抽象化して活用する 段階的に分割された 範囲で絞って 検討すると短時間で 考えやすい 全体を段階的に 抜け確認を することが 効果的 予算に似合った 最適なテストを 実施したい 重要度に応じて テストの優先 順位付けをしたい 結局、何が出来ると 良いですかね? テストレベル テスト技法 テストタイプ

Slide 72

Slide 72 text

72 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 抜けなく 効率的に 状況に 応じて テストタイプ:何が大事か考えてみよう! ※個人的な理解、分類、考え方が含まれますので取扱い注意 不具合を 出したくない 効率的に テストケース を導出したい 1つの詳細範囲に 集中検討すると 抜けが少ない テストタイプとして グルーピング、 整理して活用する! 過去の不具合を テストの検討に 反映させる ※全ての不具合を 1つずつ検討は 時間がかかる テストの検討時 抜けが無いことを 確認したい 上手なテスト検討、 他の人の検討を整理・ 抽象化して活用する 段階的に分割された 範囲で絞って 検討すると短時間で 考えやすい 全体を段階的に 抜け確認を することが 効果的 予算に似合った 最適なテストを 実施したい 重要度に応じて テストの優先 順位付けをしたい テストレベル テスト技法 テストタイプ 余談ですが本表記は 「ロジックブランチ」 と呼ばれるものです。

Slide 73

Slide 73 text

73 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 全体が見えたら、 個々の検討に 集中しよう! テストタイプ:何が大事か考えてみよう! 「テスト全体を見る」「個々の抜けも考える」 ※他にも、効率的、状況に応じて…など 両方やらなくっちゃあなんないってのが… ※個人的な理解、分類、考え方が含まれますので取扱い注意 テストの目的(ビジネスの狙い等) テスト全体で考えるコト (テストタイプ群) 機能テスト 性能テスト 設定テスト 環境テスト 運用テスト 信頼性/連続 テストの目的ベース (ビジネスの狙い等を元に)で 優先順位やトレードオフを 考える検討・判断材料に 繋げることも出来ますね。 テストレベル テスト技法 テストタイプ 機能組合せ (無則)テスト 両方やらなくっちゃあ なんないってのが 「幹部」のつらいところだな 覚悟はいいか? オレは出来てる。

Slide 74

Slide 74 text

74 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストタイプの紹介 テストタイプという用語説明も本資料では明示しません。 ※JSTQB、非常に良いですよねー。 こちらも、「なぜこのような考え方が必要か?」 という点で紹介しておきます! で、やっぱり テストタイプも 用語説明は… 用語の説明はやりません。 こちらの資料を読んだ方が、 何かの気づきを見つけて 頂けたのであれば嬉しいっす! テストレベル テスト技法 テストタイプ

Slide 75

Slide 75 text

75 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! その2演習② 自分たちのテストを 考えてみよう! (テストタイプ)

Slide 76

Slide 76 text

76 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 機能テスト ボリュームテスト ストレステスト ユーザビリティテスト セキュリティテスト パフォーマンステスト ストレージテスト コンフィグレーションテスト コンパチビリティテスト インストーラビリティテスト 信頼性テスト リカバリーテスト サービスアビリティテスト ドキュメンテーションテスト 手続きテスト 品質特性(ISO9126) 機能性 信頼性 使用性 効率性 保守性 移植性 適切さ 正確性 相互運用性 セキュリティ 成熟度 フォールトレランス 復元力 理解のしやすさ 学習のしやすさ 操作のしやすさ 魅力 時間挙動 資源の活用度 分析のしやすさ 変更のしやすさ 安定性 テストのしやすさ 順応性 インストールのしやすさ 共存力 置換製 テストを考えよう!(テストタイプ) テストタイプの参考になりそうなお絵かきシリーズ みなさんが 行っている 「テストタイプ」 を考えてみよう! テスト全体で考えるコト (テストタイプ群) 機能テスト 性能テスト 設定テスト 環境テスト 運用テスト 信頼性/連続 機能組合せ (無則)テスト 会社の話が出たら “忘れよう!”

Slide 77

Slide 77 text

77 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ テストレベル テスト技法 テストタイプ テストレベル、テストタイプは何となく紹介しました。 (便宜的に)テストレベルは開発プロセスを考慮して決める対象範囲。 テストタイプは目的に従った(効果・効率を狙った)グループとします。 システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ テスト レベル テストの目的(ビジネスの狙い等) テスト全体で考えるコト (テストタイプ群) 機能テスト 性能テスト 設定テスト 環境テスト 運用テスト 制御パス 信頼性/連続 テスト タイプ

Slide 78

Slide 78 text

78 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ テストレベル、テストタイプは何となく紹介しました。 これらの違い、使い方を具体的に紹介してみると… システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ テストレベル テスト技法 テストタイプ

Slide 79

Slide 79 text

79 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ テストレベル、テストタイプは何となく紹介しました。 これらの違い、使い方を具体的に紹介してみると… システム アプリ アプリ アプリ プロセス プロセス プロセス 機能 機能 機能 ク ラ ス ク ラ ス 機能 クラス メソッド メソッド ・・・ 制御パステスト 境界値テスト パラメータ 組合せテスト 設定テスト ストレージテスト 機能テスト 状態遷移テスト 運用テスト 信頼性テスト テストレベル テスト技法 テストタイプ プロセス間 IF試験

Slide 80

Slide 80 text

80 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ:理由? 例えば…境界値は何処で見ますか? 当然ユニットテストで やりますよー。 画面を含めたシステムテスト でやりますよね。 テストレベル テスト技法 テストタイプ

Slide 81

Slide 81 text

81 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ:理由? 例えば…境界値は何処で見ますか? 発注元 &受け入れテスト担当 当然ユニットテストで やりますよー。 画面を含めたシステムテスト でやりますよね。 テストレベル テスト技法 テストタイプ 開発会社 重複しますが 確実に実施 するでしょうね

Slide 82

Slide 82 text

82 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ:理由? 例えば…境界値は何処で見ますか? 開発会社 発注元 &受け入れテスト担当 抜けそうだし、 あとで喧嘩が 起こりそう… あと、目を見て話そうネ 当然ユニットテストで (開発会社が) やりますよー。 画面を含めたシステムテスト (発注元) でやりますよね。 テストレベル テスト技法 テストタイプ

Slide 83

Slide 83 text

83 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テストレベルとタイプの組合せ:理由? 例えば…境界値は何処で見ますか? 当然ユニットテストで やりますよー。 画面を含めたシステムテスト でやりますよね。 ・組織が分かれているなどがある時に、決めていないと 抜けや重複が発生する可能性があるかも。 ・デザイナーさんや開発に関連するメンバーの意見(心配事等)を 取り込んでプロダクト価値向上への検討に繋がると良いですね! テストレベル テスト技法 テストタイプ

Slide 84

Slide 84 text

84 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト用語のベースとなるJSTQBでは…? テスト設計技法(test design technique): テストケースを作成したり選択したりするための技法 テストレベル テスト技法 テストタイプ 知っておくと 便利ですよ テスト技法は実際に体験しながら 効果を知ってもらうのが良いと思います。 テスト技法の紹介 3章では「テスト技法」を 少し体験しましょう!

Slide 85

Slide 85 text

85 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! まとめ その2:テストの技術をざっくり紹介 その2のまとめッ! 「テスト」のキーワードをざっくり分けてみたよ テストレベルでの課題をプロセスを交えて紹介してみたよ テストタイプの役立つ点を紹介してみたよ テストレベルとテストタイプを用いた検討例を紹介したよ

Slide 86

Slide 86 text

86 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! その2-おまけ テスト手法の紹介 みずのり型 その1:テストの必要性と品質の考え方 その2:テストの技術をざっくり紹介 その3:テスト技法紹介 ~ワークを添えて

Slide 87

Slide 87 text

87 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト手法(ver201401)の紹介 テスト手法を紹介する…予定。 ※現在整理中(20140104現在) 後ほど追加 予定です~。 主にSWアプリが複数ある SWシステムといった範囲で 実際にも使っている部分もある 考え方の例、の予定です。 テスト手法紹介

Slide 88

Slide 88 text

88 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! その3 テスト技法紹介 その1:テストの必要性と品質の考え方 その2:テストの技術をざっくり紹介 その3:テスト技法紹介 ~ワークを添えて

Slide 89

Slide 89 text

89 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法紹介 テスト技法は設計技術の向上にもつながる面白い技術です。 テスト設計を通じて学ぶことが出来ますのでやってみましょう。 テスト技法で紹介するものはこんなものですかね。 ※人によってどれをテスト技法とするか?は違うので注意です。 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル(+それを活用した組合せテスト検討) ・有則の組合せ検討技法 ⇒CEG(原因結果グラフ)とCFD(Cause Flow Diagram) ・無則の組合せ検討技法 ⇒All Pair法、直交表を用いた検討 ・状態遷移図/表 「テスト技法ドリル」 参照(秋山さん著) 全体 個々 個々 個々 個々 全体 個々 個々 全体 個々

Slide 90

Slide 90 text

90 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法紹介:テスト技法ポジショニングMap テスト技法ポジショニングマップが参考に… ※こちらも秋山さん作成です。 http://www.hayst.com/Pages/positioning.aspx ©秋山浩一氏

Slide 91

Slide 91 text

91 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! ソフトウェアテスト技法ドリル参考 ソフトウェアテスト技法ドリルは、 テスト技法を学ぶための 非常に有益な図書になります。 演習問題もついてますので、 とても役立ちますッ! <コンテンツ> 第1章:点に注意を向ける 第2章:線を意識する 第3章:面で逃がさない 第4章:立体で捉える 第5章:時間を網羅する 第6章:多次元の品質 ©秋山浩一氏

Slide 92

Slide 92 text

92 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:三色ボールペン法 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 三色ボールペン法とは? 二色もしくは三色のボールペンを用いて、 赤:客観的に見て重要箇所 (青:客観的に見てまあ、重要な箇所) 緑:主観的に見たツッコミ部分 という分析を行う手法です。 テスト脳を鍛えるのに役立つ! なお、二色でも十分らしいっす。 「何を考えているのか?」 を意識して切り替えながら 考えるコトが 重要みたいですよ!

Slide 93

Slide 93 text

93 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:三色ボールペン法 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 仕様から単純にテストを作ろうとすると、 コピー&ペースト&モディファイという形式になりがちです。 ※なお、この方法はテスト検討を行う価値を下げていると言われる手法です。 実際には、以下のような指摘が出てくれると嬉しいです。 ・実使用時を考えた「なにこれ?」というイマイチの仕様部分 ・(仕様は完璧ではないことが多いため) 仕様内容では不足しているパラメータや論理検討の検出指摘 ⇒「使う視点」にて「実際にテストするには?」を具体的に 考えることで、仕様の不足点や懸念事項が検出できます。 コピー&ペースト&モディファイは、 CPM法とも呼ばれています。 「考えない方法」として、 ワーストプラクティスに 挙げられることが多いです… 参考:http://snsk.hateblo.jp/entry/2013/09/13/122611

Slide 94

Slide 94 text

94 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:同値分割 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 同値分割とは? 入力される可能性のあるデータを(同じ結果が出るなど) グルーピングをしてそれぞれのグループから代表となる値を選び それだけをテストする方法。 ※テストを効率的に削減する、もしくは全体を見たり、 抜けが無いことを考えるための「考え方」を提供します。 全部の値をテストするのは 無理ッ! なので、効率的・効果的な グループ分けが 必要となりますよ。 生 粉落とし ハリガネ バリカタ カタ 普通 やわ 0歳未満 幼児 子供 大人 高齢者

Slide 95

Slide 95 text

95 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:同値分割 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 同値分割とは? よくある不具合としては、有効範囲外のパターンを決めていない、 値の範囲、分割範囲の具体的な値が決まっていない… というようなコトがあると思います。 ※「大人」「子供」だけ仕様に記載されて、範囲記載がない場合とか。 この範囲を明確にして、ロジックを明らかにするとともに テスト実施時の具体的な値を含めて明確にする必要があります。 実際は、設計側の状態遷移を見直して隙間を発見する、 といった「ふるまいの異なるグループを見つける」検討も 「同値分割」と呼んでいる場合もあります。 同値分割は「考え方」を提供しているのですね! 0歳未満 (無効範囲) 幼児 (有効範囲) 子供 (有効範囲) 大人 (有効範囲) 高齢者 (有効範囲) 年齢異常 (無効範囲) -1 0 5 6 15 16 64 65 150 151

Slide 96

Slide 96 text

96 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:境界値分析 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 境界値分析とは? プログラムにて発生しやすい不等号の誤り等を見つけるため、 「境界の値」を活用してテスト項目を作る手法です。 ※同値分割とセットで検討が出来ます&やりやすいですが、 発見できる不具合の性質は同値分割とは異なります。 問題は境界にあり! 不等号の間違いは多いです。 どのようにテストすると この間違いを見つけることが 出来るでしょうか? 0歳未満 幼児 子供 大人 高齢者 -1 0 5 6 15 16 5歳以下の お子様 15歳 未満 15歳 以上 65歳 以上 64 65 6≦X<15? 6≦X≦15?

Slide 97

Slide 97 text

97 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:デシジョンテーブル ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 デシジョンテーブルとは? 入力、出力と組合せパターンを1つの表にまとめたもの。 パラメータの「関連(法則性)」がある複数のパラメータの パターンを整理するために活用。 同値分割した後に本表を用いて組合せを整理すると便利。 表の形式を 活用するだけでも 効果ありです! ※ただし、巨大化に注意 No. 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF ON OFF OFF ON ON OFF OFF ON ON OFF ON ON OFF OFF ON ON OFF OFF ON OFF ON OFF OFF ON OFF ON ON OFF ON OFF ON ON OFF ON OFF ロック続行 レ レ レ レ ロック解除 レ レ レ レ 消灯 レ レ レ レ 点灯 レ レ レ レ 止水 レ レ レ レ 吐水 レ レ レ レ 原因(解除ボタン) 原因(蓋センサON状 態) 結果(ロック状態) 結果(給湯口) 結果(ロックランプ) 原因(給湯ボタン押下 状態) 入力 出力 組合せパターン

Slide 98

Slide 98 text

98 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:同値分割&デシジョンテーブル ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 同値分割/デシジョンテーブルはセットで覚えると便利! 一連の流れとして 身につけておくと 良いっすよ! 0歳未満 (無効範囲) 幼児 (有効範囲) 子供 (有効範囲) 大人 (有効範囲) 年齢異常 (無効範囲) -1 0 5 6 15 16 150 151 入力の同値 を整理 9:59前エラー 追加料金なし 夜間料金 9:59 10:00 21:01以降エラー 17:59 18:00 21:00 21:01 年齢 入場 時間 1.同値分割 を考える 2.同値分割 結果を表に 展開する。 3.組合せの パターンを 設定する

Slide 99

Slide 99 text

99 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:有則の組合せ検討技法(CEG及びCFD) ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 有則の組合せ及びCEG、CFDとは? パラメータの組合せは論理的に表現されます。 これらの論理性を考えるためには図を用いた検討方法が有効です。 CEG(原因結果グラフ)とCFD(Cause Flow Diagram)が有名 CEGでの論理検討例: @CEGTest CEGTestが便利。 drawCFDという ツールもあるよ CEGTest : http://softest.jp/tools/CEGTest/ drawCFD : http://softest.cocolog-nifty.com/labo/drawCFD/

Slide 100

Slide 100 text

100 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:有則の組合せ検討技法(CEG及びCFD) ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 有則の組合せ及びCEG、CFDとは? パラメータの組合せは論理的に表現されます。 これらの論理性を考えるためには図を用いた検討方法が有効です。 CEG(原因結果グラフ)とCFD(Cause Flow Diagram)が有名 CFDでの論理検討例: @drawCFD 安易にデシジョンテーブルを作ると、 巨大化&見づらくなるのですね… こういった技法を併用しましょう! CEGTest : http://softest.jp/tools/CEGTest/ drawCFD : http://softest.cocolog-nifty.com/labo/drawCFD/

Slide 101

Slide 101 text

101 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:同値分割&DT&CFD ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 同値分割/デシジョンテーブルとCFDを活用してみるッ! 0歳未満 (無効範囲) 幼児 (有効範囲) 子供 (有効範囲) 大人 (有効範囲) 年齢異常 (無効範囲) -1 0 5 6 15 16 150 151 入力の同値 を整理 9:59前エラー 追加料金なし 夜間料金 9:59 10:00 21:01以降エラー 17:59 18:00 21:00 21:01 年齢 入場 時間 1.同値分割 を考える 2.同値分割 結果を表に 展開する。 3.組合せのパターン を設定する ※CFDを活用!

Slide 102

Slide 102 text

102 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:無則の組合せ検討技法(直交表、All Pair) ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 無則の組合せ及び直交表、All Pairとは? 「関係ない」と思っていても、複数の機能間で組合せの問題が (1Mラインで16件ほど)発生する可能性があるとのことです。 組合せパターンを「意味ある削減をしつつ、網羅する」技法です。 ※注意:安易にパターンを減らすことが出来る技術ではありません! ラーメンを例とすると… PICTMaster: http://sourceforge.jp/projects/pictmaster/ 麺太さ :太麺、細麺 麺かたさ :ハリガネ、バリカタ、カタ、普通、やわ スープ味 :塩、しょうゆ、みそ、豚骨、 こってり、さっぱり、こっさり スープ濃さ :カラメ、ふつう チャーシュー:チャーシューなし、 チャーシュー普通、チャーシュー多め ネギ :ネギ無し、ネギふつう、ネギ多め アブラ :アブラ有り、無し ニンニク :ニンニク有り、無し 野菜 :野菜なし、野菜少なめ、野菜ふつう、 野菜マシ、野菜マシマシ 情熱 :抜けません! 最初は直交表とAll Pairは 「ほぼ同じ」と考えても OKっす。 こちらのお勧めツールは 「PICTMaster」

Slide 103

Slide 103 text

103 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:無則の組合せ検討技法(直交表、All Pair) ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 ※適用する対象には注意! ちなみに、単体のパラメータの 確認も合わせてやっちゃえ! …と思うかもしれませんが、 個別に単体、論理性(法則性)の ある組合せを分けて試験した方が 効果、効率ともに良いですよ。 PICTMaster: http://sourceforge.jp/projects/pictmaster/ 25,200食 38食 2因子でおk 無則の組合せ及び直交表、All Pairとは? 「関係ない」と思っていても、複数の機能間で組合せの問題が (1Mラインで16件ほど)発生する可能性があるとのことです。 組合せパターンを「意味ある削減をしつつ、網羅する」技法です。 ※注意:安易にパターンを減らすことが出来る技術ではありません! ラーメンを例とすると… ALL組合せ 2因子網羅

Slide 104

Slide 104 text

104 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:無則の組合せとの比較を考えてみよう! ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 以下の傾向、ありますか? 1.単体テストを無則で まとめてやっちまえ! 2.有則のテストも まとめてやっちまえ! 【★注意!!! ★ 】 無則の組合せで何でもできる!と思ってしまう 「まとめてやっちまえ症候群」があるようですが、 無則の組合せで実施すると…? 10個のパラメータ(2因子5つ、3因子5つ)の 単体と無則の組合せのテスト項目数 ※PICTMasterを用いて作成 ■単体項目数 2×5+3×5=25項目 ■PICTでの無則 14項目 A B C D E A-2 B-2 C-1 D-1 … A-1 B-1 C-2 D-2 A-2 B-1 C-1 D-1 項目数は減るけど、 「テストでの狙い」が 分かりづらいので、 不具合発生時の 切り分けが難しい… 〇回帰テストでの実施 ×新規、追加仕様での実施

Slide 105

Slide 105 text

105 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:無則の組合せとの比較を考えてみよう! ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 【★注意!!! ★ 】 無則の組合せで何でもできる!と思ってしまう 「まとめてやっちまえ症候群」があるようですが、 無則の組合せで実施すると…? パラメータA、B、Cの関連性がある場合… 以下の傾向、ありますか? 1.単体テストを無則で まとめてやっちまえ! 2.有則のテストも まとめてやっちまえ! A B C D E A-2 B-2 C-1 D-1 … A-1 B-1 C-2 D-2 A-2 B-1 C-1 D-1 A-1 B-2 C-2 D-2 A-2 B-1 C-2 D-2 A-1 B-2 C-1 D-1 A-1 B-2 C-2 D-2 A-2 B-1 C-2 D-1 A-2 B-2 C-1 D-1 A-1 B-2 C-1 D-2 A-2 B-1 C-1 D-2 A-2 B-2 C-1 D-1 A-1 B-1 C-1 D-1 A-1 B-2 C-1 D-2 Powered by drawCFD

Slide 106

Slide 106 text

106 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! Powered by drawCFD テスト技法:無則の組合せとの比較を考えてみよう! ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 【★注意!!! ★ 】 無則の組合せで何でもできる!と思ってしまう 「まとめてやっちまえ症候群」があるようですが、 無則の組合せで実施すると…? CFDから作成したDTと比較してみると? ※縦横逆なので注意 以下の傾向、ありますか? 1.単体テストを無則で まとめてやっちまえ! 2.有則のテストも まとめてやっちまえ! A B C D E A-2 B-2 C-1 D-1 … A-1 B-1 C-2 D-2 A-2 B-1 C-1 D-1 A-1 B-2 C-2 D-2 A-2 B-1 C-2 D-2 A-1 B-2 C-1 D-1 A-1 B-2 C-2 D-2 A-2 B-1 C-2 D-1 A-2 B-2 C-1 D-1 A-1 B-2 C-1 D-2 A-2 B-1 C-1 D-2 A-2 B-2 C-1 D-1 A-1 B-1 C-1 D-1 A-1 B-2 C-1 D-2 組合せ(A-2/B-2/C-2)の抜け!

Slide 107

Slide 107 text

107 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! テスト技法:状態遷移図、表 ・三色ボールペン法 ・同値分割 ・境界値分析 ・デシジョンテーブル ・CFD/CEG ・直交表、All Pair法 ・状態遷移図/表 状態遷移図、表とは? 状態遷移のパターンは、個別に考えるよりも状態遷移図で 表した方がパターンを確認しやすいです。 表形式にすることで「網羅基準」を考えることも出来ます。 「Nスイッチ」という作成した 状態遷移表ベースで複数回の操作を テストするパターンを導出する 手法もあります。 ↓ BeforeState- Transition→ 【3章:条件 1】蓋センサ ON&水位セ ンサにONが 存在 【3章:条件 2】蓋センサ OFF&全ての 水位  セン サがOFF 沸騰ボタン押 下 エラーを検知 ※条件は【5 章:エラー検 知.】に別途 記載 エラーを検 知 ※条件は【5 章:エラー 検知.】に別 途記載 カルキ抜 き完了 アイドル 沸騰行為 ignore ignore ignore ignore ignore 沸騰行為 ignore アイドル ignore エラー状態 ignore 保温行為 保温行為 ignore アイドル 沸騰行為 ignore エラー状態 ignore エラー状態 ignore ignore ignore ignore ignore ignore 有料ですが、astah*の 品質スイートプラグイン そして、stateMatrix というツールがあります。

Slide 108

Slide 108 text

108 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! なお、テスト技法はワークを行うと すぐに使える、出来るつもりになりますが… ・技法を使うことが出来る範囲を決める ・技法を使うための全体の分割 というような作業も必要です。 「その2」で紹介したような テストレベル、テストタイプなど 上位の分析・検討が重要になります! テストレベル テスト技法 テストタイプ テスト技法を 上手に使おう! テスト技法に対するコメント

Slide 109

Slide 109 text

109 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! まとめ その3:テスト技法紹介~ワークを添えて その3のまとめッ! テスト技法を紹介してみたよ! テスト技法の体験を少しだけやってみたよ! ※テスト技法は実際に勉強したり使ってみて 普段から使えるようになると「武器」になりますよ~

Slide 110

Slide 110 text

110 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! おわりに こうしてみると、「これ、設計の技術では?」という 内容が多いと感じられると思います。 ※単にテストでのやり方としてツールを含めた セットとして提案されているだけだと思います。 テストの技術を知ることで、 設計力も向上できる! …はずです。

Slide 111

Slide 111 text

111 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! おわりに:Beizerのテスト道 フェーズ0 : テストとデバッグには何の差もない。 デバッグ以外にはテストには特別な目的はない。 フェーズ1 : テストの目的は、ソフトウェアが動くことを示すことである。 フェーズ2 : テストの目的は、ソフトウェアが動かないということを示すことにある。 フェーズ3 : テストの目的は、何かを証明することではなく、 プログラムが動かないことによって発生する危険性を ある許容範囲にまで減らすことである。 フェーズ4 : テストは行動ではない。テストをしないで品質の高い ソフトウェアを作るための精神的な訓練である。

Slide 112

Slide 112 text

112 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! おわりに:Beizerのテスト道 フェーズ0 : テストとデバッグには何の差もない。 デバッグ以外にはテストには特別な目的はない。 フェーズ1 : テストの目的は、ソフトウェアが動くことを示すことである。 フェーズ2 : テストの目的は、ソフトウェアが動かないということを示すことにある。 フェーズ3 : テストの目的は、何かを証明することではなく、 プログラムが動かないことによって発生する危険性を ある許容範囲にまで減らすことである。 フェーズ4 : テストは行動ではない。テストをしないで品質の高い ソフトウェアを作るための精神的な訓練である。

Slide 113

Slide 113 text

113 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! おしまい! ご清聴ありがとうございました!

Slide 114

Slide 114 text

114 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! WARAI(関西SWテスト勉強会) 関西検証コレクション(検これ) STAR(テスト自動化研究会) コミュニティとか JaSST SQiP(Software Quality Profession) TEF(Testing Engineer‘s Forum) DevLove関西

Slide 115

Slide 115 text

115 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 参考文献シリーズ JSTQB 書籍:ソフトウェアテストの基礎:ISTQBシラバス準拠(ドロシー・グラハム他 BNN新社) Web:JSTQBシラバス、用語集 http://jstqb.jp/syllabus.html テスト技法関連(全般) 書籍:ソフトウェアテスト技法ドリル―テスト設計の考え方と実際(秋山 浩一氏 日科技連出版社) 書籍:はじめて学ぶソフトウェアのテスト技法(リー・コープランド 日経BP社) テスト技法関連(原因結果グラフ、CEGTest) Web:CEGTest - 原因結果グラフからテスト条件を作成するツール http://softest.cocolog-nifty.com/labo/CEGTest/ Web:ソフトウェアテストの勉強室 - http://softest.cocolog-nifty.com/blog/cegtest.html 三色ボールペン法 書籍:ソフトウェアテストPRESS Vol.2(技術評論社) Web:たまゆら雑記 三色ボールペンで読む仕様書(1) http://d.hatena.ne.jp/mkoszk/20110218/p1 テスト戦略/テストプロセス/テスト全体 書籍:マインドマップから始めるソフトウェアテスト(池田 暁氏、鈴木 三紀夫氏 技術評論社) 書籍:体系的ソフトウェアテスト入門(Rick Craig、Stefan P Jaskiel 日経BP出版センター) ゆもつよメソッド(テストコンサルタントで有名な湯本 剛さんのテスト手法) 書籍:ソフトウェアテストPRESS Vol.10(技術評論社) ※ソフトウェアテストPRESS は「総集編」にてVol1~10の資料が全て含まれており非常にお得です。

Slide 116

Slide 116 text

116 2014/01公開用 みんなに役立つ「テスト」を学んでみよう! 参考文献シリーズ NGT / VSTeP Web:JaSST’06東京 テスト設計におけるモデリングのための記法の提案 http://jasst.jp/archives/jasst06e/pdf/E2-3.pdf Web:JaSST’09東京 テスト観点に着目したテスト開発プロセス(VSTeP)の概要 http://www.jasst.jp/archives/jasst09e/pdf/A7-6.pdf テストアーキテクチャ Web:JaSST’11東京 魁!!智美塾 テストアーキテクチャという考え方の提案 http://jasst.jp/archives/jasst11e.html#project2 ※JaSSTのサイトには、過去の多数の事例や情報がありますのでお勧めです! テスト設計コンテスト Web:テスト設計コンテスト@aster http://aster.or.jp/business/contest.html ISO9126 ソフトウェアの品質特性モデル Web:オブジェクトの広場 機能外要求とISO9126 http://www.ogis-ri.co.jp/otc/hiroba/technical/JavaPress_ISO9126/index.html IEEE829 IEEE Standard for Software and System Test Documantation 書籍:知識ゼロから学ぶ ソフトウェアテスト(高橋 寿一氏 翔泳社) 書籍:現場の仕事がバリバリ進む ソフトウェアテスト手法(高橋 寿一氏、湯本 剛氏 技術評論社) いろいろ参考 Web:電気通信大学 にしさんの研究室 http://qualab.jp Web:kyon_mm(きょんくん)のサイト http://kyon-mm.bitbucket.org/blog/html/index.html