MasaoApril's Library.

Software Testingなネタを書いてみた。

システムテスト自動化カンファレンス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を入れたソフトウェアのテストは追従できているか?

<ツールで解決できるもの>

(d)プラットホームと環境からの独立

[4]前処理と後処理の自動化

(a)(テスト実行の)前処理

  1. 生成
  2. チェック
    テスト実行環境
  3. 再配置
    ファイル再移動
  4. 変換
    zip圧縮

(b)(テスト実行の)後処理

 削除や再配置は、極力「前処理」で行うと動作が安定する。

(c)なぜ自動化が必要?

  1. テスト実行環境の再現性
  2. 繰り返しテストに耐えられる

[5]CIのメリット

  1. バグの作り込みを早期検出
  2. メトリクス取得、通知(メール)との連動

[6]CIのツールやサービス

(a)ツール

 Jenkins

(b)サービス

 Travis CI
githubリポジトリ

  • Open Sourceのプランは無料(※その他のプランは有料)
  • Mac/iOSでも可

[7]ビルドパイプライン

(a)テストレベル(結合度)ごとに順番に実行

(b)『システムテスト自動化 標準ガイド』(通称:ギア本)9.2章を参照

(c)各種テスト環境のデプロイ

(d)ツール

  Walterなどがある

[8]まとめ

(a)詳細は、『システムテスト自動化 標準ガイド』(通称:ギア本)5~6章を参照下さい。

(b)ツールに振り回されずに開発が捗るCI環境を!

所感

 自分の開発ドメイン(業務用組み込み系機器)ではCIはほとんど話題にならないが、テスト自動化システムを内製するときに必要になるので、まずは「継続的インテグレーション入門」で概要から学び、システムテストでできる範囲を広げていこうと思う。