SlideShare a Scribd company logo
1 of 35
Data Driven Development (仮)
~ Semi-Automated Relevancy Evaluation Platform in Search ~

0112/2013
Kotaro Ogino
Search Platform Group, Search Section, Big Data Department, Rakuten Inc.
http://www.rakuten.co.jp/
楽天の検索から
来ました
2
楽天の検索

3
検索プラットフォームを
パッケージ製品から内製に
• クラウドなプラットフォーム
• 検索結果の改善
開発環境の整備
→ システムテストの自動化
4
アジャイルテストの4象限
ビジネス面

自動と手動

チ
ー
ム
を
支
援
す
る

手動

機能テスト
例)
ストーリーテスト
プロトタイプ
シミュレーション

探索的テスト
シナリオ
ユーザビリティテスト
受け入れテスト
アルファ/ベータ

単体テスト
コンポーネントテスト

パフォーマンス/
負荷テスト
セキュリティテスト
「〜性」テスト

自動

製
品
を
批
評
す
る

ツール
技術面
ISBN:9784798119977“ 実践アジャイルテスト” p.96

5
アジャイルテストの4象限
ビジネス面

自動と手動

チ
ー
ム
を
支
援
す
る

手動

機能テスト
例)
ストーリーテスト
プロトタイプ
シミュレーション

探索的テスト
シナリオ
ユーザビリティテスト
受け入れテスト
アルファ/ベータ

単体テスト
コンポーネントテスト

パフォーマンス/
負荷テスト
セキュリティテスト
「〜性」テスト

検索機能

運用性
可用性

自動

製
品
を
批
評
す
る

ツール
技術面
ISBN:9784798119977“ 実践アジャイルテスト” p.96

6
JaSST 14 Tokyo
で事例発表するよ

http://jasst.jp/symposium/jasst14tokyo.html

7
開発環境は
整った
8
サービス品質
向上やるぞ
9
アジャイルテストの4象限
ビジネス面

自動と手動

チ
ー
ム
を
支
援
す
る

手動

機能テスト 検索機能
例)
ストーリーテスト
プロトタイプ
シミュレーション

探索的テスト
シナリオ
ユーザビリティテスト
受け入れテスト
アルファ/ベータ

単体テスト
コンポーネントテスト

パフォーマンス/
負荷テスト
セキュリティテスト 完全性
「〜性」テスト
可用性

自動

製
品
を
批
評
す
る

ツール
技術面
ISBN:9784798119977“ 実践アジャイルテスト” p.96

10
アジャイルテストの4象限
ビジネス面

自動と手動

チ
ー
ム
を
支
援
す
る

手動

検索結果
の
品質

機能テスト 検索機能
例)
ストーリーテスト
プロトタイプ
シミュレーション

探索的テスト
シナリオ
ユーザビリティテスト
受け入れテスト
アルファ/ベータ

単体テスト
コンポーネントテスト

パフォーマンス/
負荷テスト
セキュリティテスト 完全性
「〜性」テスト
可用性

自動

製
品
を
批
評
す
る

ツール
技術面
ISBN:9784798119977“ 実践アジャイルテスト” p.96

11
検索結果の品質にまつわる問題…

検索ランキングの評価
→ 検索ランキングってテスト可能?
→ 検索結果のランキングは複数の
コンポーネントが複雑に
相互作用して作られる
= システムテストが必要

12
検索結果の品質にまつわる問題…

データ分析者と開発者の関係
→ データ分析者は”専門分野”を
評価している
例) 形態素解析、音素分析、TFIDF
→ リリース後のユーザーの行動に
よるABテストで
トータルとしてよくない結果が
出ることがしばしば
13
Big
× Agile
Data
14
PDCA iterations
行動

×

目的
関数
観測

テスト

報酬

Reinforcement
Learning

生産性

実装

リファクタリング

TDD
15
Data Driven Development

(2)開発

(1)目的関数

(3) 評価

(4) 承認
16
Data Driven Development
(2)開発
(1)目的
関数
(3) 評価

(4) 承認

分析者 評価

開発者

→ 対象システムの
目的関数の最適化の
ための継続的な
開発サイクル
対象システム
ベースライン
対象システム
改善手法

評価用
データセット

17
Data Driven Development

(2)開発

(1)目的関数

(3) 評価

(4) 承認
18
(2)開発

(1) 目的関数
(1)目的
関数

既存の開発の問題点
・定量的な評価手法が存在しない
・継続的な改善の仕組みがない

(3) 評価

(4) 承認

既存の分析の問題点
・分析、評価が開発プロセスから
独立している

→ 分析サイドで評価に使われている
目的関数を開発サイドに導入
19
(2)開発

(1) 目的関数
(1)目的
関数
(3) 評価

諸事情によりモザイク

(4) 承認

20
Data Driven Development

(2)開発

(1)目的関数

(3) 評価

(4) 承認
21
(2)開発

(2) 開発

目的関数を最適化する
改善手法の開発、設定
- Tokenizer, Filter の開発
- スキーマ などの設定

分析者 評価
開発者

(1)目的
関数
(3) 評価

(4) 承認

対象システム
ベースライン
対象システム
改善手法

評価用
データセット

22
(2) 開発

Main
stream

Git

ベースライン

Relevancy
branch

改善手法

23
Data Driven Development

(2)開発

(1)目的関数

(3) 評価

(4) 承認
24
(2)開発

(3) 評価
(1)目的
関数

既存の開発の問題点

(3) 評価

(4) 承認

・開発後にしか評価が出来ない
・自動化されていないので頻繁に
評価を実行できない

既存の分析の問題点
・トータルなサーチ結果の改善を
示す事が困難

→ 共通の自動化された評価基盤を提供
25
(2)開発

(3) 評価

Jenkins, Vagrant, Ngauto で
共通の自動評価プラットフォーム
を構築

分析者 評価
開発者

(1)目的
関数
(3) 評価

(4) 承認

対象システム
ベースライン
対象システム
改善手法

評価用
データセット

26
(2)開発

(3) 評価
(1)目的
関数

Ngautoのテストクラス
(3) 評価

(4) 承認

→ JUnitでそれぞれの
シナリオが
記述されている

STG のJenkins のジョブ
→ 対応するジョブを
作成

27
(2)開発

(3) 評価
(1)目的
関数

評価結果
・ Jenkinsの画面

(3) 評価

(4) 承認

28
(2)開発

(3) 評価
(1)目的
関数

評価結果
・ Jenkinsの画面

(3) 評価

(4) 承認

テストが失敗した!
= 検索結果に変化が生じた!

29
Data Driven Development

(2)開発

(1)目的関数

(3) 評価

(4) 承認
30
(2)開発

(4) 承認
(1)目的
関数

Main
stream

Git

- pull request
- approve

(3) 評価

(4) 承認

ベースライン

Relevancy
branch

改善手法

31
Data Driven Development

32
Data Driven Development
= 継続した改善のための
ATDDのサイクル
33
Data Driven Development

(2)開発

(1)目的関数

(3) 評価

(4) 承認
34
Agile
Big Data
35

More Related Content

What's hot

ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014Koji Hasegawa
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所Kotaro Ogino
 
Automation test.ssf alpha
Automation test.ssf alphaAutomation test.ssf alpha
Automation test.ssf alpharyuji koyama
 
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」Hiroko Tamagawa
 
テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善Mizuho Wakai
 
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOKKotaro Ogino
 
Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)masanori kataoka
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオンkyon mm
 
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記友隆 浅黄
 
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門Satoshi Watanabe
 
テスト自動化のこれまでとこれから
テスト自動化のこれまでとこれからテスト自動化のこれまでとこれから
テスト自動化のこれまでとこれからKeizo Tatsumi
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasstkyon mm
 
20150418 システムテスト自動化 第二章
20150418 システムテスト自動化 第二章20150418 システムテスト自動化 第二章
20150418 システムテスト自動化 第二章atsushi ishiji
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介Shinsuke Matsuki
 
20150418 システムテスト自動化 第一章
20150418 システムテスト自動化 第一章20150418 システムテスト自動化 第一章
20150418 システムテスト自動化 第一章Yuki Fujisawa
 
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようスマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようKoji Hasegawa
 
異業種でのテスト自動化の実際
異業種でのテスト自動化の実際異業種でのテスト自動化の実際
異業種でのテスト自動化の実際Satsuki Urayama
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?Teppei Sato
 

What's hot (20)

ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014ビルドプロセスとCI #STAC2014
ビルドプロセスとCI #STAC2014
 
Ai for software testing
Ai for software testingAi for software testing
Ai for software testing
 
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
 
Automation test.ssf alpha
Automation test.ssf alphaAutomation test.ssf alpha
Automation test.ssf alpha
 
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
20131201 テスト自動化カンファレンスLT「激しいUI変更との戦い」
 
テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善テストマネジメントツールSquash TMを利用した継続的テスト改善
テストマネジメントツールSquash TMを利用した継続的テスト改善
 
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
 
Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)Agileツール適合化分科会(テスト自動化ツール)
Agileツール適合化分科会(テスト自動化ツール)
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
 
【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記【STAC2017】テスト自動化システム 成長記
【STAC2017】テスト自動化システム 成長記
 
テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門テスト初心者Androiderのためのソフトウェアテスト入門
テスト初心者Androiderのためのソフトウェアテスト入門
 
テスト自動化のこれまでとこれから
テスト自動化のこれまでとこれからテスト自動化のこれまでとこれから
テスト自動化のこれまでとこれから
 
詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst詳解!自動結合テスト #jasst
詳解!自動結合テスト #jasst
 
20150418 システムテスト自動化 第二章
20150418 システムテスト自動化 第二章20150418 システムテスト自動化 第二章
20150418 システムテスト自動化 第二章
 
自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介自動テスト知識体系TABOKのご紹介
自動テスト知識体系TABOKのご紹介
 
20150418 システムテスト自動化 第一章
20150418 システムテスト自動化 第一章20150418 システムテスト自動化 第一章
20150418 システムテスト自動化 第一章
 
Twitter4Jとテスト
Twitter4JとテストTwitter4Jとテスト
Twitter4Jとテスト
 
スマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめようスマートフォンアプリの テスト自動化をはじめよう
スマートフォンアプリの テスト自動化をはじめよう
 
異業種でのテスト自動化の実際
異業種でのテスト自動化の実際異業種でのテスト自動化の実際
異業種でのテスト自動化の実際
 
JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?JavaScript Unit Test Why? What? How?
JavaScript Unit Test Why? What? How?
 

Similar to 【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)

JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストShuji Watanabe
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployRyutaro YOSHIBA
 
画像認識ベースのUI自動化フレームワークを用いた取り組み
画像認識ベースのUI自動化フレームワークを用いた取り組み画像認識ベースのUI自動化フレームワークを用いた取り組み
画像認識ベースのUI自動化フレームワークを用いた取り組みShuhei Furuya
 
Continuous delivery chapter4
Continuous delivery chapter4Continuous delivery chapter4
Continuous delivery chapter4favril1
 
アジャイルテストを、壮絶に、考える。
アジャイルテストを、壮絶に、考える。アジャイルテストを、壮絶に、考える。
アジャイルテストを、壮絶に、考える。Dai FUJIHARA
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考えるyasuohosotani
 
SGT2013 技術トークス「アジャイルテスティング」
SGT2013 技術トークス「アジャイルテスティング」SGT2013 技術トークス「アジャイルテスティング」
SGT2013 技術トークス「アジャイルテスティング」yasuohosotani
 
失敗から学ぶテスト自動化導入で大切なこと
失敗から学ぶテスト自動化導入で大切なこと失敗から学ぶテスト自動化導入で大切なこと
失敗から学ぶテスト自動化導入で大切なことsono susumu
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリングShuji Watanabe
 
Et west テスト自動化_公開版
Et west テスト自動化_公開版Et west テスト自動化_公開版
Et west テスト自動化_公開版Noriyuki Mizuno
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナーTomoyuki Sato
 
テストとの上手な付き合い方
テストとの上手な付き合い方テストとの上手な付き合い方
テストとの上手な付き合い方Akira Suenami
 
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)Sho Nakamura
 
テスコン2015 チームfujiプレゼン資料
テスコン2015 チームfujiプレゼン資料テスコン2015 チームfujiプレゼン資料
テスコン2015 チームfujiプレゼン資料ken otabe
 
TABOK Skill Category2解説
TABOK Skill Category2解説TABOK Skill Category2解説
TABOK Skill Category2解説Kinji Akemine
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料Masatoshi Itoh
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本Tsuyoshi Yumoto
 
Appiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみるAppiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみるNozomi Ito
 
How to introduce test automation in VeriServe Test Automation Talk #2
How to introduce test automation in VeriServe Test Automation Talk #2How to introduce test automation in VeriServe Test Automation Talk #2
How to introduce test automation in VeriServe Test Automation Talk #2Sadaaki Emura
 
Invitation to development tools オープン系開発ツールへのいざない
Invitation to development tools オープン系開発ツールへのいざないInvitation to development tools オープン系開発ツールへのいざない
Invitation to development tools オープン系開発ツールへのいざないSatoru Yoshida
 

Similar to 【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮) (20)

JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
 
ワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeployワンクリックデプロイ101 #ocdeploy
ワンクリックデプロイ101 #ocdeploy
 
画像認識ベースのUI自動化フレームワークを用いた取り組み
画像認識ベースのUI自動化フレームワークを用いた取り組み画像認識ベースのUI自動化フレームワークを用いた取り組み
画像認識ベースのUI自動化フレームワークを用いた取り組み
 
Continuous delivery chapter4
Continuous delivery chapter4Continuous delivery chapter4
Continuous delivery chapter4
 
アジャイルテストを、壮絶に、考える。
アジャイルテストを、壮絶に、考える。アジャイルテストを、壮絶に、考える。
アジャイルテストを、壮絶に、考える。
 
アジャイル×テスト開発を考える
アジャイル×テスト開発を考えるアジャイル×テスト開発を考える
アジャイル×テスト開発を考える
 
SGT2013 技術トークス「アジャイルテスティング」
SGT2013 技術トークス「アジャイルテスティング」SGT2013 技術トークス「アジャイルテスティング」
SGT2013 技術トークス「アジャイルテスティング」
 
失敗から学ぶテスト自動化導入で大切なこと
失敗から学ぶテスト自動化導入で大切なこと失敗から学ぶテスト自動化導入で大切なこと
失敗から学ぶテスト自動化導入で大切なこと
 
テストコードのリファクタリング
テストコードのリファクタリングテストコードのリファクタリング
テストコードのリファクタリング
 
Et west テスト自動化_公開版
Et west テスト自動化_公開版Et west テスト自動化_公開版
Et west テスト自動化_公開版
 
第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー第3回ソフトウェアテストセミナー
第3回ソフトウェアテストセミナー
 
テストとの上手な付き合い方
テストとの上手な付き合い方テストとの上手な付き合い方
テストとの上手な付き合い方
 
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
DEIM2019 楽天技術研究所の研究とケーススタディ(推薦システム)
 
テスコン2015 チームfujiプレゼン資料
テスコン2015 チームfujiプレゼン資料テスコン2015 チームfujiプレゼン資料
テスコン2015 チームfujiプレゼン資料
 
TABOK Skill Category2解説
TABOK Skill Category2解説TABOK Skill Category2解説
TABOK Skill Category2解説
 
システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料システムテスト自動化標準ガイド 5章発表資料
システムテスト自動化標準ガイド 5章発表資料
 
Gui自動テストツール基本
Gui自動テストツール基本Gui自動テストツール基本
Gui自動テストツール基本
 
Appiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみるAppiumのテスト結果レポートをsahaginで作ってみる
Appiumのテスト結果レポートをsahaginで作ってみる
 
How to introduce test automation in VeriServe Test Automation Talk #2
How to introduce test automation in VeriServe Test Automation Talk #2How to introduce test automation in VeriServe Test Automation Talk #2
How to introduce test automation in VeriServe Test Automation Talk #2
 
Invitation to development tools オープン系開発ツールへのいざない
Invitation to development tools オープン系開発ツールへのいざないInvitation to development tools オープン系開発ツールへのいざない
Invitation to development tools オープン系開発ツールへのいざない
 

【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)