Googleのようなテスト:業界の巨人によるベストプラクティス (04.24.24)

ワークフローでの方法とアプローチを観察することで、業界の巨人から多くのことを学ぶことができます。

ソフトウェアテストプロセスを数百万のコード行内に維持するにはどうすればよいですか?

何千人ものQAエンジニアとワークフローをどのように編成しますか?

プロジェクトの拡大に​​どのように対処しますか?

GoogleやSpotifyなどの企業の経験は、小規模企業のテストプロセスの改善に役立ちます。チーム。

巨人がどのようにテストするかを詳しく見てみましょう。

Google:コードカバレッジの重要性

85359それでも、多くのエンジニアは、ソフトウェアテスト効率のそのような測定の重要性について議論しています。コードカバレッジとして。 Googleの専門家は、コードカバレッジデータは、テストアクティビティのリスクとボトルネックを評価するための貴重な情報になる可能性があると主張しています。 Carlos Arguelles、MarkoIvanković、およびAdam Benderは、コードカバレッジのベストプラクティスを共有しています:

  • コードカバレッジは、バグや失敗を減らすのに役立ちます。 GoogleのQAエンジニアの経験から、コードカバレッジの増加は、テストに対するアプローチと態度の変化につながることがわかりました。コードカバレッジを主な目標とするチームは、製品のテスト容易性を向上させる傾向があります。テストの目標をより簡単に、より短時間で達成するために、テスト用のより効率的なコードを記述します。
  • ミューテーションテストを使用して、高いテストカバレッジを確保します。 完全なコードカバレッジは無駄になる可能性があり、高品質のテストカバレッジを保証するものではありません。コードカバレッジの割合が高いからといって、すべての機能が正しくテストされたわけではありません。これは、コードが全体的にテストされたことを意味します。高品質のテストカバレッジを確保するために、Googleの専門家はミューテーションテストの使用を推奨しています。この方法には、小さなコード変更の実装と、テストセットがそれらをどのように識別するかを確認することが含まれます。
  • コードカバレッジの割合は、多くの要因によって異なります。 高いコードカバレッジを目指すべきではありませんが、低いカバレッジは多くの失敗にもつながります。そして問題は、特定のシステムの特定のコードカバレッジとは何かということです。この質問に答えるには、重要性、複雑さ、コード変更の頻度などを考慮する必要があります。コードカバレッジはビジネス上の決定であり、製品の所有者はそれを定義する必要があります。
  • カバーする対象を分析します。 100%のコードカバレッジを取得することはできないため、QAエンジニアはそれを遵守する必要があります。コードの最も価値のある部分がカバーされています。開発者チームは、カバーされているコード行の数ではなく、正確にカバーされているものについて話し合い、考える必要があります。
Spotify:信頼できる戦略

36431Spotifyは急成長中の会社です。 2008年に150人の従業員で設立されました。 2019年、従業員数は4 405人に増えました。現在、Spotifyは世界中で約3億人のユーザーにサービスを提供しており、世界で最も人気のあるストリーミングサービスとなっています。開発プロセス。

  • QAチームの製品目標を設定します。 Spotifyには部門の枠を超えたチームがあります。すべてのチームには、目標と、これらの目標に取り組むための一連の特定のスキルがあります。チームの構造は目標によって異なります。したがって、一部のチームは開発者のみで構成され、一部のチームには開発者とテスターがいます。したがって、テスターは開発チームと緊密に協力し、製品の主要な目標に焦点を合わせます。このようなアプローチにより、Spotifyは開発プロセスを効率的に拡張できます。
  • 自動化テストはツールですが、万能薬ではありません。 Spotify Kristian Karlのテスト開発マネージャーは、ソフトウェアテスターを自動化に置き換えることはできないと主張しています。テストには、人間の経験と知識が必要です。自動化テストはプロセスをスピードアップするための堅牢なツールですが、人間が意思決定を行い、自動化されたレポートを分析します。 Spotifyは、スケールツールの1つとして自動化を使用します。これにより、テスターはアルゴリズムのルーチンを離れ、製品の目標に集中できます。
SpaceX:継続的なテストは必須です

SpaceXは、商用宇宙輸送、再利用型宇宙往還システム、および高効率。

空軍の最高ソフトウェア責任者であるニコラス・チャイラン氏は、SpaceX開発部門のシステムは従来のワークフローを持つ企業よりも5倍効率的であると述べました。 SpaceXは、このようなパフォーマンスでテストプロセスにどのように対処しますか?

DevOpsとアジャイルアプローチにより、SpaceXQAエンジニアは大量自動化テストを提供できます。テスターは、開発サイクルを通じて継続的テストを提供し、即座にフィードバックを取得して既存のリスクを排除します。これにより、彼らは積極的に取り組み、頻繁かつ早期にテストを行っています。

同社は、開発プロセスで継続的テストを実装する方法に関する戦略を策定しました。

  • 価値を優先します。 Googleと同様に、SpaceXは、コードカバレッジメトリックを使用して、自動化する必要があるものとすべきでないものを理解することをお勧めします。継続的テストを最適化し、すでに実施されているアクティビティを強化するのに役立ちます。
  • 重要なのは自動化されたエンドツーエンドのテストです。継続的インテグレーションの一部として影響分析を行います。これにより、企業は、新しい機能の追加やコードの変更がシステム全体またはシステムの一部にどのように影響するかを分析できます。
  • チームには、安定した、簡単に複製できるテスト環境が必要です。 仮想マシンスナップショットなどのツールは、データの状態を保存したり、テストに戻ったり、作業を再開したりするのに役立ちます。
  • 人工知能と機械学習を使用してテストレポートを分析します。 AIベースのツールは、デプロイをスピードアップし、テストプロセスを最適化します。
  • 堅牢な継続的インテグレーションアーキテクチャを構築します。 CIシステムの主な利点は、コードのビルドとテストの間の期間が短いことです。 。継続的テストは開発プロセスに関与し、必要な種類のテストを伴う必要があります。
  • まとめ

    すべての企業には、テスト戦略、プロセス、およびアプローチがあります。各チームは、最終的な目標と製品の機能に基づいてテストプロセスを選択および調整します。スペシャリストの主なタスクは、クライアントとエンドユーザーについて考え、新しい要件に適応し、業界最高の経験を採用することです。


    YouTubeのビデオ: Googleのようなテスト:業界の巨人によるベストプラクティス

    04, 2024