More Related Content
Similar to キーワード駆動によるシステムテストの自動化について 2015
Similar to キーワード駆動によるシステムテストの自動化について 2015 (20)
キーワード駆動によるシステムテストの自動化について 2015
- 26. 26P
例:金額計算システム
テストスクリプト(PowerShell)
function Main()
{
#各種設定
$target = 'C:AutoTest04.Test01.TestTarget01.TargetCalcApp.exe'
$testRunner = 'C:AutoTest04.Test01.TestTarget02.RunnerCalcAppAutoTest.exe'
$testSetRoot = 'C:AutoTest04.Test03.TestSet'
$resultRoot = 'C:AutoTest04.Test05.TestResult'
#テストスクリプトの一覧を読み込む
$testSetList = @(Get-Content 'C:AutoTest04.Test02.TestScriptTestList.txt')
#テストスクリプトの実行処理
ForEach( $testSet in $testSetList )
{
# #から始まる行はコメントとして処理しない
if( ( $testSet -ne '' ) -and ( $testSet.SubString(0,1) -ne '#' ))
{
$testSetPath = $testSetRoot + $testSet
$testLogPath = $resultRoot + $testSet + '.log'
$argumentList = [string]::Format('/A={0} /T={1} /L={2}', $target, $testSetPath, $testLogPath )
Write-host $argumentList
Start-Process -FilePath $testRunner -ArgumentList $argumentList -Wait
}
}
}
Main
実行指定されている
テストセットだけを実行する
- 40. 40P
例:金額計算システム
指針
• テスト対象システム
– テスト容易性
• 自動テストを考慮した設計と実装を行う
• テストスクリプトの作成
– 効率性
• テストスクリプトはプログラミング技術を持たないメンバーでも作成可能とする
• システムが変更されてもテストスクリプトの変更を最低限とする
– 理解性
• テストスクリプトは、意味が分かる単語で記述する
• 自動テストの実行
– 効率性
• テストスクリプトで問題が発生した時、効率的に問題箇所を特定できる
• 自動テストの運用
– 効率性
• 必要なテストスクリプトを選択して実行することができる
- 41. 41P
例:金額計算システム
ルール その1
• テスト対象システム
– コントロールにドメインの名詞をnameプロパティに設定する
• テストスクリプトの作成
– ユースケース単位に、Runnerクラスを作成する
• Runnerクラスは、動作と情報の取得を行い、結果判定は行わない
• Runnerクラスは、共通操作と結果取得を行う
• Runnerクラスは、C#でFriendlyを使用して作成する
• Friendlyは、Runnerの共通クラスのみで利用する
– 個別のテストスクリプトは、キーワード駆動によるテキストファイルで記述す
る
- 42. 42P
例:金額計算システム
ルール その2
• 自動テストの実行
– 実行結果は、テキストファイルとする
– テストの実行履歴をログファイルに出力する
– ひとつのテストセット(複数のテストスクリプト)の実行は、5分以内とする
• 自動テストの運用
– 実行するテストセットを選択することができるようにする
– 結果判定は、正常時の結果と実行時の結果を比較して行う
- 51. 51P
「テストスクリプトの作成」のパターン
「粒度の調整」
• 問題
– テストスクリプトを作成できるメンバーが限定される
– テストスクリプトの品質が安定しない
– テストスクリプトの作成と保守コストが掛かる
• 解決策
– テストスクリプトを複数の粒度で実装できるようにする
– 粒度は以下のようになる
• ドメイン言語 > スクリプト言語 > プログラム言語
• 例:タブ区切りのテキスト > PowerShell > C#
• 効果
– バリエーションが必要な部分の粒度を大きくすることで、テストスクリプト全体の作成と保守コストを
下げることができる
– 粒度の大きい部分の作成は習熟度があまり必要ないためチームメンバー全員が作成することが
できるようになる
– 粒度の大きい部分は、ツールとの組み合わせで自動生成が可能である
- 63. 63P
参考文献
• システムテスト自動化標準ガイド
– Mark Fewster, Dorothy Graham著 テスト自動化研究会 訳
• XP エクストリーム・プログラミング入門 変化を受け入れる
– Kent Beck
• 実践テスト駆動開発
– Steve Freeman・Nat Pryce
• トヨタ生産方式 脱規模の経営をめざして
– 大野 耐一
Editor's Notes
- 3
- 10
- 20
- 27
- 30
- 31
- 39
- 43
- 44
- 46
- 49
- 55
- 59