我正在寻找其中一个的共识
测试版;向有限的受众发布半功能软件,并让用户指导该过程,直到应用程序完成。
没有测试版;根据之前的用户反馈和/或业务逻辑定义所有功能,构建软件,并在您给自己(或给定)的任何时间对其进行测试。
我正在寻找其中一个的共识
测试版;向有限的受众发布半功能软件,并让用户指导该过程,直到应用程序完成。
没有测试版;根据之前的用户反馈和/或业务逻辑定义所有功能,构建软件,并在您给自己(或给定)的任何时间对其进行测试。
嗯...Beta 适用于您认为已经完成的产品...直到您让 Beta 用户使用它并且他们以您没有想到的方式破坏它。
所以,是的,使用 Beta 版,除非您想在许多用户上刻录您的产品。
我不同意你的两种情况。
内部QA怎么样?他们也会发现错误,你知道的。仅当您没有已知的严重错误时才向客户发布测试版。
此外,始终进行充分测试。如果时间紧迫,而您还没有完成所有测试,那就太难了。完成测试,不管你有没有时间。
我的回答是,有很多因素会决定哪个更有意义:
1)错误的后果 - 如果错误会导致人们死亡,那么我认为测试版将是一个坏主意。你能想象在核反应堆或导弹系统上运行测试版软件吗?另一方面,如果后果相当轻微,例如某些梦幻体育网站暂时中断,那么在测试版中发布可能还不错。
2)用户的期望。想想应用程序的用户以及他们对使用“测试版”的感觉如何?如果这会让他们害怕实际使用该软件并担心它会定期对他们造成攻击并充满错误,那也可能会起作用。
3) 应用程序的大小。如果你要构建一个非常大的东西,比如一个 ERP 来处理 101 个国家的法律要求并包含数百个附加模块,那么测试版可能比试图完成所有工作却永远无法到达你拥有的地方更合理顾客。
4) 部署。如果您正在设置代码在您自己的机器上运行并且可以轻松升级和修补的东西,那么测试版可能比试图在一开始就完成所有事情要好。
5) 开发方法。如果您采用瀑布方法,那么没有任何 beta 版本可能是更好的选择,而在敏捷场景中,beta 版本更有意义。后者的原因是,在敏捷案例中,随着时间的推移,会有多个版本会改进产品。
我要记住几件事,因为在某些情况下我很容易想象使用测试版,而在其他情况下我会尽可能避免使用测试版。
毫无疑问是测试版!
运行测试期的一些好处...
快速启动并经常迭代。
在不知道应用程序是什么以及它的受众将是什么的情况下,我认为这将是一个艰难的选择。但是,如果它是一个开源项目,似乎共识通常是“尽早发布并经常发布”。
真正的问题是:你知道你的用户究竟是什么吗?
如果您回答是,那么设计和构建所有内容并在没有 Beta 的情况下启动它。
如果您回答“否”,那么 Beta 是您的最佳选择——您的用户将帮助定义您的软件,他们将更多地感受到流程的一部分并拥有一定的所有权。
我说贝塔。但我不同意你的前提。你永远不应该发布半成品软件。作为 Beta 版发布的软件至少应该是功能完整的。这样,您的用户就知道他们正在进入什么领域。
至于发现错误。内部测试是最好的。但是,任何发布过软件的人都知道,无论用户做什么,都会找到一种新的有趣的方法来破解它。
所以 Beta 直到你心满意足。
我建议首先对功能不完整的选定组进行 alpha 测试,以便他们可以帮助您找到错误并确定需要哪些功能。
一旦你完成了被认为是完整的功能,然后将它发布给一个更大的小组,主要是为了发现错误,并获得对功能更改的评论,但你可能不会进行功能更改,除非有一些关键的事情。
此时您已准备好发布,您可以返回步骤 (1) 进行下一个发布。
在完成(您认为)您的软件并相信没有严重的错误之后,进行 alpha 测试。使软件在贵公司的测试人员中可用,修复报告的错误。
接下来,将软件发布给客户作为 beta 测试、收集评论、修复错误和改进功能。
只有这样你才能准备好发布。
两者都不。
在您认为产品没有错误之前,您不应该发布测试版。届时,测试版用户会发现错误。他们会的,相信我。至于让测试版用户“指导设计”,这可能不是一个好主意——你最终会得到看起来像 Homer Simpson 设计的汽车的软件。测试版用户不是软件设计师是有原因的。
至于第二个选项 - 除非您是出色的测试人员,否则您将无法像最终用户一样测试它(他们会对您的软件做最愚蠢的事情)。如果你“用你给自己(或被给定)的任何时间来测试它”,你将没有足够的时间。