Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
テストコードってすごい!
Search
Sudo Mayu
November 18, 2023
Programming
51
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
留年・ニート・ 内定取り消しの危機!?~こんな私が、未来は明るいと思えるようになるまで~
sudom
0
91
uroboroSQLをきっかけに、責務の在り方を考えてみた
sudom
0
31
道民学生ボランティアスタッフ体験記 in 東京
sudom
0
8
私流 エントリー先の選び方 ~技術イベントが好きな方向け~
sudom
0
7
公立千歳科学技術大学 修士2年生、私の近況
sudom
0
16
大学×環境構築
sudom
0
38
大学生活から見えたラフなアジャイルの形
sudom
0
38
Other Decks in Programming
See All in Programming
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
230
運用ダッシュボードの設計を誰も教えてくれないのだけどみなさんどうしてるんですか? - チームに監視するという文化を根付かせるための第一歩を踏みたい -
satoshi256kbyte
1
130
Claude Code全社展開のためにやったことn選~プラグイン302個・コミッター271人を支えるために~
kenchan
5
1.6k
React本体のコードリーディング
high_g_engineer
1
150
複数の Claude Code が"放置"されてしまう問題をCLI ダッシュボードを自作して解決した話
sumihiro3
1
700
PHP初心者セッション2026 〜生成AIでは見えない裏側を知る:今だからLAMPを通して仕組みを学ぶ〜
kashioka
0
960
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
390
源内ハンズオン概要編
hideg
0
190
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.8k
全PRの83%がAIレビューだけでマージできるようになった開発組織はその後どうなったか
athug
1
1.8k
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
270
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.7k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.1k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
420
Un-Boring Meetings
codingconduct
0
390
Building AI with AI
inesmontani
PRO
1
1.1k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
580
YesSQL, Process and Tooling at Scale
rocio
174
15k
So, you think you're a good person
axbom
PRO
2
2.1k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
210
WENDY [Excerpt]
tessaabrams
11
39k
New Earth Scene 8
popppiees
3
2.5k
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
他にも… ・間違ったテストコードを書いちゃった ・テストコードで網羅しきれていないところからのバグ
結論 もっと後輩にテストコードを広めたい