SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
Puzzle-Based Automatic Testing:
    Bringing Humans into the Loop
    by Solving Puzzles (ASE 2012)
    輪講用資料


    対象:コンピュータ科学専攻の修士・博士学生
1      (ソフトウェア工学専攻とは限らない)
    発表時間:25分


                            2012/11/1
発表論文
Puzzle-Based Automatic Testing: Bringing
Humans into the Loop by Solving Puzzles

Ning Chen and Sunghun Kim(香港科技大学)
Automated Software Testing (ASE) 2012
Acceptance rate: 15.2% (21/138)


                                           2
概要
目的   テストケースの自動生成をしたい!

問題   最先端の手法でもカバレッジに限界
     →機械的に解くのが難しい問題(後述)


提案   Puzzle-based Automated Testing (PAT):
手法   「自動で解けない問題をパズルとして人間に提示,
       その結果を利用してテストケースを生成」

実験    カバレッジの向上
結果    手動でテストを書くより効率大
                                       3
問題:既存手法はカバレッジ低
テストケース自動生成の研究が盛ん[1][2]
  → しかし,複雑なオブジェクト指向の
    プログラムに対してカバレッジが不十分
                                                         対象               カバレッジ
                                                         SvnBridge
                                                                          56.2%
    対象                          カバレッジ                    xUnit
                                                                          15.5%
    Commons Math
                                61.6%                    Math.Net
                                                                          62.8%
    Commons Collections
                                53.0%                    QuickGraph
                                                                          53.2%
    [1]を用いた実験(著者たちによる)                                      [2]を用いた実験 [3]
                                                                                                 4
[1] C.Pacheso et al. Feedback-directed random test generation. ICSE 2007
[2] N. Tillmann and J. de Halleux. Pex-white box test generation for .NET. TAP 2008
[3] X.Xiao et al. Precise identification of problems for structural test generation. ICSE 2011
自動テスト生成を困難にする原因2つ

 制約解決の困難さ


 オブジェクト変更の困難さ




                    5
原因1: 制約解決の困難さ
ある分岐先を通るために変数が満たすべき条件を,
うまく解くことが出来ない
 void method(int x, int y, int n) {
   int value = x << n;
   if (value < y && n > 2) {
       // この分岐先をテストしたい
     }
 }


                                      6
原因1: 制約解決の困難さ
ある分岐先を通るために変数が満たすべき条件を,
うまく解くことが出来ない
 void method(int x, int y, int n) {
   int value = x << n;
   if (value < y && n > 2) {
       // この分岐先をテストしたい
     }
         (x << n) < y かつ n > 2 を満たす具体的なx, y, n ?
 }


                長さ可変のシフト演算は苦手…
                                              7
原因2: オブジェクト生成・変更の困難さ
ある分岐先を通るために満たされているべき
オブジェクトの状態を設定できない
 void method2(Container container) {
   if (container.getSize() >= 10) {
       // この分岐先をテストしたい
     }
 }




                                       8
原因2: オブジェクト生成・変更の困難さ
ある分岐先を通るために満たされているべき
オブジェクトの状態を設定できない
 void method2(Container container) {
   if (container.getSize() >= 10) {
       // この分岐先をテストしたい
     } containerの内部変数size==10にすれば良い
 }

              Container.setSize()メソッドは無い…
              どうやってcontainer.getSize()==10
                 にすればいいんだ…?
                                         9
自動テスト生成を困難にする原因2つ

 制約解決の困難さ
    (x << n) < y かつ n > 2 を満たす具体的なx, y, n ?
 オブジェクト変更の困難さ
    container.size() == 10となるcontainerの生成?

人間にとってはそんなに困難じゃない問題もありそう


提案 「Puzzle-based Automated Testing」
手法 機械的に解決できない問題の一部を
   小さなパズルとして人間に解いてもらおう!
                                              10
提案手法: Puzzle-based Automated Testing
             (1)    既存手法で
                   テストケース
                    生成・実行
プログラム
                               ・実行時インスタンス
         カバレッジ情報               ・メソッド呼出履歴

           (2) 未到達分岐へ至る
              パス・値の計算

        SMTソルバエラー
                           値

        (3) 制約解決               (4) オブジェクト
           パズル                   変更パズル      テストケース
                    制約を
           生成       満たす値          生成

                                                11
                   テストケース生成
1. 既存手法でテストケース生成

Randoop[1]という既存のツールを利用して
テストケースの生成・実行

 既存ツールでカバー出来るパスをカバー
 後に利用するため実行時情報を記録
       生成されたインスタンス
       メソッド呼び出し履歴




                                                                           12
[1] C.Pacheso et al. Feedback-directed random test generation. ICSE 2007
2. 未到達分岐へ至るパス・値を計算
   カバーしたい分岐から逆向きに                                                     SMTソルバ[5]で
   満たすべき制約条件を収集 (記号的実行[4])                                            制約を満たす
    private pri(int n) {                                              値を求める
      if (n * 3 < 20) {
         // カバーしたい場所                           pub(x)
      }                                         x> 0
    }                                           n == x + 5
                                                n * 3 < 20
    public pub(int x) {
      if (x > 0) {                                                                      x=1
                                                           解けない
         pri(x + 5)                                                                解ける
      ……                                                ③制約解決パズル

                                                           ④オブジェクト変更パズル                         13

[4] L. A. Clarke. A system to generate test data and symbolically execute programs. TSE, 1976
[5] B. Dutertre and L. de Moura. System description: Yices 1.0. In Proc. SMT-COMP, 2006.
3. 制約解決パズルの生成(1/2)
SMTソルバで解決できなかった制約のうち,
ソルバが出したエラーに関係するものを抽出
 this != null                          エラー:
 sums != null                        非線形不等式は
 sums.length * sums.length <= 4096   サポートされて
 sums.length > 0                       いません
 this.n > 1




 sums.length * sums.length <= 4096
                                          14
 sums.length > 0
3. 制約解決パズルの生成(1/2)

変数名以外に違いのない制約はまとめる
sums.length * sums.length <= 4096
sums.length > 0

num * num <= 4096
                                    A * A <= 4096
num > 0
                                    A>0
obj.mem * obj.mem <= 4096
                                    3回出現
obj.mem > 0


                                                15
3. 制約解決パズルの解決
何度も出現する制約から順に人間に解いてもらう




      パズル…?



                         16
4. オブジェクト変更パズル(1/2)
依存するオブジェクトによって
条件集合をさらに分割する
                                                           どうやって
          input != null                                 この条件を満たす
          input.readInt() == 1                           inputとthisを
                                                        作ればいいんだ?
          this.currentState == null




input != null
                            this.currentState == null
input.readInt() == 1

                                                                       17
4. オブジェクト変更パズル(2/2)
何度も出てくる条件集合を優先的に人間に解いてもらう




                            18
4. オブジェクト変更パズル(2/2)
何度も出てくる条件集合を優先的に人間に解いてもらう
        ステップ1で収集した
         インスタンスを
       メソッド引数として利用


      オブジェクトの
      状態を変化させて
      目標に近づける

             メソッドに適当な
             引数を渡して実行
                            19
テストケース生成
(2)から
   「網羅したい分岐を通るにはどのパスを通るべきか」
(2)(3)から
   「thisオブジェクト・引数の満たすべき値」
(4)から
   「オブジェクトを望む状態にするためのメソッドの列」


以上を繋げることで
網羅したい分岐を通る
テストケース
(Javaの命令列)                20
が得られる
実験による評価
研究課題

1. 人間が解くことの出来るパズルは何割程度か

2. どれだけの人が進んでパズルを解いてくれるか (今回は説明を省略)

3. 提案法によってカバレッジはどれだけ向上するか

4. 手動でテストを書く労力はどれだけ削減できるか



                                 21
実験設定
対象アプリケーション
   名前                                 # of lines   # of branches
   Apache Commons Math (ACM)            20,605         7707
   Apache Commons Collections (ACC)     14,261         5242


比較対象
  提案法のステップ1, 2が既存手法に対応
  (1)Randoop + (2)記号的実行&SMTソルバ
     対象            Randoop            +記号的実行&SMTソルバ
     ACM            61.6%                      64.4%
                                                                   22
      ACC           53.0%                      56.8%
研究課題1: 人間が解けるパズルはどの程度あるか?
 →実際にパズルを解いてもらう実験を行った

被験者     コンピュータ科学専攻の大学院生8人

対象      Apache Commons Mathに対して
        生成されたパズルの上位100件づつ

結果
            総数 解けたパズルの数(重複除く) 平均所要時間
 オブジェクト変更   100      51           1分
 制約充足       100      72           1分

                                       23
  51%, 72%のパズルを平均1分で解けた
研究課題3: カバレッジはどれだけ向上するか?
             75

             70
                        7
分岐カバレッジ(%)




             65
                       2.8
             60                          5.8           +提案法
                                                       +記号的実行
             55                          3.7
                                                       Randoop
             50        61.6
                                          53
             45

             40
                   Commons Math   Commons Collection

                  最先端の手法で得られたカバレッジより,
                                                                 24
                  それぞれさらに5.8%, 7% 向上した.
研究課題4: テストを書く労力は削減できるか?
手動テストに関する実験
 対象: Java歴6年のある大学院生
 方法: 未網羅の分岐をランダムに10個選択,
      その分岐を網羅するテストを書いてもらう
 所要時間(平均): ACMでは9分   ACCでは8分

提案法
  1パズル平均1分で解けてた

  ドメイン知識ない人でも解けてた

  1パズル解けばいくつかの分岐を網羅できる場合も

   提案法は,手動でテストを書くよりも           25


   効率的にカバレッジを増やせる
結論
Test-based Automated Testingという枠組みを提案

機械的に解けない問題の一部をパズルとして人間に出題
   制約解決パズル
   オブジェクト変更パズル



提案法の良さ
   最先端ツールよりカバレッジが数%上昇
   手動でテストを書くよりも効率大

   ドメイン知識無くても実施可能                      26
私見
   機械的に解けないので人の力を借りようというアイディアが面白い
   結果の見せ方がうまい
       さりげなくグラフの目盛りが40%から
       最先端手法といいつつ,半分は「最先端手法でも使われてる古典テク
        ニックの自分実装」
   著者たちによる発表スライドが公開されている.見やすい
       http://www.slideshare.net/hunkim/puzzlebased-automatic-testing-bringing-
        humans-into-the-loop-by-solving-puzzles-ase-2012




                                                                               27
研究課題2: 任意の参加者はどの程度いるか?

実験     Commons Collectionsに関するパズルを
       Web上に公開,Twitterで参加者を募った

結果     120人の参加者
           総数 解けたパズルの数(重複除く) 平均所要時間
オブジェクト変更   100       24          1分
制約充足       100       84          1分

 ゲーム感覚(?)で参加してくる人は居る
 彼ら(ドメイン知識無い?)は,CS専攻の学生
 と比べても同等程度のパズル正解力
                                      28

Más contenido relacionado

La actualidad más candente

Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tatsuya Tojima
 
はじめてのパターン認識 第8章 サポートベクトルマシン
はじめてのパターン認識 第8章 サポートベクトルマシンはじめてのパターン認識 第8章 サポートベクトルマシン
はじめてのパターン認識 第8章 サポートベクトルマシンMotoya Wakiyama
 
東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 ClusteringHiroshi Ono
 
Lotus DEvCon 2000 - LotusScript Tips and Techniques
Lotus DEvCon 2000 - LotusScript Tips and TechniquesLotus DEvCon 2000 - LotusScript Tips and Techniques
Lotus DEvCon 2000 - LotusScript Tips and TechniquesHiroaki Komine
 
誤差逆伝播法の計算(ディープラーニング)
誤差逆伝播法の計算(ディープラーニング)誤差逆伝播法の計算(ディープラーニング)
誤差逆伝播法の計算(ディープラーニング)t dev
 
Java puzzlers 2013 at JavaFesta Japan
Java puzzlers 2013 at JavaFesta JapanJava puzzlers 2013 at JavaFesta Japan
Java puzzlers 2013 at JavaFesta JapanYoshio Terada
 
Practical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesPractical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesKoji Matsuda
 
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2hirokazutanaka
 
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能Ryosuke Okuta
 
東京都市大学 データ解析入門 3 行列分解 2
東京都市大学 データ解析入門 3 行列分解 2東京都市大学 データ解析入門 3 行列分解 2
東京都市大学 データ解析入門 3 行列分解 2hirokazutanaka
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1hirokazutanaka
 
深層学習 Day1レポート
深層学習 Day1レポート深層学習 Day1レポート
深層学習 Day1レポートtaishimotoda
 
Deep Learning を実装する
Deep Learning を実装するDeep Learning を実装する
Deep Learning を実装するShuhei Iitsuka
 
Let's Simulate a Quantum Computer with Pretty Scala
Let's Simulate a Quantum Computer with Pretty ScalaLet's Simulate a Quantum Computer with Pretty Scala
Let's Simulate a Quantum Computer with Pretty ScalaTakatomo Torigoe
 
わかりやすいパターン認識_3章
わかりやすいパターン認識_3章わかりやすいパターン認識_3章
わかりやすいパターン認識_3章weda654
 
函数プログラミングの エッセンスと考え方
函数プログラミングのエッセンスと考え方函数プログラミングのエッセンスと考え方
函数プログラミングの エッセンスと考え方啓 小笠原
 
パターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqパターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqsleipnir002
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Satoshi Kato
 
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」fukuoka.ex
 

La actualidad más candente (20)

Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
 
はじめてのパターン認識 第8章 サポートベクトルマシン
はじめてのパターン認識 第8章 サポートベクトルマシンはじめてのパターン認識 第8章 サポートベクトルマシン
はじめてのパターン認識 第8章 サポートベクトルマシン
 
東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering東京大学工学部計数工学科応用音響学 D2 Clustering
東京大学工学部計数工学科応用音響学 D2 Clustering
 
Lotus DEvCon 2000 - LotusScript Tips and Techniques
Lotus DEvCon 2000 - LotusScript Tips and TechniquesLotus DEvCon 2000 - LotusScript Tips and Techniques
Lotus DEvCon 2000 - LotusScript Tips and Techniques
 
誤差逆伝播法の計算(ディープラーニング)
誤差逆伝播法の計算(ディープラーニング)誤差逆伝播法の計算(ディープラーニング)
誤差逆伝播法の計算(ディープラーニング)
 
Java puzzlers 2013 at JavaFesta Japan
Java puzzlers 2013 at JavaFesta JapanJava puzzlers 2013 at JavaFesta Japan
Java puzzlers 2013 at JavaFesta Japan
 
Practical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesPractical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architectures
 
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
 
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能
 
東京都市大学 データ解析入門 3 行列分解 2
東京都市大学 データ解析入門 3 行列分解 2東京都市大学 データ解析入門 3 行列分解 2
東京都市大学 データ解析入門 3 行列分解 2
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
 
深層学習 Day1レポート
深層学習 Day1レポート深層学習 Day1レポート
深層学習 Day1レポート
 
Deep Learning を実装する
Deep Learning を実装するDeep Learning を実装する
Deep Learning を実装する
 
Let's Simulate a Quantum Computer with Pretty Scala
Let's Simulate a Quantum Computer with Pretty ScalaLet's Simulate a Quantum Computer with Pretty Scala
Let's Simulate a Quantum Computer with Pretty Scala
 
わかりやすいパターン認識_3章
わかりやすいパターン認識_3章わかりやすいパターン認識_3章
わかりやすいパターン認識_3章
 
PRML Chapter5.2
PRML Chapter5.2PRML Chapter5.2
PRML Chapter5.2
 
函数プログラミングの エッセンスと考え方
函数プログラミングのエッセンスと考え方函数プログラミングのエッセンスと考え方
函数プログラミングの エッセンスと考え方
 
パターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvqパターン認識 08 09 k-近傍法 lvq
パターン認識 08 09 k-近傍法 lvq
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
 
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」
 

Destacado

B4からM1までの間にやってきた研究について
B4からM1までの間にやってきた研究についてB4からM1までの間にやってきた研究について
B4からM1までの間にやってきた研究についてnkazuki
 
2.2 have you bought your ticket yet
2.2  have you bought your ticket yet2.2  have you bought your ticket yet
2.2 have you bought your ticket yeteuniceteohpohcheng
 
Swarm Testing (ISSTA 2012) 輪講会用資料
Swarm Testing (ISSTA 2012) 輪講会用資料Swarm Testing (ISSTA 2012) 輪講会用資料
Swarm Testing (ISSTA 2012) 輪講会用資料nkazuki
 
「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...
「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...
「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...nkazuki
 
Women's 2012 Christian Conference
Women's 2012 Christian ConferenceWomen's 2012 Christian Conference
Women's 2012 Christian ConferenceJo-Ann Fair
 
Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用
Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用
Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用nkazuki
 
X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...
X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...
X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...nkazuki
 
Mutation Analysis for JavaScript Web Applicaiton Testing SEKE2013
Mutation Analysis for JavaScript Web Applicaiton Testing  SEKE2013Mutation Analysis for JavaScript Web Applicaiton Testing  SEKE2013
Mutation Analysis for JavaScript Web Applicaiton Testing SEKE2013nkazuki
 
はじめてのAIプログラミング 5章: 知識表現
はじめてのAIプログラミング 5章: 知識表現はじめてのAIプログラミング 5章: 知識表現
はじめてのAIプログラミング 5章: 知識表現nkazuki
 
A sequential recommendation approach for interactive personalized story gener...
A sequential recommendation approach for interactive personalized story gener...A sequential recommendation approach for interactive personalized story gener...
A sequential recommendation approach for interactive personalized story gener...nkazuki
 
Supporting View Transition Design of Smartphone Applications Using Web Templ...
Supporting View Transition Design of Smartphone Applications Using  Web Templ...Supporting View Transition Design of Smartphone Applications Using  Web Templ...
Supporting View Transition Design of Smartphone Applications Using Web Templ...nkazuki
 
AngularJSを浅めに紹介します
AngularJSを浅めに紹介しますAngularJSを浅めに紹介します
AngularJSを浅めに紹介しますnkazuki
 
AIChallange発表資料
AIChallange発表資料AIChallange発表資料
AIChallange発表資料nkazuki
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みMasahiro Sakai
 

Destacado (16)

B4からM1までの間にやってきた研究について
B4からM1までの間にやってきた研究についてB4からM1までの間にやってきた研究について
B4からM1までの間にやってきた研究について
 
2.2 have you bought your ticket yet
2.2  have you bought your ticket yet2.2  have you bought your ticket yet
2.2 have you bought your ticket yet
 
Swarm Testing (ISSTA 2012) 輪講会用資料
Swarm Testing (ISSTA 2012) 輪講会用資料Swarm Testing (ISSTA 2012) 輪講会用資料
Swarm Testing (ISSTA 2012) 輪講会用資料
 
「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...
「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...
「Automated Oracle Creation Support, or: How I Learned to Stop Worrying about ...
 
Women's 2012 Christian Conference
Women's 2012 Christian ConferenceWomen's 2012 Christian Conference
Women's 2012 Christian Conference
 
Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用
Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用
Reducing Confounding Bias in Predicate-Level Statistical Debugging Metrics 4分説明用
 
2.3 what should i take wih me
2.3 what should i take wih me2.3 what should i take wih me
2.3 what should i take wih me
 
2.1 my plans
2.1  my plans2.1  my plans
2.1 my plans
 
X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...
X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...
X-PERT: Accurate Identification of Cross-Browser Issues in Web Applications (...
 
Mutation Analysis for JavaScript Web Applicaiton Testing SEKE2013
Mutation Analysis for JavaScript Web Applicaiton Testing  SEKE2013Mutation Analysis for JavaScript Web Applicaiton Testing  SEKE2013
Mutation Analysis for JavaScript Web Applicaiton Testing SEKE2013
 
はじめてのAIプログラミング 5章: 知識表現
はじめてのAIプログラミング 5章: 知識表現はじめてのAIプログラミング 5章: 知識表現
はじめてのAIプログラミング 5章: 知識表現
 
A sequential recommendation approach for interactive personalized story gener...
A sequential recommendation approach for interactive personalized story gener...A sequential recommendation approach for interactive personalized story gener...
A sequential recommendation approach for interactive personalized story gener...
 
Supporting View Transition Design of Smartphone Applications Using Web Templ...
Supporting View Transition Design of Smartphone Applications Using  Web Templ...Supporting View Transition Design of Smartphone Applications Using  Web Templ...
Supporting View Transition Design of Smartphone Applications Using Web Templ...
 
AngularJSを浅めに紹介します
AngularJSを浅めに紹介しますAngularJSを浅めに紹介します
AngularJSを浅めに紹介します
 
AIChallange発表資料
AIChallange発表資料AIChallange発表資料
AIChallange発表資料
 
SAT/SMTソルバの仕組み
SAT/SMTソルバの仕組みSAT/SMTソルバの仕組み
SAT/SMTソルバの仕組み
 

Similar a "Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puzzles" (ASE 2012) 輪講用資料

ji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分けji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分けkunihikokaneko1
 
[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係についてDeep Learning JP
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011finalMikio Kubo
 
PRML 1.5-1.5.5 決定理論
PRML 1.5-1.5.5 決定理論PRML 1.5-1.5.5 決定理論
PRML 1.5-1.5.5 決定理論Akihiro Nitta
 
Infer.netによるldaの実装
Infer.netによるldaの実装Infer.netによるldaの実装
Infer.netによるldaの実装池田 直哉
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~normalian
 
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based languageKink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based languageTaku Miyakawa
 
DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214Kosuke Nakago
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングKohsuke Yuasa
 
Java SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRubyJava SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRubyHiroshi Nakamura
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector MachineYuma Nakamura
 
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccJEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccYujiSoftware
 
Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義JPCERT Coordination Center
 
並行プログラミングと継続モナド
並行プログラミングと継続モナド並行プログラミングと継続モナド
並行プログラミングと継続モナドKousuke Ruichi
 
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)啓 小笠原
 

Similar a "Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puzzles" (ASE 2012) 輪講用資料 (20)

ji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分けji-3. 条件分岐と場合分け
ji-3. 条件分岐と場合分け
 
[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について[DL輪読会]GQNと関連研究,世界モデルとの関係について
[DL輪読会]GQNと関連研究,世界モデルとの関係について
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011final
 
PRML 1.5-1.5.5 決定理論
PRML 1.5-1.5.5 決定理論PRML 1.5-1.5.5 決定理論
PRML 1.5-1.5.5 決定理論
 
Infer.netによるldaの実装
Infer.netによるldaの実装Infer.netによるldaの実装
Infer.netによるldaの実装
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
Kink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based languageKink: invokedynamic on a prototype-based language
Kink: invokedynamic on a prototype-based language
 
DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214DLLab 異常検知ナイト 資料 20180214
DLLab 異常検知ナイト 資料 20180214
 
深層学習①
深層学習①深層学習①
深層学習①
 
C++ マルチスレッドプログラミング
C++ マルチスレッドプログラミングC++ マルチスレッドプログラミング
C++ マルチスレッドプログラミング
 
Java SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRubyJava SE 7 InvokeDynamic in JRuby
Java SE 7 InvokeDynamic in JRuby
 
Gurobi python
Gurobi pythonGurobi python
Gurobi python
 
Quantum Support Vector Machine
Quantum Support Vector MachineQuantum Support Vector Machine
Quantum Support Vector Machine
 
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_cccJEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
JEP280: Java 9 で文字列結合の処理が変わるぞ!準備はいいか!? #jjug_ccc
 
Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義Javaセキュアコーディングセミナー東京第1回 講義
Javaセキュアコーディングセミナー東京第1回 講義
 
Boost tour 1_40_0
Boost tour 1_40_0Boost tour 1_40_0
Boost tour 1_40_0
 
並行プログラミングと継続モナド
並行プログラミングと継続モナド並行プログラミングと継続モナド
並行プログラミングと継続モナド
 
関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)関数型言語&形式的手法セミナー(3)
関数型言語&形式的手法セミナー(3)
 
Deep learning入門
Deep learning入門Deep learning入門
Deep learning入門
 

"Puzzle-Based Automatic Testing: Bringing Humans into the Loop by Solving Puzzles" (ASE 2012) 輪講用資料