Claude CodeやCursorを使えば、動くものはすぐ作れる時代になりました。
でも──「これ、納品して大丈夫」と、自信を持って言えていますか?
作るスピードは爆上がりしたのに、QA(品質チェック)だけが置いてけぼり。
フリーランスや少人数開発だと"あるある"だと思います。
こんな状態になってないか
- 専任のQA担当なんていない
- かといって、全機能を毎回手でテストする時間もない
- 結果「動いてるっぽいから納品」→ 本番でバグ → 信頼が一気に崩れる
解決策:全部テストしない。「Tier仕分け」する
コツは1つ。変更を"重さ"で仕分けるだけです。
| 変更の種類 | Tier | やること |
|---|---|---|
| 文言・コピー・軽微なCSS | Tier1 | 目視のみ。即反映 |
| 表示ロジック・条件分岐・CTA | Tier2 | 該当箇所の動作確認+差分テスト |
| 計算・課金・データ処理・認証・新機能 | Tier3 | 境界値・異常系までフルテスト必須 |
迷ったら 1段上のTier で扱う。これだけ。
実例
実際に運用している通信費の試算ツールでは、
- 料金計算ロジック=Tier3として自動テスト55本
- CTAの表示切替=Tier2として目視+差分確認
- 文言修正=Tier1として即反映
…と仕分けています(※1プロジェクトでの実運用例です)。
全部を同じ重さで見ないから、「本当に大事な所だけ手厚く」が回り続けます。
使っているテンプレを置いておきます(無料)
① Tier判定チェックシート
□ 文言/コピー/軽微CSS → T1 → 目視のみ・即push
□ 表示条件/分岐/CTA/UI状態 → T2 → 該当動作確認+差分テスト・push前レビュー
□ 計算/課金/データ/認証/新機能 → T3 → 境界値・異常系フルテスト・必須レビュー
※迷ったら1段上のTierで扱う/push(本番反映)は必ず最終確認を挟む
② テスト観点テンプレ
機能名:______ Tier:___
- 正常系:想定どおり動くか
- 境界値:最小 / 最大 / 0 / 上限+1
- 同値分割:有効クラス / 無効クラス
- 状態遷移:初期 →(操作)→ 期待state
- 異常系:不正入力 / 空 / 想定外の値
実施結果:✅/❌ 再現手順:______
③ Jest+RTL 最小スキャフォールド
// jest.config.ts(Next.js想定)
import nextJest from 'next/jest.js'
const createJestConfig = nextJest({ dir: './' })
export default createJestConfig({
testEnvironment: 'jest-environment-jsdom',
setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
})
// jest.setup.ts
import '@testing-library/jest-dom'
// __tests__/sample.test.ts(Tier3ロジックの雛形)
import { calc } from '@/lib/calc'
describe('calc(境界値)', () => {
it('最小値', () => expect(calc(0)).toBe(0))
it('上限+1で除外', () => expect(calc(101)).toBeNull())
})
AI時代のQAは「全部やる」じゃなく「仕分ける」。
記入例つきの完全版テンプレと更新通知はこちら(1問だけ、今どんな開発をしているか教えてください)
👉 https://docs.google.com/forms/d/e/1FAIpQLSdTe__PL-F0XMwgb6JqRhoK0KkYkLRYJBxODB2CiWd20YVIAg/viewform
役に立ったら感想を聞かせてください。反応があれば、この仕分けを半自動化するツールも考えています。