OpenTextのホームページ。
技術トピックス

シフト・レフトとは?

クエスチョンマークを中心としたIT項目の図解

概要

シフト・レフトのアプローチは、高品質のアプリケーションをより速く構築するための礎となっている。シフト・レフトとは、ソフトウェア開発ライフサイクル(SDLC)の早い段階で、テスト、品質チェック、フィードバックループを統合することを意味する。

修正に時間とコストがかかる最終テスト中に問題を発見するのではなく、チームは可能な限り早い段階で問題を特定し、解決する。これにより、リスクを低減し、納期を短縮し、開発者、テスター、ビジネス関係者間のコラボレーションを改善する。

IDEで左シフトのパフォーマンステスト

OpenText™ Performance Engineering for Developers を使用して、パフォーマンスの問題を早期に発見し、応答性と拡張性に優れたアプリケーションを構築する方法をご覧ください。

データシートを入手する

シフト・レフト

シフト・レフトとは?

シフト・レフトは、プロジェクトのライフサイクルのできるだけ早い段階で品質保証活動を開始するという原則に基づいて構築された開発手法である。コーディングが完了するまで待つのではなく、チームはテストを要件定義と設計のフェーズに導入する。テスターは最初から開発者と密接に協力し、自動化ツールを使って継続的にテストを実施し、即座にフィードバックを提供する。このプロアクティブ・アプローチは、フィードバックのループを短縮し、問題を早期に発見し、より効果的な問題解決を可能にする。その結果、より高品質なソフトウェアが短時間で提供される。

サイクルの後半に発見された欠陥がスケジュールを狂わせる従来のテスト・モデルとは異なり、シフト・レフトでは品質が継続的に確保される。これにより、高価な手戻りのリスクを軽減し、複雑なプロジェクトでも納期の勢いを維持することができる。


シフト・レフトとシフト・ライトの違いは何ですか?

シフト・レフトと シフト・ライトは、ソフトウェア・ライフサイクルの異なる段階に焦点を当てた補完的なアプローチである。

シフト・レフトは、テスト、セキュリティ、品質チェックを開発の初期段階に移し、チームがより早く不具合を発見し、手戻りを減らし、ソフトウェアをより早く提供できるようにする。プロアクティブ・クオリティ、早期のフィードバック、チーム横断的なコラボレーションを重視している。

シフト・ライトは、本番環境または配備後の環境でソフトウェアを検証することに重点を置いている。実際のパフォーマンス、ユーザー行動、およびセキュリティを監視することで、チームは本番前のテストでは現れないかもしれない問題を検出することができます。実践には、カナリアリリース、A/Bテスト、継続的モニタリング、カオスエンジニアリングなどがある。

シフト・レフトとシフト・ライトを組み合わせることで、品質に対するフル・ライフサイクルのアプローチが実現する。一方は不具合を早期に防ぎ、もう一方はリリース後も継続的なパフォーマンスとユーザー満足度を保証する。Shift-everywhereは、早期テストと継続的な生産監視を組み合わせることで、このアプローチを拡張し、あらゆる段階で信頼性の高い高品質のソフトウェアを提供します。


シフト・レフト・アプローチの利点

シフト・レフト・アプローチは、ソフトウェア開発ライフサイクルにおいて多くのメリットをもたらす。シフト・レフトの最も大きな利点のひとつは、欠陥の早期発見である。早期に問題を特定し対処することで、チームは後期の修正にかかる費用を最小限に抑えることができる。このプロアクティブな戦略により、ソフトウェアの品質基盤が確保され、より効率的なリソース活用につながる。

シフト・レフトはまた、チームのコラボレーションを向上させる。開発者、テスター、ビジネス関係者は、プロセスの早い段階でテストと品質保証を統合することで、より緊密に連携する。このコラボレーションによって、責任を共有する文化が育まれ、効果的なコミュニケーションと目標の調整が可能になる。その結果、多様なチームメンバーの専門知識を結集することで、より良い情報に基づいた意思決定がなされ、より強力な製品が生み出される。

シフト・レフトのテストはまた、リリース・サイクルの高速化を促進し、ソフトウェアの品質を向上させる。チームは潜在的な問題にいち早く対処し、ワークフローを合理化し、修正に費やす時間を短縮する。これは納期を早めるだけでなく、高品質の基準を確保し、組織が市場の要求や顧客のニーズに応えるのに役立つ。


シフト・レフトの実装方法

チームはプロセスと企業文化の両方を変えることで、シフト・レフトの導入を成功させている。開発、テスト、運用の各チームは、初期の段階から協力し、アジャイルと継続的インテグレーションのプラクティスを用いて、フィードバックのループを短く保つべきである。

シフト・レフトの実践をサポートするには、適切なツールとテクノロジーが極めて重要な役割を果たす。機能テスト、性能テスト、セキュリティテストのためのツールをビルドパイプラインに統合し、変更ごとにテストが自動的に実行されるようにする。コラボレーション、可視化、統合を提供し、開発ライフサイクル全体の効率的な管理を可能にする一連のソリューションを探す。組織はこれらのツールを使用して、反復作業を自動化し、ワークフローを合理化し、高品質の標準を維持する。

シフト・レフトの導入を成功に導くのは、トレーニングと能力開発である。最新のDevOps プラクティス、継続的デリバリー、自動テストについてチームをトレーニングすることで、全員がシフト・レフト戦略に効果的に貢献できるスキルを身につけることができる。継続的な学習は、コラボレーションを促進し、イノベーションを育み、より良い製品の成果につながる。


シフト・レフトのベストプラクティス

シフト・レフトが最大限の価値を発揮するためには、開発のあらゆる段階でテストを組み込む必要がある。初期段階からテストを組み込むことで、チームはより早く問題を特定し、解決することができ、より高品質なソフトウェアを生み出すことができる。自動テストツールによって、開発者はテストを継続的に実行し、不具合が拡大する前に発見し、リアルタイムで問題に対処することができる。

チームは継続的インテグレーションとデリバリー(CI/CD)戦略を導入することで、ワークフローを強化する。CI/CDは、コードの変更が自動的にテストされ、デプロイされる環境を育成し、チームが迅速かつ確実にアップデートを提供できるようにする。この実践は、チーム間のコラボレーションを強化し、より迅速なフィードバック・ループをサポートし、開発者が実際のユーザー・インタラクションに基づいて情報に基づいた意思決定を行うことを可能にする。

最後に、品質が全員の責任であるという文化を培うこと。品質指標を定期的に見直し、部門横断的な議論を行い、技術・非技術を問わず、すべての役割が高水準の達成に投資されるようにする。この品質へのこだわりは、ソフトウェア開発のライフサイクルを大幅に向上させる。


DevOpsのシフト・レフト

シフト・レフトは、より速く、より信頼性の高いデリバリーのために開発と運用を統合するという基本原則をサポートしているため、DevOpsに自然に適合している。チームは、ボトルネックを解消し、コラボレーションを改善し、テスト、セキュリティ、品質チェックを早期に移行することで、より自信を持ってリリースすることができる。

シフト・レフトの哲学の核心はコラボレーションにある。開発、運用、セキュリティの各チーム間のシームレスな相互作用を促し、従来のサイロ化を解消する。この協力的な環境は、利害関係者を最初から巻き込み、責任を共有する文化を育む。チームは、潜在的な落とし穴に早期に対処し、シフト・レフトのセキュリティ慣行を実施し、リソースの利用を最適化するために、集合的な専門知識を活用する。

DevOpsにおけるシフト・レフトの導入に成功したケーススタディは数多くある。東京海上北米サービスは、開発サイクルの早い段階で継続的テストを採用し、テスト実行時間を80% 短縮し、より迅速な不具合検出とリリースの迅速化を実現した。同様に、ある大手卸売業者は、パフォーマンス・テストにシフトすることで、 テスト量を60% 以上削減し、問題をより早く検出し、納期を早め、より効率的な常時稼働テストによってコストを削減した。

DevOpsでシフト・レフトを採用するチームは、コラボレーションを強化し、品質、セキュリティ、効率の大幅な改善を達成する。この方法論を優先する企業は、変化する市場の需要に適応し、優れた製品を顧客に提供するのに有利な立場にある。


チームがシフト・レフトを始めるには

ソフトウェア・ライフサイクル全体をサポートする統合プラットフォームを使用するか、日々のワークフローに直接適合する特定の機能を採用するかです。

プラットフォーム・アプローチは、計画、開発、テスト、セキュリティ、リリース管理を1つの環境にまとめ、必要に応じてサードパーティ製ツールと統合することで、最初から完全な可視化と自動化を実現する。パイプライン内の他のツールと接続する能力を持つことは、スムーズなエンド・ツー・エンドのワークフローを確保するために重要である。このモデルは、包括的なガバナンスと、すべてのプロジェクトにまたがる継続的な品質を目指す組織には効果的である。

より的を絞ったアプローチを好むチームは、パフォーマンス テストと機能テストを開発環境に直接統合することができる。これにより、コードが開発段階を超える前に、スピード、スケーラビリティ、正確性を検証することが容易になる。

開発者のためのシンプルな機能テスト

OpenText Functional Testing for Developers を使用することで、IDE 内で簡単にテストを作成・実行し、不具合の検出と品質の提供をスピードアップする方法をご覧ください。

ウェブページを見る

脚注