Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
テストコードってすごい!
Search
Sudo Mayu
November 18, 2023
Programming
56
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
テストコードってすごい!
2023.11.18 JavaDoでしょう#23
Sudo Mayu
November 18, 2023
More Decks by Sudo Mayu
See All by Sudo Mayu
表を書くならCheetah Gridで!
sudom
0
33
留年・ニート・ 内定取り消しの危機!?~こんな私が、未来は明るいと思えるようになるまで~
sudom
0
130
uroboroSQLをきっかけに、責務の在り方を考えてみた
sudom
0
46
道民学生ボランティアスタッフ体験記 in 東京
sudom
0
11
私流 エントリー先の選び方 ~技術イベントが好きな方向け~
sudom
0
14
公立千歳科学技術大学 修士2年生、私の近況
sudom
0
23
大学×環境構築
sudom
0
39
大学生活から見えたラフなアジャイルの形
sudom
0
51
Other Decks in Programming
See All in Programming
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
340
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
170
wkhtmltopdfの次どうするか問題2026
willnet
2
1.4k
AIエージェント時代のコードレビューを設計する
nogu66
6
2.7k
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
170
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
4
2.7k
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
280
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
480
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
200
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
460
Vue Fes Japan 2026 タイムテーブル徹底解説
448jp
1
250
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.8k
Featured
See All Featured
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
3
4.3k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
320
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
240
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
540
GitHub's CSS Performance
jonrohan
1033
470k
Test your architecture with Archunit
thirion
2
2.4k
New Earth Scene 8
popppiees
4
2.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.3k
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Transcript
テストコードってすごい! 11/18 JavaDo
自己紹介 須藤真由 公立千歳科学技術大学 情報システム工学科に通う4年生 山川研究室に所属 特技:ダンス 趣味:推し活
きっかけ
きっかけ 研究活動の一環で ・リファクタリングしたい ・コードの読みやすさを意識したい! →テスト駆動開発に着目
テスト駆動開発とは テストレッド ↓ テストグリーン ↓ リファクタリング 失敗予定でテストを書き、 コンパイルを通す 成功するように実装をつける 実装内で無駄・今後のトラブルの元に
なりそうなコードを書き換える
書き方
使ったもの ・intellij 学校で使ってるIDE ・Java ・JUnit Javaでの単体テスト用のフレームワーク
テストケースの命名 ユビキタス言語を使用 開発者・ステークホルダー、双方で使う言語 ・クライアントからのドキュメント ・読みやすさ 例えば ◯足し算ができる(✕a=1,b=1でc=2になるか)
None
すごいと思ったこと
システムの振る舞いが分かる これからシステムを管理する後任開発者の疑問 「このシステムは何をするの?」 「何を入力したらどんな出力が返ってくるの?」 実際に使う?前任開発者に聞く? コードを読む? →テストコードを読もう!
コード外のエラーにも気づける システムをサーバーに上げようとしたときの話 リファクタリングが完了してるバージョン フレームワークを最新版にアップデートしたバージョン →統合後テストが通らなくなった! フレームワーク最新版の仕様変更が原因
難しかったこと
どんなテストケースを用意するか システムの振る舞いを把握してないと書けない 振る舞いにも2種類 開発者目線とステークホルダー目線 開発者目線 a=1, b=1, c=a+b=2 ステークホルダー目線 1+1=2
他にも… ・間違ったテストコードを書いちゃった ・テストコードで網羅しきれていないところからのバグ
結論 もっと後輩にテストコードを広めたい