高品質なシステム開発を高速に実現するテスト自動化ツール。ノーコードでテストシナリオを作成、UI変更をAIで自動検出しテストを自動メンテしてくれる「Autify」[PR]
「エンジニアが不足し、テスト自動化の構築やメンテナンスがなかなかできなくて困っている」。これが多くのIT関連企業において共通した悩みでした、と話すのは、AutifyのCEOである近澤良氏です。
2019年、米国スタートアップの登竜門と言われるAlchemist Acceleratorプログラムに選ばれた近澤氏は、約100社ほどの企業との対話の中で、多くの企業において高速にシステム開発を行うことの重要度が高まっていることを実感したと言います。
近澤氏は、「多くの企業がソフトウェアリリースの速度を上げるためにテストの自動化を進めようとしているが、エンジニアが不足しているため難しい。また、テストを自動化しても、アプリケーション側に変更があるとテストが壊れてしまい、その都度メンテナンスに時間がかかるという共通の悩みを抱えていました。」と話しました。
市場の変化が速い昨今において、システム開発の高速化には2つの価値があります。1つは市場に製品を投入するまでのリードタイムを短くすること。そして製品を市場に投入した後も、顧客ニーズを素早く取り入れて改善サイクルを高速に回すことです。
こうした高速開発の実現に、成果物の品質を維持するテストを手動で行っていては不可能です。テストの自動化は欠かせないのです。
EtoEテストの構築と維持には時間も手間もかかる
テストの自動化には、複数のレベルがあります。プログラムの小さな範囲で行う「単体テスト」あるいは「ユニットテスト」の自動化、複数のプログラムを連結した上で行う「結合テスト」あるいは「インテグレーションテスト」の自動化、そしてシステム全体を通して行う「全体テスト」あるいは「End to End(EtoE)テスト」です。
そして当然ながら、ユニットテストよりインテグレーションテストの方が大がかりなテストになり、インテグレーションテストよりEtoEテストの方がより大がかりなテストになるため、テストを作るのも実行するのも、そしてアプリケーションの変更に合わせてテストをメンテナンスすることにも、より多くの時間と手間がかかるようになります。
しかも当初は比較的シンプルでコンパクトだったアプリケーションであっても、1年や2年後には機能が増えて複雑化するとともに、ユーザーが増えることでよりきめ細かく品質に気を配る必要性が高まり、さらに手間と時間がかかることになるでしょう。
特にEtoEテストの場合、テスト環境の構築にもある程度の専門性が求められるだけでなく、アプリケーションの画面や機能に変更や追加が行われるたびにテストシナリオもそれに追随して変更を加えなくてはなりません。
アプリケーションが大きくなるにつれてEtoEテスト自体も大きくなり、その開発とメンテナンスのための人材の確保も求められるようになるわけです。
これが、多くのIT企業に共通する、エンジニアが不足してテスト自動化が難しい、という悩みにつながってくるのです。
ノーコードで自動テストを作成、UI変更もAIが検知してメンテナンス
こうした企業の悩みを解決すべく開発されたサービスが「Autify」です。
AutifyはWebアプリケーションやモバイルアプリケーションのEtoEテストにおけるシナリオをノーコードで開発し、開発されたテストを自動実行してくれるサービスです。
テストシナリオはWebブラウザ上の操作を記録するだけで作成可能。しかもアプリケーションに機能追加や変更があった場合、AIがそれを検知して自動的にテストシナリオをメンテナンスしてくれます。
クラウドサービスとして提供されるため、テスト環境の構築も不要です。iPhoneやAndroidのさまざまなデバイスもクラウド側で用意されており、多様なデバイスでのテストも自動的に実行できます。
これにより、エンジニアでなくとも自動テストのシナリオ作成が可能となり、UIやアプリケーションの変更に伴って手間となるテストシナリオのメンテナンスも自動化されるわけです。
「ノーコードでテストが作れるため、Autifyのお客様の中にはビジネスサイドの方がテスト自動化のシナリオ開発に参加する例もでています。また、アプリケーションのUIがどんどん変わっても、AIがUIの変更を検知して適切にシナリオをアップデートしてくれます。これによって、EtoEテストのメンテナンスコストが大幅に削減できる。これが我々のこのソリューションの大きな軸です」(近澤氏)
開発を高速化するために、顧客のバーニングニーズを把握する
EtoEのテスト自動化を効率化する背景に、システム開発の高速化へのニーズがあることはすでに述べました。その上で近澤氏は、高速なシステム開発を行うためには2つの大事なポイントがあると話します。
1つ目は、本当に必要なものだけを開発する、という点です。
特に企業向けプロダクトにおいては「バーニングニーズ」(Burning needs)と呼ばれる、自分の頭に火が付いていて今すぐ火を消さないとまずい、と考えているものにしか顧客はお金を払わないと言われている、と近澤氏。
このバーニングニーズを十分に把握し、その問題解決に必要な物だけを開発することが、開発を高速化する大事なポイントの1つだとします。
開発を高速化するために、自社で開発する物を減らす
2つ目は、開発を行う課程においても自社で開発するものをできるだけ減らす、という点です。
最小限の機能に絞ったシステムであっても、ユーザー認証や検索、利用者への課金などをはじめとするさまざまな周辺機能の実装が求められるでしょう。
これらの機能の多くはすでにさまざまなサービスとして提供されており、これらをうまく活用して組み込んでいくことで、すぐに機能を実現できる初期開発速度の向上と、自社でメンテナンスするコストの削減などが可能になり、高速な開発に結びついていきます。
そのためにアプリケーションのアーキテクチャをさまざまなサービスを組み込めるようにしておく、というのも大事な点の1つといえるでしょう。
これはテスト自動化においても同様です。
オープンソースソフトウェアなどを活用すればもちろん自社でEtoEのテスト自動化環境を構築し、シナリオを開発し、メンテナンスすることは可能です。
しかしサービスとしてのテスト自動化を採用することで、すぐにテスト自動化を実現できてメンテナンスも任せることができ、高速な開発に結びついていくわけです。そこでAutifyのようなテスト自動化ツールが大きく役に立つはずです。
(本記事はAutify提供のタイアップ記事です)
あわせて読みたい
JavaScriptランタイム「Bun v0.3.0」リリース。メモリ消費量が3分の1以下に、npmパッケージの自動インストールなど
≪前の記事
最新のGoogle Chrome 108で「Passkey」が利用可能に。Googleアカウントでクレデンシャル同期など