SlideShare a Scribd company logo
1 of 20
「良いテストをするための手法
     と習慣」
加瀬 正樹( WACATE 実行委員会)




                                                      1


      Copyright (C) 2012 WACATE All rights reserved
アジェンダ

•   はじめに
•   良いテストとは
•   良いテストをするための手法
•   良いテストをするための習慣
•   おわりに




         Copyright (C) 2012 WACATE All rights reserved
はじめに

 今回の WACATE では組合せテストがテーマ
 実際はその前にいろいろな作業・検討がある
   計画をする
   分析をする
   戦略を立てる
   etc
 テスト設計 ( の前 ) で意識してほしいこと




            Copyright (C) 2012 WACATE All rights reserved
良いテストとは

 ここでは『良いテスト』をこう考える
  適切なテスト技法を選んでいる
                                                               良い手法
  適切なテスト条件を選んでいる
  良い習慣がある
                                                             いいね!

                                              ステークホルダ
  開発者                                                           いいね!




                                                              エンドユーザ
  テストエンジニア

             Copyright (C) 2012 WACATE All rights reserved
良いテストをするための手法

 良いテストを構成する 2 軸
適切
     良 さそうなテスト                                       良 いテスト
     ・効率 を意識 している                               ・効率 のよいテスト
適     ・的外 れなテスト                                  ・網羅的 なテスト
切      ・ バグが残 る                                ・ ピンポイントなテスト
な
テ
ス    良くないテスト                                      普通のテスト
ト
技     ・非効率なテスト                                       ・堅実なテスト
法     ・的外れなテスト                                      ・非効率なテスト
      ・手ごたえがない                                      ・見えないテスト


              適切なテスト条件(因子・水準)                                  適切

            Copyright (C) 2012 WACATE All rights reserved
ラルフチャートを使った分析

 ラルフチャート
  HAYST 法で使われる分析手法のひとつ。
  すぐにテスト詳細設計に入れない ( 機能 ) 目的を図式化
  して因子や水準をよりよく抽出し、テスト技法を発見
  するチャート。

      ノイズ・アクティブノイズ



        目的機能を
 入力                            出力
         表す図


                                                   ソフトウェアテスト技法ドリル , 秋山浩一 著
        状態変数                                       http://www.amazon.co.jp/dp/4817193603



                Copyright (C) 2012 WACATE All rights reserved
ラルフチャートの使い方
例1
Google ドキュメントを使うためにログインする

                                     ノイズ・アクティブノイズ



                                              目的機能を
                     入力                                    出力
                                               表す図



                                               状態変数




           Copyright (C) 2012 WACATE All rights reserved
ラルフチャートの使い方
例1
Google ドキュメントを使うためにログインする

                                               ④ ノイズ・アクティブノイズ
                                                 ・文字列のブレ ( 大小文
                                                 字)
                    ① 入力                         ・端末 /OS/ ブラウザ
                                                 ・外部からの攻撃 ( 連続失
                                                               ② 出力
           ・メール ( 正しい、                           敗)
                                                  認証成功・
           適当 )
                                                  失敗を判定      ・ログイン成功
           ・ Pass( 正しい、適
                                                    する       ・ログインエラー
           当)
           ・イベント ( ボタン
  出力結果を判定する
           、 Enter)
  ために入力・状態に             ③ 状態変数
    論理関係がある                 ・利用中、停止中
  ⇒  デシジョンテー                ・利用回数 (0 回、 1 回~ )
      ブル


                Copyright (C) 2012 WACATE All rights reserved
テスト技法の発見

 ラルフチャートから必要なテスト技法を見つける
入力       状態変数         ノイズ              アクティブノイ                        出力     テスト技法
                                       ズ
少ない                                                                   少ない    同値分割・境界値
         -            -                -
                                                                             分析
論理関係                                                                  正常系    原因結果グラフ
         -            -                -
                                                                      異常系
( 有則 )                                                                       CFD ・ DT
組合せ                   市場環境             いたずら                           正常系
         Read 中心                                                             HAYST 法・直交
( 無則 )                                                                       表・ペアワイズ
                                                                             状態遷移
-        Read/Write   -                -                              -
論理関係                                                                         機能図式
         Read/Write   -                -                              -
( 有則 )
                      市場環境                                            例外系    シナリオテスト
-        Read/Write                    -
                      極限環境                                            多大     負荷テスト
-        -                             -
異常値                                                                   エラー系   エラー処理テスト
         -            -                -
                                                          JaSST’12 Tokyo チュートリアル , 秋山資料

                          Copyright (C) 2012 WACATE All rights reserved
ラルフチャートを作成するコツ

 処理・プロセスを中央に描く
                                                        WAKATE アプ
    PC 起動→
                                                            リ
   メーラー起動
                                                        条件判定して
   → 受信操作
                                                         参加費表示

 入力⇒出力⇒状態変数⇒ノイズの順番で考える
  状態変数やノイズは暗示的な因子が多い
 例示を考えてみる
  具体的な変数値・シーンを考えて、出力を想像
  有則 or 無則? 処理を妨害するには?
 テスト技法を選択する

             Copyright (C) 2012 WACATE All rights reserved
良いテストをするための習慣

 見直しの習慣
  テスト条件の見直し
  要因・因子の見直し
  粒度・水準・範囲の見直し
  テスト技法の見直し




       Copyright (C) 2012 WACATE All rights reserved
テスト条件の見直し

 テスト技法に従って作ったテスト条件・
               前バージョンでは
  テストケースは妥当か?  Thnderbird で UTF-8
                                                                    の場合にバグが
      プロト    セキュリ     文字コー               使用ソフト
      コル     ティ       ド                                               あった。
                                                                     ちょっと心
 #1   POP    なし       JIS                Thunderbird
                                                                      配・・・
 #2   IMAP   SSL      JIS                Becky!
 #3   IMAP   SSL      UTF-8              Thunderbird
                                                                      L8 直交表に
 #4   POP    なし       UTF-8              Becky!                       割りつけたテスト
 #5   IMAP   なし       EUC-JP             Becky!
 #6   POP    SSL      EUC-JP             Thunderbird
 #7   POP    SSL      Shift_JIS          Becky!
 #8   IMAP   なし       Shift_JIS          Thunderbird
 #9   IMAP   なし       UTF-8              Thunderbird                  追加したテスト
 #1   POP    なし       UTF-8              Thunderbird
 0
                    Copyright (C) 2012 WACATE All rights reserved
要因・因子の見直し

 抽出した因子はどう扱ったか?
    因子を使うか、あるいは剪定するか?
    暗示的な因子は他にないか?
    因子名はわかりやすいか?
                                                ④ ノイズ・アクティブノイズ
                                                  ・文字列のブレ ( 大小文
                                                  字)
                     ① 入力                         ・端末 /OS/ ブラウザ
                                                  ・外部からの攻撃 ( 連続失
                                                                ② 出力
              ・メール ( 正しい、                         敗)
                                                   認証成功・
              適当 )
                                                   失敗を判定      ・ログイン成功
              ・ Pass( 正しい、適
                                                     する       ・ログインエラー
              当)
 この目的機能には ・イベント ( ボタン
 関係ないが、別の 、 Enter)
 目的機能では State              ③ 状態変数
   で使いそう                       ・利用中、停止中
                               ・利用回数 (0 回、 1 回~ )
                 Copyright (C) 2012 WACATE All rights reserved
要因・因子の見直し

 別のラルフチャートが参考にならない?




       Copyright (C) 2012 WACATE All rights reserved
要因・因子の見直し
<メール作成・送信のテスト>

                     ・サイズが大きい ( テキスト , 添付
                     ファイル )
                     ・送信数が多い ( 宛先 , 送信数 )
                     ・アンチウイルスソフト ( なし ,XX
                     社 ,YY 社 )
                     ・メールの内容
・宛先 ( 空 , 知り合い , 手                                                    ・送信成功
入力 )                         起動→新規作                                   ・送信待ち
・題名 ( 空 , 日本語 , 長い
                              成→送信                                    ・送信失敗 ( エラー )
題名 )                                                                  ・送信失敗 ( エラー
・本文 ( 空 ,HTML, 添付あ                                                    メール )
り)
・送信サーバ設定
  ( デフォルト , 別サーバ        ・接続状態 ( オフ ,NB,BB, モバ
設定 )                    イル )
                        ・作成データ ( 新規 , 下書きか
                        ら編集 )




                      Copyright (C) 2012 WACATE All rights reserved
要因・因子の見直し
<メール閲覧・移動のテスト>

                      ・プロトコル (POP3,IMAP4)
                      ・移動先 ( フォルダにドロップ , ド
                      ロップミス )
                      ・アカウント ( 同一アカウント , 別ア                                   回線状態も
                      カウント )
                                                                              影響しそう
・フォルダ選択
  ( 受信箱 , フォルダ 1, ゴ            起動→メー
                                                                       ・閲覧 ( 成功 , 失敗 )
ミ箱 )                           ル閲覧→移
                                                                       ・移動 ( 成功 , 失敗 )
・メール選択 ( 未読 , 既                  動
読 , 新着 )
・クリック ( シングル , ダ
ブル )
・移動方法 (D&D, 右ク           ・フラグ ( 未読 , 新着 , 削除 )
リック )                    ・フォルダ情報 ( 受信箱 , フォルダ 1,
                         ゴミ箱 )
                         ・通数やサイズ
    受信サーバ設定
    は影響しない?


                       Copyright (C) 2012 WACATE All rights reserved
粒度・水準・範囲の見直し

 ズームインとズームアウト
   細かすぎるとテスト工数が増大
   粗すぎると検出漏れのリスク

                                                    テストの目的(目的機
                                                   能)によって適切な粒度
                                                       は異なる
 <パスワード入力>
             その他                    「英字」「数字」は「英数
   数字                               字」にまとめても問題ない
                                         だろう
         記号

   英字                                           「英字」はさらに「大文
                                                字」「小文字」に分けて
                                                   考えるべき
                      シナリオテスト                                 単機能テスト
              Copyright (C) 2012 WACATE All rights reserved
テスト技法の見直し

 別のテスト技法のほうがよくないか?
  論理関係は思ったほど複雑ではない
  組合せは少ないから同値分割で十分
  使いこなせないなら使わない




       Copyright (C) 2012 WACATE All rights reserved
まとめ

• 良いテストをするための手法
 –   ラルフチャートの活用
 –   入力 , 出力 , 状態変数 , ノイズ / アクティブノイズ
 –   テスト技法の選択
• 良いテストをするための習慣
 –   テスト条件の見直し
 –   要因・因子の見直し
 –   粒度・水準・範囲の見直し
 –   テスト技法の見直し



             Copyright (C) 2012 WACATE All rights reserved
おわりに

 ” 適切な”の解はひとつではない




        Copyright (C) 2012 WACATE All rights reserved

More Related Content

What's hot

品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)Yasuharu Nishi
 
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOKKotaro Ogino
 
ユーザーストーリー・マッピング
ユーザーストーリー・マッピングユーザーストーリー・マッピング
ユーザーストーリー・マッピングTarumoto Tetsuya
 
みんなに役立つ「テスト」を学んでみよう!(20140105版)
みんなに役立つ「テスト」を学んでみよう!(20140105版)みんなに役立つ「テスト」を学んでみよう!(20140105版)
みんなに役立つ「テスト」を学んでみよう!(20140105版)Noriyuki Mizuno
 
What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?Yasuharu Nishi
 
エムスリーのQAチームが目指すもの
エムスリーのQAチームが目指すものエムスリーのQAチームが目指すもの
エムスリーのQAチームが目指すものYuki Shiromoto
 
Management 3.0 価値観と文化
Management 3.0 価値観と文化Management 3.0 価値観と文化
Management 3.0 価値観と文化Stefan Nüsperling
 
LINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 PresentationLINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 PresentationYasuharu Nishi
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~Hironori Washizaki
 
研究室ゼミ ガイダンス資料
研究室ゼミ ガイダンス資料研究室ゼミ ガイダンス資料
研究室ゼミ ガイダンス資料kthrlab
 
User storymapping in 10 minutes
User storymapping in 10 minutesUser storymapping in 10 minutes
User storymapping in 10 minutesYasunobu Kawaguchi
 
テストの組み立て方
テストの組み立て方テストの組み立て方
テストの組み立て方kauji0522
 
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜Tetsuya Kouno
 
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
QAアーキテクチャの設計による説明責任の高いテスト・品質保証QAアーキテクチャの設計による説明責任の高いテスト・品質保証
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証Yasuharu Nishi
 
車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれからYasuharu Nishi
 
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査Hironori Washizaki
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所Kotaro Ogino
 
LINE Developer Meetup in Tokyo #39 Presentation (modified)
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 Nishi
 
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -Keizo Tatsumi
 
WACATE2017冬 直交表に触れてみよう
WACATE2017冬 直交表に触れてみようWACATE2017冬 直交表に触れてみよう
WACATE2017冬 直交表に触れてみようMasanori Namiki
 

What's hot (20)

品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
品質を加速させるために、テスターを増やす前から考えるべきQMファンネルの話(3D版)
 
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
 
ユーザーストーリー・マッピング
ユーザーストーリー・マッピングユーザーストーリー・マッピング
ユーザーストーリー・マッピング
 
みんなに役立つ「テスト」を学んでみよう!(20140105版)
みんなに役立つ「テスト」を学んでみよう!(20140105版)みんなに役立つ「テスト」を学んでみよう!(20140105版)
みんなに役立つ「テスト」を学んでみよう!(20140105版)
 
What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?What is quality culture? Is it something tasty?
What is quality culture? Is it something tasty?
 
エムスリーのQAチームが目指すもの
エムスリーのQAチームが目指すものエムスリーのQAチームが目指すもの
エムスリーのQAチームが目指すもの
 
Management 3.0 価値観と文化
Management 3.0 価値観と文化Management 3.0 価値観と文化
Management 3.0 価値観と文化
 
LINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 PresentationLINE Developer Meetup in Tokyo #39 Presentation
LINE Developer Meetup in Tokyo #39 Presentation
 
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
SQuBOKガイドV3概説 ~IoT・AI・DX時代のソフトウェア品質とシステム監査~
 
研究室ゼミ ガイダンス資料
研究室ゼミ ガイダンス資料研究室ゼミ ガイダンス資料
研究室ゼミ ガイダンス資料
 
User storymapping in 10 minutes
User storymapping in 10 minutesUser storymapping in 10 minutes
User storymapping in 10 minutes
 
テストの組み立て方
テストの組み立て方テストの組み立て方
テストの組み立て方
 
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
DeNAの品質を支えるQAの取り組み 〜標準化から実践まで〜
 
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
QAアーキテクチャの設計による説明責任の高いテスト・品質保証QAアーキテクチャの設計による説明責任の高いテスト・品質保証
QAアーキテクチャの設計による 説明責任の高いテスト・品質保証
 
車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから車載ソフトウェアの品質保証のこれから
車載ソフトウェアの品質保証のこれから
 
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
SQuaRE に基づくソフトウェア品質評価枠組みと品質実態調査
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
 
LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)LINE Developer Meetup in Tokyo #39 Presentation (modified)
LINE Developer Meetup in Tokyo #39 Presentation (modified)
 
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
ソフトウェア品質技術の歴史を振り返る - ソフトウェア品質測定を中心に -
 
WACATE2017冬 直交表に触れてみよう
WACATE2017冬 直交表に触れてみようWACATE2017冬 直交表に触れてみよう
WACATE2017冬 直交表に触れてみよう
 

Similar to 20120624 wacate2012 s_イブニングセッション(当日用)

C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?Shinichi Hirauchi
 
Code complete ch22_developper_test
Code complete ch22_developper_testCode complete ch22_developper_test
Code complete ch22_developper_testSho Shimauchi
 
探索的テストから考える現場の工夫(Slideshare)
探索的テストから考える現場の工夫(Slideshare)探索的テストから考える現場の工夫(Slideshare)
探索的テストから考える現場の工夫(Slideshare)Masao Tsuzuki
 
VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張
VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張
VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張Futa HIRAKOBA
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!Kenji Okumura
 
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)Koichi Hamada
 
テストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうテストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうSayaka Nakano
 
研究説明(学部生向け)
研究説明(学部生向け)研究説明(学部生向け)
研究説明(学部生向け)yoshida takayuki
 
ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京
ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京
ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京Koichi Hamada
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナーTomoyuki Sato
 
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日Keizo Tatsumi
 
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処” WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処” Hajime Sasaki
 

Similar to 20120624 wacate2012 s_イブニングセッション(当日用) (13)

C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
 
Code complete ch22_developper_test
Code complete ch22_developper_testCode complete ch22_developper_test
Code complete ch22_developper_test
 
探索的テストから考える現場の工夫(Slideshare)
探索的テストから考える現場の工夫(Slideshare)探索的テストから考える現場の工夫(Slideshare)
探索的テストから考える現場の工夫(Slideshare)
 
VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張
VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張
VDM++仕様を対象としたテストケース自動生成ツールBWDMにおけるペアワイズ法とドメイン分析テストの適用のための機能拡張
 
テストを分類してみよう!
テストを分類してみよう!テストを分類してみよう!
テストを分類してみよう!
 
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
R言語による アソシエーション分析-組合せ・事象の規則を解明する-(第5回R勉強会@東京)
 
テストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おうテストアプローチにデータ分析を使おう
テストアプローチにデータ分析を使おう
 
研究説明(学部生向け)
研究説明(学部生向け)研究説明(学部生向け)
研究説明(学部生向け)
 
ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京
ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京
ベイジアンネットとレコメンデーション -第5回データマイニング+WEB勉強会@東京
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
 
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
 
wacate2012s
wacate2012swacate2012s
wacate2012s
 
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処” WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
WI2研究会(公開用) “データ分析でよく使う前処理の整理と対処”
 

More from Masaki Kase

WACATE2018 夏 原因結果グラフ解説
WACATE2018 夏 原因結果グラフ解説WACATE2018 夏 原因結果グラフ解説
WACATE2018 夏 原因結果グラフ解説Masaki Kase
 
WACATE2018 夏 原因結果グラフ演習問題 解答例
WACATE2018 夏 原因結果グラフ演習問題 解答例WACATE2018 夏 原因結果グラフ演習問題 解答例
WACATE2018 夏 原因結果グラフ演習問題 解答例Masaki Kase
 
WACATE2018 夏 原因結果グラフ演習問題
WACATE2018 夏 原因結果グラフ演習問題WACATE2018 夏 原因結果グラフ演習問題
WACATE2018 夏 原因結果グラフ演習問題Masaki Kase
 
ISPにおける迷惑メール対策と法律
ISPにおける迷惑メール対策と法律ISPにおける迷惑メール対策と法律
ISPにおける迷惑メール対策と法律Masaki Kase
 
WACATE2010w テスト技法ワーク_スライド
WACATE2010w テスト技法ワーク_スライドWACATE2010w テスト技法ワーク_スライド
WACATE2010w テスト技法ワーク_スライドMasaki Kase
 
JaSST'11 Kyushu 配布資料(スライド)
JaSST'11 Kyushu 配布資料(スライド)JaSST'11 Kyushu 配布資料(スライド)
JaSST'11 Kyushu 配布資料(スライド)Masaki Kase
 
JaSST'10 Shikoku 公開資料
JaSST'10 Shikoku 公開資料JaSST'10 Shikoku 公開資料
JaSST'10 Shikoku 公開資料Masaki Kase
 
20101130 南東京iphone開発3
20101130 南東京iphone開発320101130 南東京iphone開発3
20101130 南東京iphone開発3Masaki Kase
 

More from Masaki Kase (8)

WACATE2018 夏 原因結果グラフ解説
WACATE2018 夏 原因結果グラフ解説WACATE2018 夏 原因結果グラフ解説
WACATE2018 夏 原因結果グラフ解説
 
WACATE2018 夏 原因結果グラフ演習問題 解答例
WACATE2018 夏 原因結果グラフ演習問題 解答例WACATE2018 夏 原因結果グラフ演習問題 解答例
WACATE2018 夏 原因結果グラフ演習問題 解答例
 
WACATE2018 夏 原因結果グラフ演習問題
WACATE2018 夏 原因結果グラフ演習問題WACATE2018 夏 原因結果グラフ演習問題
WACATE2018 夏 原因結果グラフ演習問題
 
ISPにおける迷惑メール対策と法律
ISPにおける迷惑メール対策と法律ISPにおける迷惑メール対策と法律
ISPにおける迷惑メール対策と法律
 
WACATE2010w テスト技法ワーク_スライド
WACATE2010w テスト技法ワーク_スライドWACATE2010w テスト技法ワーク_スライド
WACATE2010w テスト技法ワーク_スライド
 
JaSST'11 Kyushu 配布資料(スライド)
JaSST'11 Kyushu 配布資料(スライド)JaSST'11 Kyushu 配布資料(スライド)
JaSST'11 Kyushu 配布資料(スライド)
 
JaSST'10 Shikoku 公開資料
JaSST'10 Shikoku 公開資料JaSST'10 Shikoku 公開資料
JaSST'10 Shikoku 公開資料
 
20101130 南東京iphone開発3
20101130 南東京iphone開発320101130 南東京iphone開発3
20101130 南東京iphone開発3
 

20120624 wacate2012 s_イブニングセッション(当日用)

  • 1. 「良いテストをするための手法 と習慣」 加瀬 正樹( WACATE 実行委員会) 1 Copyright (C) 2012 WACATE All rights reserved
  • 2. アジェンダ • はじめに • 良いテストとは • 良いテストをするための手法 • 良いテストをするための習慣 • おわりに Copyright (C) 2012 WACATE All rights reserved
  • 3. はじめに  今回の WACATE では組合せテストがテーマ  実際はその前にいろいろな作業・検討がある 計画をする 分析をする 戦略を立てる etc  テスト設計 ( の前 ) で意識してほしいこと Copyright (C) 2012 WACATE All rights reserved
  • 4. 良いテストとは  ここでは『良いテスト』をこう考える 適切なテスト技法を選んでいる 良い手法 適切なテスト条件を選んでいる 良い習慣がある いいね! ステークホルダ 開発者 いいね! エンドユーザ テストエンジニア Copyright (C) 2012 WACATE All rights reserved
  • 5. 良いテストをするための手法  良いテストを構成する 2 軸 適切 良 さそうなテスト 良 いテスト ・効率 を意識 している ・効率 のよいテスト 適 ・的外 れなテスト ・網羅的 なテスト 切 ・ バグが残 る ・ ピンポイントなテスト な テ ス 良くないテスト 普通のテスト ト 技 ・非効率なテスト ・堅実なテスト 法 ・的外れなテスト ・非効率なテスト ・手ごたえがない ・見えないテスト 適切なテスト条件(因子・水準) 適切 Copyright (C) 2012 WACATE All rights reserved
  • 6. ラルフチャートを使った分析  ラルフチャート HAYST 法で使われる分析手法のひとつ。 すぐにテスト詳細設計に入れない ( 機能 ) 目的を図式化 して因子や水準をよりよく抽出し、テスト技法を発見 するチャート。 ノイズ・アクティブノイズ 目的機能を 入力 出力 表す図 ソフトウェアテスト技法ドリル , 秋山浩一 著 状態変数 http://www.amazon.co.jp/dp/4817193603 Copyright (C) 2012 WACATE All rights reserved
  • 7. ラルフチャートの使い方 例1 Google ドキュメントを使うためにログインする ノイズ・アクティブノイズ 目的機能を 入力 出力 表す図 状態変数 Copyright (C) 2012 WACATE All rights reserved
  • 8. ラルフチャートの使い方 例1 Google ドキュメントを使うためにログインする ④ ノイズ・アクティブノイズ ・文字列のブレ ( 大小文 字) ① 入力 ・端末 /OS/ ブラウザ ・外部からの攻撃 ( 連続失 ② 出力 ・メール ( 正しい、 敗) 認証成功・ 適当 ) 失敗を判定 ・ログイン成功 ・ Pass( 正しい、適 する ・ログインエラー 当) ・イベント ( ボタン 出力結果を判定する 、 Enter) ために入力・状態に ③ 状態変数 論理関係がある ・利用中、停止中 ⇒  デシジョンテー ・利用回数 (0 回、 1 回~ ) ブル Copyright (C) 2012 WACATE All rights reserved
  • 9. テスト技法の発見  ラルフチャートから必要なテスト技法を見つける 入力 状態変数 ノイズ アクティブノイ 出力 テスト技法 ズ 少ない 少ない 同値分割・境界値 - - - 分析 論理関係 正常系 原因結果グラフ - - - 異常系 ( 有則 ) CFD ・ DT 組合せ 市場環境 いたずら 正常系 Read 中心 HAYST 法・直交 ( 無則 ) 表・ペアワイズ 状態遷移 - Read/Write - - - 論理関係 機能図式 Read/Write - - - ( 有則 ) 市場環境 例外系 シナリオテスト - Read/Write - 極限環境 多大 負荷テスト - - - 異常値 エラー系 エラー処理テスト - - - JaSST’12 Tokyo チュートリアル , 秋山資料 Copyright (C) 2012 WACATE All rights reserved
  • 10. ラルフチャートを作成するコツ  処理・プロセスを中央に描く WAKATE アプ PC 起動→ リ メーラー起動 条件判定して → 受信操作 参加費表示  入力⇒出力⇒状態変数⇒ノイズの順番で考える 状態変数やノイズは暗示的な因子が多い  例示を考えてみる 具体的な変数値・シーンを考えて、出力を想像 有則 or 無則? 処理を妨害するには?  テスト技法を選択する Copyright (C) 2012 WACATE All rights reserved
  • 11. 良いテストをするための習慣  見直しの習慣 テスト条件の見直し 要因・因子の見直し 粒度・水準・範囲の見直し テスト技法の見直し Copyright (C) 2012 WACATE All rights reserved
  • 12. テスト条件の見直し  テスト技法に従って作ったテスト条件・ 前バージョンでは テストケースは妥当か? Thnderbird で UTF-8 の場合にバグが プロト セキュリ 文字コー 使用ソフト コル ティ ド あった。 ちょっと心 #1 POP なし JIS Thunderbird 配・・・ #2 IMAP SSL JIS Becky! #3 IMAP SSL UTF-8 Thunderbird L8 直交表に #4 POP なし UTF-8 Becky! 割りつけたテスト #5 IMAP なし EUC-JP Becky! #6 POP SSL EUC-JP Thunderbird #7 POP SSL Shift_JIS Becky! #8 IMAP なし Shift_JIS Thunderbird #9 IMAP なし UTF-8 Thunderbird 追加したテスト #1 POP なし UTF-8 Thunderbird 0 Copyright (C) 2012 WACATE All rights reserved
  • 13. 要因・因子の見直し  抽出した因子はどう扱ったか? 因子を使うか、あるいは剪定するか? 暗示的な因子は他にないか? 因子名はわかりやすいか? ④ ノイズ・アクティブノイズ ・文字列のブレ ( 大小文 字) ① 入力 ・端末 /OS/ ブラウザ ・外部からの攻撃 ( 連続失 ② 出力 ・メール ( 正しい、 敗) 認証成功・ 適当 ) 失敗を判定 ・ログイン成功 ・ Pass( 正しい、適 する ・ログインエラー 当) この目的機能には ・イベント ( ボタン 関係ないが、別の 、 Enter) 目的機能では State ③ 状態変数 で使いそう ・利用中、停止中 ・利用回数 (0 回、 1 回~ ) Copyright (C) 2012 WACATE All rights reserved
  • 15. 要因・因子の見直し <メール作成・送信のテスト> ・サイズが大きい ( テキスト , 添付 ファイル ) ・送信数が多い ( 宛先 , 送信数 ) ・アンチウイルスソフト ( なし ,XX 社 ,YY 社 ) ・メールの内容 ・宛先 ( 空 , 知り合い , 手 ・送信成功 入力 ) 起動→新規作 ・送信待ち ・題名 ( 空 , 日本語 , 長い 成→送信 ・送信失敗 ( エラー ) 題名 ) ・送信失敗 ( エラー ・本文 ( 空 ,HTML, 添付あ メール ) り) ・送信サーバ設定   ( デフォルト , 別サーバ ・接続状態 ( オフ ,NB,BB, モバ 設定 ) イル ) ・作成データ ( 新規 , 下書きか ら編集 ) Copyright (C) 2012 WACATE All rights reserved
  • 16. 要因・因子の見直し <メール閲覧・移動のテスト> ・プロトコル (POP3,IMAP4) ・移動先 ( フォルダにドロップ , ド ロップミス ) ・アカウント ( 同一アカウント , 別ア 回線状態も カウント ) 影響しそう ・フォルダ選択   ( 受信箱 , フォルダ 1, ゴ 起動→メー ・閲覧 ( 成功 , 失敗 ) ミ箱 ) ル閲覧→移 ・移動 ( 成功 , 失敗 ) ・メール選択 ( 未読 , 既 動 読 , 新着 ) ・クリック ( シングル , ダ ブル ) ・移動方法 (D&D, 右ク ・フラグ ( 未読 , 新着 , 削除 ) リック ) ・フォルダ情報 ( 受信箱 , フォルダ 1, ゴミ箱 ) ・通数やサイズ 受信サーバ設定 は影響しない? Copyright (C) 2012 WACATE All rights reserved
  • 17. 粒度・水準・範囲の見直し  ズームインとズームアウト 細かすぎるとテスト工数が増大 粗すぎると検出漏れのリスク テストの目的(目的機 能)によって適切な粒度 は異なる <パスワード入力> その他 「英字」「数字」は「英数 数字 字」にまとめても問題ない だろう 記号 英字 「英字」はさらに「大文 字」「小文字」に分けて 考えるべき シナリオテスト 単機能テスト Copyright (C) 2012 WACATE All rights reserved
  • 18. テスト技法の見直し  別のテスト技法のほうがよくないか? 論理関係は思ったほど複雑ではない 組合せは少ないから同値分割で十分 使いこなせないなら使わない Copyright (C) 2012 WACATE All rights reserved
  • 19. まとめ • 良いテストをするための手法 – ラルフチャートの活用 – 入力 , 出力 , 状態変数 , ノイズ / アクティブノイズ – テスト技法の選択 • 良いテストをするための習慣 – テスト条件の見直し – 要因・因子の見直し – 粒度・水準・範囲の見直し – テスト技法の見直し Copyright (C) 2012 WACATE All rights reserved
  • 20. おわりに  ” 適切な”の解はひとつではない Copyright (C) 2012 WACATE All rights reserved