はてなブックマーク - RTX810とWindows7の標準VPNクライアントでL2TP/IPSecを利用する
    このエントリーをはてなブックマークに追加

    Fusic 平田です。
    ルータ買い換えの夏、というわけではないんですが。
    YAMAHA RTX810でL2TP/IPSecを試してみました、という話です。
    一旦社内ネットワークでオレオレVPNを組んで、接続できるかどうかを実験。

    YAMAHAの公式に
    > ※Microsoft社製Windows OSのL2TP/IPsec接続はサポートしません。
    と書かれててどうしたもんかと思ったのですが、なんとか接続できました。

    参考にしたのは以下。

    www.rtpro.yamaha.co.jp/RT/docs/l2tp_ipsec/index.html#setting3

    shirangana.info/115/?page_id=174

    support.microsoft.com/kb/926179/ja

    とりあえずルータ側の設定晒し。
    上位ルータ: 172.16.0.1
    WAN側ルータIPアドレス: 172.16.0.101/16
    LAN側ルータIPアドレス: 192.168.100.1

    # RTX810 Rev.11.01.06 (Tue Apr 10 07:09:02 2012)
    # MAC Address : 00:a0:de:80:a0:0e, 00:a0:de:80:a0:0f
    # Memory 128Mbytes, 2LAN
    # main:  RTX810 ver=00 serial=S3K013283 MAC-Address=00:a0:de:80:a0:0e MAC-Addre
    ss=00:a0:de:80:a0:0f
    # Reporting Date: Aug 9 11:46:20 2012
    administrator password *
    login user sshuser *
    ip route default gateway 172.16.0.1
    ip keepalive 1 icmp-echo 10 5 192.168.100.1
    ip lan1 address 192.168.100.1/24
    ip lan1 proxyarp on
    ip lan2 address 172.16.0.101/16
    ip lan2 secure filter out 101099
    ip lan2 nat descriptor 200
    provider lan1 name LAN:
    provider lan2 name PRV/0/1/0/0/0/0:
    pp select anonymous
     pp bind tunnel1
     pp auth request mschap-v2
     pp auth username l2tp_user *
     ppp ipcp ipaddress on
     ppp ipcp msext on
     ip pp remote address pool dhcp
     ip pp mtu 1258
     pp enable anonymous
    tunnel select 1
     tunnel encapsulation l2tp
     ipsec tunnel 1
      ipsec sa policy 1 1 esp aes-cbc sha-hmac
      ipsec ike keepalive log 1 off
      ipsec ike keepalive use 1 off
      ipsec ike nat-traversal 1 on
      ipsec ike pre-shared-key 1 *
      ipsec ike remote address 1 any
     l2tp tunnel auth off
     l2tp tunnel disconnect time off
     l2tp keepalive use on
     ip tunnel tcp mss limit auto
     tunnel enable 1
    nat descriptor type 200 masquerade
    nat descriptor address outer 200 primary
    nat descriptor masquerade static 200 1 192.168.100.1 udp 1701
    nat descriptor masquerade static 200 2 192.168.100.1 udp 500
    nat descriptor masquerade static 200 3 192.168.100.1 esp
    nat descriptor masquerade static 200 4 192.168.100.1 udp 4500
    ipsec auto refresh on
    ipsec transport 1 1 udp 1701
    dhcp service server
    dhcp server rfc2131 compliant except remain-silent
    dhcp scope 1 192.168.100.2-192.168.100.191/24
    dns server 172.16.0.1
    dns private address spoof on
    l2tp service on
    httpd host lan1
    sshd service on
    sshd host key generate *

    ルータ側設定の要点は以下の通り。

    # RTX810 Rev.11.01.06 (Tue Apr 10 07:09:02 2012)

    ファーム上げないとNATトラバーサル使えないので。

    ipsec ike nat-traversal 1 on

    NATトラバーサルを有効に。
    # GUIの管理画面では設定できないので、コマンドで。

    nat descriptor masquerade static 200 4 192.168.100.1 udp 4500

    NATトラバーサルではESPの代わりにUDPの4500番を使用するので、IKEで使われるUDPの500番と同時にUDPの4500番を静的IPマスカレードで設定。

    クライアント(Win7)側も、NATトラバーサルを有効に。

    support.microsoft.com/kb/926179/ja

    を参考にして、「AssumeUDPEncapsulationContextOnSendRule」を2としたレジストリを追加して再起動。

    あとは普通にWin7のVPN接続設定でL2TP/IPSecを選んだらうまくいきました。



    ついでにiPhoneも。



    まだこれからいろいろ手を加えていく予定ですが、とりあえず何かの参考になれば幸いです。まる。

      はてなブックマーク - ドメイン分析テスト
      このエントリーをはてなブックマークに追加

      こんにちは。耳鼻科にいって初めて自分の声帯の画像をみたフクダです。声帯なかなか面白いです。

      前回までSeleniumIDEについて書いてきましたが、そろそろSeleniumでやりたいことの行き着く先がJavascriptになってしまいましたので 今回は新しく知ったテスト技法について書こうと思います。

      テスト技法って何?


      そもそもテスト技法とは何でしょうか?プログラマであれば、無意識に行っていたりします。
      例えば、境界値分析というとピンとこられる方もいらっしゃるかもしれません。
      例えば、テストが60点以上であれば合格 という条件があるときに

      テストケース1)60点のときに合格になること
      テストケース2)59点のときに不合格になること

      についてテストする。
      60点という境界線をみて、その内側と外側をテストする事を境界値分析テストになります。

      プログラムを作るにあたって、無意識にテストケースを考えられるようになっていると思います。
      このようにテストを行うにあたっての技法は数多くあり、要所に応じて適切なテスト技法を使うことになります。
      この適切なテスト技法を使えるかどうかで、無駄なテストを省くことができたり、必要なデータを取ることができると思います。
      私自身、テスト技法についての学習は全くしてこず、今回初めて学習を行って知った技法がありましたので紹介します。

      ドメイン分析テスト

      ドメイン分析テストとは、JSTQB(Japan Software Testing Qualifications Board)に出てくる用語ではありませんが、関係性がある複数の変数を同時にテストする方法です。
      on, off, in, out という用語とその概念を使って、テスト数を減らすことができます。

      ・on ・・・着目している境界値
      ・off・・・onポイントに隣接する境界線
      ・in・・・ドメイン(定義値)の内側の値
      ・off・・・ドメイン(定義値)の外側の値

      となります。

      例えば、x>10という条件があった場合に
      on ・・・10
      off・・・11
      in ・・・例:15
      out・・・例:5
      となり、必ずしもonが条件を満たす値になるとは限らない。という点が私の発想にありませんでした。

      引用元 ソフトウェアテスト技法ドリル/秋山浩一 著
      今回はコチラの本で勉強させていただきました。

      本書ではもっとわかりやすく図や表を起こすことにより、テスト内容を明白化するなどの説明があり、テスト技法を学ぶよい本だと思います。

      この本はTEFというソフトウェアテスト技術者交流会のMLで知った本なのですが、近日福岡市内でこの本を使って勉強会をしようという動きがあります(だから買ったのだけど・・)
      私も是非参加しようと思っているので、興味のある方はTEFの参加、テスト勉強会の参加してみてはいかがでしょうか?

        はてなブックマーク - Selenium IDEで連番をjavascriptでつける
        このエントリーをはてなブックマークに追加

        こんにちは。フクダリナです。
        連投になりますが、今回は以前からずっとやりたくてもいまいちやり方を分かっていなかったSeleniumでの連番での登録方法です。

        Selenium IDEで連番をふるには

        Selenium IDEだけで連番を振ろうと思うと、手でせこせこ番号を入れる方法しか思いつきませんでした。
        どうにかして動的に番号を振れるはずだとは思っていましたが、録音でできるものではなく。
        Javascriptを使って登録します。

        今回使うコマンドはコチラ
        『getEval』

        前回のinnerHTMLを操作するときと同じコマンドですね。

        getEvalでJavascriptの操作が可能になります。

        <tr>
        	<td>getEval</td>
        	<td>i=1;</td>
        	<td></td>
        </tr>

        これで変数iに1をセットすることになります。いたってシンプル。

        変数の保持期間ですが、Seleniumオブジェクトに保持されるようです。
        ですので、test caseをまたごして使用することも可能ですし、初期値セットを通さなければ1回目のテストの続きの番号を2回目のテストで使用することが可能になります。

        連番を振りながら登録してみる

        実践してみます。
        いつもはページネーションのデータ作るときに使っているのですが、公開できる画面がありませんので、前々回書いたSelenium IDEでスクリーンショットをとりながらテストするを改良して、連番のファイル名でスクリーンショットを保存します。

        改良点は以下
        ・storeしていたファイルパスをjavascriptの変数に変更

        <tr>
        	<td>getEval</td>
        	<td>file_path="C:\\test\\";</td>
        	<td></td>
        </tr>

        ・固定値だったファイル名をjavascriptでインクリメントした変数を2桁ゼロパディングした名称に変更

        <tr>
        	<td>captureEntirePageScreenshot</td>
        	<td>javascript{file_path+ ( "0"+i).slice(-2) + ".jpg";}</td>
        	<td>background=#FFFFFF</td>
        </tr>

        スクリーンショットを以下の3回撮るようにします。
        1.ZENPREのTOPページを開いたとき
        2.ログイン画面ページを開いたとき
        3.エラー画面表示時

        完成したものがコチラ。

        <table border="1" cellspacing="1" cellpadding="1">
        <thead>
        <tr>
        <td colspan="3">New Test</td>
        </tr>
        </thead>
        <tbody>
        <!--==ZENPRE使ってテスト==-->
        <!-- 変数セット-->
        <tr>
        	<td>getEval</td>
        	<td>i=1;</td>
        	<td></td>
        </tr>
        <!-- 画像保存パスをJavascript側で指定-->
        <tr>
        	<td>getEval</td>
        	<td>file_path="C:\\test\\";</td>
        	<td></td>
        </tr>
        <!-- Zenpreのページを開きます-->
        <tr>
        	<td>open</td>
        	<td>http://zenpre.net/</td>
        	<td></td>
        </tr>
        <!--1回目:スクリーンショットを撮ります-->
        <tr>
        	<td>captureEntirePageScreenshot</td>
        	<td>javascript{file_path+ ( "0"+i).slice(-4) + ".jpg";}</td>
        	<td>background=#FFFFFF</td>
        </tr>
        <!--インクリメント-->
        <tr>
        	<td>getEval</td>
        	<td>i=i+1;</td>
        	<td></td>
        </tr>
        <!-- ログインをクリック-->
        <tr>
        	<td>clickAndWait</td>
        	<td>css=#no_logined_header > a > img.fright</td>
        	<td></td>
        </tr>
        <!--2回目:スクリーンショットを撮ります-->
        <tr>
        	<td>captureEntirePageScreenshot</td>
        	<td>javascript{file_path+ ( "0"+i).slice(-4) + ".jpg";}</td>
        	<td>background=#FFFFFF</td>
        </tr>
        <!--インクリメント-->
        <tr>
        	<td>getEval</td>
        	<td>i=i+1;</td>
        	<td></td>
        </tr>
        <!-- test/testでログイン-->
        <tr>
        	<td>type</td>
        	<td>login</td>
        	<td>test</td>
        </tr>
        <tr>
        	<td>type</td>
        	<td>password</td>
        	<td>test</td>
        </tr>
        <tr>
        	<td>clickAndWait</td>
        	<td>//input[@type=&#039;image&#039;]</td>
        	<td></td>
        </tr>
        <!-- エラーメッセージが正しく表示されているか確認-->
        <tr>
        	<td>verifyTextPresent</td>
        	<td>ログインID、または、パスワードが違います</td>
        	<td></td>
        </tr>
        <!--3回目:スクリーンショットを撮ります-->
        <tr>
        	<td>captureEntirePageScreenshot</td>
        	<td>javascript{file_path+ ( "0"+i).slice(-4) + ".jpg";}</td>
        	<td>background=#FFFFFF</td>
        </tr>
        </tbody>
        </table>

        実行すると、C:\testに3つの画像ファイルが保存されます。

        連番がふれるというだけで、だいぶテストケースを作る手間がかからなくなりますので、ぜひご活用ください。