SlideShare une entreprise Scribd logo
1  sur  42
年が明けたのでクロスコミュニティ勉強会 発表資料




 Androidのテストについて
 (副題: Activity Testing Tutorial をやってみた)




         http://goo.gl/IR4Vs
年が明けたのでクロスコミュニティ勉強会 発表資料




     まずは
     新年の
     ご挨拶
年が明けたのでクロスコミュニティ勉強会 発表資料



     謹賀新年
年が明けたのでクロスコミュニティ勉強会 発表資料




   ちなみに
   この資料
年が明けたのでクロスコミュニティ勉強会 発表資
料




    Made with




        http://goo.gl/7BEcE
年が明けたのでクロスコミュニティ勉強会 発表資
料




    Activity Testing Tutorial
    アクティビティ・テストのチュートリアルをやってみました。


      詳しくはこちら



           http://goo.gl/IR4Vs
Activity Testing Tutorial




  前提条件
前提条件 1/4



基本的なアプリが作れること
※Androidプロジェクトが使える



    http://goo.gl/IR4Vs
前提条件 1/4(続き)
前提条件 2/4


多少なりとも

テストフレームワーク
                      の知識がある

http://ja.wikipedia.org/wiki/XUnit
前提条件 2/4(続き)


JUnit NUnit
  MSTest        RSpec ...

    http://goo.gl/Mde5l
前提条件 3/4


 Eclipse           と

   ADT             が使える
                Android Development Tools (ADT)



    http://goo.gl/eoVnU
前提条件 3/4(続き)




                         http://goo.gl/eoVnU
Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
前提条件 4/4(続き)



 Android 1.5 platform
 (API Level 3) or higher

                         http://goo.gl/eoVnU
Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
プロジェクトの作成


テストの対象とするメインのプロジェクトを作成します。
チュートリアルに合わせて
"Create project from existing source".
サンプルプロジェクトを取り込みます。




            http://goo.gl/IR4Vs
サンプルプロジェクトを取り込み
SpinnerとTextView




     デザイン画面        実行画面
テストプロジェクトを追加

Test Target を先ほどのSpinnerActivityにセット
テストプロジェクトのマニフェスト
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.android.example.spinner.test"
  android:versionCode="1"
  android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="3" />

    <instrumentation
       android:name="android.test.InstrumentationTestRunner"
       android:targetPackage="com.android.example.spinner" />

    <application
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name" >
      <uses-library android:name="android.test.runner" />
    </application>

</manifest>
Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
テストプロジェクトのマニフェスト(部分)


テストプロジェクト
package="com.android.example.spinner.test"


テスト対象
targetPackage="com.android.example.spinner"



Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
Test Case クラスの作成


クラス名:
SpinnerActivityTest
スーパークラス:
android.test.ActivityInstrumentationTestCase2<SpinnerActivity>
TestCaseについて

       Activityを直接操作できます。
       ActivityInstrumentationTestCase
       Added in API level 1
       Deprecated since API level 3
       http://goo.gl/mVoCD
       ActivityInstrumentationTestCase2
       Added in API level 3
       http://goo.gl/gMngM
Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
さらに Android Testの詳細については




  Testing Fundamentals
       http://goo.gl/rdIFx
Test Case クラスの作成
エラー発生
手直しします


      テスト対象のクラスをインポート
       import com.android.example.spinner.SpinnerActivity;



       テストクラスのコンストラクタを追加
       public SpinnerActivityTest() {
          super("com.android.example.spinner", SpinnerActivity.class);
        } // end of SpinnerActivityTest constructor definition




Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
setupメソッドを追加
     @Override
      protected void setUp() throws Exception {
                     setUp
       super.setUp();
         setActivityInitialTouchMode(false);
         mActivity = getActivity();
         mSpinner =
          (Spinner) mActivity.findViewById(
            com.android.example.spinner.R.id.Spinner01
          );
           mPlanetData = mSpinner.getAdapter();
       } // end of setUp() method definition
Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
setupメソッドを追加(の補足)
     @Override
      protected void setUp() throws Exception {
                     setUp
       super.setUp();
         setActivityInitialTouchMode(false);
         mActivity = getActivity();
         mSpinner =
          (Spinner) mActivity.findViewById(
            com.android.example.spinner.R.id.Spinner01
          );
           mPlanetData = mSpinner.getAdapter();
       } // end of setUp() method definition
Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
setupメソッドを追加(の補足)


setActivityInitialTouchMode(false);
テストメソッドで send key イベントを利用する場合は、
デバイス or エミュレータのタッチモードをOFFにします。
手直し


 private SpinnerActivity mActivity;
 private Spinner mSpinner;
 private SpinnerAdapter mPlanetData;



 import android.widget.Spinner;
 import android.widget.SpinnerAdapter;
初期状態のテストを書きます


public void testPreConditions() {
   assertTrue(mSpinner.getOnItemSelectedListener() != null);
   assertTrue(mPlanetData != null);
   assertEquals(mPlanetData.getCount(),ADAPTER_COUNT);
 } // end of testPreConditions() method definition

メンバー変数も追加
public static final int ADAPTER_COUNT = 9;



Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
さっきのテストの内容


  mSpinner.getOnItemSelectedListener() != null
  Spinnerがセレクトされた場合のリスナーが
  セットされているか

  mPlanetData != null
  プラネットに値がセットされているか


  mPlanetData.getCount(), ADAPTER_COUNT

  プラネットが指定の数だけセットされているか
テストを実行してみます。
UIのテストを追加してみます。

 public void testSpinnerUI() {
     mActivity.runOnUiThread(
       new Runnable() {
         public void run() {
           mSpinner.requestFocus();
           mSpinner.setSelection(INITIAL_POSITION);
         } // end of run() method definition
       } // end of anonymous Runnable object instantiation
     ); // end of invocation of runOnUiThread
 }

 public static final int INITIAL_POSITION = 0;

Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
さっきのテストの内容

 mSpinner.requestFocus();
 mSpinner.setSelection(INITIAL_POSITION);

 Spinnerにフォーカスをあてて初期状態(先頭)を選ぶ
Spinnerを動かしてみる


this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
for (int i = 1; i <= TEST_POSITION; i++) {
     this.sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
     this.sendKeys
} // end of for loop
this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);


public static final int TEST_POSITION = 5;



Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
さっきのテストの内容


this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
Spinnerを開く。(すでにフォーカスがあたっている)


this.sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);
Spinnerの選択肢を指定回数だけ移動


this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);
Spinnerの選択肢を確定
結果をチェックします

mPos = mSpinner.getSelectedItemPosition();
 mSelection = (String)mSpinner.getItemAtPosition(mPos);
 TextView resultView =
  (TextView) mActivity.findViewById(
    com.android.example.spinner.R.id.SpinnerResult
  );
   String resultText = (String) resultView.getText();
   assertEquals(resultText,mSelection);
 } // end of testSpinnerUI() method definition

Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
チェックの内容


 assertEquals(resultText,mSelection);

 指定したSpinnerの選択肢と、TextViewの内容が一致すること
その後のテストケース

     アプリ終了時のSpinnerの選択状態をセット


     ※アプリを再起動
     mActivity.finish();
     mActivity = this.getActivity();


     Spinnerの位置があっていること

     さらに、resume()させてみるなど
     mInstr.callActivityOnResume(mActivity);

Portions of this page are modifications based on work created and shared by the Android Open Source Project
and used according to terms described in the Creative Commons 2.5 Attribution License.
以上、詳しくはこちら




 "Activity Testing Tutorial"
      http://goo.gl/IR4Vs




    ご清聴を感謝いたします。
年が明けたのでクロスコミュニティ勉強会 発表資料




  本年も宜しくお願いします。

        m(. .)m

Contenu connexe

Tendances

Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackkimukou_26 Kimukou
 
Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃんRetrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃんYukari Sakurai
 
Spring integration概要
Spring integration概要Spring integration概要
Spring integration概要kuroiwa
 
Gradleでビルドするandroid NDKアプリ
Gradleでビルドするandroid NDKアプリGradleでビルドするandroid NDKアプリ
Gradleでビルドするandroid NDKアプリHideyuki Kikuma
 
つ部 Android Studio 勉強会 12/7
つ部 Android Studio 勉強会 12/7つ部 Android Studio 勉強会 12/7
つ部 Android Studio 勉強会 12/7Hikaru Wada
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門Yasutaka Sugamura
 
ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版Fumiya Sakai
 
Android cleanarchitecture
Android cleanarchitectureAndroid cleanarchitecture
Android cleanarchitectureTomoaki Imai
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid SystemKeiji Ariyama
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力Keiji Ariyama
 
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetupこれで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線MeetupMasatoshi Tada
 
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行Yu Nobuoka
 
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
2015年のAndroidアプリ開発入門 - ABCD 2015 KanazawaKeiji Ariyama
 
Androidアプリ開発にクリーンアーキテクチャを取り入れよう
Androidアプリ開発にクリーンアーキテクチャを取り入れようAndroidアプリ開発にクリーンアーキテクチャを取り入れよう
Androidアプリ開発にクリーンアーキテクチャを取り入れよう kan-notice
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストYu Nobuoka
 
DI(依存性注入)について
DI(依存性注入)についてDI(依存性注入)について
DI(依存性注入)についてYui Ito
 
[PS11]ネットワーク第5回
[PS11]ネットワーク第5回[PS11]ネットワーク第5回
[PS11]ネットワーク第5回Yukiko Kato
 

Tendances (20)

20200304 vuejs
20200304 vuejs20200304 vuejs
20200304 vuejs
 
Try_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hackTry_to_writecode_practicaltest #atest_hack
Try_to_writecode_practicaltest #atest_hack
 
Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃんRetrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp 
でAndroidのHTTP通信が快適だにゃん
 
Spring integration概要
Spring integration概要Spring integration概要
Spring integration概要
 
Gradleでビルドするandroid NDKアプリ
Gradleでビルドするandroid NDKアプリGradleでビルドするandroid NDKアプリ
Gradleでビルドするandroid NDKアプリ
 
つ部 Android Studio 勉強会 12/7
つ部 Android Studio 勉強会 12/7つ部 Android Studio 勉強会 12/7
つ部 Android Studio 勉強会 12/7
 
Spring Integration 超入門
Spring Integration 超入門Spring Integration 超入門
Spring Integration 超入門
 
ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版ReduxとSwiftの組み合わせ:改訂版
ReduxとSwiftの組み合わせ:改訂版
 
Android cleanarchitecture
Android cleanarchitectureAndroid cleanarchitecture
Android cleanarchitecture
 
Spring と TDD
Spring と TDDSpring と TDD
Spring と TDD
 
Dependency injection
Dependency injectionDependency injection
Dependency injection
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid System
 
Android Studioの魅力
Android Studioの魅力Android Studioの魅力
Android Studioの魅力
 
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetupこれで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
 
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
 
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
 
Androidアプリ開発にクリーンアーキテクチャを取り入れよう
Androidアプリ開発にクリーンアーキテクチャを取り入れようAndroidアプリ開発にクリーンアーキテクチャを取り入れよう
Androidアプリ開発にクリーンアーキテクチャを取り入れよう
 
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテストはてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
 
DI(依存性注入)について
DI(依存性注入)についてDI(依存性注入)について
DI(依存性注入)について
 
[PS11]ネットワーク第5回
[PS11]ネットワーク第5回[PS11]ネットワーク第5回
[PS11]ネットワーク第5回
 

En vedette

Making bootable USB by update from 4.1 to 5.0
Making bootable USB by update from 4.1 to 5.0Making bootable USB by update from 4.1 to 5.0
Making bootable USB by update from 4.1 to 5.0Kazuaki Ueda
 
Android multiscreen
Android multiscreenAndroid multiscreen
Android multiscreenKazuaki Ueda
 
水曜デザイン塾 文字モジ会
水曜デザイン塾 文字モジ会水曜デザイン塾 文字モジ会
水曜デザイン塾 文字モジ会Kazuaki Ueda
 
Jaws User Group in Ehime Lightning Talk
Jaws User Group in Ehime Lightning TalkJaws User Group in Ehime Lightning Talk
Jaws User Group in Ehime Lightning TalkKazuaki Ueda
 
Android api-levels
Android api-levelsAndroid api-levels
Android api-levelsKazuaki Ueda
 

En vedette (7)

Making bootable USB by update from 4.1 to 5.0
Making bootable USB by update from 4.1 to 5.0Making bootable USB by update from 4.1 to 5.0
Making bootable USB by update from 4.1 to 5.0
 
Android multiscreen
Android multiscreenAndroid multiscreen
Android multiscreen
 
Ci tutorial
Ci tutorialCi tutorial
Ci tutorial
 
水曜デザイン塾 文字モジ会
水曜デザイン塾 文字モジ会水曜デザイン塾 文字モジ会
水曜デザイン塾 文字モジ会
 
Jaws User Group in Ehime Lightning Talk
Jaws User Group in Ehime Lightning TalkJaws User Group in Ehime Lightning Talk
Jaws User Group in Ehime Lightning Talk
 
Esxi client-4to5
Esxi client-4to5Esxi client-4to5
Esxi client-4to5
 
Android api-levels
Android api-levelsAndroid api-levels
Android api-levels
 

Similaire à Android test tutorial

Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revShotaro Suzuki
 
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)Masafumi Terazono
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころMasayuki Wakizaka
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodAtsuhiro Kubo
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しようUnityTechnologiesJapan002
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Takashi EGAWA
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」U-dai Yokoyama
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitAtsuhiro Kubo
 
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9Saiki Iijima
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Takako Miyagawa
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSAyumi Goto
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxNobuhiro Sue
 
Google I/O 2012 and Android 4.1
Google I/O 2012 and Android 4.1Google I/O 2012 and Android 4.1
Google I/O 2012 and Android 4.1Katsumi Onishi
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!Shinpei Ohtani
 
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようずOda Shinsuke
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発Akira Inoue
 
Unit test in android
Unit test in androidUnit test in android
Unit test in androidTatsuya Maki
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...Shotaro Suzuki
 

Similaire à Android test tutorial (20)

Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
 
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
初心者〜中級者 Android StudioによるAndroid勉強会資料(スライド)
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
 
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGoodIntroduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
 
Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010Tokyo GTUG Bootcamp2010
Tokyo GTUG Bootcamp2010
 
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
MVPパターンによる設計アプローチ「あなたのアプリ報連相できてますか」
 
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnitGetting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
 
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
ViewModel テスト難しすぎ問題 by saiki iijima in Android Test Night #9
 
CruiseControl.NET設置
CruiseControl.NET設置CruiseControl.NET設置
CruiseControl.NET設置
 
Android Wear Apps
Android Wear AppsAndroid Wear Apps
Android Wear Apps
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 
Google I/O 2012 and Android 4.1
Google I/O 2012 and Android 4.1Google I/O 2012 and Android 4.1
Google I/O 2012 and Android 4.1
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!
 
Selenium webdriver使ってみようず
Selenium webdriver使ってみようずSelenium webdriver使ってみようず
Selenium webdriver使ってみようず
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
Unit test in android
Unit test in androidUnit test in android
Unit test in android
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 

Plus de Kazuaki Ueda

いろいろCMS勉強会 featuring SHIRASAGI
いろいろCMS勉強会 featuring SHIRASAGIいろいろCMS勉強会 featuring SHIRASAGI
いろいろCMS勉強会 featuring SHIRASAGIKazuaki Ueda
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!Kazuaki Ueda
 
ローカル開催コミュニティ
ローカル開催コミュニティローカル開催コミュニティ
ローカル開催コミュニティKazuaki Ueda
 
Android Develop presentation on 19 Sep 2012.
Android Develop presentation on 19 Sep 2012.Android Develop presentation on 19 Sep 2012.
Android Develop presentation on 19 Sep 2012.Kazuaki Ueda
 
Making bootable usb of ESXi-5.0
Making bootable usb of ESXi-5.0Making bootable usb of ESXi-5.0
Making bootable usb of ESXi-5.0Kazuaki Ueda
 

Plus de Kazuaki Ueda (10)

いろいろCMS勉強会 featuring SHIRASAGI
いろいろCMS勉強会 featuring SHIRASAGIいろいろCMS勉強会 featuring SHIRASAGI
いろいろCMS勉強会 featuring SHIRASAGI
 
Android studio で行ってみよう!!
Android studio で行ってみよう!!Android studio で行ってみよう!!
Android studio で行ってみよう!!
 
IPv4 address
IPv4 addressIPv4 address
IPv4 address
 
ローカル開催コミュニティ
ローカル開催コミュニティローカル開催コミュニティ
ローカル開催コミュニティ
 
Cms festa-0216
Cms festa-0216Cms festa-0216
Cms festa-0216
 
Lt presentation
Lt presentationLt presentation
Lt presentation
 
Sudachi hackathon
Sudachi hackathonSudachi hackathon
Sudachi hackathon
 
Word bench愛媛
Word bench愛媛Word bench愛媛
Word bench愛媛
 
Android Develop presentation on 19 Sep 2012.
Android Develop presentation on 19 Sep 2012.Android Develop presentation on 19 Sep 2012.
Android Develop presentation on 19 Sep 2012.
 
Making bootable usb of ESXi-5.0
Making bootable usb of ESXi-5.0Making bootable usb of ESXi-5.0
Making bootable usb of ESXi-5.0
 

Dernier

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 

Dernier (8)

CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 

Android test tutorial