SlideShare a Scribd company logo
1 of 79
Download to read offline
let's database testing!!

  2010/10/16 YAPC::Asia 2010
          @xaicron
自己紹介


name: Yuji Shimada ( 嶋田 裕二 )
works: DeNA
twitter: @xaicron
blog: http://blog.livedoor.
jp/xaicron/
皆さん
データーベース
 処理のテスト
してますか?
DB のテストをすると


この SELECT なんにもマッチしない...
INSERT したデータが文字化けしてるや
ん!
UPDATE や DELETE に WHERE 付け忘れ
てて全件あばばば
 TRIGGER が間違ってて、データ壊れ
た。。。
という事態を未然に防げます!
というか。。。
永続的なストレージに実際に
   入出力があるんだから
テストするのはあたりまえですね!
今回は MySQL に焦点を絞って
      お話します
ORM の話もしません
基本的には 生DBI をつかってやり
       ます
Haw To Testing
鉄則
ローカルでテストできる環境を
    作ること!!
よくない例


    ステージング環境のDBに接続してテストする
    本番は MySQL だけど、テストでは SQLite を
    使う
    自分のローカルに立ち上がっている MySQL  を
    テストに使う
 
実際に存在している DB を使ってテスト
すると、毎回データが変わってテストに
ならない
本番は MySQL なのに テストでは
SQLite とかは意味がない
Test の大まかな流れ


Test::mysqld を使って毎回クリーンな mysql
を立ち上げる
Test::Fixture::DBI を使ってテストデータを
突っ込む
DB 接続して、実際にデータの入出力が行わ
れているかテスト
そして伝説へ...
Test::mysqld


new するだけで、lcoal に 新規 mysql が立ち
上がる
DESTROY が走ったら、自動的に mysql を
落とす
Author: kazuhooku
DEMO
Test::Fixture::DBI


table 作ったり、 procedure / function / trigger 作っ
たり、data ぶっこんだりできる
既存の DB から schema 定義をもってきたり、指定の
レコードをとって来たりできる
  make_*_yaml.pl で fixture や database 定義を
  YAML に吐き出せる
Author: ZIGOROu, (test: xaicron)
DEMO
なかなか便利ですが
テスト毎にこれを毎回書くのはめん
      どいので
適当に組み合わせた
Test Module を書いて使うと
      いいでしょう
Test::Foo::Fixture::DBI
  みたいな名前にして
        setup_
実際のテストの書き方
の前に
DBI を直接扱う上で
便利なモジュールを紹介します
DBI と親和性の高いモジュール



SQL::Abstract
DBIx::DBHResolver
DBIx::Connector
DBIx::Connector ->
DBIx::DBHResolver ->
        DBI
という感じでラップすると
  なかなかいい感じ
DBIx::Connector


DBI の超薄いラッパー
$dbh を局所化できる
  多分最大の利点
fixup => で再接続
トランザクション処理をよしなにやってくれる
DBIx::DBHResolver


DBI 専用の container みたいなノリ
複数の DB に接続するのに便利
  Master / Slave
  User と Diary が別の DB
Sharding していてもかなり直感的
DBIx::Connector とも協調しやすい
+SQL::Abstract
my $row = $model->connector('SLAVE')->txn(fixup => sub {
        my $dbh = shift;
        my ($stmt, @bind) = $model->sql->select(...);
        return $dbh->selectrow_hashref($stmt, undef, @bind);
});
みたないな感じでつかえる
ようやく実際のテストの話
SELECT した結果を
 返すもののテスト
my $row = try {
    $self->connector('SLAVE', $user_id)->run(fixup => sub {
        my $dbh = shift;
        my ($stmt, @bind) = $self->sql->select(
            'user_data',
            [qw/id name/],
            { id => $user_id, disabled => 0 },  
        );  
        $dbh->selectrow_hashref($stmt, undef, @bind);
    });
}
catch {
    my $e = $_;
    ...
};
mysqld に fixture を入れる
実際にたたいて値を取得
取得した値が正しいかチェック
DEMO
INSERT のテスト
try {
    my $seq = $self->next_seq('MASTER', 'seq_tweet');
    $self->connector('MASTER', $user_id)->run(fixup => sub {
        my $dbh = shift;
        my ($stmt, @bind) = $self->sql->insert(
            'tweet',
            { id => $seq, ... },
        );
        $dbh->do($stmt, undef, @bind);
        $dbh->commit;
    });
}
catch {
    my $e = $_;
};
実際にたたいて値を入力
正常に INSERT されているかチェッ
ク
UPDATE とか DELETE も
      同じ感じ
特別に難しいことは
 やっていない
すべての SQL に対して
地道にテストを書きましょう
PROCEDURE / FUNCTION
      / TRIGGER
        のテスト
FUNCTION とは



そのまんま
一連のSQLを関数化できる
CALL function_name(args) で呼べる
値を返すので、参照系に使える
PROCEDURE と



値を返さない FUNCTION
主に更新用途 
CALL procedure_name(args) で呼べる
TRIGGER とは



テーブルの更新タイミングで発火
 INSERT / UPDATE / DELETE
SQL なら何でも書ける
 PROCEDURE をよく使う (更新なので)
FUNCTION のテスト
SELECT とおんなじ
PROCEDURE / TRIGGER
      のテスト
INSERT / UPDATE /DELETE
        とおんなじ
Test::mysqld の問題点
make test したときに
すっごい時間がかかる orz
1テスト毎に mysqld を立ち上げて
  落としてるから仕方ないよね
なんとかしたい
なんとかしたい
Makefile の書き換え大変です!
Module かいたよー
Module::Install::ExtendsMakeTest
replace_default_make_test(
    includes         => ['t/lib'],
    modules          => ['Test::MyApp::DB'],
    before_run_codes => [
        sub {
            $SIG{INT} = sub { CORE::exit 1 };
            my $db = Test::MyApp::DB->setup;
            $ENV{TEST_MY_SOCKET} = $db->my_cnf->{socket};
        },  
    ],  
);
みたいな感じで書くと
make test 時に mysqld
    が立ち上がる
あとは、socket ファイルとかを指定
   して接続すれば OK
$ENV に値があったら立ち上がっ
   ている mysqld を使って、
なかったら 新規に立ち上げるよう
     にしておけばいい
DEMO
というわけで
プログラムから扱いそうな
   DB の処理は
ちゃんとテストできる!!
ので、テストを書きましょう
自分(とみんな)のために
まとめ


地道にやっていけば DB 処理の大部分をテ
スト
結構ツール類が充実してきている
でもまだ自分で書く部分が多い印象
割とこの辺のノウハウがたまりつつあるので、
よくある処理は Module 化したい
DEMO で
 使った適当なプロダクト
http://github.com/xaicron/Mayoi
ご清聴ありがとうございました
Questions?
閑話休題

More Related Content

What's hot

TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめYu Nobuoka
 
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にするプロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にするShunji Konishi
 
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」Shinichi Hirauchi
 
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話関西Php勉強会のlimeの話
関西Php勉強会のlimeの話Hisateru Tanaka
 
Sencha ug3 siesta_share
Sencha ug3 siesta_shareSencha ug3 siesta_share
Sencha ug3 siesta_share久司 中村
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
B lack jumbodog 運転と改造のすすめ
B lack jumbodog 運転と改造のすすめB lack jumbodog 運転と改造のすすめ
B lack jumbodog 運転と改造のすすめShinichi Hirauchi
 
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理Kiyoshi Sawada
 
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦urasandesu
 
Power shellmemo
Power shellmemoPower shellmemo
Power shellmemoytanno
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テストKen Morishita
 
PerlとSQLのいろいろ
PerlとSQLのいろいろPerlとSQLのいろいろ
PerlとSQLのいろいろTakuya Tsuchida
 
PowerShell 紹介
PowerShell 紹介PowerShell 紹介
PowerShell 紹介tsudaa
 
Jmeter20120421
Jmeter20120421Jmeter20120421
Jmeter20120421hatakyo
 
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~johgus johgus
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generatorOda Shinsuke
 
秋だからEclipse再入門
秋だからEclipse再入門秋だからEclipse再入門
秋だからEclipse再入門Katsumi Honda
 

What's hot (20)

TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
 
プロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にするプロキシーを使ってテストを楽にする
プロキシーを使ってテストを楽にする
 
Rspec
RspecRspec
Rspec
 
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
2012 osc北海道 セッション資料「blackjumbodog利用のすすめ」
 
関西Php勉強会のlimeの話
関西Php勉強会のlimeの話関西Php勉強会のlimeの話
関西Php勉強会のlimeの話
 
Sencha ug3 siesta_share
Sencha ug3 siesta_shareSencha ug3 siesta_share
Sencha ug3 siesta_share
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
B lack jumbodog 運転と改造のすすめ
B lack jumbodog 運転と改造のすすめB lack jumbodog 運転と改造のすすめ
B lack jumbodog 運転と改造のすすめ
 
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
EWD 3トレーニングコース#11 ewd-xpressでのエラー処理
 
Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦Eclipse を使った java 開発 111126 杉浦
Eclipse を使った java 開発 111126 杉浦
 
Adobe JSX入門
Adobe JSX入門Adobe JSX入門
Adobe JSX入門
 
Power shellmemo
Power shellmemoPower shellmemo
Power shellmemo
 
最近の単体テスト
最近の単体テスト最近の単体テスト
最近の単体テスト
 
PerlとSQLのいろいろ
PerlとSQLのいろいろPerlとSQLのいろいろ
PerlとSQLのいろいろ
 
PowerShell 紹介
PowerShell 紹介PowerShell 紹介
PowerShell 紹介
 
Jmeter20120421
Jmeter20120421Jmeter20120421
Jmeter20120421
 
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
 
PowerShell 小技集
PowerShell 小技集PowerShell 小技集
PowerShell 小技集
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generator
 
秋だからEclipse再入門
秋だからEclipse再入門秋だからEclipse再入門
秋だからEclipse再入門
 

Viewers also liked

Youth camp intercession 7 dec2014
Youth camp intercession 7 dec2014Youth camp intercession 7 dec2014
Youth camp intercession 7 dec2014SSMC
 
Kingdom christians 24 apr2016
Kingdom christians 24 apr2016Kingdom christians 24 apr2016
Kingdom christians 24 apr2016SSMC
 
Tipografi adalah salah satu kualitas atas mana kita mendasarkan sebagian besa...
Tipografi adalah salah satu kualitas atas mana kita mendasarkan sebagian besa...Tipografi adalah salah satu kualitas atas mana kita mendasarkan sebagian besa...
Tipografi adalah salah satu kualitas atas mana kita mendasarkan sebagian besa...Fadillah Brown Eye
 
05 04 jesus’s manifesto lk 4 18-19 f-inal
05 04 jesus’s manifesto lk 4 18-19 f-inal05 04 jesus’s manifesto lk 4 18-19 f-inal
05 04 jesus’s manifesto lk 4 18-19 f-inalSSMC
 
After you say i do sermon12 feb2012
After you say i do   sermon12 feb2012After you say i do   sermon12 feb2012
After you say i do sermon12 feb2012SSMC
 
Prep Place Direction
Prep Place DirectionPrep Place Direction
Prep Place Directionguest2d777ab
 
What does-it-take-to-follow-christ
What does-it-take-to-follow-christWhat does-it-take-to-follow-christ
What does-it-take-to-follow-christSSMC
 
03 03 john 2 23-25 from fear to faith to fulfillment
03 03 john 2 23-25 from fear to faith to fulfillment03 03 john 2 23-25 from fear to faith to fulfillment
03 03 john 2 23-25 from fear to faith to fulfillmentSSMC
 
Social Media for Investigations Tools
Social Media for Investigations ToolsSocial Media for Investigations Tools
Social Media for Investigations ToolsMandy Jenkins
 
When i do becomes i don't
When i do becomes i don't When i do becomes i don't
When i do becomes i don't SSMC
 
Social Strategies: Maximize Your Social Media
Social Strategies: Maximize Your Social MediaSocial Strategies: Maximize Your Social Media
Social Strategies: Maximize Your Social MediaMandy Jenkins
 
Buy this news, please?
Buy this news, please?Buy this news, please?
Buy this news, please?Mandy Jenkins
 
Crowdsourcing, Searching Social Media and Curation Resource List
Crowdsourcing, Searching Social Media and Curation Resource ListCrowdsourcing, Searching Social Media and Curation Resource List
Crowdsourcing, Searching Social Media and Curation Resource ListMandy Jenkins
 
Raising godly children 19 jun 15
Raising godly children 19 jun 15Raising godly children 19 jun 15
Raising godly children 19 jun 15SSMC
 
Ephesians intro and chap 2 21 oct2012
Ephesians intro and chap 2 21 oct2012Ephesians intro and chap 2 21 oct2012
Ephesians intro and chap 2 21 oct2012SSMC
 
11 24 Apostles Creed Series - I Believe
11 24 Apostles Creed Series - I Believe11 24 Apostles Creed Series - I Believe
11 24 Apostles Creed Series - I BelieveSSMC
 
Susan Morreale Portfolio 2012
Susan Morreale Portfolio 2012Susan Morreale Portfolio 2012
Susan Morreale Portfolio 2012smorreale
 

Viewers also liked (20)

Youth camp intercession 7 dec2014
Youth camp intercession 7 dec2014Youth camp intercession 7 dec2014
Youth camp intercession 7 dec2014
 
Kingdom christians 24 apr2016
Kingdom christians 24 apr2016Kingdom christians 24 apr2016
Kingdom christians 24 apr2016
 
Changing media landscape 08022011
Changing media landscape 08022011Changing media landscape 08022011
Changing media landscape 08022011
 
Tipografi adalah salah satu kualitas atas mana kita mendasarkan sebagian besa...
Tipografi adalah salah satu kualitas atas mana kita mendasarkan sebagian besa...Tipografi adalah salah satu kualitas atas mana kita mendasarkan sebagian besa...
Tipografi adalah salah satu kualitas atas mana kita mendasarkan sebagian besa...
 
05 04 jesus’s manifesto lk 4 18-19 f-inal
05 04 jesus’s manifesto lk 4 18-19 f-inal05 04 jesus’s manifesto lk 4 18-19 f-inal
05 04 jesus’s manifesto lk 4 18-19 f-inal
 
After you say i do sermon12 feb2012
After you say i do   sermon12 feb2012After you say i do   sermon12 feb2012
After you say i do sermon12 feb2012
 
Prep Place Direction
Prep Place DirectionPrep Place Direction
Prep Place Direction
 
Resource review
Resource reviewResource review
Resource review
 
What does-it-take-to-follow-christ
What does-it-take-to-follow-christWhat does-it-take-to-follow-christ
What does-it-take-to-follow-christ
 
03 03 john 2 23-25 from fear to faith to fulfillment
03 03 john 2 23-25 from fear to faith to fulfillment03 03 john 2 23-25 from fear to faith to fulfillment
03 03 john 2 23-25 from fear to faith to fulfillment
 
Abstract
AbstractAbstract
Abstract
 
Social Media for Investigations Tools
Social Media for Investigations ToolsSocial Media for Investigations Tools
Social Media for Investigations Tools
 
When i do becomes i don't
When i do becomes i don't When i do becomes i don't
When i do becomes i don't
 
Social Strategies: Maximize Your Social Media
Social Strategies: Maximize Your Social MediaSocial Strategies: Maximize Your Social Media
Social Strategies: Maximize Your Social Media
 
Buy this news, please?
Buy this news, please?Buy this news, please?
Buy this news, please?
 
Crowdsourcing, Searching Social Media and Curation Resource List
Crowdsourcing, Searching Social Media and Curation Resource ListCrowdsourcing, Searching Social Media and Curation Resource List
Crowdsourcing, Searching Social Media and Curation Resource List
 
Raising godly children 19 jun 15
Raising godly children 19 jun 15Raising godly children 19 jun 15
Raising godly children 19 jun 15
 
Ephesians intro and chap 2 21 oct2012
Ephesians intro and chap 2 21 oct2012Ephesians intro and chap 2 21 oct2012
Ephesians intro and chap 2 21 oct2012
 
11 24 Apostles Creed Series - I Believe
11 24 Apostles Creed Series - I Believe11 24 Apostles Creed Series - I Believe
11 24 Apostles Creed Series - I Believe
 
Susan Morreale Portfolio 2012
Susan Morreale Portfolio 2012Susan Morreale Portfolio 2012
Susan Morreale Portfolio 2012
 

Similar to Let s database_testing

Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術Oda Shinsuke
 
Sql database でも使えるほにゃらら
Sql database でも使えるほにゃららSql database でも使えるほにゃらら
Sql database でも使えるほにゃららOda Shinsuke
 
T sql 振り返り
T sql 振り返りT sql 振り返り
T sql 振り返りOda Shinsuke
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門Yasuko Ohba
 
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのかSQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのかyancya
 
初心者向け SQLite の始め方
初心者向け SQLite の始め方初心者向け SQLite の始め方
初心者向け SQLite の始め方suno88
 
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!株式会社クライム
 
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルCOD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルMasayuki Ozawa
 
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜JustSystems Corporation
 
Google Gears データベースの基礎
Google Gears データベースの基礎Google Gears データベースの基礎
Google Gears データベースの基礎webos-goodies
 
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?Shinichi Hirauchi
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Oda Shinsuke
 
SQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話しSQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話しInsight Technology, Inc.
 
若気の至りを精算する
若気の至りを精算する若気の至りを精算する
若気の至りを精算するKenji Daikoku
 
GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackGroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackTakahiro Yoshimura
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようAkira Shimosako
 
Asakusa Enterprise Batch Processing Framework for Hadoop
Asakusa Enterprise Batch Processing Framework for HadoopAsakusa Enterprise Batch Processing Framework for Hadoop
Asakusa Enterprise Batch Processing Framework for HadoopTakashi Kambayashi
 
C#coding guideline その2_20130325
C#coding guideline その2_20130325C#coding guideline その2_20130325
C#coding guideline その2_20130325Yoshihisa Ozaki
 

Similar to Let s database_testing (20)

Sql world を支える技術
Sql world を支える技術Sql world を支える技術
Sql world を支える技術
 
Sql database でも使えるほにゃらら
Sql database でも使えるほにゃららSql database でも使えるほにゃらら
Sql database でも使えるほにゃらら
 
T sql 振り返り
T sql 振り返りT sql 振り返り
T sql 振り返り
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 
Tdd
TddTdd
Tdd
 
SQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのかSQLQL は GraphQL にとってなんなのか
SQLQL は GraphQL にとってなんなのか
 
初心者向け SQLite の始め方
初心者向け SQLite の始め方初心者向け SQLite の始め方
初心者向け SQLite の始め方
 
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
PostgreSQLの連携!クラウド移行!負荷分散!バックアップ!DBMotoで一挙解決!
 
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルCOD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
 
Nds#24 単体テスト
Nds#24 単体テストNds#24 単体テスト
Nds#24 単体テスト
 
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
Javaチョットデキルへの道〜JavaコアSDKに見る真似したいコード10選〜
 
Google Gears データベースの基礎
Google Gears データベースの基礎Google Gears データベースの基礎
Google Gears データベースの基礎
 
C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?C# から java へのプログラム移植で体験したtddの効果は?
C# から java へのプログラム移植で体験したtddの効果は?
 
Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介Sql server2014復習とsqlserver2016の紹介
Sql server2014復習とsqlserver2016の紹介
 
SQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話しSQL Server/SQL Database の新機能のお話し
SQL Server/SQL Database の新機能のお話し
 
若気の至りを精算する
若気の至りを精算する若気の至りを精算する
若気の至りを精算する
 
GroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hackGroovyなAndroidテスト #atest_hack
GroovyなAndroidテスト #atest_hack
 
Groovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみようGroovyで楽にSQLを実行してみよう
Groovyで楽にSQLを実行してみよう
 
Asakusa Enterprise Batch Processing Framework for Hadoop
Asakusa Enterprise Batch Processing Framework for HadoopAsakusa Enterprise Batch Processing Framework for Hadoop
Asakusa Enterprise Batch Processing Framework for Hadoop
 
C#coding guideline その2_20130325
C#coding guideline その2_20130325C#coding guideline その2_20130325
C#coding guideline その2_20130325
 

Let s database_testing