アジャイル開発の品質課題を解決するテスト自動化サービス「mabl」
mablでカスタマーサクセスマネージャーとして活躍する藤原氏。SIerや楽天、メルカリを経て、現在はmablだけでなくスーパーアジャイルコーチとしてさまざまな企業の技術顧問・コーチングを行っており、『アジャイル開発とスクラム(初版)』への寄稿や『リーン開発の現場』の翻訳者としておなじみの方も多いだろう。
スクラムなどのフレームワークは「当たり前」となってきたアジャイル開発だが、テストや品質においては、まだまだ課題がある。品質を高めるアジャイルテスティングには、「品質のエンジニアリング化(QE)が重要だ」と、藤原大氏は指摘する。そのプラクティスの一つが、テストの自動化である。
そこで藤原氏が紹介するのは、自身がカスタマーサクセスマネージャーを担当するテスト自動化サービス「mabl」だ。ノーコード・ローコードでテスト作成や修正ができて、操作も簡単。ブラウザ上でポチポチとクリックするだけで、その操作をキャプチャ(レコーディング)し、それをリプレイ(再生)することで、シナリオテストを作成できる。セッションでは、キャプチャ&リプレイ形式でテストを自動化するデモ動画が紹介された。
アジャイル開発時代に求められる品質エンジニアリング(QE)とは
これまでのキャプチャ&リプレイ型のテスト自動化ツールには、UIレベルの変更が起きた際に、記録したキャプチャ部分が動かなくなるなど、メンテナンスコストがかかるという弱点があった。
アジャイル開発ではスプリントという短い期間で開発するため、テスト自動化ツールでせっかくキャプチャしても、次の日には壊れることも珍しくない。だが、AI技術の進化により、テスト自体を自己修復することができるようになったのだ。
「画面のUIが変わっても、全体のHTML構造をmablが全部覚えているので、近しい要素をAIが推測し、自己修復します。自己修復で対応できるテストはそのまま実行され、もし自己修復に失敗した場合は、そのまま失敗として気が付ける仕組みになっています」(藤原氏)
また、AIによってビジュアルテスト・ビジュアルリグレッションも進化している。これまで人間の目視で行っていた、動きや見た目の正しさをチェックする作業を自動化。mablでは、一つひとつのステップで撮ったスクリーンショット画像をマシンラーニングにかけ、その差分を検知することができる。差分を検知したときに、Slackなどに自動で通知設定することも可能だ。
もう一つの進化が、テストの高速化だ。mablは実行環境の進化によって、今後リリース予定の新しい実行環境では、約40%の高速化を実現している。例えば、1分かかるテストが1000件あった場合、人間がやると1000分かかるが、クラウド上で並列実行すれば1分で終わってしまう。ノーコード・ローコードで誰でも簡単にできるため、作業コストの削減にもつながる。
セッションでは、CLI(コマンドラインインタフェース)を使って、ローカル環境でテストを高速実行できる様子がデモで紹介された。YouTubeでも公開しているので、興味を持った人は体験してみてほしい。
高速化によって、いわゆるユニットテストは早くて安くできるようになった。藤原氏は、テストピラミッドの図を示し、テストのバランスも変わっていくと見解を述べた。
「ノーコード・ローコードで誰でも簡単に安く作れるようになってくると、UIを厚くして、一定の品質を担保しながらユニットテストを増やす企業が増えていくでしょう」(藤原氏)