【问题标题】:PHP: How to begin testing large, existing codebase, and test for regression on production site?PHP:如何开始测试大型现有代码库并在生产站点上测试回归?
【发布时间】:2010-04-23 18:10:25
【问题描述】:

我负责至少一大组现有的 PHP 代码,这些代码迫切需要测试,而且我还需要一些方法来检查生产站点是否存在错误。

我使用 PHP 已经很多年了,但是很遗憾是测试新手。 (对不起!)。

虽然为具有可预测结果的代码编写测试似乎很容易,但我在思考如何测试实时站点以确保正确输出时遇到了麻烦。

我知道在测试环境中,我可以将数据库设置为已知状态...但是是否有适当的方法或技术来测试实时站点?我应该从哪里开始?

[我知道 PHPUnit 和 SimpleTest,但还没有选择其中一个]

【问题讨论】:

    标签: php unit-testing testing


    【解决方案1】:

    像 PHPUnit 这样的单元测试框架更多地是为了测试单独的逻辑单元(即类)的功能而构建的,而不是整个实时站点的行为。一个家喻户晓的名字是Selenium,一个Web 应用程序测试系统。据我了解,Selenium 测试可以反过来与 PHPUnit 集成。

    关于 Simpletest 和 PHPUnit 之间的选择,请查看我最近关于 PHPUnit vs. SimpleTest 的问题 - 该问题的答案,尤其是 @Gordon 的答案,成功地说服了我使用 PHPUnit。

    【讨论】:

    • @Gordon naah,我只是运气好 :)
    • 测试与生产代码一起运行是否普遍可以接受?我想针对活动代码库运行测试至少可以证明一切正常……这就是通常的做法吗?
    • @anon 我自己是该领域的新手,但据我了解,一般的良好做法是在隔离的测试条件下测试代码(即使使用模型来模拟文件访问而不是使用实时文件) ),然后使用经过测试(和工作)的代码更新实时环境。您所要求的可能会进入这个问题的方向:stackoverflow.com/questions/2405825/… 这是不是纯粹意义上的单元测试。
    • @pekka 您可能想查看 XRefresh 一个用于 Firefox 的附加组件。您提到了对运行 PHPUnit 的 Web 界面的需求。你是自己找的还是自己做的。我会感兴趣的。
    • 接受这个答案作为 the 答案,并建议未来的“谷歌人”看到另一个非常有用的答案:stackoverflow.com/questions/2700911/…
    【解决方案2】:

    我赞同佩卡的建议。另外,我强烈建议使用 PHPUnit,因为它是 PHP World 中 UnitTesting 框架的事实上的标准。

    您可以做的另一件事是前往 phpqatools.org(编辑:该网站不再活动)并使用给定的工具来分析您的代码库、查找死代码、复制和粘贴、代码违规等。

    还可以使用XDebug 或 Zend Debugger 分析您的代码,以了解它实际运行的频率。通过这种方式,您不仅可以了解应该首先测试哪些代码(最常运行的代码),还可以了解它的执行方式,这是您在编写单元测试后对其进行优化时的一个很好的起点。

    另外,签出:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-17
      相关资源
      最近更新 更多