MasaoApril's Library.

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

システムテスト自動化カンファレンス2014(4)「状態遷移テストにおけるテスト設計と実行の自動化」

 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 冬コレ!/松木 晋祐 →<資料>

 前回は「3.GUI自動テストの保守性を高めるには」でしたが、今回は「4.状態遷移テストにおけるテスト設計と実行の自動化」について紹介します。

4.状態遷移テストにおけるテスト設計と実行の自動化 /きょん

[1]『システムテスト自動化 標準ガイド』(通称:ギア本)の15章を執筆

 当初は45ページ分執筆したが、書籍時は18ページに削減された。書籍に掲載されなかった27ページ分を発表する。
発表資料を15章の前のページに挟み込み、事前に発表資料を読んだ後に15章を読むと内容がより理解できると思います。

[2]デプロイメントパイプライン

(a)ボトルネック

 (1)効果のあるテストをやらないと意味がない
 (2)まずは現状を把握しよう。

  <ValueStreamMap>

   ・リーン開発の本質(P102):「顧客ではじまり顧客で終わる」
   ・価値のある時間と無駄に見える時間で見てみる

 (3)無駄な時間

  承認プロセスが長いなら、その承認プロセスに対し対策を行う。

 (4)価値ある時間

  テストの時間が減ること。

(b)自動化した結果を繋げる。

(c)継続的デリバリ

 S/Wをバージョン管理からユーザに渡るまでを自動化

(d)テスト戦略の一部を具象化したもの

(e)テスト自動化のROIを高めるために重要

(f)ステージを分割

 テストレベル/アジャイルの4象限/チーム単位など何でもよいので、ある基準で分割する。

[3]テスト戦略

(a)テスト計画⊃テスト戦略

 <ソフトウェアテスト293の鉄則>
  鉄則278:「テスト計画は、戦略、段取り、成果物の三位一体と心得よ」

(b)ポリシー

 体系的ソフトウェアテスト入門によると、リスク/アプリテスト環境/レビュー戦略/テスト目的などが挙げられる。

[4]自動化の戦略

(a)何を自動化するか?

 例:デプロイをテスト

(b)テスト環境

 ・自動化用に準備する。
 ・手動テスト環境と共用しない

(c)テスト目的

 欠陥の予防など

[5]デプロイメントパイプラインの実例

(a)コンテキスト

・システムの状態遷移が大きい

 自動テストが半日かかる

・自分の修正したところ以外は把握できない

(b)スモークテスト

 デプロイステージ→受入ステージ→コンプリヘンシブステージ/キャパシティステージ/UAT(ユーザ受入テスト)ステージ/本番ステージ
という流れ。

(c)コンプリヘンシブステージ

・網羅的なテスト

 横優先探索木のアルゴリズム

(c)キャパシティステージ

 性能テスト

(d)UAT(ユーザ受入テスト)ステージ

 UATの過程で、.netのhttpクライアントで17000回連続要求で30秒応答ないバグを見つけた。

(e)本番ステージ

 エンドユーザ環境でのスモークテスト

所感

 Value Stream Mapを初めて聞いたが、後日検索サイトで調べたところ、トヨタ生産方式の手法の1つである「物と情報の流れ図」ということが分かりガッテンした。また、テスト自動化を進める際、開発工程をメンバーで共有できる形にしてから「何がボトルネックか?」「ボトルネックを解消するためにはどのような方法があるか?」を議論してから、自動化を進めることが大切と思いました。