【问题标题】:Beta testing new website features with live data and real customers使用实时数据和真实客户对新网站功能进行 Beta 测试
【发布时间】:2012-12-08 01:46:15
【问题描述】:

这个问题的主要目标是确定在实时网站旁边部署稍微修改的网站版本的缺陷。

这个二级网站会从与现场相同的数据库中提取,但会为 beta 测试人员修改功能。

最终目标是允许某些客户使用他们的数据测试我们的新功能。

所以:

  1. 他们不必重复访问网站的复制版本。
  2. 他们使用熟悉的数据集

另一种可能性是为每个用户帐户设置一个标志以允许他们查看某些功能,但这需要大量额外的工作。此外,一旦它准备好发布,我们将不得不删除所有额外的检查。

我很难看出这样做的缺点,但我知道肯定有一些人在盯着我看。感谢您提供任何帮助。

Git 版本控制、Capistrano 部署工作流程、Cakephp 框架、MySql 我们目前拥有独立于生产服务器的本地和测试服务器。

编辑 2012 年 12 月 20 日上午 10:30 EST

根据一些 cmets 和一个答案,我有一个基于反馈的更新。

  1. 在“beta”/用户反馈测试之前应进行细致的内部测试。 (我们已经这样做了)
  2. 如果我们采取这些预防措施并且代码库看起来很可靠,那么与生产服务器一起部署的风险是可以控制的。我们在这里是在一个框架内工作,因此大量删除和坏 sql 的可能性相对较低。

话虽如此,我宁愿采用这种方法,因为它仍然存在固有风险。是否有人以其他方式对实时服务器数据进行 beta 测试?

【问题讨论】:

  • 如果还是 beta 代码,有可能由于代码未完全测试而导致数据丢失。为此,在同一个数据库上可能是一个问题。
  • Beta 代码绝对不能在生产数据库上运行。它可能工作正常,但它可能会使您的数据库陷入混乱,一旦您的客户决定他们不喜欢/不需要这些功能,您就无法返回。话虽如此,如果您修改的主要是 UI,并且底层功能相同,我想您甚至可以将其完成。
  • 如果您希望您的 beta 测试人员在实时数据库中进行更新,您可以考虑一些数据复制,但恕我直言,这不是一个好主意。
  • 像谷歌这样允许 Beta 测试人员使用新界面的网站呢?我记得当新的分析发布时,我可以很容易地在两者之间切换。他们必须有一些数据库差异......知道他们是如何做到的吗?
  • 您应该仍然有一个开发、演示/测试和实时服务器。即使是谷歌实验室的功能在启用之前也会经过严格的内部测试。话虽如此,您仍然可以拥有一个与同一数据库交互的 beta 接口,但前提是它已经通过了其他测试周期。

标签: php git cakephp testing beta


【解决方案1】:

这取决于...

如果这是一个获得客户反馈的测试版,那么对于经过全面测试且已知稳定的产品,风险是相对可控的(尽管请参阅以下几点)。这就是谷歌定义“测试版”的方式。

如果“测试版”意味着代码完整,并且经过某种程度的测试,但谁知道其中存在什么错误,那么您就有可能破坏您的实时数据库。无论您的备份策略多么巧妙,如果出现问题,最好的情况是测试版用户面临数据丢失或损坏;最坏的情况是您的所有用户都丢失了数据(我已经看到删除或更新语句中损坏的“where”子句会造成各种有趣的损害)。

另一个需要考虑的问题是数据库是否在版本之间向后和向前兼容 - 如果您的 beta 用户不喜欢升级,或者出现问题,您可以将他们迁移回主流版本吗?当然,如果“beta”意味着“未经测试”,这将是一个更大的交易。

一般来说,处理单向兼容性要容易得多 - 允许用户升级,但不能降级 - 另一个强有力的论据,“测试版”意味着“用户反馈”......

【讨论】:

  • 这更符合我们正在努力实现的目标。我们进行自己的内部测试,并且可以验证一切都在我们的测试环境中运行,但我们需要真实的用户给我们他们的想法。
猜你喜欢
  • 2014-03-13
  • 1970-01-01
  • 1970-01-01
  • 2015-12-25
  • 2017-09-03
  • 2015-03-05
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多