オブザーバビリティーが変えるCX

ソフトウェア品質保証の新しいアプローチ「シフトレフト」

国本明善 (Datadog Japan)

2021-09-02 06:00

 クラウドネイティブのアプリや技術に関わる開発者にとって、ソフトウェアのテストと品質保証は重要な課題です。昨今、CI/CD(継続的インテグレーション/継続的デリバリー)パイプラインをコードが通過する際のテストには、「シフトレフト」の考え方が組み込まれており、DevOpsをはじめとする新しい開発手法が、品質保証の方法論にも影響していることが分かります。

従来の品質テストの手法ではクラウドのスピードについていけない

 今日のアプリはエンドツーエンドで開発・運用されています。製品ライフサイクルの早い段階でテストを実施して潜在的なバグを見付けることが時間とコストを削減し、結果的にお客さまの満足度を高めます。

 さらに、エンドツーエンドのAPI(Application Programming Interface)テストやブラウザーテストがCI/CDパイプラインに組み込まれ、テストと品質保証の範囲が拡大していることも近年の傾向と言えます。さまざまなブラウザー上でコードがどのように動作するか、また、重要なデータソースとどのように相互作用するかの品質テストがプロセスの初期段階で実施されるようになったことで、ユニットテストやセキュリティテストなどのプロセスにシフトレフトが反映され、品質保証全体に対する新たな考え方が生まれました。

 企業のIT環境がクラウドに移行し、DevOpsに沿ったアジャイル開発手法の採用が広がるにつれ、コードを迅速にリリースすることと、各リリースで最高レベルの品質を維持することという、相反する要求が生じるようになりました。

 手作業による従来のテスト手法は、アジャイル開発のワークフローに対応したものではなく、コードを本番環境にデプロイする前に個別にテストを行う、従来のウォーターフォール開発をサポートするものでした。特定の品質保証チームが本番直前に全てのテストを担当するとクラウド環境での開発スピードを妨げることになり、アジャイル開発においては最適なアプローチとは言えません。このような理由からテストは、開発プロセスの初期段階へとシフトレフトされ、各エンジニアリングチームによって手動で行われています。

クラウドネイティブな開発によりテストはCI/CDパイプラインにシフト

 アジャイル開発の一環としてCI/CDが活用され、コードが常にデプロイ可能な状態に置かれるようになりました。コードがCI/CDパイプラインを通過する時、開発者は早い段階でバグを確実に把握したいと考えますし、そのために、より早期に、より頻繁にテストが行われるようになりました。

 特に、CIプロセスの構築を通してエンドツーエンドのテストを行うことの必要性が高まっています。例えばAPIテストでは、HTTPリクエストとAPIコールをリンクすることで、エンドツーエンドのワークフローを検証することができ、また、世界中の異なる拠点からシステムの全レイヤーを検証することができます。一方、ブラウザーテストでは、重要なトランザクションにおけるユーザーの視点を捉え、ユーザーインターフェース(UI)の変更がウェブアプリケーションに与える影響を把握することができます。

 開発ライフサイクルの早い段階でバグを修正する方が、バグが複雑化して影響範囲が大きくなってから修正するよりはるかにコストが少ないため、この2つのテストをCI/CDパイプラインに移行することで、時間とコストを削減することができるのです。


 また、他のエンジニアによる手作業での検証ではなく、多くの問題を開発者自身が発見できるようになります。開発者が自らコードを修正し、テスト環境に再デプロイすることができるようになるため、バグを発見するのに必要なサイクルが組織全体としては減少します。こうして手戻りや不具合の有無が早期に発見されれば、開発者は製品の価値を高めることに専念できるようになります。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

マイナンバーカードの利用状況を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]