SlideShare a Scribd company logo
1 of 56
Download to read offline
from old JUnit
to modern JUnit
関西Javaエンジニアの会'13 7月度
@irof
@irof
========
* ふつうのプログラマ
* TDD
* Java, Jenkins
* Groovy, Gradle, Git
関西Javaエンジニアの会, hoge駆動,
大阪Jenkins勉強会……とかの中の人。
タイトルの元ネタ
(Java1.4から7へアップグレードするのいい資料なので是非)
JUnitの話をだらだらします
おしながき
JUnitを使うわけ
良いテストコードとは
JUnitの進化
JUnit4を使いこなす
JUnitを使うわけ
テスティングフレームワーク
テストを実行する
テスト結果を検証する
テストのフォーマットを提供する
実行方法、記述方法を統一するこ
とで、知っている人なら誰でも読めて
実行できるようにするのが目的。
xUnitを使うわけ
みんな使ってるから。
テスト実行時に興味の無いことをやって
くれるから。
他のツールと連携してくれるから。
IDE, ビルドツール, CI, カバレッジ,
テストレポート, etc...
TestNGでないわけ
とくにない。
おしながき
JUnitを使うわけ
良いテストコードとは
JUnitの進化
JUnit4を使いこなす
良いテストコードとは
F.I.R.S.T.
Fast - 高速
Independent - 独立
Repeatable - 再現
Self-Validating - 自己検証
Timely - 適時
A-TRIP
Automatic - 自動
Thorough - 徹底
Repeatable - 再現
Independent - 独立
Professional - 専門的
以上は借りてきた言葉。
良いテストコードとは
失敗の扱いがうまい
読みやすい
失敗の扱いがうまい
失敗すること
すぐ失敗すること
何故失敗したかわかること
どうするべきかわかること
失敗時の振る舞いで良し悪しが決まる
テストの価値は
失敗にある
詳しくはSlideShareで
読みやすい
テストコードはプロダクトコードよりも
可読性が求められる。
何故か?
テストのテストは困難。
テストのバグはレビューで潰す?
可読性が高いとバグが減る
“極限まで可読性の高いコードにバグ
が混入する可能性は限りなく低い”
ってブログに書いてた。私の。
可読性のための構造化
たとえば4フェーズテスト(xUTP)を使う
Four-Phase Test
@Test
public void hoge() {
Hoge sut = new Hoge();
String actual = sut.hoge();
assertThat(actual, is("fuga"));
}
フェーズの間を
1行空けるとかsetup
exercise
verify
構造がわかると読みやすくなる
おしながき
JUnitを使うわけ
良いテストコードとは
JUnitの進化
JUnit4を使いこなす
JUnitの進化
JUnit 3
public class JUnit3Test extends TestCase {
 
public void testHoge() {
 
assertEquals(2, 1);
}
}
JUnit 4
public class JUnit4Test {
 
@Test
public void hoge() {
 
assertThat(1, is(2));
}
}
TestCaseの継承が不要。
メソッド名のtest始まり制約が不要。
メソッドに@Testを付ける。
assertThatが標準(個人の趣味)
JUnit3 to JUnit4
何が嬉しい?
TestCaseの継承が不要。
Javaの継承は1クラスのみ。
いざと言う時のカードが残せる。
何が嬉しい?
メソッド名のtest始まり制約
が不要。
testのtypoが無くなる。
日本語テストメソッド名の違和感が
軽減される。
何が嬉しい?
assertThatが標準。
Matcherが使える。
あと引数の順番(ブログ参照)
※補足※
assertThatはJUnit4.4でAssertク
ラスに追加されたが、hamcrestを直
接使用すればJUnit3でも使える。
所詮AssertionErrorを投げるだけ
だし。
JUnit4.4以降の主な機能
4.4 - assertThat, Theories
4.7 - Rule(MethodRule)
4.8 - Categories
4.9 - TestRule
4.10 - RuleChain
4.11 - FixMethodOrder
※個人の趣味で抜粋
おしながき
JUnitを使うわけ
良いテストコードとは
JUnitの進化
JUnit4を使いこなす
JUnit4を使いこなす
JUnit4の三本柱
Matcher
Rule
Runner
Matcher
ひとまとまりの検証に名前をつけてひと
まとめにする。
テストコード自体の可読性の向上
失敗時メッセージの可読性の向上
describeTo/describeMismatch
で失敗時のメッセージを編集可能。
describeMismatchはhamcrest1.2以降(最新は1.3)
JUnit実践入門は1.1のため未掲載
Matcherの使い方
assertThat(today, is(dateOf(2013, 2, 3)));
java.lang.AssertionError:
Expected: is "2013/02/03"
but: "2013/07/31"
	 at org.hamcrest.MatcherAssert.assertThat(MatcherAssert
	 at org.junit.Assert.assertThat(Assert.java:865)
	 at org.junit.Assert.assertThat(Assert.java:832)
	 at JUnit4Test.hoge(JUnit4Test.java:24)
	 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
describeMismatchで編集可
describeToで編集可
メッセージがわかりやすい!
ステキ!!
Rule
とりあえずExpectedExceptionは覚
える。
他はおいおいでも……
@Ruleと@ClassRuleがある。
基本は@Ruleを使う。
Ruleの活用例
例外を検証するRuleとか(後述)
Logを検証するRuleとか(作れる)
TestWatcherを拡張すると捗る。
starting/finished
succeeded/failed/skipped
例外のテスト
old Exception Test
@Test
public void hoge() {
try {
sut.hoge();
fail();
} catch(NullPointerException e) {
assertEquals("ぬるぽ", e.getMessage());
}
}
modern Exception Test
@Test(expected = NullpointerException.class)
public void hoge() {
sut.hoge();
}
例外の型だけで良いならこれでおk
modern Exception Test
@Rule
public ExpectedException thrown =
ExpectedException.none();
@Test
public void hoge() {
thrown.expect(NullPointerException.class);
thrown.expectMessage("ぬるぽ");
sut.hoge();
}
modern Exception Test
例外が発生しなかった場合の fail を
書かなくて良い(忘れない)。
try-catchのような構造がテストコー
ド内に出現しない。
(例外の検証にMatcherを使える)
Ruleを使えば継承無しで横
断的なルールを適用できる!
しかも組み合わせ放題!
(継承では難しい)
ステキ!!
Runner
JUnitの実行方法を制御する。
標準機能で以下が提供。
Enclosed
Parameterized
Theories
Suite
Categories
Runnerの活用例
Arquillian
WebコンテナでJUnitのテストを実行
する。
SpringTest
ApplicationContextの初期化をし
てくれたりする。
Runnerをいじる
「実行方法の制御」
その気になれば何でもできる。
TestNGのテストも実行できる。
ネタだけど
続きはWebで
JavaAdventCalendar2011で似たこ
と書いてます。
まとめ
まとめ
JUnitも進化してます。
昔の常識、今は?
最新を追うと色々見えて楽しい。
one more thing...
Groovy x JUnit
Groovy x JUnit
JUnitのテストをGroovyで書く。
Spockを使う。
JUnitを拡張したフレームワーク
@RunWith(Sputnik.class)
JUnitとして実行できる!
Spockの例
class HelloSpock extends spock.lang.Specification {
    def "length of Spock's and his friends' names"() {
        expect:
        name.size() == length
        where:
        name     | length
        "Spock"  | 5
        "Kirk"   | 4
        "Scotty" | 6
    }
}
詳しくは別の機会に。

More Related Content

What's hot

MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をAtsuhiro Kubo
 
ペアプログラミング ホントのところ
ペアプログラミング ホントのところペアプログラミング ホントのところ
ペアプログラミング ホントのところTakuto Wada
 
アジャイル開発手法取り組み状況
アジャイル開発手法取り組み状況アジャイル開発手法取り組み状況
アジャイル開発手法取り組み状況Arata Fujimura
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析pocketberserker
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションTetsuya Morimoto
 
GAE/Goとsyncパッケージ
GAE/GoとsyncパッケージGAE/Goとsyncパッケージ
GAE/GoとsyncパッケージTakuya Ueda
 
Git演習(2)
Git演習(2)Git演習(2)
Git演習(2)sono8
 
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code &  A clean dev env, working every ...Remote Development with Visual Studio Code &  A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...Hiroyuki Ohnaka
 
モダン開発をかじってみる
モダン開発をかじってみるモダン開発をかじってみる
モダン開発をかじってみるal16030
 
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016Shinya Okano
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩Ayana Yokota
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築You&I
 
Php勉強会資料20090629
Php勉強会資料20090629Php勉強会資料20090629
Php勉強会資料20090629Takako Miyagawa
 
What is "Go" Gopher?
What is "Go" Gopher?What is "Go" Gopher?
What is "Go" Gopher?Ryuji Iwata
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBasekyon mm
 

What's hot (20)

MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発をMakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
 
Gws in fukuoka
Gws in fukuokaGws in fukuoka
Gws in fukuoka
 
ペアプログラミング ホントのところ
ペアプログラミング ホントのところペアプログラミング ホントのところ
ペアプログラミング ホントのところ
 
アジャイル開発手法取り組み状況
アジャイル開発手法取り組み状況アジャイル開発手法取り組み状況
アジャイル開発手法取り組み状況
 
言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析言語差異によるTDDプロセスへの影響度の解析
言語差異によるTDDプロセスへの影響度の解析
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
About junit
About junitAbout junit
About junit
 
GAE/Goとsyncパッケージ
GAE/GoとsyncパッケージGAE/Goとsyncパッケージ
GAE/Goとsyncパッケージ
 
TDDBC横浜3rd
TDDBC横浜3rdTDDBC横浜3rd
TDDBC横浜3rd
 
Git演習(2)
Git演習(2)Git演習(2)
Git演習(2)
 
Go modules
Go modulesGo modules
Go modules
 
Remote Development with Visual Studio Code & A clean dev env, working every ...
Remote Development with Visual Studio Code &  A clean dev env, working every ...Remote Development with Visual Studio Code &  A clean dev env, working every ...
Remote Development with Visual Studio Code & A clean dev env, working every ...
 
モダン開発をかじってみる
モダン開発をかじってみるモダン開発をかじってみる
モダン開発をかじってみる
 
Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016Python入門 コードリーディング - PyConJP2016
Python入門 コードリーディング - PyConJP2016
 
Gitはじめの一歩
Gitはじめの一歩Gitはじめの一歩
Gitはじめの一歩
 
今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築今時のオンプレなgithubクローン環境構築
今時のオンプレなgithubクローン環境構築
 
Php勉強会資料20090629
Php勉強会資料20090629Php勉強会資料20090629
Php勉強会資料20090629
 
What is "Go" Gopher?
What is "Go" Gopher?What is "Go" Gopher?
What is "Go" Gopher?
 
Caketest
CaketestCaketest
Caketest
 
The History of Groovy #GroovyBase
The History of Groovy #GroovyBaseThe History of Groovy #GroovyBase
The History of Groovy #GroovyBase
 

Similar to from old JUnit to modern JUnit

JUnit5とAndroidのテスト
JUnit5とAndroidのテストJUnit5とAndroidのテスト
JUnit5とAndroidのテストHiroshi Kikuchi
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよYohei Oda
 
自動テストとJenkinsの活用 公開版
自動テストとJenkinsの活用 公開版自動テストとJenkinsの活用 公開版
自動テストとJenkinsの活用 公開版baroqueworksdev
 
Windowsアプリ開発の実務で使うUnitTest
Windowsアプリ開発の実務で使うUnitTestWindowsアプリ開発の実務で使うUnitTest
Windowsアプリ開発の実務で使うUnitTestkeitasudo1
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーShuji Watanabe
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようKenji NAKAGAKI
 
Introduction to Continuous Testing
Introduction to Continuous TestingIntroduction to Continuous Testing
Introduction to Continuous TestingAtsuhiro 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
 
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdateYuki Iwanari
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6信之 岩永
 
2022-12-07 この素晴らしいアプリケーションにテストコードを
2022-12-07 この素晴らしいアプリケーションにテストコードを2022-12-07 この素晴らしいアプリケーションにテストコードを
2022-12-07 この素晴らしいアプリケーションにテストコードをnaoto teshima
 
フロントエンド開発者のためのJenkins
フロントエンド開発者のためのJenkinsフロントエンド開発者のためのJenkins
フロントエンド開発者のためのJenkinsSatake Hiroyuki
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎Etsuji Nakai
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会ko ty
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Takako Miyagawa
 
Mesosで学習タスクの実行
Mesosで学習タスクの実行Mesosで学習タスクの実行
Mesosで学習タスクの実行祐理 大野
 
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜Takao Sumitomo
 
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料Yasui Tsutomu
 

Similar to from old JUnit to modern JUnit (20)

JUnit5とAndroidのテスト
JUnit5とAndroidのテストJUnit5とAndroidのテスト
JUnit5とAndroidのテスト
 
Jenkinsを使おうよ
Jenkinsを使おうよJenkinsを使おうよ
Jenkinsを使おうよ
 
自動テストとJenkinsの活用 公開版
自動テストとJenkinsの活用 公開版自動テストとJenkinsの活用 公開版
自動テストとJenkinsの活用 公開版
 
Windowsアプリ開発の実務で使うUnitTest
Windowsアプリ開発の実務で使うUnitTestWindowsアプリ開発の実務で使うUnitTest
Windowsアプリ開発の実務で使うUnitTest
 
テスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ーテスト駆動開発の導入ーペアプログラミングの学習効果ー
テスト駆動開発の導入ーペアプログラミングの学習効果ー
 
Windowsにpythonをインストールしてみよう
WindowsにpythonをインストールしてみようWindowsにpythonをインストールしてみよう
Windowsにpythonをインストールしてみよう
 
Introduction to Continuous Testing
Introduction to Continuous TestingIntroduction to Continuous Testing
Introduction to Continuous Testing
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
 
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
改訂第3版 Jenkins 実践入門 what's newから見るJenkinsのUpdate
 
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
 
Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6Unityで使える C# 6.0~と .NET 4.6
Unityで使える C# 6.0~と .NET 4.6
 
2022-12-07 この素晴らしいアプリケーションにテストコードを
2022-12-07 この素晴らしいアプリケーションにテストコードを2022-12-07 この素晴らしいアプリケーションにテストコードを
2022-12-07 この素晴らしいアプリケーションにテストコードを
 
フロントエンド開発者のためのJenkins
フロントエンド開発者のためのJenkinsフロントエンド開発者のためのJenkins
フロントエンド開発者のためのJenkins
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
nseg第5回勉強会
nseg第5回勉強会nseg第5回勉強会
nseg第5回勉強会
 
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
 
Mesosで学習タスクの実行
Mesosで学習タスクの実行Mesosで学習タスクの実行
Mesosで学習タスクの実行
 
テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜テストがあればなんとかなる〜効率化までの道程〜
テストがあればなんとかなる〜効率化までの道程〜
 
CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料CodeZineAcademy TDD実践講座PR資料
CodeZineAcademy TDD実践講座PR資料
 
Twitter4Jとテスト
Twitter4JとテストTwitter4Jとテスト
Twitter4Jとテスト
 

Recently uploaded

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

Recently uploaded (8)

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

from old JUnit to modern JUnit