[JSTQB TA] 開発ライフサイクルについて

# JSTQB Advance Level TA (Test Analysis)
　JSTQB Advance Level TAとは、テストアナリスト向けの国際ソフトウェア資格のひとつです。JSTQB Advance Levelの資格としては３つ存在しており、テストマネージャ、テストアナリスト、テストテクニカルアナリストのうちのひとつになります。

 私は、2025/3/Eに一度受験を行いましたが、残念ながら落ちてしまいました。
 再度挑戦するため、学習内容を綴っていこうと思います。

下記は本試験を運営しているJSTQBが一般公開しているシラバスになります。
[JSTQB TA シラバス](https://jstqb.jp/dl/jstqb.jpdlJSTQB-SyllabusALTA_V311.J03.pdf)
[JSTQB ホームページ]()

 # ソフトウェア開発ライフサイクル：SDLC (Software Development Life Cycle) とは
　ソフトウェア開発ライフサイクルとは、ソフトウェアを企画から運用・保守まで段階的に進めるフレームワークです。JSTQB TAシラバスで扱われるライフサイクルモデルは以下の通りです。
- イテレーティブ開発（反復型開発）
- インクリメンタル開発（漸進型開発）
- アジャイル開発（柔軟な反復・漸進型）
- ハイブリッド開発（複合型、状況対応型）

## 1. イテレーティブ開発（反復型）
*概要*
 システム全体のプロトタイプをまず作成し、その後、何度も繰り返し（イテレーション）で改善・拡張していく開発スタイル。

*事例*
・NASAのソフトウェアプロジェクト（特にリスクの高いミッションにおける初期設計の評価に）
・ユーザーインターフェースの初期評価に用いられるプロトタイピング

*ポイント*
・要件が明確でなくても始められる
・各イテレーションの評価が重要

[イテレーション](https://it-trend.jp/development_tools/article/32-0022) … ソフトウェア開発やプロジェクト管理において、設計、開発、テストなどの工程を短い期間で繰り返し行うことです。この反復的なプロセスを通じて、段階的に製品やサービスを改善していく手法です。

```mermaid
graph LR
A[要件定義] --> B[設計]
B --> C[実装]
C --> D[テスト]
D --> A
``` 

## 2. インクリメンタル開発（漸進型）
*概要*
 全体を小さな機能単位（インクリメント）に分けて、段階的に機能を追加していく。

*事例*
・Windows OS のような大規模ソフトウェアにおけるバージョンごとの機能追加
・モバイルアプリのリリース（例：最初はログイン機能のみ→次にチャット→通話）
・ [NBCユニバーサルは、IBMのDevOpsソリューションを導入し、継続的インテグレーションとデリバリーを自動化することで、リリース時間を75%短縮しました。これにより、迅速なフィードバックと高品質なソフトウェア提供が可能となりました。](https://www.invensislearning.com/info/devops-case-studies?utm_source=chatgpt.com)

*ポイント*
・最初から全機能を作らない
・「機能ごとに完成・リリース」が可能

```mermaid
graph TD
A[基本機能1] --> R1[リリース1]
R1 --> B[基本機能2] --> R2[リリース2]
R2 --> C[基本機能3] --> R3[リリース3]

```

## 3. アジャイル開発（漸進型開発）
*概要*
 イテレーティブ＋インクリメンタルの融合型。要求の変化に柔軟に対応しながら、短いスプリント（1〜4週）で機能を反復・漸進的に開発。

*事例*
・Scrum を活用した Web サービス（例：Spotify、Amazonなど）
・スタートアップに多く採用される（変更対応力重視）
・[City of Hopeは、DevOpsを導入することで、開発速度を25%向上させ、2.5時間かかっていたパイプライン構築を30分に短縮しました。これにより、がん研究の進展に貢献しています。](https://devops.com/case-study-transforming-health-care-with-devops/?utm_source=chatgpt.com)

*ポイント*
・顧客との密な連携（プロダクトオーナーとの対話）
・テスト（TDD、CI/CD）とフィードバックが鍵
 ・DevOpsと高い親和性（自動化・迅速リリース）

```mermaid
graph TD
Sprint1[スプリント1]
Sprint2[スプリント2]
Sprint3[スプリント3]

Sprint1 --> P1[計画] --> D1[設計] --> I1[実装] --> T1[テスト] --> R1[リリース]
Sprint2 --> P2[計画] --> D2[設計] --> I2[実装] --> T2[テスト] --> R2[リリース]
Sprint3 --> P3[計画] --> D3[設計] --> I3[実装] --> T3[テスト] --> R3[リリース]

```
## 4. ハイブリッド開発（複合型）
*概要*
 ウォーターフォールとアジャイル、もしくは他の複数の開発モデルを組み合わせたもの。組織やプロジェクトの特性に応じて最適化。

*事例*
・金融・医療システムなど高信頼性が求められる分野：
　上流工程はウォーターフォールで厳密に設計し、下流工程（画面やUXなど）はアジャイル的に対応。

*ポイント*
・大規模プロジェクトでよく使われる
・リスクやコスト、柔軟性をバランス良く扱える

```mermaid
flowchart TD
  REQ[要件定義]
  DSN[全体設計]
  SP1[スプリント1]
  SP2[スプリント2]
  SP3[スプリント3]

  %% 上流工程（ウォーターフォール風）　　
  REQ --> DSN

  %% 下流工程（アジャイル風）
  DSN --> SP1 --> SP2 --> SP3

  %% グルーピング（subgraphはシンプルに）
  subgraph Waterfall[上流工程（ウォーターフォール）]
    REQ
    DSN
  end

  subgraph Agile[下流工程（アジャイル）]
    SP1
    SP2
    SP3
  end


```
##

###  ★ 近年の技術トレンドと今後の復旧傾向
|技術・手法	| 傾向・補足 |
|:--------|:----------:|
|DevOps |	開発と運用の一体化 → 継続的インテグレーション・デリバリー（CI/CD）によってスピードと品質両立。インフラもコード（IaC）として扱う。
|MLOps（AI開発向け）|	機械学習モデルの学習・デプロイ・監視を統一管理。従来のSDLCに「データ」「検証ループ」「再学習」などが加わる。
|AIによるテストの自動化|	AIによるテストケース生成、障害予測、バグ分類。テストエンジニアの負担軽減。
|アジャイル at Scale	|Scaled Agile Framework（SAFe）、LeSS、Spotify Modelなど。大企業がアジャイル導入するための枠組み。
|ハイブリッドモデルの標準化 |	特に公共・大規模案件ではウォーターフォールをベースにアジャイルを部分導入するモデルが定着傾向。

　DevOpsの課題： DevOpsの導入には組織の学習と変革が必要であり、75%のDevOpsイニシアティブが期待に応えられないというGartnerの調査結果があります。 
・[devops.com](https://devops.com/case-study-transforming-health-care-with-devops/?utm_source=chatgpt.com)

　ツールの複雑さ： DevOpsとMLOpsのツールが分断されていることで、冗長な作業や非効率が生じ、統合が求められています。 
・[techradar.com](https://www.techradar.com/pro/breaking-silos-unifying-devops-and-mlops-into-a-unified-software-supply-chain?utm_source=chatgpt.com)


### ★ JSTQB TA試験に向けた学習ポイント
|項目	| 学習の観点 |
|:--------|:----------:|
|各開発モデルの特徴・利点・欠点|	システムの複雑性、変更要求への対応性、リスク管理に注目
テスト戦略の違い	| ウォーターフォールではVモデル的に段階ごとに、アジャイルではスプリント単位の小刻みなテスト（継続的テスト）
品質保証活動の位置付け |	プロセス全体にQAをどのように組み込むか。テスト自動化とCI/CD連携なども押さえる。|