BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース DevTestOpsプラットフォーム Mabl によるシフトレフトテスト

DevTestOpsプラットフォーム Mabl によるシフトレフトテスト

原文(投稿日:2020/05/04)へのリンク

開発ライフサイクルの「早期にテストし、頻繁にテストする」および「できるだけ早期にテストする」という考えに対して、アジャイル環境およびマイクロサービスでのソフトウェアテストへのアプローチとしてシフトレフトテストは新しいものではない。

最近、シフトレフトテストとCI/CDの組み合わせにより、DevTestOpsと呼ばれるDevOpsへの新しいアプローチが活発になっている。InfoQは、DevTestOpsプラットフォームメーカ mablの共同創設者であるDan Belcher氏と話をした。

InfoQ.com: DevOpsが世界を席巻したと言えます。もちろん、テストは、単体テストから統合テストまでのエンドツーエンドのテストに至るまで、DevOpsに不可欠でした。最近、企業はテスト活動を「シフトレフト」する必要があるという考えが広まり、DevTestOpsにつながりました。DevTestOpsがゲームチェンジャである理由を簡単に説明していただけますか?

Dan Belcher氏: DevOpsでのテストのアイデアと実践は目新しいものではありませんが、私たちが観察した根本的な変化は、ソフトウェア開発チーム全体がその開発ライフサイクル全体でテストに協力する方法にあります。ほとんどのテストを後の段階に委ねたり、チーム全体のテストに発散的で互換性のないアプローチを使用したりする従来のアプローチは、非効率的かつ非効率的であることが証明されています。この痛みは、変化のペースが非常に速いDevOpsコンテキストで拡大されます。

DevOps指向のチームは、自動化に依存して、CI/CDパイプラインの一部として変更を継続的に統合およびデプロイします。うまくいけば、このモデルは非常に効率的です。変更がマスタコードベースにマージされてからユーザが利用できるようになるまで、人的労力はほとんど費やされません。多くのチームでは、その合計タイムラインは数分にできます。品質維持にも効果的です。個々の変更のサイズを最小限に抑えることで、変更がより広範なシステムに与える影響を理解および検証し、問題に迅速に対応できます。

多くのチームは、変更がすでにマスタにマージされた後、および配信のためにすでに「パイプライン」にあるときに、欠陥や壊れたテストに遭遇するため、このレベルのパフォーマンスを達成するには不十分です。マスタで問題を見つけたら、パイプラインを停止して、人々が欠陥を修正したり、テストを更新したりできるようにする必要があります。CI/CDの世界では、パイプラインが再び流れるのを待つ間に変更が蓄積されるため、これは非常にコストがかかります。また、変更のバッチがはるかに大きいため、基本的に、私たちがCI/CDで目指していたものとは逆に、テストや原因分析がはるかに困難になります。

これを回避する唯一の方法はシフトレフトすることです。パフォーマンスの高いチームは、パイプラインに破壊的な変更を導入しないようにシフトレフトします。つまり、コードがマスタにマージされる前の段階の品質に深く投資することを意味します。これには、単体テストとコードレビューだけでなく、機能テストとエンドツーエンドテストも含まれます。一部のチームでは、開発者がエンドツーエンドのテストの負担をより多く負うことを意味しますが、他のチームでは、初期段階で開発者とQAエンジニアの間のコラボレーションとペアリングが増えます。目標はどちらのモデルでも同じです。つまり、パイプラインのフローを維持することでDevOpsの品質と速度の目標を達成します。

InfoQ.com: すでにDevOpsに移行している組織の場合、DevTestOpsに移行するには何が必要ですか? どのようなメリットが期待できますか?

Belcher氏: DevTestOpsには、他の役割のチームメンバと協力して早期かつ頻繁にテストを行うためのプロセスとツールをテスト担当者に提供することから始まる文化のシフトが必要です。開発チームのすべてのメンバ間でテストプラクティスを主導することに対する共同の関心事を認識し、自動化プロセスにベストプラクティスを組み込むことで、チームはDevTestOpsを採用して製品の品質を向上させることができます。

前のセクションで説明したように、シフトレフトしているチームは、コードがマージされる前の段階で品質に深く費やしています。開発チーム全体で最初から最後まで品質の文化を構築することは、テストコラボレーションを促進することを意味しますが、開発が遅くならず、品質が悪影響を受けないように、チームが適切なツールと実践を実施する必要もあります。DevTestOpsを採用したいチームにとって、mablは理想的なソリューションです。つまり、インフラストラクチャ管理のためにIT組織から多大な労力を費やす必要のないSaaSソリューションです。Mablの非常に直感的なUIにより、チームの誰もがテストを簡単に作成および管理できます。組み込みの自動修復によりテストのメンテナンスが削減され、ネイティブ統合により、開発ワークフローでより重要なツール (GitHub、Bitbucket、Jiraなど) に簡単に接続できます。Mablは最近、Selenium移行ツールを公開しました。これにより、ユーザーは既存のテストをプラットフォームに簡単に移行して、テストの再作成作業を回避しながら、テストのインサイトと自動修復の恩恵を直ちに受けることもできます。

InfoQ.com: mablは、自身を「インテリジェントなテスト自動化会社」と表現しています。これについて詳しく説明し、mablが提供する「インテリジェンス」について説明していただけますか?

Belcher氏: Mablの「インテリジェンス」は決断によって最も簡単に認識されます。それは、ソフトウェア開発者やQAエンジニアにとって通常は面倒な作業です。

Mablはインテリジェンスを使用して、アプリケーションの動作が異常であるかどうかを判断します。テストの実行中、機能的な動作、速度、視覚的な表現、エラーなど、品質の多くの側面を観察します。ユーザがこれらの属性を直接監視できるようにすることに加えて、mablは「通常の」変動を含む属性を経時的にモデル化し、動作が異常な場合にチームに通知します。例えば: アプリケーション内の予期しない視覚的変化を特定することに興味があるかもしれません。面倒ではありますが、チームメンバの1人がすべての視覚的な変更を確認することは可能かもしれませんが、多くのmablユーザは最初の確認をmabl自体に任せることを選択します。mablは、モデルが予測した変更 (定期的に変更される動的要素の変更など) を除外できるため、通常は変更されない要素に視覚的な変更があった場合にのみ通知されます。このサービスは、同様のアプローチを速度で採用しています。mablは、ページの読み込みに指定された時間がかかるたびに警告するのではなく、待ち時間が通常の範囲から大幅に外れたときに通知します。このモデルベースのアプローチにより、ノイズが劇的に減少し、ソフトウェアチームが実際の問題に集中できるようになります。

mablが行う最も重要で最も頻繁な決定は、機能の品質に関連しています。ほとんどのUIテスト自動化フレームワークでは、テストはフロントエンドコードの構造と緊密に結合されています。そのコードが変更されると、テストは失敗します。チームは、これらの障害の修正を決定して実装するために多くの時間を費やす必要があります。場合によっては、アプリケーションを修正する必要があります — 新しいコードでバグを解決します — しかし、多くの場合、変更されたコードを正確に実行するためにテストを更新する必要があります。mablのテストは、アプリケーションの継続的に更新されるモデルに基づいているため、チームの関与なしにテストがそれらのテストを更新するだけのほとんどのケースを自動的に識別でき、ユーザにとって実際に重要なリグレッションや問題に再び焦点を当てることができます。

Mablのインテリジェンスは、時間の経過とともに進化するより回復力のあるテストを作成するのに役立ち、その結果、テストの品質が向上し、テストのメンテナンスが少なくなります。インテリジェントパイプラインを作成するためのBitbucketやGitHubなどのソリューションとのネイティブ統合により、ユーザは開発プロセスのすべてのステップでエンドツーエンドのテスト実行を自動化できます。Mablテストは、コードがマスタにマージされ、完全なリグレッションスイートに統合されるときに、プレビュー環境の一部としてローカル環境で自動的にトリガできます。

InfoQ: mablがどのように誕生し、現在のソフトウェア開発プラクティスに何をもたらすために努力しているのか説明していただけますか?

Belcher氏: Izzy Azeri氏と私は当初Stackdriverを共同で設立し、2014年にGoogleに買収されました。DevOpsの可能性を最大限に引き出すことでエンタープライズソフトウェアチームの革新を加速することを使命として、2017年にmablを開始しました。特にQA自動化に焦点を当てることを選択しました。これは、DevOpsの過程で非常に多くのチームにとって最も深刻な問題点であるためです。インテリジェントテストは、QAが開発に対応できるようにするだけでなく、チーム全体の連携を改善し、より優れたユーザエクスペリエンスを提供する方法と見なしています。

mablは、開発者、テスタ、および技術者以外のユーザが同様にアクセスできるフレームワークを備えているため、誰でも品質に貢献できます。直感的なSaaSプラットフォームとDevOpsエコシステム全体にわたる豊富な統合により、mablはDevOpsワークフローにシームレスに適合します。mablは、機械学習、データ分析、クラウドコンピューティングの進歩を利用することで、企業が大規模な品質を管理することをはるかに容易にします。同社はCharles River Ventures (CRV)、Google Ventures (GV)、およびAmplify Partnersから2800万ドルを調達しました。

mablは先頃、プラットフォームに新しいシフトレフトテスト指向の機能と、GitHubおよびGitHub Actions、Bamboo、Bitbucket、Jira、Seleniumとの自動テスト統合を含む新しいCI/CDパイプライン統合を導入した。開発者は、日常のワークフローを中断することなく、プロダクションの問題をテストおよびデバッグするときに、ヘッドレスローカルランナを作成できるようになった。さらに、テスト定義を分岐して、より効果的なテスト変更管理を行うことができるようになった。

この記事に星をつける

おすすめ度
スタイル

BT