4

我很新C.I.但我最近继承了一个项目,在这个项目中,Team City刚刚实施,我正在缓慢地开始研究。我们希望做的一件事是在构建过程中运行一些Selenium测试。我已经创建了硒测试,并且可以通过我的开发机器上的nunit控制台成功运行它们。构建服务器构建项目,然后将其部署到一个临时服务器上(一个Web表单应用程序,当它发生时)。关于持续集成和硒测试的新手问题,

在每次硒测试之前,我们将数据库设置为已知状态,即只有某些记录到位 - 这样每个测试独立于其他测试。问题是,登台服务器将被真正的“人”测试人员使用,所以这会导致他们的数据库不断重置问题(记录被删除等)。问题是我真的也应该部署应用程序到虚拟目录上构建服务器并针对此测试运行硒测试,并且只有在这些测试通过时才部署到登台服务器上?

还是我得到这个东西完全错了?如果是的话,你怎么在你的组织中做到这一点?

回答

2

我建议你不要混合你的自动和手动测试,让你的测试人员访问你的自动化测试阶段的服务器。这可能会在您的自动测试和手动测试中导致误报。这些'错误'是不确定的,并且可能永远不可重现(一个非常坏的消息)。这会造成很多不必要的“错误报告”,并造成失败。

因此,这里是你可以做什么......

除了当前的设置,您可以创建额外上演服务器您的手工测试。这是您应该做的至少。您应该可以创建几个其中一个,一个用于每个测试器

这里来的咆哮......

在我目前的项目,我们最近发现,在我们的测试(我们有他们的〜10)重复使用一台服务器。他们声称,由于我们的应用程序将具有多个并发用户,因此在测试各个功能时,他们也在测试这些功能在多个用户在同一台​​服务器上工作时的行为方式。 错误!

如果有多个用户关心,应该针对具体问题进行测试用例。如果功能#1可能会干扰功能#2,则应该对其进行专门测试,而不是仅仅进行“运气测试”。

在向我们的手动测试人员解释之前,我们有许多错误的错误报告,因为一个测试人员只是踩在另一个测试人员的脚趾上。 (例如,tester1删除了tester2引入系统的记录等)。这造成了很多不必要的错误报告,而这些错误从未重现过。

很抱歉的咆哮,我希望这仍然可以帮助:)

+0

谢谢,这听起来不错,我们怀疑是混合自动和手动测试将是一件坏事。我们打算在构建服务器上构建应用程序(显然),并在那里运行我们的自动化硒测试,然后部署到登台服务器进行手动测试,如果所有自动化测试运行成功。谢谢你的建议。 – 2011-02-02 09:24:52