功能测试的覆盖率分析

时间:2011-04-09 09:53:28

标签: testing selenium code-coverage

在我正在进行的项目中,我们通过Selenium编写了功能测试。每个功能发布都会对应用程序进行功能更改。

是否有工具/机制可以跟踪自动功能测试中的差距,以便至少手动测试人员能够密切关注这些区域?

注意:我们没有进行FTDD,因此即使我们确保高单位测试覆盖率,功能测试覆盖率也可能很差。我们使用NCover来检查单元测试覆盖率。

5 个答案:

答案 0 :(得分:4)

我知道至少有两种(商业但廉价的)工具允许您附加到IIS进程以捕获IIS应用程序的覆盖数据。

<强> NCover:

  

NCover包含// iis命令行   开关。这个开关设置了   IIS和。中的覆盖环境   重新启动Web服务器。你会跑   这样的NCover来分析覆盖范围   对于您的Web应用程序:

     

NCover.Console.exe nunit-console.exe   TestAssembly.dll // iis运行时   以这种方式进行NCover,IIS将是   重新启动以允许NCover监视   你的报道,你的测试将是   跑。完成后,NCover将停止   IIS并自行分离。

请参阅:http://docs.ncover.com/how-to/code-coverage-of-asp-net-applications-on-iis/

Jetbrains的DotCover:

Dotcover具有visual studio集成功能,允许您以与想要跟踪IIS应用程序时相同的方式连接到IIS应用程序。这可能也可以通过命令行dotCover工具启动,尽管我从未尝试过这个。

请参阅http://www.jetbrains.com/dotcover/

我认为Rational和Microsoft Teamsystem也有解决方案,但它们的价格要贵一些。

答案 1 :(得分:3)

我们使用一个系统进行测试,该系统涉及创建文本叙述的人 - 测试脚本 - 用于手动测试功能。这以某种方式列举(例如[功能] -001)。然后我们的Selenium测试被注意到涵盖了这些枚举中的一个或多个。

构建新功能时,会编写和枚举新的测试脚本。然后通过Selenium测试,我们可以比较其自动相对于枚举测试脚本的列表 - delta是必须手动测试的。

答案 2 :(得分:2)

我们的一些Test Coverage工具(目前,Java,C#和COBOL)旨在处理这类事情。

如果您运行应用程序并执行特定功能,则可以使用这些测试覆盖率工具来收集该特定功能的代码覆盖率数据。实质上,这是功能练习的所有代码的记录。通过一些次要脚本,您可以安排每个功能测试运行并获取该测试的代码覆盖率数据。

工具可以将收集的测试覆盖率向量组合成一个摘要向量,它将根据整个功能测试集为您提供代码的代码覆盖率。

如果更改代码库,测试覆盖率工具将告诉您哪些代码块已更改(在方法级别比较差异)。这又可以应用于已经针对各个功能收集的测试覆盖向量;如果有一个交集,你需要再次运行功能测试,因为它所依赖的代码已经改变了。

通过这种方式,您可以决定在更改后需要重新测试哪些功能。

答案 3 :(得分:0)

NDepend能够在不同版本之间显示代码覆盖率增量。

来自NDepend网站的

(http://www.ndepend.com/Features.aspx#Coverage):

  

编写自动测试是提高代码正确性的核心实践。了解自动测试涵盖哪部分代码有助于改进测试,因此有助于提高代码的正确性。

     

NDepend从NCover™和Visual Studio Team System™收集代码覆盖率数据。根据这些数据,NDepend推断出方法,类型,命名空间和程序集的一些指标:PercentageCoverage,NbLinesOfCodeCovered,NbLinesOfCodeNotCovered和BranchCoverage(仅来自NCover)。

     

这些指标可以与其他NDepend功能一起使用。例如,您可以知道自上一版本以来添加或重构的代码,并且测试未完全涵盖这些代码。您可以编写CQL约束来持续检查一组类是否100%覆盖。您可以列出哪些复杂方法需要更多测试。

视频演示在此处:http://s3.amazonaws.com/NDependOnlineDemos/Coverage_viewlet_swf.html

答案 4 :(得分:0)

建议使用.net核心功能覆盖工具

Ncover: 没有.net核心支持

dotcover: 打开状态存在缺陷

相关问题