Subscribed unsubscribe Subscribe Subscribe

Shibuya.jsに行ってきた

JavaScript 勉強会

Test.jsを聴きにいきました。
http://shibuyajs.org/articles/2011/02/28/test
Shibuya.js - Test.js : ATND
以下、自分メモ。敬称略です。

var memo = {
    main_talk: [{
        title: 'さいきんのCUIでのJavaScriptテスト',
        speaker: 'hotchpotch',
        contents: [ // 遅刻したので前半聴けず…,
            'Johnson: SpiderMonkeyをRubyから JSからRubyをつかえる',
            '応用 Envjs, JSDefferedのあわせ技',
            '思った以上に使える ふつうのJavaScriptなら動く',
            'エンドツーエンドテスト 全体の振る舞いをテストしたい',
            'HTMLの取得、Ajaxの実行',
            'Capybara: Ruby CUIからAjax混みのテストがかける',
            'rspecのフィルターで実現',
            '低コストが魅力, 完璧ではない を前提に絞る',
            {
                phantomjs: [
                    'QTWebKit',
                    'なんか速い',
                    'Jasmine, CUI Runner',
                    '起動中にアプローチできない',
                    'capybara-phantomjsができるようになるといいかも?',
                ]
            },
            'JS Test そこそこやりやすくなってる が 決定打はまだない',
            'どれだけ簡単にテストが書けるようになるか が鍵'
        ],
        url: 'http://d.hatena.ne.jp/secondlife/20110309/1299597318'
    }, {
        title: 'How I stopped worrying about and loved DumpRenderTree',
        speaker: 'omo',
        contents: [
            'webkitのテストについて',
            'DumpRenderTree: コマンドラインプログラム',
            '引数にHTMLを食わせるとRenderツリー(レイアウト情報)をDumpする',
            '各OSで期待値と比較',
            '昔はレンダリングが主だったかもしれないが 最近はできることが増えてる',
            ['読みにくい', '壊れやすい', 'メンテ大変'], 'なテストたち', {
                '例': [
                    'レイアウトと関係ないものもDump',
                    '少し手を入れると一気にテストが動かなくなる',
                    'overspec 本来比べる必要ないものまで比較している',
                    'いつも赤いとよくない 割れ窓理論',
                ]
            },
            'portごとに無視するテストの一覧を保持しておく',
            'Gardener for Chromium 当番制',
            'Reftests: Mozzila由来 ブラウザテストの本命?'
        ],
        url: 'http://www.slideshare.net/omododgsonorg/2011-0302drt'
    }, {
        title: 'サイボウズLiveの開発を支えるSelenium',
        speaker: 'kazfuku',
        contents: [
            'サイボウズLive',
            '構成', ['Apache', 'Tomcat', 'MySQL'],
            'Selenium', 'jUnit + Selenium RC',
            'Selenium IDEは保守がやばい',
            'Hudsonで自動化 1日2回動く',
            'JavaScriptのテストもできるよ',
            'Testにより工数は1.2~1.3倍, デグレ防げる',
            '1回のテストが4時間弱',
            'Firefoxの起動が7秒 -> テストスイートごとに使い回すように',
            'DBのロールバックが大変 test終了後に戻さないといかん',
            '最初にバックアップを取り 終了後にリストア', '-> 6時間…!',
            'マシンを替えて速くなったw',
        ] // なんにせよ、Testを継続的に行うのは大事だと思った
    }, {
        title: 'JS テスト放浪記',
        speaker: 't-wada',
        contents: [
            'テストフレームワーク遍歴', // すごい変更数
            '書法', ['xUnit', 'Test::Simple', 'Spec', 'expectations'],
            'JSpecはもはやJavaScriptじゃなくなったw',
            '出力形式', ['Web画面(QUnit)', 'progress', 'TAP', ''],
            't_wadaさんはTAP形式を選んだ',
            '実行母体', ['実ブラウザ', 'headless env'],
            'CUIつかいたいので 気合いで! phantomjs(NEW!)',
            ['書法は自分の好きなものを','実行母体は不安とスピードの綱引き', '依存は無い方が'],
            'TAPがUnixの流儀に倣っていたから 単機能、行指向、フィルタ',
            '変化に対応する ソフトウェアのてこの原理を理解する',
            'jscoverage --no-browserオプション',
            '通ってないところをEmacs上でハイライト'
        ]
    }],
    LT: [{
        speaker: 'piro_or',
        contents: [
            'Firefox4の変更点がテキストで30KB',
            'Jetpack Add-on SDK',
            '自動テストがかかせない',
            '色々いけてないけど 継続テストに向いているかも'
        ]
    }, {
        speaker: 'monjudoh',
        contents: [
            'テスターによるテストの話',
            '「何をやっているときに 何が起こったか」',
            '「操作は中断されました」タイミングによって起こったり起こらなかったり',
            'やってはいけないことを規定、自動検出する',
        ]
    }, {
        speaker: 'os0x',
        contents: [
            '予想外の縦書きプレゼン',
            'ブラウザを操作するタイプ、エミュレートするタイプ',
            'JSTestDriver: ブラウザをリモートで操作する',
            'TestSwarm: グリッドテスティング'
        ]
    }, {
        speaker: 'yukoba',
        contents: [
            '1%くらいしか話せないので ブログ読んでね!',
            'http://d.hatena.ne.jp/yukoba/20110308/p1',
            'DOMとXPathで!',
            'Firebugの中でしか動かないプログラムw'
        ]
    }, {
        speaker: 'Constellation',
        contents: [
            'strict modeの話',
            'early error ECMAScriptのparse時error',
            'ある種のsyntax analysis',
            'eval, argumentsはkeywordのようなもの',
        ] // 正直 内容がさっぱり理解できなかった… orz
    }]
};
  • JSのテスト 何となく名前を聞いたことがある、というもの以上に色んなものがあることを知った
  • まだろくに書いたことなかったけど、しっかり書けば面白そうだしちゃんとやってみようと思った
  • id:t-wadaさんの話が特に面白かった 色々ためしてみた過程 現在の方法に行き着いた考え方の背景など
  • ごはんおいしかった クックパッドさんすげー
  • 名前は知ってたけどお話したことなかった方など 色んな人とお話できて楽しかったです。ありがとうございました!