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
57
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
38
留年・ニート・ 内定取り消しの危機!?~こんな私が、未来は明るいと思えるようになるまで~
sudom
0
160
uroboroSQLをきっかけに、責務の在り方を考えてみた
sudom
0
49
道民学生ボランティアスタッフ体験記 in 東京
sudom
0
12
私流 エントリー先の選び方 ~技術イベントが好きな方向け~
sudom
0
15
公立千歳科学技術大学 修士2年生、私の近況
sudom
0
23
大学×環境構築
sudom
0
40
大学生活から見えたラフなアジャイルの形
sudom
0
51
Other Decks in Programming
See All in Programming
AIに “答え“を書かせるのを やめてみた
___akari11
0
120
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
1k
ChromeでローカルLLM
ryu1013
0
140
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
190
Next.js: The final boss of Web Performance
guaca
0
260
Agentic Software Factoryに、すごく賢いIF文を。 / super smart IF statement into the Agentic Software Factory.
rkaga
8
2.2k
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
790
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
1.2k
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
0
170
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
2
910
Agents on Rails - Rails at Scale 2026
irinanazarova
0
560
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
Featured
See All Featured
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
2
330
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
330
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
540
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
So, you think you're a good person
axbom
PRO
2
2.2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.9k
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
他にも… ・間違ったテストコードを書いちゃった ・テストコードで網羅しきれていないところからのバグ
結論 もっと後輩にテストコードを広めたい