Column
現場から、ちょっとした話。QA・AI・ツール開発にまつわる気づきをゆるく。
ツールや取り組みの背景をまとめた読み物です。
「10MB以上」を作ったら11MBだった。アップロード制限の境界値テストを作り直した話
自作ツールの「以上/未満」は±10%で作っていて、境界に立てていなかった。10MBは何バイトか、ちょうど10MBは送ると超える話、画像のdpiやファイル名の数え方まで、境界値セットを作れるようにした。
合っているのに×が出ると、そこで手が止まる。漢字とローマ字の書き取り練習に自動判定を入れなかった話
かんじ修行とローマ字修行に、指やマウスで字を書く練習を足した。ただし書いた字は機械に採点させない。丸をつけるのは子ども自身にした理由。
10MBのPDFを、どこから持ってきますか。テスト用のダミーファイルを作る無料ツール
アップロード上限のテストで、ちょうどいいサイズのファイルが手元にない。誰かの請求書を使い回さずに済むよう、19形式・1KB〜10MBをその場で作れるツールを用意した。
その正規表現、本当にマッチしますか。日本向けパターン集つきの無料テスターを作った
検索で拾った正規表現を貼ると、プラス記号入りのメールが弾かれる。日本の入力でよく使うパターン集と、その場でマッチを確かめられるテスターをひとつにまとめた。
「ぱん」と書いた息子は、間違っていない。無料のカタカナ練習アプリを作った
つまずいているのは字の形ではなく、「どの言葉をカタカナで書くか」の判断だった。答え合わせのたびに理由を一文で出す、無料・登録不要のカタカナ練習アプリを作った話。
「右手」は読めるのに「左右」で止まる。小1・小2の漢字を4択で練習する無料アプリを作った
書き取りは20回やっているのに、テストで落とすのは読みだった。240字を「かんじ→よみ」「よみ→かんじ」の両方向で練習できる、無料・登録不要の漢字アプリを作った話。
ABCは言えるのに単語が読めない。犯人はローマ字だと気付いて無料のフォニックスアプリを作った
cake を「カケ」と読むのは、先に覚えたローマ字が邪魔をしているから。文字の名前ではなく音から練習する、無料・登録不要のフォニックスアプリを作った話。
「長い針が10だから10分」。アナログ時計が読めない子に、無料の時計アプリを作った
同じ文字盤の「10」が、長い針なら50分、短い針なら10時になる。読めないのは数字が読めないからではなかった。学校で習う順番のまま5段階で練習できる、登録不要・無料の時計アプリを作った話。
ローマ字が70年ぶりに変わった。学校で習うのが訓令式からヘボン式へ
2025年12月の内閣告示で、ローマ字の基本が si・ti・tu から shi・chi・tsu になった。小学校の指導も2026年度から切り替わっている。訓令式は間違いになったのか、家で気をつけることを親目線でまとめた。
さくらんぼ算って何?くり上がりでつまずく前に、親ができること
子どもに「さくらんぼ算がわからない」と言われて、親の私も戸惑った。10のまとまりを作るあのやり方の意味と、家での教え方、つまずきポイントを整理した。図を描く手間をなくす無料ツールも作った。
学級通信は「あとは文章にするだけ」が一番重い。メモからAIで自動作成する無料ツールを作った
「書きたいことはたくさんある。ただ、文章にする時間がなくて」。先生の一言から、箇条書きのメモをAIが学級通信に整えるツールを作った。減らしたいのは書く時間で、先生の言葉ではない。
漢字が読めないと、歌えない。ふりがなを自動でふる無料ツール「ルビメーカー」を作った
子どもが歌詞の漢字で止まる。手でふりがなを書く内職をなくしたくて、貼り付けるだけでAIがルビをふるツールを作った。やってもらうより、自分でやれるほうが、うれしそうだった。
スタートアップのQAって、何から始めたらいいんだろう
テスト設計書もなく、仕様書もSlackに散らばっていて、「テストよろしく」とだけ言われる現場。そこで最初にやるべきことを整理してみた。
テストパターン集をつくった
「結合テストってどう書くんですか」と聞かれるたびに、うまく答えられなかった。ネットを探しても、ログイン以外のパターンが出てこない。だから自分でまとめることにした。
「これ、バグですか?」って聞くの、しんどくないですか。
テスト中に1日何度も出くわす「これってバグ?」。聞く前の一手間をなくしたくて、スクショを貼るだけでバグ/仕様/不明を判定するツールを作りました。
AIにバグの状況を説明したら、再現手順まで書いてくれた話
スクリーンショット1枚とちょっとした説明を渡しただけで、起票できるレベルの内容が返ってきた。このツールを作ろうと思ったきっかけ。
テスト・リリース・バグ報告。QAの現場でよくある場面を、実務目線で。
バグだと思ったら仕様だった。でもその仕様は、どこにも書かれていなかった話
見積画面と請求画面で、合計が1円ずれる。「それ、仕様です」の根拠を聞くと「当時の議事録にあるはず」。仕様だと言うなら、その仕様はどこにあるのか。
AIに物理削除の反省文を書かせたら、反省するのは私のほうだった話
データを消し飛ばしたAIに始末書風の反省文を書かせたら、悔しいくらい整った文面が返ってきた。よく読むと、私の指示の穴だけが敬語で列挙されていた。
【検証実話】生成AIに「入力チェック」と頼んだら、フロントにしか実装されなかった話
画面のチェックは完璧だった。でもAPIへ直接リクエストを送ると、名前のないお客様が登録できた。「入力チェックして」は、どこで守るかまで言わないと伝わらない。
QAで一番怖い報告は「動きません」ではなく「直しました」だった話
「直しました」を確認してクローズした一週間後、触っていない欄で別の不具合が発覚した。原因は「似たようなコードなので共通化しました」という、報告されない変更だった。
郵便番号の0がぜんぶ消えていた。犯人はCSVではなくExcelだった話
取込は成功しているのに、郵便番号だけ桁が足りない。犯人は取込処理ではなく、担当者が一度Excelで開いて保存したことだった。データは、人の手を通る旅の途中で静かに壊れる。
【検証実話】生成AIに「削除」と頼んだら、物理削除で実装されていた話
画面上は正しく削除できている。でもDBを見ると、レコードそのものが消えていた。「削除」の一言に、どこまでの意味を込めていたか。
【検証実話】生成AIで実装したら「いいね!」で更新日時まで変わった話
「いいね!」を押しただけで記事の更新日時が変わり、一覧の並び順が崩れた。「データの更新」と「記事の更新」は同じではない。
金曜17時、「これ今日出しちゃっていいですか?」
週末前の駆け込みリリース。出したい気持ちはわかる。でも、誰が監視するのか、誰が戻すのかを決めないまま出すのは、ただの賭けだ。
「再現しません」で突き返されないバグ報告
せっかく見つけたバグが「再現しませんでした」で戻ってくる。原因の多くは、バグそのものより報告の書き方にある。
「仕様です」の一言で、片づけないために
「それ、仕様です」と言われて引き下がったバグが、リリース後にユーザーから同じ指摘で返ってくる。仕様とバグの境界線は、誰が引くのか。
QA・AI・現場にまつわる、自分なりの考えを書いていきます。
proj コマンド1つで Claude Code をプロジェクト別に起動する
WSL環境で proj と打つだけで、VS Code と Claude Code が同時に立ち上がる仕組みを作った。ポイントは Claude Code の環境変数を env -u でクリアすること。
生成AIで作ったテスト項目書は、なぜ現場を止めるのか
AIが作るテスト項目書は、見た目がきれいだ。でも、きれいな表であることと、抜けがないことは違う。仕様書の鮮度、補完された観点、実施できない確認——品質保証が難しい理由を書いた。
プログラマーになるな。検証できるエンジニアになれ。
「テストやって」と言われた瞬間は、悔しい。でも十年後はわからない。言語は変わっても、何を疑うべきかを見抜く力は残る。AI時代に強いのは、検証できるエンジニアだ。
AIをうまく使う方法は、丸投げだった。
AIが使えないのは能力じゃない。「丸投げ」を学ばなかった文化の話だ。完璧な指示をやめて、まず投げる。料理のレシピ相談を例に書きました。
AIは武器か、平均点製造機か。
頼めば記事を書く。頼めばコードを書く。でも、頼み方を知らない人間が使うと、きれいな凡作が出てくる。最適解は、平均値に近い。
Claude:A氏、Claude:B氏、Claude:C氏
Claudeには影武者がいることをご存知だろうか。朝投げた質問を夜再びすると、全く別の答えが返ってくることがある。そいつが影武者だ。
ボールのキャッチは下手でいい
「これ、誰かやってくれない?」全体に向けた言葉は、誰にも届かない。昔の自分は、手を挙げていた。——拾う神に、なり続けなくていい。
この話は、誰に語り継がれるのだろうか
さるかに合戦を知っているだろうか。カニがおにぎりを拾う。サルが柿の種と交換しようと言う。——昔話の構造は、何百年も変わっていない。