BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 安全な継続的デプロイメントのための知覚的テスト

安全な継続的デプロイメントのための知覚的テスト

原文(投稿日:2013/06/20)へのリンク

 

Santa Claraで開催されたVelocity 2013において、GoogleのBrett Slatkin氏がビジュアルレグレッションテストという手法を紹介した。知覚的diffによって、Webページのスクリーンショットを以前のバージョンと比べて、ピクセルレベルでの差分を検出する。

Brett氏によると、知覚的diffは自動テストにある重要なギャップを埋めるものだ。継続的デプロイメントでは、コードとデプロイメントの品質の信頼性を高めるために多数の自動テストを頼りにしている。さらに、予期せぬエラーを避けるためには手動テストも必要になる。こうしたテストは高くつき、何度も繰り返す必要があり、役に立たないこともある。わかりやすい例がビジュアルだ。(テストのためにページにピンクのポニーを置いたが)QAチェックでは見つけられずに、プロダクション環境で見つかった。

知覚的diffはヘッドレスブラウザ(PhantomJS)を使って、Webページをレンダリングし、スクリーンショットを生成する。そして、これらの画像をビジュアルdiffで比較する。すると、違いのあるエリアがハイライトされ、人間の目で簡単に認識することができる。

この手法は昨年のVelocity Igniteセッションで紹介されて以来、Google Consumer Surveysにおいて継続的デプロイメントの信頼性を高めるために使われてきた。Brett氏はレイアウトエラー、数値フォーマット、間違ったソート順といったリグレッションテストの難しさについて話した。また、タイムスタンプなどの誤検出を除外する必要があることを認めた。比較的静的なページでは、知覚的diffはうまく機能する。動的なページの場合には、同じデータセットを事前にロードしておく必要がある。

Depicted (dpxtd)というオープンソースバージョンがgithubで公開されている。これは知覚的diffをデプロイメントプロセスに統合可能なワークフローにまとめたものだ。

余談として、Brett氏はデプロイメントプロセスの信頼性を高めることのプラス効果についても語った。デプロイメントのサイクルが短くなるほど、モチベーションは高まる。デプロイメントが成功する信頼性が高まるほど、経験が浅い人でも自信を持ってデプロイを開始でき、立ち上げフェーズが短縮できる。

 

この記事に星をつける

おすすめ度
スタイル

BT