第7章. サーバーレス・アプリケーションをテストする
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
聞こえるか、アンダーソン?あれは必然の音だ。
エージェント・スミス、マトリックス
この章では、テストへの斬新なアプローチに影響を与えるサーバーレスアプリケーションの属性と障害モードを探る。チームのためのテスト戦略を考案し、この戦略をテストに適用する方法を学ぶ。その結果、テストの分類に固執したり、コードカバレッジの最大化を目指したりせず、迅速なデリバリー、フォールトトレランス、可観測性という目標を満たす、非常にシンプルなテストアプローチが得られるだろう。
ソフトウェアの品質を向上させる努力は、伝統的にバグを特定し、根絶することに重点を置いてきた。ソフトウエアの品質は、そのソフトウエアで何がうまくいかないかによって測られることが多かった。バグが製品に現れた場合、テストスイートにおけるギャップが発見され、より多くのテストで埋められる。
しかし、ソフトウェアは進化し、同時にユーザの要求も急増した。ソフトウェアは現在、可用性が高く、遅延が少なく、常に反復される状態でなければならない。エンジニアがソフトウェアを構築する方法は、こうした要求に応えるために変化してきた。最新のアプリケーションはクラウドネイティブで、地理的・論理的に分散し、ファーストパーティ、サードパーティ、オープンソースのコードが混在している。このようなソフトウェアを、品質を確保しながら構築・運用するためには、エンジニアリングチームは、最小限の時間で最大の信頼性を与えるテストを実行し、変更を迅速にデプロイし、アプリケーションの振る舞いを即座に理解し、障害から自動的に回復する必要がある。
要求されるレベルのデリバリー、可観測性、レジリエンス、スケーラビリティをサポートできる開発モデルを追求するため、ソフトウェアエンジニアはこの10年間、システム内のコンポーネントをデカップリングすることを常に追求してきた。ドメイン駆動設計からマイクロサービス、イベント駆動アーキテクチャ、サーバーレスに至るまで、デカップリングをサポートするためにいくつかのパターンやテクニックが考案されてきた。しかし、ソフトウェアをテストするアプローチは追いついていない。ソフトウェアの開発と演算子をデカップリングするために多大な労力を費やしても、テスト時にはまたカップリングしてしまうのだ( ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access