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
テストデータ生成支援ツールをChatGPTで作った話+@
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kazuhiro-togo
October 09, 2024
Programming
0
68
テストデータ生成支援ツールをChatGPTで作った話+@
トピック:SQL性能改善、テストデータ生成、プロパティベーステスト、o1-mini、自由研究
kazuhiro-togo
October 09, 2024
Tweet
Share
More Decks by kazuhiro-togo
See All by kazuhiro-togo
PostmanでAPIレスポンスを見やすく!Visualize機能とPostbotの活用術
kazuhiro_togo
0
140
Postmanを活用して業務プロセスを改善するアイデアを紹介します!
kazuhiro_togo
0
370
ChatGPT x Postmanを活用してAPI定義〜テストワークフロー化までを5分で紹介してみる
kazuhiro_togo
2
320
Other Decks in Programming
See All in Programming
RubyとGoでゼロから作る証券システム: 高信頼性が求められるシステムのコードの外側にある設計と運用のリアル
free_world21
0
210
猫の手も借りたい!ので AIエージェント猫を作って社内に放した話 Claude Code × Container Lambda の Slack Bot "DevNeko"
naramomi7
0
240
atmaCup #23でAIコーディングを活用した話
ml_bear
4
740
モジュラモノリスにおける境界をGoのinternalパッケージで守る
magavel
0
3.4k
Fundamentals of Software Engineering In the Age of AI
therealdanvega
0
140
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
200
Python’s True Superpower
hynek
0
200
「やめとこ」がなくなった — 1月にZennを始めて22本書いた AI共創開発のリアル
atani14
0
350
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
210
Unity6.3 AudioUpdate
cova8bitdots
0
110
AI活用のコスパを最大化する方法
ochtum
0
120
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
330
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
130
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
190
Build your cross-platform service in a week with App Engine
jlugia
234
18k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
We Have a Design System, Now What?
morganepeng
55
8k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
470
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
980
Optimizing for Happiness
mojombo
378
71k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
60
51k
The Limits of Empathy - UXLibs8
cassininazir
1
240
Transcript
date: テストデータ生成支援ツール をChatGPTで作った話+@ トピック:SQL性能改善、テストデータ生成、プロパティベーステスト、o1-mini、自由研究 2024/09/30 東郷
性能改善したSQLの動作確認どうやってますか? 背景 • 確認準備の難しさ ◦ 元のSQLからテストパターンを網羅的に出す ▪ 生成AI使えば、まぁまぁいけそう ◦ 網羅的に出したテストパターンのデータの準備
▪ それっぽい大量のデータ準備 ▪ 様々なデータパターンのデータ準備 ▪ 関連テーブルの関係を保ったデータの準備 🧐 テストデータの準備めっちゃ大変やん!
テストデータ生成言語を作って大量のデータを簡単に生成できるようにする コンセプト
• ChatGPTにPythonコードをJavaに置き換える依頼する ◦ コードが期待通りに動かない ◦ プロンプトに期待値を入れる ▪ 正しく期待値を理解した様子 • もう一度お願いする
◦ コードが期待通りに動かない ◦ 理由を説明させたところ原因は理解している • もう一度お願いする ◦ コードが期待通りに動かない。。ループ Python->Javaの移植で問題発生 🧐
• もしかして理解はできるけど期待するコードを生成する能力 が足りていない?? • GPT-4oモデルの能力の限界感、、 ◦ そんな時OpenAIから新しいモデルの発表 Python->Javaの移植で問題発生
o1の紹介文
使ってみる コンセプト実装だけに集中。実装はo1-previewにおまかせ!
完成間近で問題発生 o1-preview の場合は週 50 クエリまで \(^o^)/オワタ
o1-miniの紹介文 とりあえず使ってみる
できたもの https://github.com/kazuhiro-togo/test-data-generator
ChatGPT o1-preview, o1-mini 結論:コーディングにはo1-mini使うで良さそう 利用制限 o1-preview:週50回 o1-mini:1日50回 https://openai.com/index/openai-o1-mini-advancing-cost-efficient-reasoning/ o1-miniとo1-previewとGPT-4oのコーディング能力比較
• 実際のテーブルに対してDSL書こうとするとDDL見ながら書くので単調で辛い ◦ 対応案:生成AI使ってDDL読ませてそれに合うDSLを出力してもらうとか • どこまでランダムなデータにするかサジ加減に悩む ◦ 実際にあり得るデータとあり得そうなデータは違う ◦ テストデータの準備は通常の機能を通して作る必要があるのか
番外編:作った後の課題 ランダムなデータの扱いめっちゃ悩むやん! 🧐
プロパティベーステスト
プロパティベーステスト https://speakerdeck.com/twada/intro-to-property-based-testing
まとめ(個人的に生成AIを使って開発するときの良い点と注意点) 良い点 • アイデアを形にしやすい • コンセプトに注力できる • 動くものがすぐできるのでモチベーションが維持しやすい • 失敗してもコンセプトは他で活かせることもある
注意点 • 「理解した」ように見えるけど「作れない」があり得る ◦ プロンプトで先に期待値を確認した後コード出力させても異なる 結果になる場合がある。 ▪ 理解能力が高くても生成能力が伴わない場合がある