Microsoft Cyber Defense

Microsoft Cyber Defenseが、アプリケーション内ワークフローテストで品質を向上

会社概要

Microsoft Defender Advanced Threat Protection (ATP) は、企業ネットワークが高度な脅威を防止、検出、調査、対応するために設計された包括的なプラットフォームです。数千の企業や組織が、サイバーセキュリティの脅威からネットワークや重要なビジネスシステムを守るために Microsoft Defender ATPを信頼しています。

Microsoft Defender ATP のクラウドベースのポータルは、セキュリティ運用担当者により日常的に利用されています。欠陥は即座に検知され、顧客満足度に影響を与えたり、顧客のセキュリティを損なう可能性があります。意図した通りに機能し、更新が既存の機能を壊さないことを保証することが重要な懸念事項です。

当事例は、MicrosoftのWindows Cyber DefenseグループのソフトウェアエンジニアリングマネージャーであるRan Mizrachi氏にインタビューを基に作成されました。(製品名や組織名は事例作成時のものを使用しています。)

  • Arrow Icon
    業界: テクノロジー
  • Arrow Icon
    従業員数: 230000
  • Arrow Icon
    所在地: 米国
  • Arrow Icon製品:

手動テストでは持続不可能でした

Defender ATP 製品は、リリースからまだ数年しか経っていません。プロジェクトが始まったとき、Microsoftには約25人のソフトウェアエンジニアが参加しており、非常に速いペースで開発を進めていました。彼らは毎日コードをチェックインしていましたが、展開の自動化は未実装んでした。テストは手動で行われ、主にサニティチェックに依存していました。チームは持続可能性が難しい道を進んでいました。

「既存のコードにテストカバレッジを追加するためのリソースが不足していました。持続不可能な状況に陥ることを許容してしまいました。テストを開発のコアプロセスの一部にする必要があり、それにはツールの変更以上のものが必要でした」とRan Mizrachi氏は述べています。

機能的なエンド・ツー・エンドのテスト自動化を実装したいと考えていましたが、既存機能のテストカバレッジを構築するために多くの時間を費やしたくはありませんでした。同時に、新しいコンテンツをリリースする際に既存コードの回帰テストが必要であることは認識していました。

主な要件

  • 開発者、品質保証担当者、プロダクトマネージャーが簡単にテスト作成できること
  • 迅速にオンボーディングできること
  • DevOpsパイプラインと統合できること
  • 既存のコードベースへの変更が不要であること

当初はSeleniumを検討しましたが、スキルを習得するためには大きな労力がかかると感じました。また、Applitoolsも検討しました。視覚的な検証の側面は評価しましたが、必要とされる機能検証能力が欠けていると評価しました。

ウェブアプリケーション向けテスト自動化ソリューション

Microsoft Cyber Defense Groupは、機能テスト及びアプリケーション内ワークフローテストのために Tricentis Testimを採用しました。

Mizrachi氏によると、オンボーディングプロセスは迅速で簡単でした。 Tricentisのサポートを受けて、約35人の開発者に対してワークショップを実施しました。各チームは、ワークショップで検証したいシナリオのリストを事前に準備して参加しました。オンボーディングプロセスの冒頭は、Testimの機能、利用方法、およびテスト自動化を構築するためのベストプラクティスについて学ぶことに焦点を当てました。ワークショップの後半では、この知識を適用してテストを構築しました。

「6時間のワークショップの後、チームは120のテストを作成し、その中には現在も実行されている80のアプリケーション内ワークフローテストが含まれています」とMizrachi氏は述べています。

それ以来、Microsoft Defender ATPチームは、Testimを Azure上の開発パイプラインに統合し、プルクエスト、プレデプロイメント、リリース、ポストデプロイメント、およびナイトリービルドなどの特定のプロセスのゲートでさまざまなテストを実行しています。開発者は自分のコードのテストをTestimで作成する責任を負っています。「リリースされるすべての新しいコンテンツは、Testimで適切にテストされる必要があります」とMizrachi氏は述べています。

新しい継続的なテスト戦略は大きな成果を上げています。Mizrachi氏によると、多くのバグを発見することに役立っています。何か不具合が発生した場合、Testimにテストを追加し、既存のコードベースに対するテストカバレッジを拡張しています。これにより、今後その領域に対して回帰テストを実施できるようにしています。

Testimの特筆すべき機能の一つは、実行に失敗したテストのトラブルシューティングができることです。Mizrachi氏は、「これは非常に重要な機能です。なぜなら、同じポータルに対して多くの開発者が作業しているからです。他の開発者が作成したテストについても、失敗の原因を迅速に特定できることにより、多くの時間を節約できます」と述べています。

テスト自動化は、Microsoftが継続的デリバリーの目標に近づくのに役立ちます。

「TestimはCI/CDの推進に大いに役立っています。適切なテストカバレッジなしでは継続的デリバリーを実現できません」とMizrachi氏は述べています。

成果

  • テストの迅速な作成: 安定したテストの作成時間は平均で20分
  • 技術系ではないプロダクトマネージャーでも簡単にテストを作成可能
  • 簡単なオンボーディング: 6時間後には80件の安定したテストを作成
  • 他のメンバーが作成してテストでも、テスト実行失敗の原因特定が容易
  • これまで検出できなかったバグの特定を支援
  • 開発プロセスに統合され、各プロセスのゲートでテストが自動実行
  • Tricentis Testimからの迅速なサポート