サイボウズLiveの開発を支えるSeleniumテスト
Upcoming SlideShare
Loading in...5
×
 

サイボウズLiveの開発を支えるSeleniumテスト

on

  • 12,519 views

2011/03/08 Shibuya.jsの発表資料です。

2011/03/08 Shibuya.jsの発表資料です。

Statistics

Views

Total Views
12,519
Views on SlideShare
12,435
Embed Views
84

Actions

Likes
15
Downloads
41
Comments
0

7 Embeds 84

https://cybozulive.com 55
http://paper.li 16
http://s.deeeki.com 4
https://twitter.com 3
http://b.hatena.ne.jp 2
http://a0.twimg.com 2
http://192.168.33.10 2
More...

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    サイボウズLiveの開発を支えるSeleniumテスト サイボウズLiveの開発を支えるSeleniumテスト Presentation Transcript

    • サイボウズLiveの開発を支えるSeleniumテスト
      @kazfuku
    • 自己紹介
      福嶋一史
      http://twitter.com/kazfuku
      https://cybozulive.com/profile/kazfuku
      仕事
      サイボウズLiveの技術責任者
      好きな言語
      Java, JavaScript
      好きなモンスター
      ナルガクルガ
    • アジェンダ
      サイボウズLiveの紹介
      Seleniumテスト
      テスト実行時間との戦い
    • サイボウズLiveの紹介
    • サイボウズLive
      ToDoリスト
      スケジューラー
      https://cybozulive.com
      コラボレーションツール
      無料
      2009年11月公開
      グループ
      グループ
      ディスカッション
      掲示板
      ファイル共有
    • 構成
      構成
      Apache, Tomcat, MySQL
      言語
      Java, JavaScript
    • Seleniumテスト
    • IDE
      Selenium
      jUnit + Selenium RC
      Selenium IDEは保守で死ねる
      RC
    • 自動化
      Hudson
      1日2回(夜中と昼休み)
      失敗したらメール
    • テストの流れ
      Shibuya.js
      Test.js
      DB
    • JavaScriptのテストもできる
      <a id=“good”>いいね!</a>
      <div class=“goodMemberList”>
      selenium.click( “good” );
      Thread.sleep( 500 );
      assertFalse( selenium.isElementPresent( “css=.goodMemberList” ) );
    • テストがあると
      工数は1.2~1.3倍
      デグレードが防げる
      安心してリファクタリングできる
    • テスト実行時間との戦い
    • テスト数と実行時間
    • テストが終わらない
      ブラウザ(Firefox)の起動が遅い
      7秒かかる
      1テストスイートでブラウザを使い回す
      平均8テスト/テストスイート
      -> 事実上、起動時間を1/8に
    • テスト数と実行時間
    • DBロールバックが大変
      テスト後には、テスト前の状態に戻さないと他のテストに影響が出てしまう
      影響するテーブルが多い処理だと、確認コードよりロールバック処理のほうが多くなったり
    • バックアップとリストアで解決
      最初のテストの前にバックアップを取る
      各テストの終わりにリストア
      ロールバック処理から開放される
    • テスト数と実行時間
    • でも遅すぎた
      DBロールバック(リストア)1回に11秒
      当時のテスト600個 × 11秒 = 2時間!
      遅いと実装中に実行するのが嫌になる
    • 高速化
      リストア処理時間を測ってみた
      DROP TABLE, CREATE TABLE 10秒!
      INSERT 1秒
      テストでテーブル定義を変更することはないので完全に無駄な処理
      TRUNCATE TABLE に書き換えると1秒に短縮
    • テスト数と実行時間
    • そんなこんなで
      Seleniumのテストは、約1600パターンを突破
      開発者に安心と勇気を与えてくれる頼もしい存在
    • TEST