G1 RERAN: Timing- and Touch-Sensitive Record and Replay for Android

Slides:



Advertisements
Similar presentations
API 呼び出し列の差分を利用した Android アプリケーション比較ツールの 試作 井上研究室 神田 哲也.
Advertisements

ファーストステップガイド ( 管理者向け) ナレッジスイート株式会社 Copyright (c) knowledgesuite inc. All rights reserved.1.
講師 松本 章代. 携帯電話のプラットフォーム オープンプラットフォーム Android のアーキテクチャ LiMo のアーキテクチャ 携帯電話用 OS 携帯電話用の自作アプリ事情 2009/11/142.
シーケンス図の生成のための実行履歴圧縮手法
Chapter11-4(前半) 加藤健.
JPAを利用した RESTful Webサービスの開発
オペレーティングシステムⅡ 第11回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト.
Capter9 Creating an Embedded Test Bench ( )
データマイニングのための柔軟なデータ取得、操作を支援するAPIの設計
SSR 論文調査 Safety and Cyber-Physical Systems
情報爆発A01支援班 マイサーチエンジン開発環境支援グループ 中村聡史, 大島裕明, 田中克己, 喜連川優
Myoungkyu Song and Eli Tilevich 発表者: 石尾 隆(大阪大学)
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
肥後 芳樹, ○石尾 隆, 渡邊 結, 出張 純也, 畑 秀明, 三宅 達也, 水野 修, 丸山 勝久
プログラムの動作を理解するための技術として
F11: Analysis III (このセッションは論文2本です)
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
メソッド名とその周辺の識別子の 相関ルールに基づくメソッド名変更支援手法
動的スライスを用いたバグ修正前後の実行系列の差分検出手法の提案
Androidアプリの作成 07A1069 松永大樹.
プログラム実行履歴を用いたトランザクションファンクション抽出手法
Occam言語による マルチプリエンプティブシステムの 実装と検証
オブジェクト指向プログラムのための 動的結合メトリクスの評価
コードクローンに含まれるメソッド呼び出しの 変更度合の分析
コードクローンに含まれるメソッド呼び出しの 変更度合の調査
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
ソードコードの編集に基づいた コードクローンの分類とその分析システム
動的スライスを用いた バグ修正前後の実行系列の比較
統合開発環境のための アスペクト指向システム
動的依存グラフの3-gramを用いた 実行トレースの比較手法
シーケンス図を用いて実行履歴を可視化するデバッグ環境の試作
動的スライスを用いたバグ修正前後の実行系列の差分検出手法
Java Virtual Machine 高速化のためのbyte code 解析 An analysis of byte code to improve the performance of Java Virtual Machine 鈴木タカハル 谷研究室 Feb, 2003.
変数のデータフローを考慮した API利用コード例の検索 井上研究室 竹之内 啓太.
実行時情報に基づく OSカーネルのコンフィグ最小化
限られた保存領域を使用する Javaプログラムの実行トレース記録手法の 提案と評価
Javaプログラムの変更を支援する 影響波及解析システム
TIME SIGNAL: 集合知を利用した赤信号点灯時間の取得手法
Satoru Ishikawa Satoru Satake Denis Vazhenin
ソースコードの特徴量を用いた機械学習による メソッド抽出リファクタリング推薦手法
コードクローンの動作を比較するためのコードクローン周辺コードの解析
ハッシュ値比較による Javaバイトコードに含まれる ライブラリの検出手法
ソースコードの静的特性を用いた Javaプログラム間類似度測定ツールの試作
プログラム実行に対するフェイズ検出を用いた ログ取得量の動的変更手法の提案
Javaソフトウェア部品検索システムSPARS-Jの実験的評価
Java における 先進的リフレクション技術
コーディングパターンの あいまい検索の提案と実装
JAVAバイトコードにおける データ依存解析手法の提案と実装
インスタンスの型を考慮したJavaプログラムの実行経路の列挙手法の提案
Q3 On the value of user preferences in search-based software engineering: a case study in software product lines Abdel Salam Sayyad (West Virginia University,
Managing non-functional uncertainty via model-driven adaptivity
オブジェクトの協調動作を用いた オブジェクト指向プログラム実行履歴分割手法
依存関係の局所性を利用した プログラム依存グラフの 効率的な構築法
dcNavi:デバッグ支援のための グラフベース推薦システム
ソースコードの差分を用いた関数呼び出し パターンの抽出手法の提案と実装
クローン検出ツールを用いた ソフトウェアシステムの類似度調査
高齢者支援アプリケーション Term Projectの最終発表 Bull:ECN Takatoshi:親
Jh NAHI 横田 理央 (東京工業大学) Hierarchical low-rank approximation methods on distributed memory and GPUs 背景  H行列、H2行列、HSS行列などの階層的低ランク近似法はO(N2)の要素を持つ密行列をO(N)の要素を持つ行列に圧縮することができる。圧縮された行列を用いることで、行列積、LU分解、固有値計算をO(Nlog2N)で行うことができるため、従来密行列の解法が用いられてきた分野では階層的低ランク近似
蓄積されたオブジェクトの動作履歴を用いた 実行履歴削減手法の提案
発表者: 稲葉 一浩 複雑ネットワーク・地図グラフ セミナー 2017/1/19
ソフトウェア理解支援を目的とした 辞書の作成法
複雑度メトリクスを用いた JAVAプログラム品質特性の実験的評価
プログラムの一時停止時に 将来の実行情報を提供するデバッガ
動的スライスを用いたバグ修正前後の実行系列の差分検出手法の提案
動的スライスを用いたバグ修正前後の実行系列の差分検出手法の提案
回帰テストにおける実行系列の差分の効率的な検出手法
オブジェクト指向メトリクスを用いた 開発支援に関する研究 --- VC++とMFCを用いた開発を対象として ---
プログラム理解のための 付加注釈 DocumentTag の提案
Detecting Software Modularity Violations
Presentation transcript:

G1 RERAN: Timing- and Touch-Sensitive Record and Replay for Android G : Apps G1 RERAN: Timing- and Touch-Sensitive Record and Replay for Android 東京工業大学 権藤研究室 白倉賢人

背景 G1 スマートフォンやタブレットのような タッチスクリーンベースのデバイスやアプリが普及 Record-and-Replayのツールはデバッグやテストに   有用だが、従来の手法ではAndroidアプリの   多種多様な操作に対応しきれない

RERAN G1 Androidの操作を記録し、 再現するツール Lorenzo Gomez, Iulian Neamtiu, Tanzirul Azim, Todd Millstein: RERAN: timing- and touch-sensitive record and replay for Android. ICSE 2013: 72-81 Fig4より抜粋

従来手法との違い G1 従来 RERAN 低レベルのデバイスへの入力を直接記録し、 正確なタイミングで再生することで再現 「Click TextBox1」や「type “Test123”」のように記録し、再現 →GUIが必須、スワイプ等の操作やセンサーに非対応 RERAN  低レベルのデバイスへの入力を直接記録し、  正確なタイミングで再生することで再現

ここがすごい1! G1 Google Play の TOP 100 のアプリのうち、 86個のアプリについて操作を再現できる!   →残りの14個は 非決定的な動作をするアプリ カメラやマイク等のセンサーを使用するアプリ

ここがすごい2! G1 バグの再現ができる →デバッグの際に活躍! 早送り実行ができる →デバッグやテストの 時間短縮!   →デバッグの際に活躍! 早送り実行ができる   →デバッグやテストの 時間短縮! Lorenzo Gomez, Iulian Neamtiu, Tanzirul Azim, Todd Millstein: RERAN: timing- and touch-sensitive record and replay for Android. ICSE 2013: 72-81 TABLE V より抜粋

動作 G1 実際に動作させている動画がYoutubeにあがっている  ⇛ http://www.youtube.com/user/RERAN2012   「Angry Birds」で実際に操作を記録し、再現している   様子が確認できる

G2 : Inferring Likely Mappings Between APIs 東京工業大学 権藤研究室 子安 貴一

目的・貢献 目的 貢献 アプリケーションの移植が大変 手助けしたい 推論手法の提案 Rosetta (プロトタイプツール) マニュアル G2 : Inferring Likely Mappings Between APIs 2013/7/9 目的・貢献 目的 アプリケーションの移植が大変 マニュアル 対応するAPI探し 手助けしたい 貢献 推論手法の提案 Rosetta (プロトタイプツール)

手法 STEP 1 : データ(アプリケーション)収集 STEP 2 : メソッド実行トレースを拾う STEP 3 : トレースの解析、推論 G2 : Inferring Likely Mappings Between APIs 2013/7/9 手法 STEP 1 : データ(アプリケーション)収集 STEP 2 : メソッド実行トレースを拾う STEP 3 : トレースの解析、推論 呼ばれる頻度 呼ばれるタイミング 呼ばれるコンテキスト メソッド名 STEP 4 : 複数トレース Proceedings of the 35th ACM/IEEE International Conference on Software Engineering (ICSE 2013); pages 82-91; San Francisco, California; May 18-26, 2013.Fig. 2より抜粋 メソッド実行トレース(○×ゲーム起動→プレイ待ち) STEP1 両方のプラットフォームで既にできているアプリケーションを集める 同レベルの機能で実装されている GUIだったらGUIのやつ STEP2 集めてきたアプリケーションのペアを実行する。同じ動作をするようにかな? STEP3 呼ばれる頻度や、呼ばれるタイミングや、そのコンテキストあるいはメソッド名により計算 STEP3,4のアルゴリズムは論文を見て欲しい(計算式等々)

評価 プロトタイプツール : Rosetta JavaME → Android graphics の API 筆者の考える対応とマッチするか G2 : Inferring Likely Mappings Between APIs 2013/7/9 評価 プロトタイプツール : Rosetta JavaME → Android graphics の API 筆者の考える対応とマッチするか Top10に70% Proceedings of the 35th ACM/IEEE International Conference on Software Engineering (ICSE 2013); pages 82-91; San Francisco, California; May 18-26, 2013.Fig. 6より抜粋 JavaMEのメソッドをクエリとして投げて結果としてAndroid graphicsのAPIのメソッド(列)がランキングとして返ってくる 筆者はJavaMEとAndroidのドキュメントを読んで対応しているのを決定している

所感 学習のオーバーヘッドが大きい 移植の際の労力低減 両プラットフォームでの類似アプリケーション探し メソッド実行トレースの取得 G2 : Inferring Likely Mappings Between APIs 2013/7/9 所感 学習のオーバーヘッドが大きい 両プラットフォームでの類似アプリケーション探し メソッド実行トレースの取得 移植の際の労力低減 多数のプラットフォームがある今の時代にとって有用かも

Estimating Mobile Application Energy Consumption using Program Analysis 東京工業大学 権藤研究室 髙橋 一平

目的と貢献 G3 目的 主要な貢献 モバイルアプリの電力消費量の見積 コードレベルの電力消費量見積手法を提案 Google Play storeのアプリを対象としたベンチマーク

入力と出力 G3 入力 出力 ワークロード アプリのJVMバイトコード プロファイル 電力消費量アノテーションが付加されたソースコード ユースケースのリスト アプリのJVMバイトコード プロファイル 命令やハードウェアから消費電力を見積もる関数の集合 出力 電力消費量アノテーションが付加されたソースコード

G3 システムの概要 Shuai Hao, Ding Li, William G. J. Halfond, Ramesh Govindan, Estimating Mobile Application Energy Consumption using Program Analysis, ICSE 2013, San Francisco, USA .

手法の概要 G3 Workload Generator Analyzer Source Code Annotator バイトコードとワークロードから通るパスの集合を求める Analyzer パスの集合とプロファイルから電力消費量を見積もる Source Code Annotator 電力消費量をアノテーションとしてソースコードに付加する

G3 評価 評価項目 電力消費量の正確性 システムの利便性 評価方法 Google Play Storeのアプリをそのまま利用

実験結果(正確性) G3 大体誤差10%以内であり、よく見積もれている Shuai Hao, Ding Li, William G. J. Halfond, Ramesh Govindan, Estimating Mobile Application Energy Consumption using Program Analysis, ICSE 2013, San Francisco, USA .

所感 G3 Eclipseプラグインなんかも作ってて親切 入力(ユースケース、プロファイル)を作るのは大変そう 電力消費量によるソースコードの色づけ 入力(ユースケース、プロファイル)を作るのは大変そう ボトルネックを知りたいときに役に立つ