スポンサーサイト

  • 2016.05.30 Monday

一定期間更新がないため広告を表示しています

  • 0
    • -
    • -
    • -

    WARAI(2012/08/25)に参加してきました

    • 2012.08.26 Sunday
    • 04:27
    本日、WARAIに参加してまいりました。

    本日の課題は、
    ・前回の振り返り(第3章、ドメイン分析・デシジョンテーブル 
    ・前回の続き(第3章、原因結果グラフ・CFD法) 
    の主に2点を行いました。

    ■3.1 ドメイン分析テスト
    ・ドメイン分析テストとは、関係性がある複数の変数を同時にテストする方法
     →複数の変数とは?
      例:遊園地の入場料を例にすると、「入園時間」「年齢」が複数の変数に該当

    年齢:子供 年齢:学生 年齢:大人
    入園時間:通常 500円 700円 1000円
    入園時間:午後から 200円 400円 700円


    ・本ではドメイン分析に無効同値を含んでいますが、ドメイン分析に慣れないうちは表が複雑になるので、含めないほうが吉。
     →理由としては、異常系テストは1回(一個)につき1つずつしか確認できない原則から。



    ■3.2 デシジョンテーブル
    ・プログラム中のifやswithは全てデシジョンテーブルにできる
    ・ここで、演習問題
     『インターネット商品の配送料について考える。
      条件1:下記の条件を満たす場合は送料が無料
          ・品物が書籍
          ・合計金額が1500円以上
          ・配送先が離島以外

      条件2:ただし、品物が書籍でなくても合計金額3000円以上であれば送料無料


     ここで自分がやったことは、

     (1)表にするための変数を考える
       →品物・・・書籍、書籍以外
       →合計金額・・・1500未満、1500〜2999、3000円以上
       →配送先・・・離島、離島以外

    よって、品物(2)×金額(3)×配送先(2)=12ケースの表ができると予想。

     (2)出力(≒結果)を考える
       →配送料・・・無料、有料


     (3)デシジョンテーブルを考える
      
    品物 書籍 書籍以外 書籍 書籍以外 書籍 書籍以外
    金額 1500未満 1500未満 1500〜2999 1500〜2999 3000以上 3000以上
    配送先 離島 離島 離島 離島 離島 離島
    配送料 有料 有料 有料 有料 有料 有料

    品物 書籍 書籍以外 書籍 書籍以外 書籍 書籍以外
    金額 1500未満 1500未満 1500〜2999 1500〜2999 3000以上 3000以上
    配送先 離島以外 離島以外 離島以外 離島以外 離島以外 離島以外
    配送料 有料 有料 無料 有料 無料 無料


     ここまで書いて時間切れ、条件の圧縮まではできませんでした。
     (※圧縮とは・・・列をまとめて総規則数を減らすこと)


     (4)実際にデシジョンテーブルの圧縮をしてみる
      圧縮するときの大前提として、処理する順番・パラメータが決まっていること!
      今回の演習問題では大丈夫ですが、割と忘れがちなので改めて強調。

      さて圧縮ですが、チェックポイントとしては、
      ・同じ結果(今回は配送料)のなかで、異なるパラメータ列を洗い出し
      ・結果に影響を与えない個所は「−」と表記
      実際に圧縮した結果はこちら
    品物 書籍以外 書籍
    金額 1500未満 1500〜2999 1500〜2999 3000以上
    配送先 離島 離島以外 離島以外
    配送料 有料 有料 有料 無料 無料


     
    ここで答え合わせがあったのですが、何と演習問題自体に罠が仕込まれていたのでした!
     
    その罠というのは、3000円以上で配送先が離島の場合、配送料が有料・無料どちらになるのか演習問題文では記載されていませんでした。
    つまり、上記のデシジョンテーブルも該当箇所については思い込みで記載&圧縮していたことになります。
    思い違いのまま圧縮作業をしてしまっては、必要なチェックテストパターンを圧縮で消してしまう可能性があります。

    つまりデシジョンテーブルにおいては、
    ・慣れていても行き成り圧縮した表はつくらない!
    ・デシジョンテーブルは仕様の確認(漏れチェック)にも使える!
    ということになります。


     (5)プログラムを書いてみよう!
      気を取り直して、デシジョンテーブルからプログラムを書いてみます。
      仕様が未確定だった罠である「3000円以上」&「離島」は配送料:有料とします。

    if(合計金額>=3000)
    {
     if(配送先==離島) return 配送料:有料
     else        return 配送料:無料
    }
    else
    {
     if(品物==書籍)
     {
       if(合計金額>=1500)
       {
        if(配送先==離島以外)
        {
           return 配送料:無料
         }
       }
     }

     return 配送料:有料
    }


    本来であれば、デシジョンテーブルで作成した表からTDDにてプログラムするのが正しいと思います。

    (6)CEGTestを使ってみよう
    演習問題からCEGTestツールを使って、原因結果グラフやデシジョンテーブルを作成してみます。
    CEGTest



    まだ使い方に慣れていないため、作成するのに戸惑いましたが、慣れれば便利なツールになると思います。


    (7)CFD法で書いてみよう
     こんどは演習問題をdrawCFDを使って描いてみます。


    こちらも使い方に癖があり、慣れるまで時間がかかりそう。


    ■因子と水準について
    テスト業界では、パラメータ(変数)のことを「因子
    パラメータがとり得る値のことを「水準」と呼ぶらしい。


    ■SourceMonitorのツール紹介

    ・これはソースの構造解析ツール(静的解析とは異なります)
    ・プログラムの複雑さを測定します。
    ・TDD視点で見ると、複雑度が高い場合、クラス分割を考えることができます。
    ・しかしこのツールでは関数間の複雑度合は測定できない。


    ■PictMasterのツール紹介

    ・組み合わせ一覧を作成するツール
    ・基本的には無束どうしの組み合わせテスト
    ・指定した2因子間だけは100%組み合わせを行い、指定外はランダムで組み合わせ指定という機能をもつ。
    ・つまり注目したい組み合わせは100%組み合わせテストを行い、注目しなくてもよい個所はそれなりにテストという事が可能となる。
    ・また因子間の制約事項も指定はできるが、制約がある=有束となるので、その場合は該当因子どうしの組み合わせテストをおこなうべき


    ■まとめ

    ・デシジョンテーブルは仕様書チェックにも使える
    ・そろそろ、日本語の仕様書からテスト設計を起すのはやめて、ツールなどから行うようにしよう


    ■おまけ
    redmineというオープンソースのプロジェクト管理ソフトウェアを教えてもらいました。

    ぱっとみたところ、チケット型タスク管理システムらしい。
    JIRAと似ている印象。ちょっと時間が空いたときに入れてみよう。



    スポンサーサイト

    • 2016.05.30 Monday
    • 04:27
    • 0
      • -
      • -
      • -
      コメント
      コメントする








          
      この記事のトラックバックURL
      トラックバック

      PR

      calendar

      S M T W T F S
        12345
      6789101112
      13141516171819
      20212223242526
      2728293031  
      << August 2017 >>

      selected entries

      categories

      archives

      recommend

      recommend

      recommend

      recommend

      profile

      search this site.

      others

      mobile

      qrcode

      powered

      無料ブログ作成サービス JUGEM