Zennの「Test」のフィード
フィード

Web Audioで音源工房の土台を作る――生成・再生・検証を分けた初版
Zennの「Test」のフィード
小さな音作りの実験室から始める波形を重ねて、振幅・周波数・時間変化を調整できる「音源工房」の初版を用意しました。対象は単音の音作りです。3層のオシレーター、ADSR、フィルター、波形とスペクトル表示、プリセット保存、WAV書き出しを備えています。実装と自動テスト、ブラウザ操作による検証はAIエージェントのdotが行いました。この記事も、そのコードと検証記録を確認してまとめたものです。本人がコードを手書きした、音を聴いて評価した、という体験の記録ではありません。到達したのは、有限長の音声データを生成し、数値を検査して、明示操作で再生する土台です。実際のスピーカーからの音の聴取は未...
3時間前

「200日平均より上のときだけ持つ」を日経平均61年で測ったら、下げ相場の保険としては強く、上げ相場では半分になった
Zennの「Test」のフィード
日本株の売買ルールをいくつか検証していて、「市場が200日移動平均より上のときだけ買う」という条件をよく使っていました。下げ相場を避けるための、よくある地合いの条件です。ただ、この条件が実際にどれくらい損を避けてくれるのかは、一度も測っていませんでした。手元の5年分のデータには長い下げ相場が入っていないので、そもそも測れていなかったのです。そこで、日経平均の61年分(1965〜2026年)で測りました。パラメータは200日の1通りだけで、探索はしていません。 最初に使ったデータが壊れていた最初は、TOPIX連動のETF(1306)の上場来データをYahoo Financeから...
9時間前

AI生成コードの「18ヶ月後」問題 — 開発速度6倍の裏側で何が起きるか「開発者3名・6か月」を、単独・3か月で終わらせた
Zennの「Test」のフィード
昨年、あるエンタープライズシステムの立ち上げを担当しました。Web(Svelte 5)、macOS、iOS、Android、Windows の5環境に対応する業務システムを、ゼロから本番稼働まで。当初の見積もりは「開発者3名・6か月」でした。結果として、私は単独・約3か月でリリースしました。想定工数の削減率は75%以上です。Claude Codeを中心としたAIオーケストレーションを使いました。数字だけを見れば、いわゆる「AIで開発速度が6倍になった」事例ということになります。ただ、この手の話には決まって続きがありません。リリースから18ヶ月後、そのコードベースはどうなっているのか...
12時間前

AI に「テストを書いて」と言うと、絶対に落ちないテストが増える
Zennの「Test」のフィード
カバレッジが 40% から 85% になりました。テストは 300 本を超えました。そのあと出た障害は、1つもテストで止まりませんでした。書かれていたのは、だいたいこういうテストです。test("注文を作成する", async () => { const repo = { save: vi.fn().mockResolvedValue({ id: 1 }) }; const mailer = { send: vi.fn() }; const service = new OrderService(repo, mailer); await service.cre...
1日前

今のコーディングエージェントに OMA のワークフローを加える
Zennの「Test」のフィード
私がメンテナンスする OMA は、Claude Code、Codex CLI、Cursor などの対応環境で、今のエージェントに専門分野ごとのスキルとマルチエージェントのワークフロー、設定した完了チェックを追加します。Lauren Tan の公式ワークショップの公開章立てでは、検証スキル、スキル評価、厳格な CI 制約が扱われています。公開されている pstack の検証原則は、実際の結果を直接確認し、可能なら再実行できるチェックとその出力を残すよう求めています。エージェントが変更内容を説明できても、それだけではテストの結果は分かりません。確認用のコマンドを終了条件にすると、完了の判断...
1日前

sqflite のマイグレーションを、古いスキーマの DB を実際に作ってテストする
Zennの「Test」のフィード
蔵書管理アプリ「本棚(hondana)」は、データを端末内の SQLite に保存しています。サーバーもアカウントも持たない作りなので、ユーザーの蔵書はその端末の DB にしかありません。あとから「本棚を複数持てる」機能を足すことになり、テーブル構成を変えました。アプリを更新した人の DB では、それまで登録した本がそのまま残っていなければいけません。そこで、古い構成の DB を実際に作り、新しいコードで開いて中身を確かめるテストを書きました。この記事はそのテストの書き方と、テストを書いたあとで見つけたスキーマのずれ、その直し方の話です。 何を変えたか変更前(バージョン1)は ...
2日前

AIに作らせたiPhoneアプリを受け入れテスト8項目で判定したら、基準の外が抜けていた
Zennの「Test」のフィード
この記事で分かることAI に iPhone アプリを作らせるとき、合否の基準を仕様書に数字で書いておき、判定は自分でする進め方開発用の環境(Expo Go)で合格したあと、配布版で何を確かめ直したか受け入れテストに全部合格したのに、基準に書かなかった仕様が抜けていた話 前提作ったのは「会議コストタイマー」という iPhone アプリです。人数・時給・予算を入れて開始すると、会議の累計コストが1秒ごとに増えていき、予算の 50%・80%・100% に達したところで段階的に知らせます。2026年9月に App Store で公開しました。開発機は Windows で、...
2日前

本のタイトルから巻数を取り出す正規表現を、表記ゆれのテストで固める
Zennの「Test」のフィード
蔵書管理アプリ「本棚(hondana)」では、漫画のシリーズごとに「持っていない巻」を表示しています。1巻から手持ちの最大の巻までを並べ、欠けている番号を拾うだけの処理です。List<int> missingVolumes(String seriesName) { final volumes = (_currentShelfBooks .where((b) => b.seriesName == seriesName && b.volume != null) .map((b) => b.volume!)...
3日前

テストが全部通るのに、本物のデータを1件も読めなかった
Zennの「Test」のフィード
GitHub の Issue を読んで、対象範囲が重なっている組を報告するツールを作りました。テストは fixtures を8本用意して、全部通っていました。ルールは6つあって、全部が期待どおりに出ます。本物のリポジトリに掛けたら、Issue を1件も読めていませんでした。 何が起きたか出力はこうでした。11件すべてが同じ指摘です。error #21 対象範囲の節はありますが、パスが1つも書かれていません。error #19 対象範囲の節はありますが、パスが1つも書かれていません。error #16 対象範囲の節はありますが、パスが1つも書かれていません。......
3日前

AIレビュー8往復を通ったNGワード検知が、「ツイッター」を一度も検出していなかった — 正規化とパターンのズレ
Zennの「Test」のフィード
入力フィルターを、別の AI(Codex)が8往復レビューしていた。それでも、フィルターは「ツイッター」と「ディスコード」を、サービス開始から一度もブロックしていなかった。逆に、予算の話「ボーダーライン 3000」は誤ってブロックされていた。この2語を使うテストが、1件も無かったからだ。CocoDate(AIデートプランナー)の判断ログ D-63(2026-08-25)に残っている事故で、原因は文字の正規化とパターンの書き方のズレだった。短いコードで再現できるので、手元で動かして確かめられる形で書く。 何が起きたかCocoDate には、ユーザーが入力した文章から、SNS の連絡...
3日前

画像処理パイプラインのリグレッションテストを、サンプル画像セットで作る
Zennの「Test」のフィード
OCRや画像認識のパイプラインは、前処理のしきい値を1つ変えただけで、別の画像の結果が静かに変わります。コードのテストは通っているのに、読み取り結果だけが少し悪くなる。この記事は、それを検出するためのリグレッションテストを、小さなサンプル画像セットで組む方法の記録です。扱うのは3つです。サンプル画像セットの作り方、期待値の固定のしかた、そして閾値付きの比較です。コードはこの記事のために新しく書いたもので、実際の案件のコードではありません。手元で実行した結果をそのまま載せています。環境: Python 3.14.6、Pillow 12.3.0、標準ライブラリの unittest。mac...
4日前

LLMの答えを機械で検算する — 「間違って書くより、書かない」を3か所で実装した話
Zennの「Test」のフィード
TOEIC学習アプリに、Claude の Vision と構文解析を3つ入れた。解説ページの写真から、正解(A/B/C/D)を自動で入れる巻末スクリプトの写真から、英文を取り込む一文をSVOCに割って、第何文型か出すどれも「写真やテキストを投げたら、それらしい答えが返ってくる」ところまでは、プロンプトを書けば30分で動く。問題はそのあとだった。この3つには共通の性質がある。答えが間違っていても、画面上は正常に見える。正解が1問ズレていても、画面には「A」と出るだけ。解いて不正解になって初めて気づく英文に和訳が混ざっていても、英文らしきものは表示されるSVOCの区切...
4日前

祝日計算のテストは「内閣府 CSV の全 1,067 行と一致すること」の 1 本でいい
Zennの「Test」のフィード
株式会社FUNBREW 代表の金井です。事務作業の小さな道具をまとめた無料サイト jimuya(じむや) を自分で作っています。事務の仕事では、「この日から 5 営業日後はいつか」「令和 8 年は西暦何年か」「振込名義の半角カナはどう書くか」といったルールを、何度も検索して確かめます。ところが検索の上位には広告の多い古いサイトが並び、ルールごとに別のサイトを渡り歩くことになります。そこで、こうしたルールを広告なし・登録なしで一か所にまとめたのが jimuya です。同じ計算は API(https://jimuya.jp/api/v1)でも呼べます。この記事は、その中の祝日の計...
4日前

LLMのJSON抽出を回帰確認する:未回答と数量誤りを見落とさない採点手順
Zennの「Test」のフィード
注文文からJSONを抽出する処理を変えたとき、JSONとして読めるかだけを確認しても、数量の取り違えは見つかりません。また、回答が返ってきたケースだけを集計すると、未回答が成績から消えてしまいます。この記事では、公開済みの合成データ6件を使い、入力と正解の分離、採点器の検算、未回答と確認解除の読み方を説明します。特定のモデルの性能比較や、実顧客への導入実績を示すものではありません。教材は GitHubの無料6ケース にあります。この記事の対象は japanese-order-eval-sample-v1.1-windows-fix.zip です。展開すると japanese-orde...
4日前

技術で品質とスピードを両立させるQAリードです
Zennの「Test」のフィード
はじめにはじめまして、カウシェのテクノロジー部でQAチームのリーダーをしている亀井です。2026年10月から正社員になりました。前職はマネーフォワードです。ISTQB Advanced Level(Test Management)を持っていて、ISTQB Expert Levelシラバスの日本語翻訳も担当しています。カウシェの開発チームは、開発者1人あたり1日約15PRのペースでコードを出すことを目指しています。Zennでは、この開発スピードにQAがどう追いつくか、AIと自動化を前提にした実践記録を書いていきます。この記事はその1本目として、私が何者で、何を考えてQAをやってい...
4日前

日本株Botの改善案を1日で197通り試して、全部ダメだった記録
Zennの「Test」のフィード
暗号資産の自動売買Botとは別に、日本株のデイトレードBotも作っています。こちらは実弾ゼロのドライラン(仮想売買)だけです。その日本株Botは、ルールを作るときに見ていた12日では+171,900円、見ていなかった16日では-4,300円でした。そこで改善案を思いつく限り試すことにしました。1日で197通りです。結論を先に書くと、**197通りすべてが、事前に決めた基準を通りませんでした。**この記事はそのダメだった記録と、たくさん試すときに自分をだまさないためにやったことのまとめです。 元の戦略朝、直近5分の上昇率1位の銘柄を選ぶ走り高値(その日の最高値)から3ティッ...
4日前

FX Botの検証は年+8.6%、本番の再現は+0.6%だった ― 決済を「いつ判定するか」だけで成績が消えた
Zennの「Test」のフィード
暗号資産の自動売買Botとは別に、FX(外国為替)のBotも作っています。こちらは実弾ゼロのdry_run(仮想売買)だけで、レバレッジは1倍に固定しています。このFX Bot、dry_runの成績があまりにひどいので、原因を調べ直しました。結果、検証が本番と4点ずれていて、本番の動きを再現し直すと戦略の成績がほぼ消えました。 最終的にこのBotは凍結しています。途中で僕は2回、間違った結論を出しかけています。それも含めて記録します。 Botの中身戦略は単純です。毎朝9時に、円建て7ペア(USD/JPY、EUR/JPYなど)のうち「3日前より0.5%以上下がった」ものを買...
4日前

AI駆動テストを身勝手に定義してみた Opus 5.5で /pr-videoコマンドを作ってみた
Zennの「Test」のフィード
はじめにPR に動作確認の動画を付けると、レビュアーは手元で動かさなくても挙動を確かめられます。一方で、録画する側の手間は大きくなりがちです。確認項目を洗い出し、画面を操作しながら録画し、ファイルサイズを GitHub の添付上限に収め、どの動画が何の確認かを PR に書く必要があります。この記事では、この一連の作業を Claude Code のスキル(カスタムスラッシュコマンド)にまとめた方法を紹介します。/pr-video 123 と打つと、Claude Code が次の流れを進めます。人がやるのは、確認項目と費用の承認、最初のログイン、最後の動画の添付です。PR の説明・...
4日前

ローカル LLM とクラウド AI に同じアプリを作らせた — AI はどこで間違えるか(第 1 回)
Zennの「Test」のフィード
知りたかったのは、AI がどこで間違え、どこで人の目が要るか機密を扱う仕事で AI を使うなら、できるだけ手元のローカル LLM で済ませたい。では、どこまでならローカル LLM に任せられるのか。この記事は、その境界線を探すための実験の記録で、2 回に分けて書きます。第 1 回(この記事):AI が書いたアプリの欠陥は、どこで間違い、どの工程で捕まり、どの工程では捕まらなかったか第 2 回:どうすれば防げるか。要件に書けば防げたこと、書いても防げないこと、人と AI の分担同じ要件定義書を、ローカル LLM とクラウド AI にそれぞれ渡してアプリを実装させ、両方...
5日前

Bend 2 で JSON API を作って、証明できる範囲を確かめた
Zennの「Test」のフィード
こんにちは。日本トレカセンターのプロダクト部で EM をやっている中川です。この記事では、プログラミング言語 Bend で小さな JSON API を作り、「コードの性質を証明する」とはどういうことかを試します。結論からいうと、面白かったのは「サーバー全体が安全になった」ことではありません。どの入力について、どの処理の性質を保証したのかを、コードとして書き分けられたことです。その過程で、証明と統合テストの使い分けも具体的になりました。まずは、Bend 2 で何が変わったのかと、言語の特徴から紹介します。 Bend と Bend 2Bend は、2024 年に Higher...
5日前