開発モデルの影響
ソフトウェア開発ライフサイクル(SDLC)のモデルによって、テストのタイミングやアプローチは変わります。V4.0シラバスで特に強調されている「シフトレフト」と「DevOps」を中心に解説します。
開発モデルとテスト
Section titled “開発モデルとテスト”開発モデルは大きく分けて「シーケンシャル(順次)モデル」と「イテレーティブ(反復)・インクリメンタル(漸進的)モデル」があります。
シーケンシャルモデル(ウォーターフォール、V字モデル)
Section titled “シーケンシャルモデル(ウォーターフォール、V字モデル)”開発プロセスが直線的に進むモデルです。「要件定義→設計→実装→テスト」と工程が区切られています。
- 特徴: テスト活動は開発の後半に集中しがちですが、V字モデルの考え方では、各開発工程(左側)に対応するテストレベル(右側)が存在し、早期からテスト計画や設計を行うことが推奨されます。
イテレーティブ・インクリメンタルモデル(アジャイル、スクラム)
Section titled “イテレーティブ・インクリメンタルモデル(アジャイル、スクラム)”短い期間(イテレーション/スプリント)を繰り返し、少しずつ機能を完成させていくモデルです。
- 特徴: 各イテレーションの中で、開発とテストが並行して行われます。頻繁に変更が発生するため、リグレッションテストの自動化が非常に重要になります。
シフトレフトアプローチ (Shift-Left)
Section titled “シフトレフトアプローチ (Shift-Left)”**「テスト活動をSDLCの可能な限り早い段階で開始する」**という考え方です。 従来のウォーターフォールでは、プロセスの右側(後半)でテストを行っていましたが、これを左側(前半)に移動させるため「シフトレフト」と呼ばれます。
具体的な活動例:
- コードを書く前に仕様書をレビューする。
- 実装前にテストケースを作成する(TDD/ATDD)。
- CI/CDパイプラインに静的解析を組み込む。
メリット: 欠陥を早期に発見できるため、修正コストが大幅に下がります。
DevOpsとテスト
Section titled “DevOpsとテスト”DevOpsは、開発(Dev)と運用(Ops)が協調し、高品質なソフトウェアを迅速に提供する文化・手法です。
- 継続的デリバリー (CD): 変更を自動的にテストし、本番環境へのデプロイ準備を整えるプラクティス。
- 継続的インテグレーション (CI): コード変更のたびに自動ビルドとテストを行うプラクティス。
DevOps環境におけるテスト担当者は、単に手動テストを行うだけでなく、自動化テストの設計やCIパイプラインの構築に関わることが求められます。