Slide 1

Slide 1 text

今更JUnit4を勉強する

Slide 2

Slide 2 text

今日伝えたいこと 勉強したい分野の本が古くても、 とりあえず読んでみた方がよさそう 対象者 : 新しいものをやらなきゃいけない気がする新人エンジニア

Slide 3

Slide 3 text

自己紹介 2023卒エンジニア - むきむきJava主催 - 23歳✌✌👍 - 大学時代は東北で過ごす - つよくない(非情報系) - @shiryu_go Shiryu

Slide 4

Slide 4 text

経緯 JUnitの勉強したかったけど 出てきた本が全部JUnit4 そもそも、テストの書き方の前に テストってなんなのか知るのが重要なのでは

Slide 5

Slide 5 text

その前に:JUnit4,5の違い パッケージ JUnit4 : org.junit.* JUnit5 : org.junit.jupiter.* 例 : org.junit.Test→org.junit.jupiter.api.Test アノテーション JUnit4 : @Test(expected = Exception.class) JUnit5 : Assertions.assertThrows(Exception.class, () -> {//...});

Slide 6

Slide 6 text

テストで重要っぽいこと ①FIRST(失敗しないテストの原則) ②Right-BICEP(テストの対象の選び方) ③CORRECT(テストで考慮するべき境界条件) 前提 : 完璧なテストは存在しない

Slide 7

Slide 7 text

テストの考え方① FIRST(失敗しないテストの原則) - Fast(迅速) - Isolated(隔離) - Repeatable(繰り返し可能) - Self-validating(自律的検証) - Timely(タイムリー)

Slide 8

Slide 8 text

テストの考え方② Right-BICEP(テストの対象の選び方) - Right(結果は正しいか) - Boundary(境界) - Inverse(別の関係をチェック可能か) - Cross-Check(別の方法を使って結果をチェック可能か) - Error(エラーの条件を強制的に発生させられるか) - Performance(特性は許容範囲か)

Slide 9

Slide 9 text

テストの考え方③ CORRECT(テストで考慮するべき境界条件) - Conformance(形への適合) - Ordering(順序) - Range(範囲) - Reference(参照) - Existance(存在) - Cardinally(要素数) - Time(時間)

Slide 10

Slide 10 text

JUnitの年表 Javaの年表 1997 : JUnit 1 Release ???? : JUnit2 Release ???? : JUnit3 Release 2006 : JUnit 4 Release 2017 : JUnit5 Release 1997 : JDK 1.1 2002 : J2SE1.4 2004 : Java SE5 2006 : Java SE6 2008 : J2SEサポ終了 2017 : Java9 JDKのVer = JavaのVer

Slide 11

Slide 11 text

2001年 : アジャイル宣言(アジャイル開発発祥) 2003年 : テスト駆動開発(TDD) 2006年 : ビヘイビア駆動開発(TDD派生) 2009年 : DevOps →今なんとなく耳にする言葉の発祥は、割と古い

Slide 12

Slide 12 text

まとめ - 結果 - 境界条件 - 関係性 - エラー条件が正確か等々を確かめる...etc Verが低くても必要なことは多分学べる

Slide 13

Slide 13 text

おわり

Slide 14

Slide 14 text

参考図書 実践 JUnit JUnit実践入門

Slide 15

Slide 15 text

会場内での補足 - できる限り新しい本を読むべき - 今後、日本語での本は出なくなっていく。 - 英語での本は発売される - Java8以降であれば現状ギリギリ活かせる (そもそもJava8がLTSの期限切れそうだけど)