testing-database
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDatabase 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
undefinedbash
undefinedDatabase 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
undefinednpm run test:database:setup # Create test databases
npm run test:database:teardown # Clean up test data
npm run test:database:fixtures # Load test fixtures
undefinedOutput 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 productionDatabase 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 productionNotes
注意事项
- 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 开展数据库基础设施测试
- 文档化数据库测试策略与覆盖范围