SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
第 24 回 長岡 IT 開発者勉強会



今日から始める!
単体テストの自動化のススメ
          単体テストしやすいモジュール設計の指針をつくってミタ
                         ~カバレッジ 40% めざせ




                           2012/01/29
                           @nemuzuka
自己紹介

●   id:nemuzuka,@nemuzuka
●   昨年の春、地元の長岡に帰ってきました!
●   サーバサイドに Java を使用した Web アプリ
    ケーションの開発を主にやっております
●   新潟は Java やってる人少ない気がします
みなさん、テストしてますか?
 「お金」という対価を受け取るレベルの
    プログラムを提供する以上、
テストしないということは考えられません。

     ま   自   許   テ   リ   テ え
     で   己   さ   ス   リ   ス |
     だ   満   れ   ト   |   ト
     よ   プ   る   し   ス   し
     ね   ロ   の   な   ?   な
     |   グ   は   く       い
         ラ       て       で
         ム
テストは1回やればおしまい?
システムは生き物。

機能を追加していく過程で
そもそもの振る舞いを壊してしまうこともしばしば。

ソフトウェアの場合は関係ないと思ってた箇所に
思いもよらず影響を及ぼすこともあります。

開発言語 /DB サーバ / フレームワークのバージョン UP を行う際に
デグレってないかの確認を全部手動でやるのはかったるい。
だからといって、構築した時のバージョンを維持するってのも・・・ねぇ


やっぱり複数回やることが多いんです
テストはしなきゃいけないのは
わかるけど
面倒なんだよなー
そりゃ、毎回手動でおこなってたんじゃ効率が悪い。




     機械の力を借りましょう。
そこで今日のお題は

テストなんてかったるくてやってられな
限りある時間を有効に使いたい
そんなあなたに、うってつけ!
単体テストを自動化しやすい
   モジュール設計
テ       について考えてミタ
ス
ト
を
考
え
る
 会
テストの自動化というと


     xUnit を使えばいいよね
          あとよろしく
失敗 END へのフラグ
ある程度の方針が必要なんです
●   テストしやすい設計、アーキテクチャの確立
●
    開発者個人にまかせてしまうと、粒度はバラバラ
       (あ、これ俺のスキーマでないと動かないっスよ)
●
    何やってるテストなのかわからない
       (でも、カバレッジ高いから良いでしょ?)
●   作られたは良いけど、結局放置
       テストが通らなくなってくると、魔法のパラメータ
       「 -Dmaven.test.skip=true 」
       でテストの実行を無かったことに

作ったものの、使い続けられないテストクラスが量産され
ることに・・・
せっかくつくったのに




  モッタイナイ
まずは前提条件
対象: MVC モデルを採用した Web アプリ

【思想】
・ View/Controller
  →ロジック記述量を少なく (Action にロジック書く奴はおしおき )
・ Model
  →もう、嫌って程集約


【自動化の対象範囲】
・ Ui 部分 (View) は自動化対象外
  → selenium とか使ってもいいけど、 UI 部分って変更多いし、
   かけた時間に対してメリットが少ないと思うの
・サーブレット (Controller) も自動化対象外
  →いいから Model に全部任せておけって!
    Mock でリクエストパラメータとか作るの面倒じゃん。
  →でも、 Session オブジェクトとか HttpRequest とか
    J2EE 前提なオブジェクトは Model に渡すなよ。
   パラメータは POJO だ ( 簡単にインスタンスを生成できる奴でお願いします )
  → Model からの結果をそのままレスポンスに設定するくらいの勢いで!
頑張って自動化する箇所は Model

画面に表示する項目の加工すらも Model に持たせるとかして、 View 部分にはできるだ
け判断文を持たせないようにした方が幸せになれる気がします。
( ロジックの分散を避けるのが目的です。 )


システム全体を自動化するには膨大な時間と工数がかかるので、対象を絞りましょう
  →バグり易い所 (Model) を重点的にリグレッションテストしやすいように
   した方が費用対効果高そう。
  → Web ブラウザからの打鍵テストを行う時の確認事項も少なくなるはず。
  →本来、 Web ブラウザの打鍵から始まる一連の処理は結合テストだと思う。
自動テストしやすいメソッド



「このメソッドを呼んだら、結果どうなる」
     が容易に定義できるもの


もっと言えば、パラメータだけで処理して結果を返すメソッド

DB アクセスの場合は、前提条件のデータを格納しておいて、メソッド呼び出しで SQL
発行させて結果確認、というのが基本的な流れだから、まぁとっつきやすい
例えばこんな疑問

●   xUnit のサンプルって、単純な処理(足し算と
    か引き算)ばっかであんまり実務っぽくない
    んだもん
      –   現実のシステムはそんなに単純じゃないよ
      –   1 回のメソッド呼び出しでいろんなことやる
            じゃない

でもそれは、メソッドの振る舞いを
 一連の処理としてみたときの話
粒度を小さくすれば




  「結果どうなる」が
定義しやすくなるんじゃね?
ファイルのインポート処理
アップロードされたファイルを1行ずつ読み込んで、
テーブルに格納されていなければ、登録。格納されていれば、更新

  public void doImport(InputStream is) {
    Readerインスタンスを生成
    while(1行読み込む) {
       読み込んだ情報を元に検索条件作成
       DB検索
       if(該当レコードあり) {
          更新データを作成
          DB更新
       } else {
          登録データを作成                         このメソッドを呼び出したら
          DB登録                             どうなるべきか??
       }
    }
    Readerをクローズ                            テストケースのパターンを増
  }                                        やす時は、 InputStream のパ
                                           ターンを増やす?
こうしたらどうかな?
  public void doImport(InputStream is) {   検索条件 create検索条件(行データ) {
    Readerインスタンスを生成                          XXXX
    while(1行読み込む) {                        }
       create検索条件
       do検索                                検索結果 do検索(検索条件) {
       create登録・更新Entity                     (DBアクセス)
       do永続化                               }
    }
    Readerをクローズ                            登録・更新Entity create登録・更新Entity(検索結果) {
  }                                          if(検索結果あり) {
                                                更新用のEntity生成
                                             } else {
                                                登録用のEntity生成
                                             }
                                           }
メソッド内の処理を細分化
                                           void do永続化(登録・更新Entity) {
 →メソッドが何をしているのか                              if(登録) {
  わかりやすくする ( メソッド間も疎結合 )                        登録処理(DBアクセス)
 →テストパターンを追加する時は                             } else {
  引数のパターンを増やす                                   更新処理(DBアクセス)
                                             }
                                           }
 ※ ソースコード中にコメントを書くよりも細
 分化単位で JavaDoc を書いた方がよっぽどい
 いソースコードになる、と思う
さらに一手間

●   細分化したメソッドのスコープはパッケージ
    プライベート
     –   private だとテストクラスから参照できない
           ●   わざわざリフレクション使うのもなぁ・・・
           ●   public でなければ大体良いんじゃね?
●   テストクラスは同じパッケージに配置
     –   どのクラスのテストをしているのかわかりや
          すく
     –   クラス名も XXXTest とかね。
Mock オブジェクト

●   使わなくても良いように実装を見直してみる
●   Mock はあくまでも Mock
      –   テストクラス以外にもメンテナンスコストが
           かかる
      –   Mock を作ることに情熱をかけ始めたら本末転
           倒


●   テスト済みであれば、実クラスを呼び出して
    も全然アリだと思う
実装設計にもうひと手間

●   Model を責務に分けたレイヤーで細分化

         Model

             Service


             Logic


                 Dao              DB




                       ※ トランザクションスクリプトでもいいじゃない
レイヤーの責務
●   Dao
            –   DB アクセス
                     ●   1 テーブルに対する CRUD
                     ●   複数テーブルを結合した SELECT 文発行
●   Logic
            –   DAO に対するアクセスのとりまとめ
                     ●   親子関係のテーブルに対する登録処理
            –   Web/Batch 共通で使えそうな処理
                     ●   メール送信
                     ●   複数 Service で利用される処理
●   Service
            –   Controller との間を取り持つ delegate
            –   Logic に対するアクセスの取りまとめ
テスト自動化のメリット
●   リグレッションテスト
●   カバレッジレポート
       –   テストクラスで実行した箇所がわかる
●   Jenkins 等の CI ツールと組み合わせて
       –   最新のソースコード取得
       –   ビルド ( リリースモジュールの生成 )
       –   テスト
                               ・プロジェクトは進んでいる
       –   レポート出力              ・「俺、仕事している」感
                               を体感できるハズ
    を自動で行うことができる
    開発者の環境以外でも動作するようにテストクラスを記述することで、環境依存
    を減らす
    ( テストクラスにおけるフルパス指定禁止、スキーマは CI ツールや開発者毎 )
老婆心ながら・・・
●   カバレッジの目標はがんばりすぎない
       –   高カバレッジ≠高品質
              ●   そもそも仕様を満たしていないかもしれません
       –   カバレッジ 100% にするのは難しい
              ●   外部リソースアクセス
              ●   標準 API の例外
       –   カバレッジでなく、 assert にこだわりましょう
       –   SQL のカバレッジは取れない
              ●   SQL でがんばっている箇所があれば、データパターンを増やし
                   てテストもがんばる!
●   バグが発生したら
       –   再現するテストケースを書いて、そこから修正
       –   抜けてた観点をチーム、組織で共有できれば尚良し
●   単体テストはあくまでもメソッドとしての振る舞い
       –   結合テスト、システムテストが不要な訳ではない
最後に
テストのスキルは、言語がかわってもそんなに変わりません。
なにより、テストしやすい実装ができるということは、
開発者として大きなアドバンテージがあると思います。

「テストしやすい実装=シンプルな実装」
を目指せるはずです。システムは生き物なのでシンプルに保てれば保守もしやすく
なるでしょう。

テストがいくら完璧でも、
使う人に価値が無いと思われれば、そのシステムは意味がありません。
テストだけに情熱をかけすぎないように、ほどほどに。
興味が出てきたら




           買って読んでね
ご清聴
ありがとうございました

Contenu connexe

Tendances

Oratopostgres-hiroshima
Oratopostgres-hiroshimaOratopostgres-hiroshima
Oratopostgres-hiroshimaKosuke Kida
 
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Norito Agetsuma
 
Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Yukiko Kato
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)Kosuke Kida
 
[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...
[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...
[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...Deep Learning JP
 
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめKosuke Kida
 
Active Object
Active ObjectActive Object
Active Objecty-uti
 
Batchは作ったことあるけど、 初めてSpring Batchを使ってみた
Batchは作ったことあるけど、 初めてSpring Batchを使ってみたBatchは作ったことあるけど、 初めてSpring Batchを使ってみた
Batchは作ったことあるけど、 初めてSpring Batchを使ってみたHideyuki SASAKURA
 
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方Shunji Konishi
 
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルあなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルMikiya Okuno
 
DDDハンズオン
DDDハンズオンDDDハンズオン
DDDハンズオンSoudai Sone
 
JavaScript基礎勉強会
JavaScript基礎勉強会JavaScript基礎勉強会
JavaScript基礎勉強会大樹 小倉
 
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方Sho Shimauchi
 
Oss x user_meeting_6_postgres
Oss x user_meeting_6_postgresOss x user_meeting_6_postgres
Oss x user_meeting_6_postgresKosuke Kida
 

Tendances (18)

PowerShell 小技集
PowerShell 小技集PowerShell 小技集
PowerShell 小技集
 
Oratopostgres-hiroshima
Oratopostgres-hiroshimaOratopostgres-hiroshima
Oratopostgres-hiroshima
 
Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点) Java Batch 仕様 (Public Review時点)
Java Batch 仕様 (Public Review時点)
 
Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】
 
PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)PostgreSQLレプリケーション(pgcon17j_t4)
PostgreSQLレプリケーション(pgcon17j_t4)
 
[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...
[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...
[DL輪読会]Batch Renormalization: Towards Reducing Minibatch Dependence in Batch-...
 
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
商用DBからPostgreSQLへ まず知っておいて欲しいまとめ
 
Active Object
Active ObjectActive Object
Active Object
 
Batchは作ったことあるけど、 初めてSpring Batchを使ってみた
Batchは作ったことあるけど、 初めてSpring Batchを使ってみたBatchは作ったことあるけど、 初めてSpring Batchを使ってみた
Batchは作ったことあるけど、 初めてSpring Batchを使ってみた
 
sqldf for pandas
sqldf for pandassqldf for pandas
sqldf for pandas
 
お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方お手軽Ajaxアプリケーションの作り方
お手軽Ajaxアプリケーションの作り方
 
Chugokudb18_1
Chugokudb18_1Chugokudb18_1
Chugokudb18_1
 
あなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデルあなたが知らない リレーショナルモデル
あなたが知らない リレーショナルモデル
 
Introduction to Spock
Introduction to SpockIntroduction to Spock
Introduction to Spock
 
DDDハンズオン
DDDハンズオンDDDハンズオン
DDDハンズオン
 
JavaScript基礎勉強会
JavaScript基礎勉強会JavaScript基礎勉強会
JavaScript基礎勉強会
 
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方
 
Oss x user_meeting_6_postgres
Oss x user_meeting_6_postgresOss x user_meeting_6_postgres
Oss x user_meeting_6_postgres
 

En vedette

JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストShuji Watanabe
 
Team Foundation Server 2015 Update 2.1 アップグレード 手順書 ~ Team Foundation Server 2...
Team Foundation Server 2015 Update 2.1アップグレード 手順書~ Team Foundation Server 2...Team Foundation Server 2015 Update 2.1アップグレード 手順書~ Team Foundation Server 2...
Team Foundation Server 2015 Update 2.1 アップグレード 手順書 ~ Team Foundation Server 2...Masaki Takeda
 
Team Foundation Server 2015 Update 1 インストール 手順書
Team Foundation Server 2015 Update 1インストール 手順書Team Foundation Server 2015 Update 1インストール 手順書
Team Foundation Server 2015 Update 1 インストール 手順書Masaki Takeda
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider貴志 上坂
 
iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-
iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-
iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-Yusuke Hosonuma
 
もう怖くない! Team Foundation Server 2015 Update 1 ワークアイテム管理と テンプレートのカスタマイズ 概要
もう怖くない!Team Foundation Server 2015 Update 1 ワークアイテム管理とテンプレートのカスタマイズ 概要もう怖くない!Team Foundation Server 2015 Update 1 ワークアイテム管理とテンプレートのカスタマイズ 概要
もう怖くない! Team Foundation Server 2015 Update 1 ワークアイテム管理と テンプレートのカスタマイズ 概要Masaki Takeda
 
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...Masaki Takeda
 
Visual Studio と Team Foundation Server / Visual Studio Team Services で実現するビル...
Visual Studio  と Team Foundation Server / Visual Studio Team Services で実現するビル...Visual Studio  と Team Foundation Server / Visual Studio Team Services で実現するビル...
Visual Studio と Team Foundation Server / Visual Studio Team Services で実現するビル...Masaki Takeda
 
Team Foundation Server / Visual Studio Team Services 手順書
Team Foundation Server /Visual Studio Team Services 手順書Team Foundation Server /Visual Studio Team Services 手順書
Team Foundation Server / Visual Studio Team Services 手順書Masaki Takeda
 
Visual Studio 2017 と Team Foundation Server / Visual Studio Team Services で実現...
Visual Studio 2017 とTeam Foundation Server /Visual Studio Team Services で実現...Visual Studio 2017 とTeam Foundation Server /Visual Studio Team Services で実現...
Visual Studio 2017 と Team Foundation Server / Visual Studio Team Services で実現...Masaki Takeda
 
Visual Studio と Team Foundation Server / Visual Studio Team Services で実現するビル...
Visual Studio  とTeam Foundation Server /Visual Studio Team Services で実現するビル...Visual Studio  とTeam Foundation Server /Visual Studio Team Services で実現するビル...
Visual Studio と Team Foundation Server / Visual Studio Team Services で実現するビル...Masaki Takeda
 
Van hosting tot cloud computing @ Intac
Van hosting tot cloud computing @ IntacVan hosting tot cloud computing @ Intac
Van hosting tot cloud computing @ IntacCombell NV
 
Love Doesn't Always Have a Happy Ending
Love Doesn't Always Have a Happy EndingLove Doesn't Always Have a Happy Ending
Love Doesn't Always Have a Happy EndingMrs. McCabe
 
Measuring ROI for Social Media
Measuring ROI for Social MediaMeasuring ROI for Social Media
Measuring ROI for Social MediaEvo Terra
 
Fall Into Reading With Four Blocks
Fall Into Reading With Four BlocksFall Into Reading With Four Blocks
Fall Into Reading With Four BlocksCheryl Dick
 
The internet has gone Cloud fot11
The internet has gone Cloud fot11The internet has gone Cloud fot11
The internet has gone Cloud fot11Combell NV
 

En vedette (20)

JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテストJUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
JUnit実践入門 xUnitTestPatternsで学ぶユニットテスト
 
Team Foundation Server 2015 Update 2.1 アップグレード 手順書 ~ Team Foundation Server 2...
Team Foundation Server 2015 Update 2.1アップグレード 手順書~ Team Foundation Server 2...Team Foundation Server 2015 Update 2.1アップグレード 手順書~ Team Foundation Server 2...
Team Foundation Server 2015 Update 2.1 アップグレード 手順書 ~ Team Foundation Server 2...
 
Team Foundation Server 2015 Update 1 インストール 手順書
Team Foundation Server 2015 Update 1インストール 手順書Team Foundation Server 2015 Update 1インストール 手順書
Team Foundation Server 2015 Update 1 インストール 手順書
 
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsiderMoq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
 
iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-
iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-
iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-
 
もう怖くない! Team Foundation Server 2015 Update 1 ワークアイテム管理と テンプレートのカスタマイズ 概要
もう怖くない!Team Foundation Server 2015 Update 1 ワークアイテム管理とテンプレートのカスタマイズ 概要もう怖くない!Team Foundation Server 2015 Update 1 ワークアイテム管理とテンプレートのカスタマイズ 概要
もう怖くない! Team Foundation Server 2015 Update 1 ワークアイテム管理と テンプレートのカスタマイズ 概要
 
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
Test Manager + Team Foundation Server /Visual Studio Team Services 手順書(共有パラメー...
 
Visual Studio と Team Foundation Server / Visual Studio Team Services で実現するビル...
Visual Studio  と Team Foundation Server / Visual Studio Team Services で実現するビル...Visual Studio  と Team Foundation Server / Visual Studio Team Services で実現するビル...
Visual Studio と Team Foundation Server / Visual Studio Team Services で実現するビル...
 
Team Foundation Server / Visual Studio Team Services 手順書
Team Foundation Server /Visual Studio Team Services 手順書Team Foundation Server /Visual Studio Team Services 手順書
Team Foundation Server / Visual Studio Team Services 手順書
 
Visual Studio 2017 と Team Foundation Server / Visual Studio Team Services で実現...
Visual Studio 2017 とTeam Foundation Server /Visual Studio Team Services で実現...Visual Studio 2017 とTeam Foundation Server /Visual Studio Team Services で実現...
Visual Studio 2017 と Team Foundation Server / Visual Studio Team Services で実現...
 
Visual Studio と Team Foundation Server / Visual Studio Team Services で実現するビル...
Visual Studio  とTeam Foundation Server /Visual Studio Team Services で実現するビル...Visual Studio  とTeam Foundation Server /Visual Studio Team Services で実現するビル...
Visual Studio と Team Foundation Server / Visual Studio Team Services で実現するビル...
 
Van hosting tot cloud computing @ Intac
Van hosting tot cloud computing @ IntacVan hosting tot cloud computing @ Intac
Van hosting tot cloud computing @ Intac
 
Birds
BirdsBirds
Birds
 
Love Doesn't Always Have a Happy Ending
Love Doesn't Always Have a Happy EndingLove Doesn't Always Have a Happy Ending
Love Doesn't Always Have a Happy Ending
 
Measuring ROI for Social Media
Measuring ROI for Social MediaMeasuring ROI for Social Media
Measuring ROI for Social Media
 
Yams, Swelling And Locusts
Yams, Swelling And LocustsYams, Swelling And Locusts
Yams, Swelling And Locusts
 
L‘Harmony_Report
L‘Harmony_ReportL‘Harmony_Report
L‘Harmony_Report
 
La Comunicació
La ComunicacióLa Comunicació
La Comunicació
 
Fall Into Reading With Four Blocks
Fall Into Reading With Four BlocksFall Into Reading With Four Blocks
Fall Into Reading With Four Blocks
 
The internet has gone Cloud fot11
The internet has gone Cloud fot11The internet has gone Cloud fot11
The internet has gone Cloud fot11
 

Similaire à Nds#24 単体テスト

テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストOhishi Mikage
 
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?Shinichi Hirauchi
 
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)kyon mm
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaShigeru Hanada
 
増加するコアを使い切れ!!
増加するコアを使い切れ!!増加するコアを使い切れ!!
増加するコアを使い切れ!!guestc06e54
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Tokuhiro Matsuno
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIWataru MIYAGUNI
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験についてRakuten Group, Inc.
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれMasataka MIZUNO
 
大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術RyuichiKanoh
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識shigeya
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類Shuzo Kashihara
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門Yasuko Ohba
 
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみましたYahoo!デベロッパーネットワーク
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオンkyon mm
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshopDaisuke Sugai
 
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦urasandesu
 
Pex を試してみよう!
Pex を試してみよう!Pex を試してみよう!
Pex を試してみよう!Oda Shinsuke
 

Similaire à Nds#24 単体テスト (20)

テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
 
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
 
テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)テストファースト、自動テストを導入するという事について(@社内勉強会)
テストファースト、自動テストを導入するという事について(@社内勉強会)
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
 
増加するコアを使い切れ!!
増加するコアを使い切れ!!増加するコアを使い切れ!!
増加するコアを使い切れ!!
 
Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
 
あなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CIあなたの安心を高速に守る Container-based CI
あなたの安心を高速に守る Container-based CI
 
CLRH_120414_WFTDD
CLRH_120414_WFTDDCLRH_120414_WFTDD
CLRH_120414_WFTDD
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
 
クラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれクラウド開発に役立つ OSS あれこれ
クラウド開発に役立つ OSS あれこれ
 
大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術大規模並列実験を支えるクラウドサービスと基盤技術
大規模並列実験を支えるクラウドサービスと基盤技術
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
Jubatusでマルウェア分類
Jubatusでマルウェア分類Jubatusでマルウェア分類
Jubatusでマルウェア分類
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
#jjug_ccc #ccc_f1 広告システム刷新の舞台裏 - PHPからJavaに変えてみました
 
#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン#STAC2014 システムテスト自動化ハンズオン
#STAC2014 システムテスト自動化ハンズオン
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
 
つぶLT20121215
つぶLT20121215つぶLT20121215
つぶLT20121215
 
Pex を試してみよう!
Pex を試してみよう!Pex を試してみよう!
Pex を試してみよう!
 

Plus de Kazumune Katagiri

アプリしか作れないけどAzureに触ってみた #ngtnet
アプリしか作れないけどAzureに触ってみた #ngtnetアプリしか作れないけどAzureに触ってみた #ngtnet
アプリしか作れないけどAzureに触ってみた #ngtnetKazumune Katagiri
 
受託開発だけだといずれケツカッチンになってしまうのでいっちょサービスでもやってみようかと思ってTryしてみた上期の報告 #nds42
受託開発だけだといずれケツカッチンになってしまうのでいっちょサービスでもやってみようかと思ってTryしてみた上期の報告 #nds42受託開発だけだといずれケツカッチンになってしまうのでいっちょサービスでもやってみようかと思ってTryしてみた上期の報告 #nds42
受託開発だけだといずれケツカッチンになってしまうのでいっちょサービスでもやってみようかと思ってTryしてみた上期の報告 #nds42Kazumune Katagiri
 
1周遅れのScala入学 #nds41
1周遅れのScala入学 #nds411周遅れのScala入学 #nds41
1周遅れのScala入学 #nds41Kazumune Katagiri
 
おーいみんな、JavaやろうぜJava
おーいみんな、JavaやろうぜJavaおーいみんな、JavaやろうぜJava
おーいみんな、JavaやろうぜJavaKazumune Katagiri
 
負荷テストことはじめ
負荷テストことはじめ負荷テストことはじめ
負荷テストことはじめKazumune Katagiri
 

Plus de Kazumune Katagiri (9)

アプリしか作れないけどAzureに触ってみた #ngtnet
アプリしか作れないけどAzureに触ってみた #ngtnetアプリしか作れないけどAzureに触ってみた #ngtnet
アプリしか作れないけどAzureに触ってみた #ngtnet
 
受託開発だけだといずれケツカッチンになってしまうのでいっちょサービスでもやってみようかと思ってTryしてみた上期の報告 #nds42
受託開発だけだといずれケツカッチンになってしまうのでいっちょサービスでもやってみようかと思ってTryしてみた上期の報告 #nds42受託開発だけだといずれケツカッチンになってしまうのでいっちょサービスでもやってみようかと思ってTryしてみた上期の報告 #nds42
受託開発だけだといずれケツカッチンになってしまうのでいっちょサービスでもやってみようかと思ってTryしてみた上期の報告 #nds42
 
1周遅れのScala入学 #nds41
1周遅れのScala入学 #nds411周遅れのScala入学 #nds41
1周遅れのScala入学 #nds41
 
LT #nds37
LT #nds37LT #nds37
LT #nds37
 
#nds34 LT
#nds34 LT#nds34 LT
#nds34 LT
 
おーいみんな、JavaやろうぜJava
おーいみんな、JavaやろうぜJavaおーいみんな、JavaやろうぜJava
おーいみんな、JavaやろうぜJava
 
NDS#28 SIerの未来
NDS#28 SIerの未来NDS#28 SIerの未来
NDS#28 SIerの未来
 
Ipv6+JMeter+GAE
Ipv6+JMeter+GAEIpv6+JMeter+GAE
Ipv6+JMeter+GAE
 
負荷テストことはじめ
負荷テストことはじめ負荷テストことはじめ
負荷テストことはじめ
 

Nds#24 単体テスト