问题历史
测试环境是在IT产品复杂化的过程中出现的。分配单独的环境使测试人员能够安全地测试新功能,而不会影响真实用户和数据。
问题
如果在生产环境中进行测试,可能会导致数据丢失、业务流程中断或安全事件。有时测试环境和生产环境不同,这会导致"难以捉摸"的错误——在测试中变更有效,但在生产中失败(反之亦然)。
解决方案
组织单独的测试环境(测试、预发布、预生产),尽可能复制生产环境。对于手动测试,API、数据、配置甚至"硬件"之间的实际匹配非常重要。特别关注用户数据的隔离、日志记录、监控和控制数据的设置。
关键特点:
如果测试是无害的,可以使用生产环境进行测试吗?
不,总是存在破坏用户工作或"曝光"测试数据的风险。即使是"无害"的测试也可能影响统计数据或产生负载。
测试、预发布和预生产环境之间有什么区别?
测试——主要用于手动和自动化测试的环境,数据可能有所不同。预发布/预生产——尽可能类似于生产,复制基础设施和数据以进行最终测试。
在测试环境中最好使用什么数据:真实数据、匿名数据还是合成数据?
最佳选择是结构上接近真实的匿名数据。真实数据会破坏安全性,仅使用合成数据无法反映真实行为。
在生产环境中测试缺陷修复,修复后的缺陷只在测试环境中解决,导致生产中出现新错误:客户大规模投诉。
优点:
缺点:
团队在单独的预发布环境中手动检查功能,测试数据定期更新,测试尽可能接近现实。
优点:
缺点: