20 倍
5,000 回の実行
毎月の並行テスト
数週間ではなく数時間
ロボットソフトウェアのビルドの検証にかかる時間
より高品質なコード
より良い製品を提供するために生成
製品間のエラー
自動リグレッションテストによって迅速に検出
概要
世界中の何百万人もの人々が、人気のルンバなどの iRobot のロボットを使用して、掃除機がけ、モップがけ、芝刈りなどの家事を自動化しています。1990 年の設立以来、iRobot は世界をリードする消費者向けロボット企業となり、2,500 万台以上のロボットを販売し、現在 500 万台のロボットが接続されています。
同社が成長し、製品ラインが拡大するにつれて、ソフトウェアテストシナリオが増加しており、会社のオンプレミステスト環境はその成長をサポートするのに苦闘しています。「私たちはリリースごとにハードウェアとソフトウェアのテストに数か月を費やしていたので、ソフトウェアのテスト時間を短縮して、お客様にアップデートをより早く提供できるようにしたいと考えていました」と、iRobot のソフトウェアエンジニアリング担当ディレクターである Chris Kruger 氏は述べています。
時間の経過とともに、iRobot デバイスはより高度になっています。「ルンバには現在、部屋の間取りを描いて家の床全体を掃除するためのカメラが搭載されています」と Kruger 氏は述べています。「私たちは、ロボットがさまざまな家庭の環境やレイアウトに対応できることを確認するために、ホームテストラボで何百ものシナリオを設定しました。しかし、私たちのテスト環境は、拡大する製品ポートフォリオに追いつくまでには拡張できず、結果を実際に信頼できるほどには安定していませんでした。コードの品質が心配でした」。
機会 | AWS RoboMaker を使用して複数のシミュレーションを並行して実行する
iRobot は、自社の課題を解決するために、シミュレーションテスト環境を Amazon Web Services (AWS) クラウドに移行することを選択しました。「私たちはすでに AWS の顧客であり、AWS IoT サービスを使用してロボットたちを監視していました」と Kruger 氏は述べています。「私たちは信頼性、柔軟性、スケーラビリティを提供してくれるのは AWS だと信じています」。
同社は、開発者がクラウドでロボット工学アプリケーションを構築、テスト、デプロイするのに役立つサービスである AWS RoboMaker の使用を開始しました。iRobot はこのサービスを利用して、自動回帰テストによってさまざまな製品ラインでの問題を発見しています。AWS RoboMaker シミュレーションサービスを使用して、iRobot はそれぞれのプルリクエストをさまざまなシナリオとロボットタイプでテストできます。
また、iRobot は AWS Lambda と AWS Step Functions を活用して、継続的インテグレーション/継続的デリバリー (CI/CD) パイプラインを AWS RoboMaker と橋渡しし、さまざまな家庭のレイアウトや床のタイプに対して複数のシミュレーションを並行して実行します。「開発者が新しいコードを提出すると、AWS RoboMaker でさまざまなシミュレーションが行われます」と Kruger 氏は述べています。「それは、部屋の掃除などの基本的なテストから、部屋にロボットを置いてミッションを実行させ、ベースに戻る方法を考え出すなどのよりインタラクティブなテストまで多岐にわたります」。
AWS RoboMaker シミュレーターを使用すると、テストをリアルタイムよりも高速かつ並行して実行できるため、以前の 20 倍の数のテストを実行できるようになりました。これにより、製品の安定性をより包括的に測定できます。"
Chris Kruger 氏
iRobot、ソフトウェアエンジニアリング部門ディレクター
ソリューション | テストシナリオを数週間ではなく数時間で検証
AWS RoboMaker を使用することで、iRobot は 5 つの新しいフロアケア製品すべてを同時にテストでき、オンプレミスソリューションを使用するよりも迅速にテストを実行できます。「AWS RoboMaker を使用すると、物理テストソリューションよりも早くテストを完了できます」と Kruger 氏は述べています。「シナリオを数週間ではなく数時間で検証できます。また、以前は発見できなかったコードの品質の問題を、シミュレーションテストで見つけることができます」。 以前は、iRobot はコードを本番環境に移行する前に、一連のスモークテストとリグレッションテストを実行していました。「スモークテストには数時間、リグレッションテストには数週間かかる可能性があります」と Kruger 氏は述べています。「今では、コードを提出するたびにシミュレーションテストを行うことで、より高い品質のベースラインが得られます。また、スモークテストでは合格率が高く、リグレッションテストのリセットも少なくなっています。これらすべてが、ソフトウェアの市場投入までの時間を短縮します」。
毎月 5,000 件のテストを実行するためのスケーリング
iRobot は AWS RoboMaker 上で毎日並行してテストを実行するようになりました。「40 件のテストを並行して実行するのは、20 の追加テスターを持つようなものです」と Kruger 氏は述べています。「以前は、1 台のロボットに対してビルドをテストして機能を検証していました。今では、製品ライン全体でテストできます」。 AWS RoboMaker を使用してから最初の 3 か月で、iRobot は 1 か月に 5,000 件のテストシナリオを実行していました。以前に同社が実施できるテストは毎月 100 件でした。
また、変更とプルリクエストがマージされると、より詳細なシミュレーションテストを実行することもできます。「以前は、製品の信頼性をテストするために、1 つの環境でテストを 2、3 回実行していました。AWS RoboMaker シミュレーターを使用すると、テストをリアルタイムよりも高速かつ並行して実行できるため、以前の 20 倍の数のテストを実行できるようになりました。これにより、製品の安定性をより包括的に測定できます」と Kruger 氏は述べています。「また、広範囲のテストから、よりターゲットを絞ったテストに移行しています」。
成果 | 製造ではなく開発段階で欠陥をとらえる
AWS 上に構築された新しいテストソリューションを利用することで、iRobot は本番環境ではなく開発段階でソフトウェアの欠陥を検出できます。「私たちの開発者は、変更リクエストが成功したのか、エラーの原因になったのかをより簡単に判断できます」と Kruger 氏は述べています。その結果、同社はより高品質のコードを作成し、最終的にはより優れた、より効果的な製品を顧客に提供しています。「テストを並行して実行することで、開発者はより迅速にフィードバックを得ることができ、問題をより早く見つけることができます。つまり、私たちは新しいソフトウェアアップデートをより短時間でお客様に提供できます。これにより、より優れた、より効果的なロボットが生まれることになります」。
iRobot は引き続き AWS RoboMaker を使用してテストシナリオを追加しています。「AWS RoboMaker は私たちがその上に構築できるものと考えています」と Kruger 氏は述べています。「これにより、より迅速に行動できるようになり、製品により多くの機能を追加してよりスマートにすることに集中できるようになります」。
詳細については、aws.amazon.com/robomaker を参照してください。
iRobot について
マサチューセッツ州ベッドフォードに拠点を置く iRobot は、世界をリードする消費者向けのロボット企業です。同社は、ルンバ掃除機ロボットとブラーバファミリーのモップがけロボットを開発および製造しており、これらは世界中で何百万人もの人々が使用しています。
利用している AWS のサービス
AWS RoboMaker
ロボットは、複雑な組み立て、ピッキングと梱包、ラストマイル配送、環境のモニタリング、捜索および救助、手術支援など高度化する用途のために、社会で幅広く使用されています。
AWS Lambda
AWS Lambda を使用することで、サーバーのプロビジョニングや管理をすることなく、コードを実行できます。料金は、コンピューティングに使用した時間に対してのみ発生します。
詳細 »
AWS Step Functions
AWS Step Functions では、AWS の複数のサービスをサーバーレスのワークフローに整理できるため、すばやくアプリケーションをビルドおよび更新できます。Step Functions を使用すると、AWS Lambda、AWS Fargate および Amazon SageMaker などのサービスをつなげて機能豊富なアプリケーションにまとめるワークフローを設計して実行できます。
詳細 »
AWS を使用した iRobot のイノベーションの取り組みを詳しく見る
iRobot のその他の事例
今すぐ始める
あらゆる業界のさまざまな規模の組織が AWS を活用してビジネスを変革し、日々ミッションを遂行しています。当社のエキスパートにお問い合わせいただき、今すぐ AWS ジャーニーを開始しましょう。