Appleは、Webインスペクタおよび新しいJavaScriptプロファイラとともに、Safari 10.0でWebDriverをサポートすることを発表した。
Safariは、Webアプリのテスト自動化ツールをサポートする最後の主要ブラウザだ。Microsoftは2015年に、EdgeブラウザでWebDriverをサポートすることを発表している。
更新された「What's New in Safari」で、Appleはこう書いている。safari driver
の搭載は「DOM要素を操作し、ブラウザの挙動を制御するための一連のインターフェイス」を提供する。開発者は/usr/bin/safaridriver
を使うサーバを立ち上げる前に、DevelopメニューのRemote Automationを有効にしなくてはならない。
MozillaのエンジニアマネージャーでThe Automated Testerでブログを書いているDavid Burns氏が、safari driver
の重要性について説明している。。Burns氏は最近のFirefox 47を例に挙げてこう語る。「Firefox 47で、SeleniumはFirefoxを起動時にクラッシュさせるようになりました。WebDriverのMozilla実装(MarionetteおよびGeckoDriver)ではこの問題は起こらないでしょう。テスト失敗やこのようなクラッシュが起こると、それを修正するパッチが作られ、エンドユーザー向けに出荷されることはないためです。」
Safari 10の新しいWebインスペクタ機能には、開発者がアプリケーションのメモリ消費を見るのに役立つ新しいタイムラインや、開発者が最適なメモリ性能を得るために改善すべきところを特定するのに役立つヒープアロケーションの時系列プロットが含まれる。
またAppleは、デバッギングツールを無効にしている間も実行コードを高精度でサンプリングすることにより、新しいJavaScriptサンプリングプロファイラで「高速化」を実現すると約束している。
また、10.0リリースで重要なのは、OSXとiOS向けのES6「完全サポート」だ。これはSafariにPTC (Proper Tail Calls) をもたらしてくれる。AppleでWebKitに取り組んでいるソフトウェアエンジニアのMichael Saboff氏は、ブログ記事「ECMAScript 6 Proper Tail Calls in WebKit」でECMAScript 6の重要性について述べている。
この機能は直接的および間接的の両方の再帰プログラミングのパターンを簡単にするために追加されました。他にも様々なデザインパターンがPTCから恩恵を得ます。例えば、ある機能をラップするコードで、ラップしているコードが直接ラップしているものの結果を返すようなものなど。PTCを使うことで、コードの実行に必要なメモリ量が減ります。深く再帰したコードにおいて、PTCはスタックオーバーフロー例外を投げていたようなコードの実行を可能にします。
Rate this Article
- Editor Review
- Chief Editor Action