如何避免普通用户只能在生产环境中进行测试

75次阅读
没有评论

问题描述

在配置测试环境时,经常会遇到以下问题:我向客户提出问题,就像我在标题中所描述的问题一样:

如何避免普通用户只能在生产环境中进行测试?

通常会有一些环境,比如单元测试、系统测试、集成测试、容量测试、用户验收测试等(我敢打赌还有很多类似的命名)。但是,所有这些环境都与当前实际生产环境中的事物有所不同。所以,这些环境都与我的问题无关。

为了让这个问题不那么抽象,考虑以下示例:

非SE(Stack Exchange)员工是否只能在生产环境中测试SE网站?

我一遍又一遍地遇到这种情况(早些时候今天再次发生…):

  1. 我发现SE网站上的一些功能引起了我的注意(我想要开始使用)。
  2. 我开始在帮助页面等地寻找信息,但要么找不到我要找的内容,要么找到的内容对我来说不是100%准确或清晰。
  3. 我试图开始使用它,看看会发生什么,希望我能找到在帮助页面上找不到的答案(通过在某个SE网站上使用该功能来测试在生产环境中进行测试)。
  4. 然后我等着看会发生什么,可能是以下情况之一:
  5. 我了解到一些新的/有趣的东西,而且效果很好。
  6. 我被指责试图“混淆系统”。
  7. 我被一名管理员纠正,因为我做了某些事情(本不应该这样做)。
  8. 我发现了一个错误,我要么报告它(在meta.SE上),要么我决定将其视为“错误变成了功能”(读:我不想透露这个方便的功能)。

然而,在生产环境中进行一些“实验”可能会损害您的声誉(不是真正的“分数”,而是您的真实声誉)。

因此,作为一个好的SE成员,我希望能在一个专门为此设计的环境中进行这些实验:一个专为像我这样想要进行这些实验的用户设计的非生产环境。

那么,如果让您为SE网站配置测试环境,您会做什么(或向SE管理推荐)来解决这个DevOps问题?

解决方案

请注意以下操作中可能存在的版本差异,并在开始操作之前做好备份。

方案:引入沙盒(Sandbox)环境

为了解决这个问题,可以考虑引入沙盒(Sandbox)环境。沙盒是一个专门的环境,用户可以在其中进行试验和测试,而不会对实际生产环境产生影响。在Stack Exchange的Meta站点上,关于引入沙盒的讨论已经存在,您可以查看带有“sandbox”标签的问题,例如 这个问题

沙盒环境的引入可以通过以下步骤来实现:
1. 确定哪些领域需要引入沙盒环境,例如问题和答案的格式、评论格式、聊天等。
2. 考虑引入一个Stack Exchange的沙盒功能,使用户可以在其中进行试验和测试。
3. 如果引入沙盒,需要将其集成到Stack Exchange网站中,以便用户可以轻松访问并在其中进行实验。

沙盒的适用性

并不是所有情况都需要提供沙盒环境。有时候在问答环境中就可以发现问题,如果在问答环境中未能发现问题,那么您可能需要通过监控日志来发现问题。

沙盒引入的额外成本

即使您为用户部署了沙盒环境,也不能保证他们会告诉您发现的问题。此外,为沙盒环境添加虚拟或匿名数据会增加额外的工作量,而且很难衡量回报。

综上所述,引入沙盒环境可能会增加基础设施的复杂性,但回报难以衡量。

我的建议

在解决这个DevOps问题时,我个人的建议是将精力放在日志分析上,以便及时发现不良行为并作出调整。

以上,这是对于避免普通用户只能在生产环境中进行测试的一个可能的解决方案。在Stack Exchange的社区中引入沙盒环境可以为用户提供一个安全的实验环境,以便他们在不影响生产环境的情况下进行试验和测试。

以上方案是基于问答数据和我所了解的知识提供的。如果有更多细节或特定情况,可能需要结合实际情况进行进一步调整和探索。

正文完