我有遗留代码库,我需要使用PHPUnit测试该代码。所以我根据你的经验要求提出建议。我应该先测试哪些课程?还是优先考虑?
我应该从easy / small类开始还是使用base / super class?
答案 0 :(得分:10)
我将单元测试引入现有代码库的一般建议如下:
之后我建议你专注于三件事:
PHPUnit将为您提供CodeCoverage报告,显示您的代码库测试情况。在一个月内看到数字从0.3%上升到5%到20%可能会非常酷,但它并不是一个非常强大的动力。
为了确保您测试新代码,我建议您使用PHP_Change_Coverage作为described in this blog posting
此工具可以帮助您生成有意义的报道报告,因为它只显示NEWLY CREATED CODE as UNTESTED
而不是您所有的旧东西。
有了这些东西,你可以很容易地“在很早的时候获得很高的百分比并继续测试新东西”,同时为旧的东西创建测试。
在PHP更改范围之前:
和之后:
答案 1 :(得分:5)
系统中通常会有太多代码作为第一步测试它。但大部分代码已经有效。
我从最近修改过的方法开始。据推测,大多数其他软件在某种程度上都可以工作,并且测试不会发现新的或新修订的代码中会出现的错误。
如果你失业了(如果你有一个或多个开发人员积极在你附近工作,我会怀疑它在不久的将来),你可以采用使用修改方法的方法,根据软件指标具有高复杂性的方法,以及对安全系统操作至关重要的方法(使用密码登录,存储客户费用数据等)
帮助决定接下来要考虑测试的一种方法是使用测试覆盖率工具。通常使用它来确定软件的测试程度,但如果你没有很多测试,你已经知道它会告诉你:你的代码没有经过很好的测试: - {所以没有必要尽早运行它在你的测试施工过程中。 (当你接受更多测试时,你和你的经理最终会想知道这一点)。但是,测试覆盖率工具也倾向于提供已经执行或不作为测试的一部分的完整代码列表,并且 提供了关于应该测试节点的线索:具有没有被行使。
我们的SD PHP Test Coverage tool适用于PHP,可以通过交互式查看器和生成的报告提供此信息。它将告诉您哪些方法,类,文件和子系统(按目录层次结构)已经过测试以及测试的程度。如果名为“login.php”的文件尚未经过测试,您将能够轻松地看到它。而这种明确的观点使得更容易智能地决定接下来要测试的内容,而不仅仅是根据您对代码的了解进行猜测。
答案 2 :(得分:0)