システムテスト自動化カンファレンス2014(5)「ビルドプロセスとCI」
2014/12/14(日)にテスト自動化研究会(STAR)主催のシステムテスト自動化カンファレンス2014で聴講したセッションから数回に分け、まとめたものを紹介しています。
セッション(再掲)
1.オープニング:1時間で分かるSTA /鈴木 一裕 →<資料>
2.テスト自動化のパターンと実践 /.reviewrc →<資料1>/<資料2>/<資料3>
3.GUI自動テストの保守性を高めるには /伊藤 望 →<資料>
4.状態遷移テストにおけるテスト設計と実行の自動化 /きょん →<資料>
5.ビルドプロセスとCI /長谷川 孝二 →<資料>
6.社内スマホアプリのビルド配信ツールによる自動化事例 /赤根 稔朗(Yahoo! JAPAN)
7.Test Automation Patterns 2014 冬コレ!/松木 晋祐 →<資料>
前回は「4.状態遷移テストにおけるテスト設計と実行の自動化」でしたが、今回は「5.ビルドプロセスとCI」について紹介します。
5.ビルドプロセスとCI /長谷川 孝二
[1]『システムテスト自動化 標準ガイド』(通称:ギア本)の5~6章の話
(a)CI(Continuous Integration:継続的インテグレーション)
(b)ビルド
(1)狭義
製品コンパイル
(2)広義
- 自動化されたテスト実行
- 各テスト環境へのデプロイ
- 商用環境のデプロイ/リリース
[2]テストウェア
(a)テストに関わる作成物
(b)テスト資料
- ドキュメント
- データ
- 入力
- 期待結果
など
(c)テスト結果
- 実際の出力
- ログ
- ステータス
など
[3]何が問題になるか?
(a)規模(ファイル数が多い)
<ツールで解決できるもの>
- テスト結果で実際の出力とログ
- CIツールのレポート機能 失敗したテストだけが見えるようにする
(b)再利用性(建て増し旅館)
(c)複数バージョン(製品バージョンとの同期)
現バージョンにhotfixを入れたソフトウェアのテストは追従できているか?
<ツールで解決できるもの>
- 緊急修正後の回帰テスト
- テスト資料→バージョン管理システムで管理
- テストコード
- テストデータ
- VMイメージなど
(d)プラットホームと環境からの独立
[4]前処理と後処理の自動化
(a)(テスト実行の)前処理
- 生成
- チェック
テスト実行環境 - 再配置
ファイル再移動 - 変換
zip圧縮
(b)(テスト実行の)後処理
削除や再配置は、極力「前処理」で行うと動作が安定する。
(c)なぜ自動化が必要?
- テスト実行環境の再現性
- 繰り返しテストに耐えられる
[5]CIのメリット
- バグの作り込みを早期検出
- メトリクス取得、通知(メール)との連動
[6]CIのツールやサービス
(a)ツール
(b)サービス
[7]ビルドパイプライン
(a)テストレベル(結合度)ごとに順番に実行
(b)『システムテスト自動化 標準ガイド』(通称:ギア本)9.2章を参照
(c)各種テスト環境のデプロイ
(d)ツール
Walterなどがある
[8]まとめ
(a)詳細は、『システムテスト自動化 標準ガイド』(通称:ギア本)5~6章を参照下さい。
(b)ツールに振り回されずに開発が捗るCI環境を!
所感
自分の開発ドメイン(業務用組み込み系機器)ではCIはほとんど話題にならないが、テスト自動化システムを内製するときに必要になるので、まずは「継続的インテグレーション入門」で概要から学び、システムテストでできる範囲を広げていこうと思う。