「ノーコード」でテストを自動化するツールのWaldo(ウォルドー)が1500万ドル(約17億1800万円)を調達した。モバイルアプリの開発チームはWaldoを使ってスクリプトのコードを1行も書くことなくテストをセットアップし、継続的インテグレーション(CI、Continuous Integration)パイプラインにシームレスに統合できる。
このシリーズAラウンドを主導したのはInsight PartnersのJoshua Zelman(ジョシュア・ゼルマン)氏で、Matrix PartnersとFirst Round Capitalも参加した。他にNicolas Dessaigne(ニコラ・デセーニュ)氏、Ben Porterfield(ベン・ポーターフィールド)氏、Tyler Gaffney(タイラー・ギャフニー)氏、Keenan Rice(キーナン・ライス)氏といったビジネスエンジェルも投資した。Waldoは今回得た資金で従業員を増員し、Go-To-Market戦略を固めていく考えだ。
Waldoをよく理解するために、まずはモバイルのテストについて考えてみよう。小規模な開発チームは通常、実際にテストをすることに多くの部分を頼っている。スマートフォンを数モデル所有し、アプリの開発ビルドをそのデバイスで実行する。うまくいかないことがあればバグを見つけて修復する。
アプリやチームが大規模になると、手作業でのテストでは追いつかなくなる。テスト用のスクリプトを書くことはできるが、それは開発の時間がさらにかかる厄介なタスクだ。資金が十分にあってテスト用スクリプトに開発の時間を使うことができるか、時間が経つにつれて開発者がそのスクリプトを放置してしまうかの、どちらかだ。
Waldoは3つ目のやり方があると考えた。この4年間、同社はセットアップもメンテナンスも簡単なテスト用プラットフォームを開発してきた。開発者はWaldoのプロダクトを使い始めるときに、アプリのパッケージ(開発環境で作成した.ipaまたは.apkのファイル)をこのプラットフォームにアップロードする。
するとWaldoはそのアプリをブラウザウインドウで実行する。これはそのアプリのライブバージョンで、開発者はローカルのエミュレータと同様に操作できる。ボタンをタップし、ログイン画面でパスワードを入力し、画面を指でスワイプするような操作だ。
Waldoはテストのステップをすべて記録する。このテストを本番環境で使用すれば、Waldoは同じステップを実行して問題があれば、つまりテストの最後のステップまで到達しなければ、アラートを出す。テストはCIワークフローから直接トリガーされる。つまりGitリポジトリに新しいコードをコミットすれば、アプリは自動でWaldoに送られる。
時間が経っても適切に動作するのは、Waldoが画面の構造を理解するからだ。例えば、開発者はテストに戻って画面のエレメントを特定することができる。同社の共同創業者でCEOのAmine Bellakrid(アミン・ベラクリド)氏は筆者に対し「ウェブページでウェブインスペクタを開き、HTMLを見ていると想像してみてください」と説明した。
このようにすれば、開発者は画面の類似性は一定のしきい値以上であると判断し、一部のエレメントを手動で構成できる。例を挙げると、テキストボックスを選択することができれば他の言語でも大丈夫だと考えられる。
時間をかけてテストをパスしたり失敗したりするように調整した後は、実際にエンド・ツー・エンドのテスト用プラットフォームを利用できる。Waldoはユーザーインターフェイスだけを見ているのではなく、アプリを操作して分析のためにイベントをチェックする。例えばWaldoのテストを本番サーバに対して実行すれば、問題なくログインできたことによりWaldoはサーバが適切に動作していると判断する。
裏側ではWaldoはアプリをパッケージし直し、コードを追加してアプリに関する情報を抽出できるようにする。その後、アプリをサーバ上のシミュレータで実行する。Waldoはエミュレータからも情報を取得する。
ベラクリド氏は「我々のゴールはパイプラインをなくすことです。我々はアプリをApp Storeに提出する前の最後のテストです」と述べた。Waldoの顧客で健康保険アプリのAlanにはQAチームがない。開発者がQAを担当して欲しいと考えているからだ。一方、こちらも保険会社であるLemonadeにはすでにQAチームがあるが、Waldoのようなプロダクトを利用することで時間を節約しワークフローを改善できる。
ベラクリド氏は「モバイルではスピードが勝敗を分けます」という。テストは多くのモバイル開発チームのボトルネックだ。Waldoのテストを組み込むことで、幅広いテストをカバーしアプリを迅速にリリースできるようになる。
画像クレジット:Daniel Romero
[原文へ]
(文:Romain Dillet、翻訳:Kaori Koyama)