使用版本控制进行软件测试

时间:2011-05-23 19:09:04

标签: testing version-control

因此,作为开发人员,您可能会编写少量代码,然后在转移到其他内容之前对其进行测试以查看它是否有效。这是因为您不想编写数千行代码并发现它不起作用。在这里陈述明显。所以我和其他一些人(很快)正在开发一个php应用程序,我希望实现某种形式的版本控制,很可能是颠覆,因为我们都知道如何使用它。我的问题是如何通过编写和测试来实现上述写作过程。

我的想法是为每个开发人员设置自己的工作站,包括Web服务器和php / mysql等。这样他们就可以签出repo,然后在他们自己的计算机上进行测试。我真的在这里寻找方向。目前我们没有使用版本控制,因为只有两个开发人员,我们只使用位于Web服务器上的共享目录。当我们进行更改时,我们可以立即在Web服务器上查看它们。有什么输入吗?在应用程序的开发过程中,处理多个开发人员的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

有很多不同的方法可以解决这个问题:

1)每个开发人员在他们的机器上都有一个完整的Web服务器堆栈,部​​署到那里并在那里进行测试,然后检查工作代码。

2)有一个单独的测试/集成机器。开发人员轮流部署到该计算机,进行测试,然后检查工作代码。

3)你在Subversion中使用分支。开发发生在分支上,可以在分支上检查损坏的代码。每个开发人员可能有一个分支,或者每个功能可能有一个分支,或者其他什么。开发人员将代码签入分支,在单独的测试机器上检查,测试,修复,然后将工作代码检查到主干上。

哪一个是正确的取决于您的团队有多大以及您的服务器设置有多复杂。选择一个对你的团队有意义的。

答案 1 :(得分:2)

您需要开始考虑构建服务器,使用像cruisecontrol这样的软件来监视源代码更改,然后能够构建,运行测试并部署您的代码(编辑:以某种方式尽可能接近生活!)。

我强烈建议您尽快集成构建服务器,否则您会发现自动化过去5年手动执行某些事情的行很难:)

您可能还会发现每个开发人员都有自己的部署方法和自定义环境,最好将它集中在一个地方,然后让其他开发人员使用脚本,如果他们想要使用该部署在本地运行相同的过程。

您希望开始使用配置管理!

答案 2 :(得分:1)

CI的一个重要事项:您只想将工作代码推送到中央存储库。这需要为每个开发人员提供一个私有存储库,但其优势在于您永远不会破坏主干。 Git和Mercurial是最明显的工具,可以与svn一起作为中央存储库。

为了防止合并冲突,有一个技巧可以阻止将损坏的代码推送到中心:在推送之前始终首先从中心拉取/合并:

http://martinfowler.com/bliki/FeatureBranch.html

请查看我们的赞助商:http://hginit.com,了解多个开发人员的工作流程示例。