SlideShare a Scribd company logo
2015/04/04
kyon_mm
STA Introduction
kyon_mm
Test Architect
TDD/BDD Expert
27 years old.
Self
Introduction
Time Table
11:00 : Ice break, deploy, test
12:00 - 13:00 : lunch
13:00 - 14:30 : work
14:50 - 16:00 : work
16:20 - 17:15 : work
17:15 - 17:30 : closing
Agenda
Today’s Goal
System Test Automation
About today’s Challenge
Geb+Spock
Today’s Goal
練習する事
目的
効果の高いものに集
中する
一通りやってみる
練習する事
目的テスト対象の見極め
テスト設計
優先順位
プロセス
Testing!
「あなたたちが持つテスト技術
によってこの製品をより良くす
る」ということが使命です。
今回は手始めにテストレベルが
高いものからやってみるという
状況で考えてみてください。
Testing!
「開発者の怠惰サポート」より
「気づきにくい問題の発見」を
「生成可能なテスト」より「生
成しづらいテスト」を
「特定コンテキストだけ」より
「複数コンテキスト」を
Agenda
Today’s Goal
System Test Automation
About today’s Challenge
Geb+Spock
System Test
Automation
System Test
Automation
System Test
Automation
Process
System test
システム全体を動作させてのテ
スト。コンポーネントテスト、
統合テストでは検出されないよ
うなバグを検出するためのテス
トになります。自然とJSTQBの
ようなステージング環境が想定
され、実際のシナリオが必要に
なります。
Test Levelユニット
コンポーネント
統合
システム
受け入れ
Automation
設計
実行
レポート
バグ分析
Process
計画
設計
実装
実行
Share Tool
Google SpreadSheet, Document
HipChat, Idobata, Kato.im, Slack
GitHub + Issue + Wiki
Paper + Pen
Process
計画
設計
実装
実行
Plan
「どんなテスト」を「どれくら
いの時間」で「何を」「どれく
らい網羅」して「どの順番」で
やる
リスク分析、対処法、見積もり、
実現可能性を合わせて「テスト
の全体像と進め方」を共有し、
今後も変更しやすくしたもの。
Design
テストスイートやテストケース
の設計。
デシジョンテーブル、状態遷移
図で整理したり
「何を」「どれくらい」網羅す
る
「怪しいところ」を組み合わせ
る
Implementation
実行出来るテストケースを記述
する
いわゆるテストを実行する手順
を記述する
必要なサポート(クラスや別テー
ブルなど)も記述する
Execute
テストを実行して、結果を見る。
テストを直したり、新しいテス
トをつくったり
計画に反映したり
プロダクトに反映したり
Process
計画
設計
実装
実行
Share Tool
Google SpreadSheet, Document
HipChat, Idobata, Kato.im
GitHub + Issue + Wiki
Paper + Pen
Testing!
「あなたたちが持つテスト技術
によってこの製品をより良くす
る」ということが使命です。
今回は手始めにテストレベルが
高いものからやってみるという
状況で考えてみてください。
Testing!
「開発者の怠惰サポート」より
「気づきにくい問題の発見」を
「生成可能なテスト」より「生
成しづらいテスト」を
「特定コンテキストだけ」より
「複数コンテキスト」を
About today’s
Challenge
Challenge
Application
Testing Tool
Application
Test Case Manage
テストケースにタグをつけて管
理できるWebGUIアプリ
ログイン認証
未ログイン
トップ
ログイン済み
※ヘッダを介して遷移する
ダッシュボード
ユーザー管理
(管理者用機能)
テストケース
テストタグ
Grails
Groovy
Heroku
Java Postgres SQL
Application Code
Mandrill
Inside Screen
画面間の動作は同期
画面内の動作は非同期
未ログインで各ページにアクセ
スしたら、トップページ表示し
て、ログイン後に元のページを
表示する。
Outside Screen
ユーザー情報を変更するとメー
ル通知がくる
システムのログはherokuに垂れ
流している
Tag
name : 250, unique
description : 1000
TestCase
name : 250
scenario : 1000
tags : 0 - n
User
username
password
email
enabled
Challenge
Application
Testing Tool
Background
テストケース専用の管理ツール
をつくって今後、テストプロセ
セスをよくしていきたい。
そのためのプロトタイプができ
たので、評価してほしい。
継続的な開発をする前提。
Testing!
「あなたたちが持つテスト技術
によってこの製品をより良くす
る」ということが使命です。
今回は手始めにテストレベルが
高いものからやってみるという
状況で考えてみてください。
Testing!
「開発者の怠惰サポート」より
「気づきにくい問題の発見」を
「生成可能なテスト」より「生
成しづらいテスト」を
「特定コンテキストだけ」より
「複数コンテキスト」を
Testing Tool
Spock
Geb
GroovyでWeb Driver
をラップしたライブ
ラリ
Spock
Geb
Groovyでパラメタラ
イズしやすいテスティ
ングフレームワーク
Geb Basic
Test, Page, Module
$(), css selector, jQuery like
Navigator
Test, Page, Module
TestClass
JUnit,Spock,TestNGを
使ってブラウザを動作
させるコードを書く
JUnit → @Test
Spock → extends
GebReportingSpec,
GebSpec
PageObject
画面毎につくるクラス
テストから利用する
URL
画面オブジェクト
不変条件
画面に必要な操作
Module
テーブルや、複数画面
で共有したい画面オブ
ジェクトを定義する
PageObjectの画面オブ
ジェクトに利用する
URL
このページを表示させ
るURLの相対パスか、
絶対パス。
ルートとなるURLは
GebConfig.groovyに書
く。
at
to TestCasePageやat
TestCasePageとしたと
きにassertする内容
ページの不変条件。
content
ページ中でアクセスす
る各オブジェクトを定
義する。
table
<table>の内容を取る
例
General
ヘッダーのような共通
的なものを定義する例
Geb Basic
Test, Page, Module
$(), css selector, jQuery like
Navigator
Navigator
画面オブジェクトへアクセスす
るためのクラスや操作のことで
す。
jQuery like Navigator
$(tagName, attribute:value | index)
$(tagName.class, attribute:value | index)
$(“div”, name:”description")
$(“div.main”, name:”description”)
$(“input”, name:”create”)
Try navigator
Chromeの開発者ツールを開く(Command +
Alt + i / Ctrl + Shift + i)
左側のルーペをクリックしたあとに、画
面上の対象のオブジェクトをクリックす
る
対象のエレメントを見ながら、それっぽ
いNavigatorを考える
tag名くらいならConsoleで試してみる
Geb Infra
src/test/resources/
GebConfig.groovy
baseUrl, wait
Driver
htmlUnit, Chrome, FireFox, IE,
PhantomJs
Geb Reference
http://gebish.org
http://kyon-mm.hatenablog.com
Spock Basic
given, when, then, and, where
Unroll
power assert
given, when, then,
and, where
Phrase
given : 事前条件を書く。
when : 操作を書く。
then : 起きることを書く。booleanを
返す式しか許されない。Spockが一文
ずつassertする。
where : パラメタライズを書く。
and : given,when,thenを二度連続さ
せるときに使ってもいい。
Phrase
given : あってもなくてもいい
when, then : 必ずセット。なんかい
繰り返してもいい。続く式、文がな
いとエラーになる。
where : when,thenかexpectがあると
きだけ使える。
and : given,when,thenを二度連続さ
せるときに使ってもいい。
Unroll
Unroll change
Feature name
featureに@Unrollとつけると、where
のパラメタをテストメソッド名に含
めることができる。
@Unroll

def “#parameterizedValueをゼロ
で割ると例外が起きる”(){

///

}
Power Assert
Power Assert
Spockではassertionはthenに書く。
そのときには単純な==だけで書いた
りする。
つまり、hamcrestとか使わない。
その代わりに超見やすいエラー表示
をしてくれる。
Deploy
https://github.com/kyonmm/
grabbit
click [deploy to heroku]
input mandrill-api-key
deploy!
Test Project
Template
https://github.com/kyonmm/geb-
template
download zip OR git clone

More Related Content

PDF
Kaizen process with test #hackt
PDF
テストエンジニアの品格 #automatornight
PDF
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
PDF
いいテスト会 (スプリントレビュー) をやろう!
PDF
ザ・ジェネラリスト #5000dai
PDF
テストとリファクタリングに関する深い方法論 #wewlc_jp
PPTX
How to let them in house of quality
PPTX
テストスキルを測ってみよう
Kaizen process with test #hackt
テストエンジニアの品格 #automatornight
20140903 じどうかの窓口特別編 君にもなれる!?テスト自動化エンジニア
いいテスト会 (スプリントレビュー) をやろう!
ザ・ジェネラリスト #5000dai
テストとリファクタリングに関する深い方法論 #wewlc_jp
How to let them in house of quality
テストスキルを測ってみよう

What's hot (20)

PDF
テストファースト、自動テストを導入するという事について(@社内勉強会)
PDF
ソフトウェアテスト入門
PDF
ソフトウェアテストことはじめ2016年ver
ODP
TDD for Embedded C -5章-
PPTX
テスト計画セッション
PDF
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
PDF
ソフトウェアテストことはじめ
PDF
CodeZineAcademy TDD実践講座PR資料
PPTX
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
PDF
JaSST nano vol.7 「なぜペアワイズテストを使いこなせないのか」
PDF
Agile RCA Presentation
PDF
テストプロセスについて
PDF
Test Yourself - テストを書くと何がどう変わるか
PDF
20151021 cookpad talk_test_engineer
PDF
20191122 softec asia2019_report_for_d3 _r04
PDF
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
PDF
20191104 na te_samplequestion_r03
PDF
アジャイルクオリティの探求
PDF
アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
PDF
現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編
テストファースト、自動テストを導入するという事について(@社内勉強会)
ソフトウェアテスト入門
ソフトウェアテストことはじめ2016年ver
TDD for Embedded C -5章-
テスト計画セッション
#STAC2014 状態遷移を活用した自動テストのテスト戦略とデプロイメントパイプライン
ソフトウェアテストことはじめ
CodeZineAcademy TDD実践講座PR資料
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
JaSST nano vol.7 「なぜペアワイズテストを使いこなせないのか」
Agile RCA Presentation
テストプロセスについて
Test Yourself - テストを書くと何がどう変わるか
20151021 cookpad talk_test_engineer
20191122 softec asia2019_report_for_d3 _r04
JaSST'15 Tokyo 初心者向けチュートリアル -初心者からの脱出!-
20191104 na te_samplequestion_r03
アジャイルクオリティの探求
アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
現状分析→価値開発→仕様化&テスト設計の展開事例解説:仕様&テスト編
Ad

Viewers also liked (13)

PDF
Scrum,Test,Metrics #sgt2016
PDF
Internal, External and Digital Presence of the CEO is becoming more and more ...
PDF
Engage 2013 - Webtrends Streams - Technical
PDF
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
PPTX
Engage in effective collaboration with Azure AD B2B
PDF
The Art and Science of Pricing: Simple tools to align price with value (Rober...
PDF
ProductCamp Boston 2016 Opening Slides
PPTX
Cost effective azure
PDF
SharePoint 2013 and the Consumerization of I.T.
PDF
[Infographic Korea Edition] The CEO Reputation Premium - Weber Shandwick
PPTX
Moments Matter - Technology Transforming Consumer Behavior
PPTX
John saraguro diapositiva
DOCX
actividad 1.4
Scrum,Test,Metrics #sgt2016
Internal, External and Digital Presence of the CEO is becoming more and more ...
Engage 2013 - Webtrends Streams - Technical
Unleash the Power of Video Communication - Office 365 Video vs. Azure Media S...
Engage in effective collaboration with Azure AD B2B
The Art and Science of Pricing: Simple tools to align price with value (Rober...
ProductCamp Boston 2016 Opening Slides
Cost effective azure
SharePoint 2013 and the Consumerization of I.T.
[Infographic Korea Edition] The CEO Reputation Premium - Weber Shandwick
Moments Matter - Technology Transforming Consumer Behavior
John saraguro diapositiva
actividad 1.4
Ad

Similar to Sta introduction in_kyoto #devkan (20)

PDF
#STAC2014 システムテスト自動化ハンズオン
PDF
Automationtestssf beta2 architectureskill
PDF
Automation test.ssf alpha
PPTX
TPI NEXT ざっくり概要
PDF
アジャイルなテストの見積もりと計画作り
PDF
テスト観点に基づくテスト開発方法論 VSTePの概要
PPTX
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
PPTX
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
PDF
1時間で分かるSTA (Software Test Automation) #stac2014
PDF
WACATE2012WinterBPPsession
PDF
Stac2013 opening-koukai
 
PDF
Automationtestssf beta
PDF
約1000サービスの実績から見えた「UXを可視化するユーザーテストの極意」 先生:平石 大祐
PDF
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
PDF
WACATE 2010夏 ゆもつよ講演スライド
PDF
#NagoyaTesting アジャイルなテストの見積りと計画づくり
PDF
テスト駆動開発入門 - C4K Meetup#2
PDF
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
KEY
テストとの上手な付き合い方
KEY
TDD #NagoyaTesting
#STAC2014 システムテスト自動化ハンズオン
Automationtestssf beta2 architectureskill
Automation test.ssf alpha
TPI NEXT ざっくり概要
アジャイルなテストの見積もりと計画作り
テスト観点に基づくテスト開発方法論 VSTePの概要
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
JaSST2017_大規模業務システムにおける再利用可能なテスト自動化の取り組み
1時間で分かるSTA (Software Test Automation) #stac2014
WACATE2012WinterBPPsession
Stac2013 opening-koukai
 
Automationtestssf beta
約1000サービスの実績から見えた「UXを可視化するユーザーテストの極意」 先生:平石 大祐
テスト 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第33回】
WACATE 2010夏 ゆもつよ講演スライド
#NagoyaTesting アジャイルなテストの見積りと計画づくり
テスト駆動開発入門 - C4K Meetup#2
CIが分からない PE(SETエンジニア)の1年生がWebAPIの負荷テストを 背伸びしてCI運用した
テストとの上手な付き合い方
TDD #NagoyaTesting

More from kyon mm (20)

PDF
ICST2015 GUI Testingの紹介 #SIGSTJ
PDF
焦らず急いでの意味
PDF
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
PDF
Gradle 2.2, 2.3 news #jggug
PDF
Groovyで学ぶプロセス代数 #jjug
PDF
@kyon_mmの書籍の読み方 #AsianAA
PDF
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
PDF
GradleのREPLプラグイン紹介 #jggug
PDF
契る意味 #pykonjp2014
PDF
いつでも聞けるTDD入門 #TDDBC_NAGOYA
PDF
Test Retrospective #kyon_kao_wedding in Tokyo
PDF
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
PDF
自動テストの誤解とアンチパターン in 楽天 Tech Talk
PDF
詳解!自動結合テスト #jasst
PDF
TDDの自殺 #TDDeX
PDF
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
PDF
Cafetesting12
PDF
The History of Groovy #GroovyBase
KEY
EmitJSの環境をちょこっと調べた
KEY
Veracity -次世代DVCSとは俺の事だ-
ICST2015 GUI Testingの紹介 #SIGSTJ
焦らず急いでの意味
出来るチューリング完全!SQLでもいろいろ出来る! #syoboben
Gradle 2.2, 2.3 news #jggug
Groovyで学ぶプロセス代数 #jjug
@kyon_mmの書籍の読み方 #AsianAA
JenkinsとGitで実装するGatewayCheckIn Pattern #AsianAA
GradleのREPLプラグイン紹介 #jggug
契る意味 #pykonjp2014
いつでも聞けるTDD入門 #TDDBC_NAGOYA
Test Retrospective #kyon_kao_wedding in Tokyo
ソフトウェア開発を勉強し始めて3年間でやったこと~After~ #devsumi
自動テストの誤解とアンチパターン in 楽天 Tech Talk
詳解!自動結合テスト #jasst
TDDの自殺 #TDDeX
UnitTestは最もTDDしやすいか否か? #TDDMeetUp
Cafetesting12
The History of Groovy #GroovyBase
EmitJSの環境をちょこっと調べた
Veracity -次世代DVCSとは俺の事だ-

Sta introduction in_kyoto #devkan