発表資料
発表者
- 宮田淳平さん
- サイボウズ株式会社
- 6年目
- フロントからバックエンドまで
- kintoneチームに所属
kintone
- プログラマー17人
サーバサイド
- Java
- コード量は約23万行
クライアントサイド
- Java Script
- コード量は約33万行
テスト方法
- Jenkins + PipelinePlugin
- Gitでメインブランチにマージされる度にテスト実施
- 36並列で実施
- WebDriver + Selenium Grid
テストケース
- 約800ケース
- 受け入れ試験が中心
パフォーマンスの種類
- 実行時間
- 安定性
- メンテナンス性
実行時間が長い!
- 素早く繰り返したいのに…
- 1日かかると、1回/日しかできない
短縮方法
- 余計なテストは削除する
- 並列化を行う
並列化の方法
- ブラウザは1マシンにつき1つにすべき
- フォーカスの関係で不安定になりがち
並列実行環境構築
- クラウドサービス
- 録画機能も付いたりする
- ただし費用が…
VM
- テンプレートを作って量産する
- リソースが必要
- メンテナンスも大変
docker
- 高速にdeployできる
- ただし環境が限られる
- linux環境のため、GoogleChromeとFirefoxはできるが、IEはテストできない
並列の理想実現のために
- 理想は「全てのテスト実行時間÷1サーバのテスト実行時間=並列数」
テストの実行順序
- 最後に時間の長いテストがあると、全体のテスト実行時間に関わる
- 時間の長いテストは最初に
- 長いテストケースは細かく分割する
- 共通処理はまとめてテストする
初期データの作成
- ブラウザ操作
- 不安定
- 遅い
- dump
- 速い
- 変更があった場合のメンテナンスが大変(人間の目では分かりづらい)
- API
- そこそこ速い
- 自チームでは実施中
安定性
安定性が低いと
- バグじゃないのにテストが落ちる
- テストの価値が…
安定性を上げるための施策
- リトライ
- 3回までリトライ実施
- 該当箇所は不安定な場所なので、テスト後にも明示
- 明示的なWait
- 条件付きなWaitを行う
メンテナンス性
メンテナンス性が低いと
- メンテナンスに時間を取られる
- 手動の方が良いのでは…
メンテナンス性を上げるための施策
Q&A
サーバ構成は?
開発者にどうやってテストを書かせたか
- 一時、WebDriverがメンテ不能状態になった。
- 『継続的デリバリー』の社内勉強会を実施し、CIの重要性を再認識

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化
- 作者: David Farley,Jez Humble,和智右桂,高木正弘
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2012/03/14
- メディア: 大型本
- 購入: 24人 クリック: 567回
- この商品を含むブログ (52件) を見る
(おそらくこれ?)

実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects’Archive ソフトウェア開発の実践)
- 作者: Janet Gregory,Lisa Crispin,榊原彰,増田聡,山腰直樹,石橋正章
- 出版社/メーカー: 翔泳社
- 発売日: 2009/11/28
- メディア: 大型本
- 購入: 3人 クリック: 142回
- この商品を含むブログ (52件) を見る
失敗した時のビデオ録画はどのようにして実施しているのか
- Pythonのライブラリを使用し録画
- テストに成功していたら自動的に削除