スポンサーサイト

  • 2016.05.30 Monday

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

  • 0
    • -
    • -
    • -

    Selenium WebDriverでTextarea要素のテキストデータ取得する際の改行コードについて

    • 2014.09.17 Wednesday
    • 11:02
    Seleniumu WebDriverでTextarea要素のテキストデータを取得するときに、取得方法によって、改行コードがついて来たり、亡くなったりします。
    良く忘れるので、自分メモ。

     

    Visual Studio2012で Selenium を使用する方法

    • 2013.03.15 Friday
    • 13:48
     
    Visual Studio2012にて、Selenium WebDriverを私用し、ブラウザテストする設定手順をまとめます。
    NUnit同様SeleniumもVS2012全エディションで、設定可能なはずです・・・。

    ■NUnitをインストールしよう

    まず最初にNUnitを使用できる状態にしておきます。
    Nunitインストール&設定手順はこちらを参照してください。
    http://kawakawa2000.jugem.jp/?eid=38

     

    ■IE(InternetExplor)の設定変更


    Seleniumから、IEを制御するには、保護モードを無効にする必要があります。
    有効のままだと、Seleniumが動いたとしても「
    Unable to find element with ●●●」エラーが発生します。

    無効の仕方はインターネットオプションからセキリティのタグで行います。
    詳細は、https://code.google.com/p/selenium/issues/detail?id=1795#c19に記載されています。



     

    ■Seleniumをインストール

    ■Selenium用の空新規プロジェクト作成
    ■プロジェクト->NuGetパッケージの管理をクリック
    ■検索ボックスで「selenium」を検索
    ■「Selenium WebDriver」のインストールをクリック
    ■「Selenium WebDriver Support Classes」のインストールをクリック
    ■Seleniumダウンロードページをひらきます。
    ■IE WebDriverをダウンロードします。
    (このとき、32bit、64bit版でダウンロードするファイルは異なります)
    ■ダウンロードしたファイルのZIPを展開します
    ■プロジェクトを右クリック
    ■追加 -> 既存項目をクリック
    ■追加する項目に「IEDriverServer.exe」を指定
    ■追加した「IEDriverServer.exe」を右クリック
    ■プロパティをクリック
    ■出力ディレクトリにコピーの設定を「新しい場合はコピーする」に変更
    ■テスト用ソース記入
    ■テストを実行
    ■テスト実行中
    ■結果表示
    以上で、VS2012でのSelenium設定は完了です。
    注目!!
    注意する点としては、Seleniumを使ったテストは、ユニットテストとは異なり、
    受け入れテストや統合テストの分類になります。
    (API直たたき等で、テスト結果がすぐに取れるのならユニットテストに入れてもいいのかもしれませんが)
    そのため、NUnitライブラリを使用してはいますが、ユニットテストとSeleniumテストを混合しないようにしてください。
    Seleniumテストの遅さに引きずられ、ユニットテストの価値が損なわれることになります。


    追記
    64bitOSで、64bitのIEDriverServer.exeを使うと、文字入力などでえらい時間が掛かります。
    どうもVisualStudioが強制的に32bitとして動作させようとしているようです。
    その為、32bitのIEDriverServer.exeを使う事で、入力が遅い問題は解消する事ができます。
    詳しくはコチラ
    http://stackoverflow.com/questions/8850211/why-is-selenium-internetexplorerdriver-webdriver-very-slow-in-debug-mode-visual

     

    WindowsでSikuli Scriptを使ってみる!

    • 2013.02.12 Tuesday
    • 13:35
    GUIでいろいろゴニョゴニョできてしまうSikuliスクリプトを、Windowsで使用してみた際の備忘録です。
    自マシンはWindows8(64bit)です。

    ■Sikuli Scriptをダウンロード!


    Sikuli本サイトはコチラ



    Sikuliダウンロードはコチラ

    ここで「Sikuli-X-1.0rc3 (r905)-win32.exe」と「Sikuli X r930」(2013.02.12現在)をダウンロードします。






    ■JRE32bit版をインストール

    SikuliはJava6しかサポートしておらず、Java7と64bit版はサポート外との事。
    自マシンは64bitですが、とりあえず進めます。
    ここからWindows32bit版をダウンロードして、インストール。

    また既にJava7がインストール済みの方、この項目を飛ばしてもらってもよいかもしれません。
    bat経由でSikuli起動できる場合があるそうです。
    (すみません未検証)




    ■Sikuliのインストール

    ダウンロードした「Sikuli-X-1.0rc3 (r905)-win32.exe」を起動し、インストール






    インストール指定したPATHに「Sikuli X」フォルダが生成されていることを確認。


    ■Sikuliのバグフィックス適応


    このままSikuliを起動させても、いくつかバグがあるという事なので、バグフィックスを適応させる必要があります。
    最初にダウンロードしていた「sikuli-r930-win32.zip」を展開します。


    ここで「Sikuli-IDE」フォルダの中身がバグフィックスされたexeとなります。
    これらをSikuliをインストールした「Sikuli X」フォルダに上書きします。


    ■Sikuliの起動


    Windows64bit版の場合は、「Sikuli-IDE.exe」から起動するのではなく、「Sikuli-IDE-w.bat」から起動する必要があるとのことです。
    その為、「Sikuli X」フォルダから「Sikuli-IDE-w.bat」を起動します。



    ■Sikuliを使ってみる


    簡単にBingで「Sikuli」を検索してみたいと思います。
    下記がそのSikuliサンプル


    これを実行すると、無事Bingで「Sikuli」を検索した結果画面が表示されました。
    これは便利♪



    WARAI(関西ソフトウェアテスト勉強会) に参加してきました!

    • 2013.01.27 Sunday
    • 03:39
    2013/01/26にWARAI(関西ソフトウェアテスト勉強会) に参加してきました!
    今回はソフトウェアテスト技法ドリルの第4章「立体で捉える」を中心に勉強する内容でした。
    それでは、速記メモ .〆(・ω・` )カキカキ

    ■組み合わせテストは2種類に分ける
    • ドメイン分析組み合わせテスト(3章)
    • 無関係パラメータの組わせテスト(4章)


    ■組み合わせテストの危険例
    • 複数テストで単体テストを複数まとめて行ってしまう
    • 関係性のない、あるものが混じっている
    • ALL Pair/直行表行えば何でも出来る! ⇒ そんなわけない

    ■デモ:ラーメンで組み合わせを考えてみよう
    • 麺の固さ
    • スープの味(種類)
    • トッピング・・・
    • どんどん組み合わせていくと、25200個の組み合わせが出来たとします。
    • これを2因子組み合わせで考えてみます
    • (3因子組み合わせもできます。)
    • PictMasterを使うと、25200→38件になります。


    ■直交表 VS All-pair法

    ■有則
    • 法則性がある

    ■無則
    • 無関係な関係のないパラメータ

    ■禁則
    • 無則間で禁止荒れるパラメータ
    • 無則が多い場合は、それは有則と考えられる


    ■デモ:自身でラーメンの因子・水準を考えてみる
    • 因子や水準が曖昧なので、難しい。
    • ここでラーメンを天下一品など特定品に限定すると理解しやすい。→範囲が狭まるから。
    • 範囲を決めないと、因子は多数出てくる
    • 水準も分割しなくいといけない


    ■デモ:Twitterの使用環境、互換表を考える

    ■デモ:みんな大好き話題沸騰ポットを考える
    • 6W2Hで考えてみる
    • ラフルチャートでも考えてみる
    • いきなりラフルチャートではなく、絵を描くと考えやすい
    • 6W2Hとラフルチャートなどは意地悪テスト≒仕様書に書かれていないバグを見つけるのに有効


    ■まとめ
    理解が足りてない箇所が多く、デモもついていくのがやっとの状態でした。
    時間を見つけては、デモを復習したいと思います。




    Jenkis駆け込み寺に参加してきました

    • 2012.11.27 Tuesday
    • 23:28
    第1回 Jenkins駆込み寺 in 大阪』に参加してきました。

    本日のテーマは、Windows上で走るJenkinsさんがなぜか、
    StyleCopの吐き出す結果XMLを読み込んでくれないのかというのを解決する内容でした。

    ほとんど@odashinsukeさんが考えられた解決策を皆でみる形となりました。
    原因としては、StyleCopが吐き出す結果XMLに記載されているPathをどうもJenkins側が読めてないのが原因ぽいとの事。

    @odashinsukeさんがその場で示して頂いた解決案としては、C#プロジェクトのcsproj内にTaskタグにて、Pathを置換していくという方法。

    そして、@irofさんはその場でJenkinsのプラグインをデバックするという荒業!!
    時間切れで残念ながら根本解決には至りませんでしたが、なかんか濃い2時間でした。

    @odashinsukeさんが当内容をブログで掲載して頂けるということなので、私も再現テストしてみたいと思います。

    ■12/04追記
    irofさんがプラグイン修正されたようです。
    是非本家にリクエストしてほしいな。


    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と似ている印象。ちょっと時間が空いたときに入れてみよう。



    PR

    calendar

    S M T W T F S
        123
    45678910
    11121314151617
    18192021222324
    252627282930 
    << June 2017 >>

    selected entries

    categories

    archives

    recommend

    recommend

    recommend

    recommend

    profile

    search this site.

    others

    mobile

    qrcode

    powered

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