Your SlideShare is downloading. ×
  • Like
【システムテスト自動化カンファレンス2013 LT】 Data Driven Development (仮)
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

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

  • 492 views
Published

システムテスト自動化カンファレンス2013でのLTの発表資料です

システムテスト自動化カンファレンス2013でのLTの発表資料です

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
492
On SlideShare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
6
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 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. 楽天の検索から 来ました 2
  • 3. 楽天の検索 3
  • 4. 検索プラットフォームを パッケージ製品から内製に • クラウドなプラットフォーム • 検索結果の改善 開発環境の整備 → システムテストの自動化 4
  • 5. アジャイルテストの4象限 ビジネス面 自動と手動 チ ー ム を 支 援 す る 手動 機能テスト 例) ストーリーテスト プロトタイプ シミュレーション 探索的テスト シナリオ ユーザビリティテスト 受け入れテスト アルファ/ベータ 単体テスト コンポーネントテスト パフォーマンス/ 負荷テスト セキュリティテスト 「〜性」テスト 自動 製 品 を 批 評 す る ツール 技術面 ISBN:9784798119977“ 実践アジャイルテスト” p.96 5
  • 6. アジャイルテストの4象限 ビジネス面 自動と手動 チ ー ム を 支 援 す る 手動 機能テスト 例) ストーリーテスト プロトタイプ シミュレーション 探索的テスト シナリオ ユーザビリティテスト 受け入れテスト アルファ/ベータ 単体テスト コンポーネントテスト パフォーマンス/ 負荷テスト セキュリティテスト 「〜性」テスト 検索機能 運用性 可用性 自動 製 品 を 批 評 す る ツール 技術面 ISBN:9784798119977“ 実践アジャイルテスト” p.96 6
  • 7. JaSST 14 Tokyo で事例発表するよ http://jasst.jp/symposium/jasst14tokyo.html 7
  • 8. 開発環境は 整った 8
  • 9. サービス品質 向上やるぞ 9
  • 10. アジャイルテストの4象限 ビジネス面 自動と手動 チ ー ム を 支 援 す る 手動 機能テスト 検索機能 例) ストーリーテスト プロトタイプ シミュレーション 探索的テスト シナリオ ユーザビリティテスト 受け入れテスト アルファ/ベータ 単体テスト コンポーネントテスト パフォーマンス/ 負荷テスト セキュリティテスト 完全性 「〜性」テスト 可用性 自動 製 品 を 批 評 す る ツール 技術面 ISBN:9784798119977“ 実践アジャイルテスト” p.96 10
  • 11. アジャイルテストの4象限 ビジネス面 自動と手動 チ ー ム を 支 援 す る 手動 検索結果 の 品質 機能テスト 検索機能 例) ストーリーテスト プロトタイプ シミュレーション 探索的テスト シナリオ ユーザビリティテスト 受け入れテスト アルファ/ベータ 単体テスト コンポーネントテスト パフォーマンス/ 負荷テスト セキュリティテスト 完全性 「〜性」テスト 可用性 自動 製 品 を 批 評 す る ツール 技術面 ISBN:9784798119977“ 実践アジャイルテスト” p.96 11
  • 12. 検索結果の品質にまつわる問題… 検索ランキングの評価 → 検索ランキングってテスト可能? → 検索結果のランキングは複数の コンポーネントが複雑に 相互作用して作られる = システムテストが必要 12
  • 13. 検索結果の品質にまつわる問題… データ分析者と開発者の関係 → データ分析者は”専門分野”を 評価している 例) 形態素解析、音素分析、TFIDF → リリース後のユーザーの行動に よるABテストで トータルとしてよくない結果が 出ることがしばしば 13
  • 14. Big × Agile Data 14
  • 15. PDCA iterations 行動 × 目的 関数 観測 テスト 報酬 Reinforcement Learning 生産性 実装 リファクタリング TDD 15
  • 16. Data Driven Development (2)開発 (1)目的関数 (3) 評価 (4) 承認 16
  • 17. Data Driven Development (2)開発 (1)目的 関数 (3) 評価 (4) 承認 分析者 評価 開発者 → 対象システムの 目的関数の最適化の ための継続的な 開発サイクル 対象システム ベースライン 対象システム 改善手法 評価用 データセット 17
  • 18. Data Driven Development (2)開発 (1)目的関数 (3) 評価 (4) 承認 18
  • 19. (2)開発 (1) 目的関数 (1)目的 関数 既存の開発の問題点 ・定量的な評価手法が存在しない ・継続的な改善の仕組みがない (3) 評価 (4) 承認 既存の分析の問題点 ・分析、評価が開発プロセスから 独立している → 分析サイドで評価に使われている 目的関数を開発サイドに導入 19
  • 20. (2)開発 (1) 目的関数 (1)目的 関数 (3) 評価 諸事情によりモザイク (4) 承認 20
  • 21. Data Driven Development (2)開発 (1)目的関数 (3) 評価 (4) 承認 21
  • 22. (2)開発 (2) 開発 目的関数を最適化する 改善手法の開発、設定 - Tokenizer, Filter の開発 - スキーマ などの設定 分析者 評価 開発者 (1)目的 関数 (3) 評価 (4) 承認 対象システム ベースライン 対象システム 改善手法 評価用 データセット 22
  • 23. (2) 開発 Main stream Git ベースライン Relevancy branch 改善手法 23
  • 24. Data Driven Development (2)開発 (1)目的関数 (3) 評価 (4) 承認 24
  • 25. (2)開発 (3) 評価 (1)目的 関数 既存の開発の問題点 (3) 評価 (4) 承認 ・開発後にしか評価が出来ない ・自動化されていないので頻繁に 評価を実行できない 既存の分析の問題点 ・トータルなサーチ結果の改善を 示す事が困難 → 共通の自動化された評価基盤を提供 25
  • 26. (2)開発 (3) 評価 Jenkins, Vagrant, Ngauto で 共通の自動評価プラットフォーム を構築 分析者 評価 開発者 (1)目的 関数 (3) 評価 (4) 承認 対象システム ベースライン 対象システム 改善手法 評価用 データセット 26
  • 27. (2)開発 (3) 評価 (1)目的 関数 Ngautoのテストクラス (3) 評価 (4) 承認 → JUnitでそれぞれの シナリオが 記述されている STG のJenkins のジョブ → 対応するジョブを 作成 27
  • 28. (2)開発 (3) 評価 (1)目的 関数 評価結果 ・ Jenkinsの画面 (3) 評価 (4) 承認 28
  • 29. (2)開発 (3) 評価 (1)目的 関数 評価結果 ・ Jenkinsの画面 (3) 評価 (4) 承認 テストが失敗した! = 検索結果に変化が生じた! 29
  • 30. Data Driven Development (2)開発 (1)目的関数 (3) 評価 (4) 承認 30
  • 31. (2)開発 (4) 承認 (1)目的 関数 Main stream Git - pull request - approve (3) 評価 (4) 承認 ベースライン Relevancy branch 改善手法 31
  • 32. Data Driven Development 32
  • 33. Data Driven Development = 継続した改善のための ATDDのサイクル 33
  • 34. Data Driven Development (2)開発 (1)目的関数 (3) 評価 (4) 承認 34
  • 35. Agile Big Data 35