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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

12,753
views

Published on

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

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

Published in: Technology, Business

0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
12,753
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
46
Comments
0
Likes
15
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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