古代ギリシャの自然哲学者ヘラクレイトスの "変化こそ人生における唯一の不変のものである(万物は流転する)" という言葉があります。この言葉は、ソフトウェア開発やCI/CDパイプラインによる継続的デリバリーに対する昨今のアジャイルなアプローチが変化を続ける様にも当てはまるでしょう。このようにソフトウェアが継続的に変化する環境で、テスト作業がそのスピードに追随することは非常に困難であり、しばしばチームはスピードを優先して品質に妥協せざるを得ないことがあります。しかし、このような妥協をすることは本望ではないはずです。スピードと品質を両立させる方法があるはずです。
DevOpsで高品質のソフトウェアを提供するためには、E2Eのユーザージャーニーと、メールやダウンロード用の資料、マーケティング専用サイトなど、広範囲にわたる顧客体験の全てを、開発サイクルのできるだけ早い段階でテスト実行を可能にするインテリジェントなCI/CDパイプラインが最も重要であるとmablは考えています。
テストブランチとは?
このビジョンの実現に向けて、私たちはテストブランチのサポートを発表しました。この機能によりってWebのE2Eテストをシフトレフトし、コアとなるスモークテストやリグレッションテストに影響を与えることなく開発中の機能をテストすることができます。
GitHubのブランチとプルリクエストのワークフローに慣れている方は、mablでブランチを扱うことに違和感を感じないでしょう。
テストブランチの利点:
- コアテストスイートに影響を与えることなく開発ブランチをテスト出来る
- テストの変更をコミットする前にテストを試して、チームからフィードバックをもらうことが出来る
- 異なる環境(例:Dev環境とプロダクション環境)で同じテストを様々なバージョンで実行できる
- mabl CLIを使用して、CI/CDのパイプラインでコードの変更に伴って一緒にテストを実行する
mabl Trainerでのテストブランチの保存
mablアプリケーション上のテストブランチの表示
また、mabl CLIからブランチにテストを保存し、それらのテストをmablクラウドだけではなく、ローカルマシンでも実行できます。
ブランチングサポートは、テストにおいてどのようにシフトレフトされるか?
シフトレフトという考え方を初めて知った方のために説明すると、開発ライフサイクルのできるだけ早い段階でテストを行い、ユーザーより先にバグを早期に発見することを目的とした考え方のことです。
テストのシフトレフトを組織構成という観点で見てみると、組織をさらに小さなチームへと再編し、リサーチ、プロダクト、デザイン、エンジニアリング、QAなどの異なる分野のコントリビューター(貢献者)から構成することを意味します。チームリーダーもまた、個人的なコントリビューターです。この組織構成では、ソフトウェアエンジニアがコードの品質に最終的な責任を持ち、QAプロフェッショナルがコントリビューターとチームの品質コーチの役割を果たします。リリース前にリグレッションテストを行う専門のQAチームはもはや存在しません。すべてのテストは、GitHubのプルリクエスト(PR)ビルドとCI/CD環境へのデプロイごとに継続的に行われます。mablを利用する組織では、シフトレフトによってチームが再編成されるケースが増えています。mablのプロダクトチームも、同じように組織化されています。
mablでは、チームの誰もがテストの脆弱性やメンテナンスに煩わされることなく、自動化されたE2Eテストを簡単に作成し実行できるようになるべきだと考えています。そして、テストのオートヒーリング(自動修復機能)によって、テストのばらつきやメンテナンスの必要性を減らすことについて、私たちはすでに大きな成果を上げています。また、すべてのデプロイメントで簡単にテストを実行でき、ビジュアルの変化などのインサイトを直接Slackに取り込むことができます。
テストブランチを利用することで、テストを可能な限りシフトレフトするためのステップに、一歩近づきます。ぜひmablの無料トライアルで機能を試してみてください。