testing-database

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Database Testing

数据库测试

Test database interactions, schemas, data integrity, and performance, coordinating with integration and data layer testing.
测试数据库交互、Schema、数据完整性和性能,配合集成测试与数据层测试开展工作。

When to use me

什么时候使用本技能

Use this skill when:
  • Developing applications with database dependencies
  • Testing data persistence and retrieval
  • Validating database schema migrations
  • Ensuring data integrity and consistency
  • Testing database performance and optimization
  • Verifying transaction handling and rollbacks
  • Testing backup and recovery procedures
当出现以下场景时可使用该技能:
  • 开发带有数据库依赖的应用程序
  • 测试数据持久化与检索能力
  • 验证数据库 Schema 迁移逻辑
  • 确保数据完整性与一致性
  • 测试数据库性能与优化效果
  • 验证事务处理与回滚机制
  • 测试备份与恢复流程

What I do

我的功能

  • Schema and migration testing:
    • Test database schema changes
    • Validate migration scripts
    • Check backward compatibility
    • Test rollback procedures
  • Data integrity testing:
    • Verify CRUD operations work correctly
    • Test transaction atomicity (ACID properties)
    • Check referential integrity and constraints
    • Validate data types and conversions
  • Performance testing:
    • Query optimization and indexing
    • Connection pooling and resource management
    • Load testing with concurrent database access
    • Long-running transaction testing
  • Integration coordination:
    • Coordinate with integration testing for data layer
    • Support unit testing with test database setup
    • Enable end-to-end testing with realistic data
    • Complement API testing with database validation
  • Schema 与迁移测试
    • 测试数据库 Schema 变更
    • 验证迁移脚本正确性
    • 检查向后兼容性
    • 测试回滚流程
  • 数据完整性测试
    • 验证 CRUD 操作正常运行
    • 测试事务原子性(ACID 属性)
    • 检查参照完整性与约束
    • 验证数据类型与转换逻辑
  • 性能测试
    • 查询优化与索引验证
    • 连接池与资源管理测试
    • 并发数据库访问下的负载测试
    • 长事务测试
  • 集成协同
    • 配合数据层的集成测试开展工作
    • 支持单元测试的测试数据库搭建
    • 为端到端测试提供真实数据支撑
    • 结合数据库验证补充 API 测试

Examples

示例

bash
undefined
bash
undefined

Database schema testing

Database schema testing

npm run test:database:schema # Schema validation npm run test:database:migrations # Migration testing npm run test:database:rollback # Rollback procedure testing
npm run test:database:schema # Schema validation npm run test:database:migrations # Migration testing npm run test:database:rollback # Rollback procedure testing

Data integrity testing

Data integrity testing

npm run test:database:crud # CRUD operation testing npm run test:database:transactions # Transaction testing npm run test:database:constraints # Constraint validation
npm run test:database:crud # CRUD operation testing npm run test:database:transactions # Transaction testing npm run test:database:constraints # Constraint validation

Performance testing

Performance testing

npm run test:database:performance # Query performance npm run test:database:load # Concurrent load testing npm run test:database:indexing # Index optimization testing
npm run test:database:performance # Query performance npm run test:database:load # Concurrent load testing npm run test:database:indexing # Index optimization testing

Integration with other tests

Integration with other tests

npm run test:integration -- --database # Integration tests with database npm run test:e2e -- --data-persistence # E2E with data validation
npm run test:integration -- --database # Integration tests with database npm run test:e2e -- --data-persistence # E2E with data validation

Test database setup

Test database setup

npm run test:database:setup # Create test databases npm run test:database:teardown # Clean up test data npm run test:database:fixtures # Load test fixtures
undefined
npm run test:database:setup # Create test databases npm run test:database:teardown # Clean up test data npm run test:database:fixtures # Load test fixtures
undefined

Output format

输出格式

Database Test Results:
──────────────────────────────
Database System: PostgreSQL 15
Test Environment: Isolated test database

Schema Testing:
  ✅ Current schema matches ORM definitions
  ✅ Migration scripts apply correctly
  ✅ Rollback scripts revert successfully
  ✅ Indexes created as expected

Data Integrity:
  ✅ CRUD operations: 100% success
  ✅ Transactions: ACID properties verified
  ✅ Constraints: Foreign keys, unique, check constraints enforced
  ✅ Data types: Proper type handling and conversion

Performance Testing:
  ✅ Query Optimization: 45/50 queries optimized
    ⚠️ 5 complex queries need indexing review
  ✅ Connection Pooling: 100 concurrent connections handled
  ✅ Load Testing: 1000 transactions/minute sustained
  ✅ Response Times: 95% < 100ms

Integration with Other Tests:
  - Unit tests: Use in-memory database or mocks
  - Integration tests: Use test database with transactions
  - API tests: Validate database interactions through API
  - E2E tests: Full data flow from UI to database
  - Performance tests: Include database performance metrics

Security Testing Integration:
  ✅ SQL injection prevention verified
  ✅ Access controls enforced at database level
  ✅ Sensitive data encryption tested
  ✅ Audit logging of database operations

Data Migration Testing:
  ✅ Migration from v1 to v2 successful
  ✅ Data loss: 0 records
  ✅ Downtime: 15 minutes (within SLA)
  ✅ Rollback tested and verified

Recommendation:
  - Review 5 complex queries for indexing opportunities
  - Implement connection health checks
  - Add more comprehensive backup/restore testing
  - Monitor database performance in production
Database Test Results:
──────────────────────────────
Database System: PostgreSQL 15
Test Environment: Isolated test database

Schema Testing:
  ✅ Current schema matches ORM definitions
  ✅ Migration scripts apply correctly
  ✅ Rollback scripts revert successfully
  ✅ Indexes created as expected

Data Integrity:
  ✅ CRUD operations: 100% success
  ✅ Transactions: ACID properties verified
  ✅ Constraints: Foreign keys, unique, check constraints enforced
  ✅ Data types: Proper type handling and conversion

Performance Testing:
  ✅ Query Optimization: 45/50 queries optimized
    ⚠️ 5 complex queries need indexing review
  ✅ Connection Pooling: 100 concurrent connections handled
  ✅ Load Testing: 1000 transactions/minute sustained
  ✅ Response Times: 95% < 100ms

Integration with Other Tests:
  - Unit tests: Use in-memory database or mocks
  - Integration tests: Use test database with transactions
  - API tests: Validate database interactions through API
  - E2E tests: Full data flow from UI to database
  - Performance tests: Include database performance metrics

Security Testing Integration:
  ✅ SQL injection prevention verified
  ✅ Access controls enforced at database level
  ✅ Sensitive data encryption tested
  ✅ Audit logging of database operations

Data Migration Testing:
  ✅ Migration from v1 to v2 successful
  ✅ Data loss: 0 records
  ✅ Downtime: 15 minutes (within SLA)
  ✅ Rollback tested and verified

Recommendation:
  - Review 5 complex queries for indexing opportunities
  - Implement connection health checks
  - Add more comprehensive backup/restore testing
  - Monitor database performance in production

Notes

注意事项

  • Use test databases separate from development/production
  • Implement database transaction wrapping for test isolation
  • Consider using database containers for consistent testing
  • Test with realistic data volumes, not just small samples
  • Include database performance in application performance testing
  • Test backup and restore procedures regularly
  • Consider database-specific features (triggers, stored procedures)
  • Coordinate with DevOps for database infrastructure testing
  • Document database testing strategy and coverage
  • 使用与开发/生产环境隔离的测试数据库
  • 为测试隔离实现数据库事务包装
  • 考虑使用数据库容器实现测试环境一致性
  • 使用真实数据量测试,不要仅使用小样本数据
  • 将数据库性能纳入应用性能测试范畴
  • 定期测试备份与恢复流程
  • 考虑数据库特有功能(触发器、存储过程)的测试
  • 配合 DevOps 开展数据库基础设施测试
  • 文档化数据库测试策略与覆盖范围