アジャイル検定Lv.2 勉強メモ - テスト
アジャイル検定Lv.2 出題範囲
- モデリング
- オブジェクト指向設計:継承、インターフェース、ポリモーフィズム、疎結合、Dependency Injection
- コーディング
- コーディングルール:ツールによる確認(checkstyle)
- ペアプログラミング
- リーダビリティ(コードの読みやすさ)
- テストコード(Mock、Testing frameworkなど)
- 静的解析ツール(SonarQube)
- ドキュメンテーション
- 構成管理
- チーム開発:SCM(ソースの変更管理システム)、分散型(git)、集中型(Subversion、CVS 等)
- ブランチ戦略:ブランチとマージ、レビュー・受入(プルリクエスト)
- コンテナ技術
- テスト
- TDD:Junit(モックを使ったテスト、テスト結果レポートの見方、網羅率C0,C1,C2) 品質管理のためのテスト(パフォーマンステスト、結合テスト、総合テスト・システムテスト) ユーザー受入テスト、ブラックボックステスト、ホワイトボックステスト
- 常時結合
- 自動化の導入:何時動かして結果から何を読み取るか、自動化の導入効果、何を自動化するか(ビルド⇒テスト⇒デプロイ等)
- 何のため、誰のために、常時結合(CI)をおこなうのか
- デザインパターン
- リファクタリング
- マーティン・ファウラー「リファクタリング」(コードの不吉な匂い等)
- オブジェクト指向設計原則(Principles Of Object Oriented Design)
- チームのスキル
- スプリント計画
- 自己組織化されたチーム:メンバーの行動規範(コミュニケーション、自立と協調)
- レトロスペクティブ(振り返り)
テスト
テスト駆動開発(TDD)
- 「動作するきれいなコード」を書くのが目的
- TDDサイクル
- Red → Green → Refactor
- テストを書く → 動かす → 正しくする
モックを使ったテスト
コードカバレッジ
- ユニットテストの品質基準
- C0(命令網羅)
- プログラム中の全ての命令が1回以上実行を測定
- C1(分岐網羅)
- プログラム中の各分岐について1回以上実行を測定
- C2(条件網羅)
- プログラム中の判定の組み合わせを測定
- C0(命令網羅)
テスト技法
- ホワイトボックステスト
- 内部ロジックや仕様を考慮してテストケースを設計
- 内部仕様の細かい粒度で検証するテストで使われる
- ブラックボックステスト
- 外部仕様からテストケースを設計
- 機能単位などの大きな粒度で検証するテストで使われる
アジャイルテストの4象限