回答
我不知道任何计算输入范围的COTS工具,所以我希望您必须构建一个能够做到您想要的工具。
我的技术文章Branch Coverage for Arbitrary Languages Made Easy描述了一种使用Program transformation system为任意语言构建测试覆盖率工具以将任意探测器插入源代码的方法。
本文主要关注构建代码覆盖率,但探针插入技术是一般性的,您可以决定探针的位置以及它们的功能。在你的情况下,你只想在方法入口处放置探测器,并且你希望探测器跟踪输入参数实例。本白皮书介绍了如何通过使用源代码模式来指示插入点的位置探测器的位置;方法条目很容易被描述为一种模式。
捕获输入实例比较笨拙但可行。你必须决定什么是“输入”;它只是参数值,还是参数的某种深层副本?可能你需要做的是创建一个对象类型(per-method instrumented),它的数据成员对应于这些参数,用一个副本实例化这个对象(适当的深度),然后将这个对象存储在每个方法中哈希表。 (一旦你知道你想做的代码成语,转化规则就可以插入所有这些)。所有这些,在执行时,你的哈希表建立了参数集,这是你想要的关键。
您可以(连续)计数通过控制将重复项插入散列表时发生的情况来确定唯一的参数集实例;该计数(每个方法)可以在程序完成时导出的全局数组中进行管理。本文讨论了这样一个全局数组,以及一般导出/显示的各种方法。
我们的线test coverage和profilers是使用本文中的技术构建的。分析器在这样的全局数组中保持计数/次数(基本上就是你所需要的)并将它们导出到显示引擎,该引擎绘制热直方图,显示热点的位置。这些显示引擎是语言和探测数据源不可知的现成的,因为它们都包含在我们的任何一个(探查器)工具中,包括Java探查器,因此您可以将其中一个工具用于显示任务。
- 1. 如何测量测试覆盖率
- 2. QUnit测试覆盖率
- 3. BDD和测试覆盖率
- 4. 测试覆盖率.NetCore
- 5. 用黑匣子测试测量代码覆盖率
- 6. 使用aqtime测量单元测试的代码覆盖率
- 7. 在Sonar中,如何通过测试查看测试覆盖率?
- 8. 使用PHPUnit和PDO测试覆盖率
- 9. Netbeans 8.1中缺少测试覆盖率?
- 10. rails中的测试覆盖率
- 11. 在运行时测量python覆盖率
- 12. 条件覆盖率与决策覆盖率测试
- 13. 使用eclEmma工具记录每个测试用例的测试覆盖率
- 14. 如何测量Golang集成测试覆盖率?
- 15. 测量集成测试覆盖率与Maven
- 16. 使用Java写入文本文件,覆盖测试用例的输出
- 17. Django项目中的CI测试和覆盖率测试
- 18. VS 2017年的测试覆盖率似乎测量测试代码只
- 19. Django测试套件URL覆盖率
- 20. 功能测试的覆盖率分析
- 21. 谷歌测试:代码覆盖率
- 22. 鼻测试覆盖率权限错误
- 23. JUnit测试与Cobertura覆盖率报告
- 24. 找出Rails的测试覆盖率
- 25. 测试覆盖率 - 排除Android SDK
- 26. Ruby测试覆盖率绘图工具
- 27. 多条件覆盖率测试
- 28. Android测试代码覆盖率,Eclipse
- 29. Behat的行为测试覆盖率
- 30. 测试代码覆盖率的JRuby
当然,它的*可能*。测量代码以收集所有输入并对其进行计数。你在问一个这样的工具吗? –
我不知道Clover是否具有此功能,但它是编写测试代码的好插件http://www.atlassian.com/software/clover/ – WillHaack
@Ira我正在寻找一个工具。但我想这可以做到。我会检查三叶草。我一直在使用EclEmma。 –