JaSST'16 Tokai 特別講演

Similar documents
スライド 1

効率の良いテストシナリオ? テストの進め方 テストプロセス テストの設計 より少ないテストケースで より多くのバグを見つける Mercury Interactive Japan KK all rights reserved. 2

TopSE並行システム はじめに

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作


D5-2_S _003.pptx

智美塾 ゆもつよメソッドのアーキテクチャ

IBM API Connect 開発者ポータル構成ガイド 1章

Microsoft PowerPoint - A1-2_株式会社ネクスト_藤澤正通_S _005.pptx

Using VectorCAST/C++ with Test Driven Development

クライアント証明書インストールマニュアル

Microsoft Word - ModelAnalys操作マニュアル_

過去問セミナーTM

Shareresearchオンラインマニュアル

スクールCOBOL2002

Oracle Business Rules

HDC-EDI Manager Ver レベルアップ詳細情報 < 製品一覧 > 製品名バージョン HDC-EDI Manager < 対応 JavaVM> Java 2 Software Development Kit, Standard Edition 1.4 Java 2

ご利用の前に 目次 推奨環境とソフトウェアのバージョン 推奨環境について Windows8 Windows8.1 について Internet Explorer のバージョン確認 SAMWEB の初期設定 セ

AppsWF ワークフロー設定ガイド Ver.1.1 株式会社オプロ

USDM Quick Start Guide 2014 年 1 月 第 1.0 版 第 29 年度 (2013 年度 ) SQiP 研究会第 6 分科会 D グループ

OmniTrust

PowerPoint プレゼンテーション

040402.ユニットテスト

ジョブ管理ソフトウェア LoadStar Scheduler ご紹介資料 ~ システム運用品質の向上とコスト削減を実現 ~

PowerPoint プレゼンテーション

障害管理テンプレート仕様書

レベルアップ詳細情報 < 製品一覧 > 製品名 バージョン < 追加機能一覧 > 管理番号 内容 説明書参照章 カナ文字拡張対応 < 改善一覧 > 管理番号 内容 対象バージョン 説明書参照章 文字列のコピー ペースト改善 ~ 子画面の表示方式 ~ 履歴の詳細情報 ~ タブの ボタン ~ 接続時の管

多機種のAndroid(TM)端末でテストシナリオを流用可能に - Androidアプリケーション自動テストツール QCWing for Android Ver.2.7 -

IBM i ユーザーの課題 モバイルや IOT に対応した新しい開発案件への対応 RPG COBOL など既存アプリのメンテナンス 要員の確保 属人化しない運用 管理体制 2

ご利用の前に 目次 - 0. 推奨環境とソフトウェアのバージョン 推奨環境について Windows8 Windows8. について Internet Explorer のバージョン確認 SAMWEB の初期設定 セキュリティ設定..

産直くん 9 リピートくん 9 バックアップ リストア作業チェックリスト バックアップ リストア作業項目一覧 作業項目作業目安時間概要 00 バックアップ リストア作業を行う前に 産直くん 9 リピートくん 9 のバックアップ リストア作業を円滑に行うための確認事項をまとめています 1. バックアッ

JACi400のご紹介~RPGとHTMLで簡単Web化~

yukarik

クイックマニュアル(利用者編)

はじめに 本ドキュメントは Redmine を使用して稼働する定量的プロジェクト管理ツール ( 以下 IPF と略します ) のヘルプです IPF の操作に関わる機能を解説しており Redmine 及び構成管理ツール (Subversion Git) の標準機能については 本ヘルプの記載対象外として

システム操作インターフェイス最適化によるテスト自動化ROI向上

日経ビジネス Center 2

えひめ電子入札共同システム 質問回答 工事 委託業務 操作マニュアル ( 受注者用 )

2. メンバー管理 2.1 管理者権限 2.2 組織の登録 2.3 役職の登録 2.4 メンバーの登録 2.5 共有アドレス帳 2.6 グループの管理

スライド 1

大域照明計算手法開発のためのレンダリングフレームワーク Lightmetrica: 拡張 検証に特化した研究開発のためレンダラ 図 1: Lightmetrica を用いてレンダリングした画像例 シーンは拡散反射面 光沢面を含み 複数の面光 源を用いて ピンホールカメラを用いてレンダリングを行った

Microsoft Visual Studio 2010 Professional Data Sheet

テスト設計コンテスト

セキュリティ設定ツールインストール 桐セキュリティ設定ツールインストール C: K3 KIRIV9 Security フォルダ内 KISECURE をダブルクリックして設定を開始します 初回セキュリティ設定ツールを起動時はウィザート形式で設定します メッセージにしたがって初期設定を行ってください セ

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

クライアント証明書インストールマニュアル

<8B9E93738CF092CA904D94CC814090BF8B818F B D836A B B B816A2E786C73>

ESET Smart Security 7 リリースノート

目次 リリースノートについて... 1 リリースノートの内容... 1 フィードバックについて 主な機能強化 サービス課題管理機能 スコープ管理機能 サービス課題管理機能 スコープ管理機能 プロジ

(8) [ 全般 ] タブをクリックします (9) [ インターネット一時ファイル ] の [ 設定 ] ボタンをクリックします (10) [ 保存しているページの新しいバージョンの確認 ] から [ ページを表示するごとに確認する ] をクリックします (11) [OK] ボタンをクリックしていき

セキュリティ 360 Powered by Symantec インストールマニュアル 第 9 版 2016 年 7 月 19 日 1

Joi-Tab 端末管理システム最終更新日 2015 年 3 月 13 日

CodeRecorderでカバレッジ

BACREX-R クライアント利用者用ドキュメント

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

Excel データ出力ガイドブック 第 1.0 版平成 30 年 9 月 1 日制定 株式会社中電シーティーアイ

目次 1. PDF 変換サービスの設定について )Internet Explorer をご利用の場合 )Microsoft Edge をご利用の場合 )Google Chrome をご利用の場合 )Mozilla Firefox をご利

インターネット EDI システムを使用する前の準備 目次 動作環境について... 2 Internet Explorer7.0 / 8.0 をご利用の場合の設定方法... 3 [1] インターネット EDI システムを利用するための標準的な設定... 3 [2] ブラウザ型で帳票を利用する場合に必要

目次 第 1 章はじめに 動作環境 Internet Explorer の設定 取引先テスト実施内容... 5 第 2 章取引先テストの手順 ログイン 出荷梱包 ( 紐付けあり )

<4D F736F F D F8E FEE95F1836C F8EE88F878F F88979D8BC68ED2976C A2E646F63>

スーパー英語アカデミック版Ver.2

目 次 1. はじめに アルコールチェッカー管理ソフトのインストール アルコールチェッカー管理ソフトのアンインストール アルコールチェッカー管理ソフトの操作方法 ソフトの起動 NG 判定値の設定

. はじめに はじめに みなと外国為替 WEBをご利用いただくにあたり ブラウザ ( インターネットに接続するソフト ) の設定作業は原則不要ですが お客さまのご利用環境によっては ブラウザの設定が必要となる場合があります お客さまの状況にあわせて手順をご確認ください ブラウザの設定を行う前にお客さ

スライド 1

PPTVIEW

目次 1. はじめに 1.1 サービスをお使いになる前に サービス利用の流れ ダウンロードパスワードを設定 変更する 健診申込ファイル編集ツール (Opti) をダウンロードする 案内一覧送付の要否を登録する 2.1 案内一覧送付の

SISJIN

目次 PC 版へのログイン ログアウト ログイン 1 ログアウト 3 ステータスを変更するステータスを変更する ( 詳細情報の入力あり ) 4 ステータスを素早く変更する ( 詳細情報の入力なし ) 8 他のメンバーのステータスを見る 9 ログインパスワードを変更する 13 ZAiSEKIからのお知

CentreCOM VT-Kit2 plus リリースノート

( 目次 ) 1. XOOPSインストールガイド はじめに 制限事項 サイト初期設定 XOOPSのインストール はじめに データベースの作成 XOOPSのインストール

厚生労働省版ストレスチェック実施プログラムバージョンアップマニュアル (Ver2.2 から Ver.3.2) 目次 1. プログラム概要 バージョンアップ実施手順 要注意 zip ファイル解凍の準備 Windows によって PC が保護されました と

PowerPoint プレゼンテーション

親指シフトキーボード(FMV-KB611)、JISキーボード(FMV-KB621)、FMV-LIFEBOOK(親指シフトキーボードモデル)をお使いになる方へ

目次 1. システム概要 設置手順 注意事項 動作環境 初期設定 システム設定 ( 環境設定 ) システム設定 ( ログインパスワード変更 ) システム設定 ( ファイルのパスワード変

KDDI ペーパーレスFAXサービス

2. 目的 1RationalRose を利用する場合にプログラム仕様書としての最低限必要な記述項目を明確にする 2 プログラム仕様書として記載内容に不足がない事をチェックする 3UML の知識があるものであれば 仕様書の内容を理解できること 4Rose にて入力した内容を SoDaWord を利用

ServerView Resource Orchestrator V3.0 ネットワーク構成情報ファイルツール(Excel形式)の利用方法

親指シフトキーボード(FMV-KB611)、JISキーボード(FMV-KB621)、FMV-LIFEBOOK(親指シフトキーボードモデル)をお使いになる方へ

更新用証明書インポートツール 操作マニュアル 2011 年 10 月 31 日 セコムトラストシステムズ株式会社 Copyright 2011 SECOM Trust Systems CO.,LTD. All rights reserved. P-1

取扱説明書

Excel2013 データベース1(テーブル機能と並べ替え)

<30312E D F898AFA93B193FC8EE88F872E786C73>

PowerPoint2003基礎編

1. 信頼済みサイトの設定 (1/3) この設定をしないとレイアウト ( 公報 ) ダウンロードなどの一部の機能が使えませんので 必ず設定してください 1 Internet Explorer を起動し [ ツール ]-[ インターネットオプション (O)] を選択します 2 [ セキュリティ ] の

ez_mail-err-reflect-file.ppt

スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD 経済産業省, 独立行政法人情報処理推進機構

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

.1 準備作業の流れ 準備作業の流れは 以下のとおりです 必要なものを用意する. パソコンインターネット接続回線 E メールアドレス.-(1).-().-(3) 当金庫からの送付物.-(4) パソコンの設定をする.3 Cookie の設定を行う.3-(1) Java の設定を有効にする ( ファイル

<4D F736F F D208E7B90DD8AC7979D8ED28CFC82AF837D836A B2E646F63>

LAN ケーブル接続について

MailArchiva MailArchiva パブリックイメージ for NIFTYCloud 初期設定マニュアル メールアーカイブのための基本設定マニュアル 第 1.0 版 2011 年 8 月 22 日有限会社ディアイピィ


WebNACCS

PALNETSC0184_操作編(1-基本)

. 起動 目次 P.. ログイン 画面 P.. メニュー 画面 P.. POS 開示 _ 指定店舗 アイテム別 期間合計 画面 ( レポート A) P. 5. POS 開示 _ 店舗別 指定アイテム 期間合計 画面 ( レポート B) ----

Ⅰ 調査票 ( エクセル ファイル ) を開いたら (1) このメッセージが出てきた時の対応方法 Excel 2003 を使用する場合 A. 表示 1 マクロが使用できません というダイアログが表示された場合 OK ボタンをクリックし 下記手順にて設定を行ってください 1. メニューから 1 ツール

セキュリティベーシック Powered by Symantec インストールマニュアル 第 8 版 2015 年 8 月 3 日 1

Fujitsu Standard Tool

GUI 操作自動化ツールを用いた テスト効率化手法 2016 年 3 月 8 日 /3 月 9 日株式会社富士通コンピュータテクノロジーズ TMP 事業部第二開発部菅野正行 Copyright 2016 FUJITSU COMPUTER TECHNOLOGIES LIMITED

テスト設計コンテスト

Transcription:

システムテスト自動化の技法 小井土亨 アジェンダ システムテスト GUIテスト自動化 キーワード駆動テスト システム自動テストのアーキテクチャ システムテストの自動化について 2016.12.02 システムテスト 1. システムテスト 2. エンドツーエンドテスト 3. システムテストの自動化について

システムテスト開発プロセス内のシステムテストの位置づけ 要求定義 要求のテスト システムの導入 受け入れテスト システム仕様化 仕様のテスト システムの構築 システムテスト この位置 システム設計 設計のテスト ソフトウェアの構築 統合テスト コーディング 単体テスト 3 システムテストシステムテストとは システムテストとは システムが全体として正しく動作することをテストする 様々な視点でのテストが必要 特に利用ユーザー視点 システムテストの例 運用テスト 実運用に近い環境で 実際に運用するテスト 操作性テスト 利用ユーザー視点で 操作を行うテスト 構成テスト 様々な構成パターンでのテスト マニュアルテスト マニュアル通りに操作して問題なく動作することを確認するテスト 4

システムテストシステムテスト = エンドツーエンドテスト システムテストは エンドツーエンドテスト end to end とは 端から端まで システムの端から端までをテストする 全体として正しく動作することを確認するため 入力出力外部システム外部 エンド ツー エンドテスト 5 システムテストエンドツーエンドテストについて エンドツーエンドのシステムテスト 外部からの入力に対応したシステムの動作によって 外部に対して行った結果をテストする なぜ エンドツーエンドテストなのか 部分に対するテストを積上げても 繋がっていることを保証できない 部品のテストを積み上げても システムテストにならない 6

システムテストエンドツーエンドテストについて システムテストの結果 外部への出力 画面 通信 印刷 ファイル 外部システムへの処理 データベース 外部のサービス エンドツーエンドテストの特徴 テストの実行時間が長いことが多い テストの準備や結果判断は システム外部も含めて行う必要がある システムテスト GUI テスト 注 :GUI テストとは GUI 操作を伴うテスト実行 7 システムテストビジネスに追随するシステムとシステムテスト ビジネスに追随するシステムとは ビジネス要件 ( エンドユーザーの要望 ) により 短期間で機能追加とリリースを繰り返すシステム 最新の機器や環境に 短期間で対応するシステム ビジネスに追随するシステムのシステムテスト リリース ( 機能追加 ) ごとに システムテストを実施する必要がある システムテストを実施する回数が増える システムテストのコストが増大する 8

システムテストテストコスト増大への対応策 対応すべきシステムテスト リリースごとに繰り返されるテスト 前回までのリリースで提供した機能について 同じように動作することを確認するテスト 回帰テスト ( リグレッションテスト ) 今回のリリースと前回のリリースで同じことを確認する 構成テスト さまざま構成で同じテストを実行し 同じ品質であることを確認する システム (GUI) テストを自動化する リリースされる新しい機能の最初のテストは繰り返さない 9 システムテストテスティングと自動テスト テスティング活動 識別 どのようなテストができて 何をテストするか決める 手動 / 自動共通作業 設計 テストケースを作る ( データ スクリプトなど ) テストケースを実行する どうやってテストするか決める 実装実行 自動化作業 テストケース成功失敗を判定する ( 出力結果と期待結果を比較 ) 比較 10

システムテストテストケース実行コスト 初回はテストケースを作成するコストが必要なので自動テストを比較すると数倍のコストが必要 実行コスト 自動テスト 実行回数が多いとコストメリットが大きい 2 回目から下がる 手動テスト 1 2 3 4 5 実行回数 2 回目以降は自動テストのコスト数分の 1 自動テストの実行コストが 0 になることはない 11 GUI テスト自動化 1. キャプチャーリプレイ 2. キーワード駆動テスト

GUI テスト自動化 GUI テスト自動化とは GUI テスト自動化とは GUI を通して操作した場合と同等になる様にツールで操作を再現することで行うテスト ツールの種類 キャプチャーリプレイ型やキーワード型などがある 自動化 人の操作 ツールで再現 13 GUI テスト自動化キャプチャーリプレイとは キャプチャーリプレイとは OS やツールが提供する ユーザー操作の記録と再生機能 実際に操作した内容をツールで記録 REC 記録した内容をツールで再生 PLAY キーボード操作マウス操作 キャプチャーリプレイの課題 テストケースを作成するためには 操作する必要がある 記録時と再生時で 処理時間が異なった場合 目的通りに再生されないことがある テスト対象の変更された場合 作り直しが必要となる場合がある 14

GUI テスト自動化キャプチャーリプレイの例 金額個数合計金額計算 記録結果 マウス移動 :10,100 マウス左クリック キー入力 :1000 キー入力 :{Tab} キー入力 :5 計算処理を1 秒待つ 待ち :1 マウス移動 :100,10 マウス左クリック 課題 場所が変わると正常動作しなくなる 処理時間が変わると正常動作しなくなる実行結果のチェックができないテストの内容が分からない 15 GUI テスト自動化キーワード駆動テスト キーワード駆動テスト 論理的なキーワードを用いて記述されたテストケースをツールが解釈し テスト対象を操作するテスト 操作として 値の設定以外に 状態や値の取得を提供する キーワードによる操作手順 ( テストケース ) 操作手順を再現する 検査対象のシステム キーワードによる操作ツール 16

GUI テスト自動化キーワード駆動の例 操作手順 金額個数 合計金額 対象 値 操作 金額 1000 Set 個数 5 Set 計算 Click 合計金額 Get 計算 利点 テストの内容が分かるため 多くの人が作成できる 場所や処理時間に影響されない 待ち設定が必要ないのは ボタンの押下処理を同期処理で実現しているため 実行結果を取得し確認できる 17 GUI テスト自動化キャプチャーリプレイとキーワード駆動テスト 比較項目キャプチャーリプレイキーワード駆動テスト 導入しやすさ 〇ツールの導入コストのみ ツールだけではなく 検査対 象のシステムの対応が必要 テストケース作成工数 システム変更への対応 異なった環境での再現性 テスト結果の確認 操作して記録するため 作業工数の削減は難しい 対応可能な場合もあるが 多くの場合作り直しが必要となる 実行時間や座標位置などが変わると再現できなくなる場合が多い テスト結果の確認は 他の方法を用意する必要がある 〇テストケースの作成は容易テストケースの自動生成も可能 項目追加などは 変更せずに利用できる場合も多い 〇環境の違いなどをツールが吸収して 再現できる場合も多い 〇テスト結果を取得することで自動判定が可能 18

キーワード駆動テスト 1. キーワード駆動テスト 2. 問題と解決策 3. 推奨構造 キーワード駆動テストデータ駆動とキーワード駆動 データ駆動スクリプト テストスクリプトとデータを分離し スクリプトがファイルからデータを読み込んで実行する 例 : キャプチャで作成したスクリプトから値の部分を変数にし 外部ファイルから読み込む キーワード駆動スクリプト スクリプトに テストのすべての情報を簡易な方法で記述 論理的なキーワードを用いて記述されたテストスクリプトをツールが解釈し テスト対象を操作するテスト 操作として 値の設定以外に 状態や値の取得を提供する 20

キーワード駆動実行結果のチェック方法 方式 1 キーワード駆動にチェック機能を用意する 方式 2 利点 キーワード駆動では 値の取得だけを行い 判定は別途行う 方式 1 実行時すぐに判定できる 方式 2 システム外部の状態 (DBなど) も含めて判定が可能 21 キーワード駆動テストデータ駆動とキーワード駆動の例 データ駆動 単価個数 自動スクリプト TestBoxA.SetTest(tanka) TestBoxB.SetTest(kosu) 読み込み 単価 個数 200 5 計算 キーワード駆動 対象値操作 金額 単価 200 Set 個数 5 Set 計算 Click 金額 Get 22

キーワード駆動テストキーワード駆動のシステム変更への対応例 単価個数 変更箇所 この記述だけを追加すれば実行可能 消費税内税 8% 10% 金額 計算 対象 値 操作 金額 200 Set 個数 5 Set 消費税 8% Set 計算 Click 金額 Get 23 キーワード駆動テストキーワード駆動のシステム変更への対応例 単価個数 消費税 内税 8% 10% 計算 金額 変更箇所 変更前のスクリプトは変更なしで実行可能 対象 値 操作 単価 200 Set 個数 5 Set 計算 Click 金額 Get 24

キーワード駆動テストキーワード駆動に起因する問題 キーワード駆動は 制御処理 (IF 文など ) の記述が難しい 問題 例 同じ部分を含んだスクリプトが大量に作成される テストスクリプトに 他のテストスクリプトと共通的な部分と 他のテストスクリプトと異なる部分 ( テストバリエーション ) が混在する ログイン > 商品選択 > 購入 > ログアウト 共通的な部分 異なる部分 共通的な部分 共通的な部分 解決策 テストスクリプトを分離する バリエーションは作りやすく 共通は自動スクリプト (+ データ駆動 ) 異なる部分はキーワード駆動 25 キーワード駆動テストシステムテストに起因する問題 準備と結果はシステムだけでは完結しない 問題 システムテストの準備や結果判定は データベースなどの外部システムも考慮する必要がある 解決策 テストの準備に 外部システムも含める テストの結果判定に システムの状態も含める システムを自動で動作させる部分 準備と結果判定部分を分離する テスト制御システム 制御 自動操作システム 26

キーワード駆動テスト自動テストシステムの推奨構造 検査対象のシステム 制御 操作 制御システム PowerShell などで作成 自動操作システム自動化ライブラリを使用してシステムを構築テストスクリプトは 各種言語やテキストファイルなどで記述する 27 システムテスト自動化のアーキテクチャ 1. システムテスト自動化の問題 2. システムテスト自動化のアーキテクチャ 3. システムテスト自動化のパターン

システムテスト自動化のアーキテクチャ自動テストとは 自動テストはシステム 自動テストは 検査を実行するシステム 自動化されたシステムテストとは システムをテストするという目的を持ったシステム 検査対象のシステム システムを検査するためのシステム 検査という明確な目的と機能 29 システムテスト自動化のアーキテクチャシステムテスト自動化の問題 テストするシステムやプロジェクトによって 自動化の要求は異なる 掃除を自動化する 自動化度は高い 結果品質は高い キーワード駆動はゴールではない 30

システムテスト自動化のアーキテクチャルールと指針を決めて 目的にあった自動化 ルール 判断するための具体的なルールを用意する 指針 ( 品質特性 ) 複数のルール間で整合性を取るためには 指針が必要 指針 1. 品質 2. 効率 ルール 1 確実にきれいにするために人が行う 31 システムテスト自動化のアーキテクチャシステムアーキテクチャとは 品質特性 システムとして統一された品質を達成するために システムとして求められる品質特性と対象 ( ステークホルタ ー ) を決める ルール ( 仕組み ) 複数のメンバー間で統一された品質を達成するために 具体的なルールを用意する 品質特性を強制する仕組みを作る システムアーキテクチャとはシステムの構造や構造化の原則 システムアーキテクチャの目的システムの品質特性を強制 ( 支配 ) する構造を構築する 32

システムテスト自動化のアーキテクチャ自動テストのシステム構成 自動テストのシステム構成 二つのシステム テスト対象システム 自動テストシステム 自動テストシステムのサブシステム テストスクリプトの作成 テストスクリプトの実行 自動テストの運用 自動テストシステム テストスクリプトの作成 テスト対象システム テストスクリプトの実行 自動テストの運用 33 システムテスト自動化のアーキテクチャシステムごとに異なった関心事 自動テストの観点からの関心事 テスト対象システム テストしやすいシステムであること テストスクリプトの作成 効率よく作成できること テストスクリプトの実行 確実に実行できること 自動テストの運用 上手にテストの運用を行うこと 各システムと品質特性 システムごとに異なった品質特性がある 34

システムテスト自動化のアーキテクチャテスト対象システムに要求される品質特性 テスト対象システム に対する品質特性 操作性 ( 実行性 ) 自動テストのプログラムから対象のプログラムを実行し 制御できること 確認性 対象のプログラムを実行した結果が正確に確認できること 再現性 テストを行う特定の状況を再現できること 35 システムテスト自動化のアーキテクチャ自動テストシステムに要求される品質特性 テストスクリプトの作成 に関する品質特性 理解性 テストスクリプトが読みやすく理解しやすいこと テストスクリプトを容易に作成することができること テストスクリプトができるだけ多くのメンバーが作成できること 効率性 多様で効果的なテストスクリプトを適切なコストで作成できること 保守性 テストスクリプトはテスト対象の変更に素早く対応する必要がある テストスクリプトの変更が容易であること 拡張性 テストスクリプトの機能を必要に応じて拡張できること 36

システムテスト自動化のアーキテクチャ自動テストシステムに要求される品質特性 自動テストの実行 に関する品質特性 安定性 テストスクリプトを安定して実行できること 同じテストスクリプトを何度でも安定して実行できること 信頼性 テスト結果の判定が信頼できること 移植性 異なった環境でテストを実行できること 37 システムテスト自動化のアーキテクチャ自動テストシステムに要求される品質特性 自動テストの運用 に関する品質特性 効率性 必要な自動テストを効率的に運用することができること 柔軟性 状況に合わせて 柔軟な運用ができること 障害許容性 対象のプログラムで予測しないエラーが発生しても 他のテストスクリプトが継続的に実行できること 並列性 複数の環境で効率的にテストを並列して実行できること 38

まとめシステムテストの自動化 目的を明確にする テストしたいシステムやプロジェクトによって目的は異なる ルールと指針 ( 品質特性 ) を決める ルールと指針によって 的確な自動化が行える アーキテクチャを構築する 対象システム 自動テストシステムは異なった指針が必要 品質特性を強制するものがアーキテクチャ 39 まとめシステムテストの自動化について 1. システムテスト自動化の方針 2. 各工程で行うべきこと

システムテストの自動化についてシステムテスト自動化の方針 エンドツーエンドを目指す 100% のエンドツーエンドでなくても 有効と判断できれば自動化する カイゼンを継続する 自動化できる部分から自動化を開始する 自動テストからフィードバッグを得る テストの効果を向上させるためには カイゼンが必要 理想と現実を近づけるためには カイゼンする カイゼン対象に聖域なし 自動化に必要であれば あらゆる可能性を検討する 完全性を待たず 改善を作業に取り入れる ( 完全な状態だけを求めると 十分になる機会を失うことになる ) XP 第 2 版 41 システムテストの自動化について開発の初期段階で行うべきこと 開発ガイドラインに テストの自動化を追求する と記述する 理由 メンバー全員が最初からテストの自動化に取り組むことを宣言するため システムテストを効率的に自動化するためには 様々な障害が内在する それをアイデアで乗り越えるため やるべきこと テスト容易性を高くすることに注力する テストを自動化するために必要であれば プログラムの内部的な機能として実装する ( エンドユーザーには 必要ない機能であっても ) 42

システムテストの自動化について分析 設計段階で行うべきこと テスト容易性を追求した設計を行う 設計の基本 Don t repeat yourself を守る ( 重複を避ける ) GUI でしか実行できない機能をできる限り作らない 理由 テスト容易性を追求することで 設計品質が向上する システムの重複が多いと 同じようなテストをたくさん用意しなければならなくなる GUIを使用しないAPIを用意できれば 自動化が容易になる やるべきこと TDD を導入し 内部品質を向上させる 43 システムテストの自動化についてシステムテストの作成について テストケースは メンバー全員で作成する 理由 システムテストは 様々な視点で行うことが有効 メンバーの様々な視点でテストケースを作成する システムテストでは 準備や結果比較も容易ではない やるべきこと 様々なツールや技術を組合わせることが必要となる テストケースの記述方法の抽象度を上げる テストケースがテスト目的の視点で記述できる テストケースの作成コストを低くする 44

システムテストの自動化についてシステムテストの運用で行うべきこと 自動化したテストを効率的 効果的に運用するためにはコストが必要 テスト結果からフィードバッグで運用を改善する 理由 システムテストの実行には 時間が掛かるため 効果的に運用するためには様々な工夫が必要となる 自動化はゴールではなく 新たな自動化へスタート テスト結果からのフィードバックには 様々な情報が含まれている やるべきこと テストケースを色分けして 実行計画を作成する テストの実行は 夜間や休日を有効に利用する テスト結果を分析し 新たなテストケースを作成する 45 システムテストの自動化についてまとめ 自動化を目的にしない システムテストをすべて自動化しない 理由 やるべきこと テストすることが目的ではない 人の手によるテストは非常に重要である テストの自動化にはコストが掛かるので 効果のあるところから自動化を開始する テスト結果を予想することが難しいのでカイゼン ( 再計画 ) が有効 システムのリスクを考慮し 自動化することで効果のあるところから自動化に取り組む できるだけ早い段階から開始し システムに対するフィードバックを得る機会を作る 46

補足資料パターン集 1. 自動化されたシステムテスト のパターン 2. テスト対象システム のパターン 3. テストスクリプトの作成 のパターン 4. テストスクリプトの実行 のパターン 5. 自動テストの運用 のパターン 経験とパターン 品質特性 ( 適応基準 ) 経験 パターン ( 経験則 ) 実践 48

自動化されたシステムテスト のパターン 1. 目的は Checking 自動化されたシステムテスト のパターン 目的は Checking 問題 解決策 効果 自動化したシステムテストの良い使い方が分からないシステムテストを自動化してコスト的に問題ないかわからない 自動化したシステムテストは ある時点やある環境と現在や他の環境とを比較して 壊れていないことを確認するものである比較する状況の発生と回数と自動化するコストを比較してコストメリットを考える 的確に壊れていることや問題があることが発見できる Checking 以外のテストに人手を回すことができる 50

テスト対象システム のパターン 1. 同期で操縦 2. ソフトウェアで処理するためのID テスト対象システム のパターン 同期で操作 問題 解決策 効果 注意 テストしたい処理の処理時間が不定期で 事前に待ち時間を想定できない 長い待ち時間で実行すると無駄な待ちが発生して 実行時間が長くなってしまう テスト対象のシステムに同期通信で外部から処理を呼び出す機能を実装する 処理時間を気にしないでテストスクリプトを作成できる待ち処理が必要ないため 高速にテストを実行することができる 確認ダイアログなどが表示されると処理が止まる 52

テスト対象システム のパターン ソフトウェアで処理するための ID 問題 解決策 効果 注意 テスト結果を取得したいのにIDがなく処理できない IDが実行ごとに異なりテストスクリプトで処理できない 結果を表示するような場合でも 必ずIDを用意する固定的なIDを用意する 自動テストだけで利用する連番 IDなども検討する 自動テストで操作しやすく 確実に実行できるようになるテストスクリプトの共通化が可能となる 人間が理解しやすい ID とソフトウェアが処理しやすい ID は異なることが多いため 複数の ID が必要となる 53 テストスクリプトの作成 のパターン 1. シナリオをユースケースで分析 2. 粒度の調整 3. テストスクリプトに共通変数 4. 正しいのは以前の自分 5. 時間への挑戦

テストスクリプトの作成 のパターン シナリオをユースケースで分析 問題 解決策 効果 例 テストスクリプトに重複部分が多く 作成や保守コストが掛かる テストスクリプトを作成するために テストシナリオを分析したいが方法わからない 似ているテストシナリオを基にユースケースを作成し ユースケースごとに テストスクリプトの作成方法を決定する 重複がなくなり 作成や保守コストを下げることができる ECサイトでの商品の購入 ユースケース的には 以下の3つから構成される ログイン > 商品の選択 > 決済 ログイン と 決済 は重複されることが多い また 処理フローはある程度限定される 商品の選択 は検索やキャンセル 個数の変更などバリエーションが多い 55 テストスクリプトの作成 のパターン 粒度の調整 問題 解決策 効果 テストスクリプトを作成できるメンバーが限定されるテストスクリプトの品質が安定しないテストスクリプトの作成と保守コストが掛かる テストスクリプトを複数の粒度で実装できるようにする粒度は以下のようになる ドメイン言語 > スクリプト言語 > プログラム言語 例 : タブ区切りのテキスト > PowerShell > C# バリエーションが必要な部分の粒度を大きくすることで テストスクリプト全体の作成と保守コストを下げることができる 粒度の大きい部分の作成は習熟度があまり必要ないためチームメンバー全員が作成することができるようになる粒度の大きい部分は ツールとの組み合わせで自動生成が可能である 56

テストスクリプトの作成 のパターン テストスクリプトに共通変数 問題 解決策 効果 環境を変えるとテストスクリプトが正しく動作しない環境に合わせてテストスクリプトを変更すると保守コストが爆発する テストスクリプトに共通変数を導入する環境に依存する部分は テストスクリプトではなく共通のファイルに定義する自動テストの実行時に 共通定義内の値でテストスクリプトを変更する テストスクリプトを書き換えることなく 待ち時間や実行年月日などを実行時に設定することができる環境ごとのテストスクリプトを作成する必要がなくなる 57 テストスクリプトの作成 のパターン 正しいのは以前の自分 問題 システムテストの正しい結果を事前に用意するのにコストが掛かる 実行できたかどうかだけで 成否を判断している 解決策 効果 ある時点 ある環境の結果を正解とする 検査時は 検査の結果と正解を比較して 成否を判断する 実行結果を正解とすることで 容易に結果を用意できる 正解とした結果の内容を確認しないと 間違った結果を正解としてしまう可能性がある 58

テストスクリプトの作成 のパターン 時間への挑戦 問題 システムで利用する時間が実行ごとに異なるため 結果が必ず異なってしまう システムの環境によって実行時間が異なるため 安定して実行できない 解決策 時間取得部分を一か所にして モック化する 結果判断から時間を除外する 同期で処理を行う 効果 システムにより結果判断が可能となる 安定した自動テストの実行が可能となる 59 テストスクリプトの実行 のパターン 1. 非同期で操作 2. スクリプトで実行 3. 結果はテキストファイル

テストスクリプトの実行 のパターン 非同期で操作 問題 解決策 効果 注意 テストしたい処理の中で 確認メッセージや確認入力があり 同期では処理が止まってしまう APIなどを使用して テスト対象のシステムを非同期で外部から処理を呼び出す確認処理の呼出し部分を非同期で行う 確認処理は同期で行う確認処理を同期で処理することで 状態の変更待ちなどが可能となる 同期では止まってしまう処理を実行できるようになる 待ちを時間で行う場合 事前に時間を想定する必要がある 61 テストスクリプトの実行 のパターン スクリプトで実行 問題 解決策 効果 システムテストを実行するためのデータベースなどの設定を行えない システムテストの実行に スクリプト言語を導入するスクリプト言語を利用して データベースなどの設定を行う スクリプト言語は システム間の連携のための機能が豊富で 容易に他システムとの連携ができる 62

テストスクリプトの実行 のパターン 結果はテキストファイル 問題 解決策 効果 システムテストの実行結果の判定が自動化できないシステムテストの実行結果が環境などに依存してしまう 画面の値を文字列として取得できる機能を用意する 画面を画像として残すのではなく テキストファイルで保存し 期待値のファイルと比較し判定を行う テスト結果の比較制度が上がり 的確な判定を行うことができる日付や時間などを除外して比較することができる期待値を事前に用意することができる 63 自動テストの運用 のパターン 1. 自動テストの運行スケジュール 2. 自動テストの並行実行 3. 自動テストのランキング

自動テストの運用 のパターン 自動テストの運行スケジュール 問題 解決策 効果 注意 テストの実行時間が長く 効果的なテストの実行ができない 夜間や休日を考慮して実行スケジュールを作り 運用する 全てのテストスクリプトを実行対象とするのではなく 変更に関連したテストスクリプトを選択する方法を確立する 開発作業を行っていない間に実行することで 効果的なフィードバックが可能となる テストスクリプトの実行でエラーが発生することを想定した運用環境を作る 65 自動テストの運用 のパターン 自動テストの並行実行 問題 解決策 効果 注意 テストの実行時間が長く 効果的なテストの実行ができない テストセット ( 複数のテストスクリプト ) 単位で並列実行できる環境を構築する実現例 キューシステムを導入し 同じテストセットを実行しないようにする 成功リスト エラーリスト 実行中リストを用意して 並列実行を行う 実行時間のトータル時間より短い時間でのフィードバックが可能となる 各テストセットの実行時間をできるだけ均一とするテストセット間の関係をなくし テストセットの独立性を実現する 66

自動テストの運用 のパターン 自動テストのランキング 問題 解決策 効果 注意 テストスクリプトの数が多く 効果的なテストの実行ができない テストスクリプトにランキングを付けて 実行に強弱を付けるランキングの正しさを判断する基準を用意する 効果のあるテストを優先的に実行することができる ランクの低いテストスクリプトを実行していれば 見つかっていた問題を見逃してしまう可能性がある 67 参考文献 システムテスト自動化標準ガイド Mark Fewster, Dorothy Graham 著テスト自動化研究会訳 XP エクストリーム プログラミング入門変化を受け入れる Kent Beck 実践テスト駆動開発 Steve Freeman Nat Pryce トヨタ生産方式 大野耐一 脱規模の経営をめざして 68