SuperAPI AI 工具集

database-testing

测试与质量

查看项目

更新于 10-14 05:34

技能介绍

用途

该技能面向数据库相关的质量保障工作,覆盖迁移测试、数据完整性测试、种子数据管理、查询性能测试以及基于 Docker 的测试数据库搭建,帮助在 CI 中稳定地验证数据库层。

主要能力

迁移测试:对空数据库运行全部迁移并依据 information_schema 断言表和列存在且类型、可空性、默认值正确;测试回滚路径;测试迁移过程中的数据保留;检测迁移漂移。

数据完整性测试:断言 NOT NULL、UNIQUE、FOREIGN KEY、CHECK、ON DELETE CASCADE 等约束拒绝非法数据;用反连接查询检查孤儿记录;审计意图约束与实际约束的差距;校验数据类型(金额精度、VARCHAR 长度、时区时间戳)。

种子数据管理:工厂模式生成确定性记录;Prisma upsert 脚本按 SEED_ENV 切换 test/staging/demo 配置;事务回滚实现测试隔离。

查询性能测试:EXPLAIN ANALYZE 计划断言(Node Type 匹配 /Index/、执行时间低于阈值);pg_indexes 索引校验;慢查询检测;MongoDB 使用 explain('executionStats') 验证索引使用。

Docker 测试数据库:优先使用 Testcontainers(@testcontainers/postgresql 11.14+);也支持 docker-compose.test.yml(postgres:18-alpine、tmpfs、pg_isready 健康检查、非默认端口),并在 package.json 中串联 test:db:* 脚本。

使用方式

先检查 .agents/qa-project-context.md,若存在则直接使用并跳过已解答的问题。随后按迁移测试、完整性测试、种子数据、性能测试的流程执行:前向迁移用 prisma migrate deploy 验证,回滚用各迁移目录下的 down.sql(Prisma 无 migrate down,prisma migrate resolve --rolled-back 不是回滚工具)或 TypeORM 的 undoLastMigration()、Sequelize 的 sequelize-cli db:migrate:undo。漂移检测用 prisma migrate diff --from-migrations … --to-schema-datamodel … --exit-code 接入 CI。

适用场景

适用于需要对数据库 schema 变更、数据约束、种子数据和查询性能进行自动化验证的项目,尤其是使用迁移工具管理 schema 且希望在 CI 中捕获回归的团队。

限制

迁移回滚测试依赖工具是否提供回滚机制;Prisma 和 Drizzle 无内置 down 生成器,需手写逆向 SQL。性能测试不属于本技能范围,连接池调优与并发负载测试由 performance-testing 覆盖;对抗性输入由 security-testing 覆盖;大规模合成数据与 PII 脱敏由 test-data-management 覆盖;固定测试基础设施由 test-environments 覆盖。具体价格、平台支持等暂未提供。