当前位置: 首页 > 科技观察

测试员进阶技巧:如何有效使用单元测试报告?_0

时间:2023-03-20 19:09:47 科技观察

为什么需要单元测试?从产品的角度,常规的功能测试和系统测试是针对产品的局部或全局功能进行的,可以很好的结合用户的需求,但缺乏对产品开发细节(尤其是代码细节)的了解).从测试人员的角度来看,功能测试、系统测试等性能测试需要对测试人员的全局特性有更高的理解。测试人员只要能掌握一两个自动化测试框架,基本上就可以进行功能和性能的自动化测试。然而,借助测试框架进行研发降低了测试人员掌握和理解代码的要求。从开发人员的角度来看,用户需求往往并不具体和全面,因此根据用户需求将其转化为开发文档或针对某个功能编写开发代码(也就是我们常说的bug)往往存在局限性。因此,编写单元测试可以帮助测试人员更好地理解代码细节,提高代码开发能力。它还可以帮助开发人员提前识别代码中可能存在的错误,提高代码的容错能力。如何制作单元测试报告一份好的单元测试报告可以帮助测试人员更好地分析和挖掘隐藏的问题。那么,如何制定单元测试报告,从哪些维度来制定呢?这里我们主要站在测试人员的角度来思考这个问题。首先,我们需要能够在报告中显示测试用例的数量、测试结果(通过或失败)和错误详细信息。其次,从单元测试本身的特点出发,我们需要报告能够展示单元代码分支、单元方法等的覆盖情况,更好的帮助我们进行梳理和测试用例设计。这里,我们使用surefire-report统计测试用例数量和测试结果,使用jacoco统计单元测试覆盖率(注:本文默认测试用例执行方式为mvntest)。如何配置surefire-report和jacocosurefire-report配置配置方法:配置maven-surefire-plugin插件,maven-surefire-plugin是maven默认的测试执行器,配置方法如下图:testFailureIgnore上图中表示忽略测试中单元错误继续构建,**/*Test.java:表示任意子目录下所有名称以Test结尾的Java类,**/Test*.java:表示不执行任何子目录下名称以Test开头的所有Java类。执行方法:使用mvntestsurefire-report:report,会在/target/site/surefire-report.html中生成测试报告文档。如下图所示:Tests显示用例总数;错误是指程序没有考虑到的情况,比如无法捕获的异常;Failure是指预期结果与实际运行单元结果之间的差异,经常出现在断言处;skipped表示跳过的测试用例数;SuccessRate表示测试用例的成功率(=成功测试用例数/测试用例总数);时间显示总耗时。包列表显示包下用例的详细执行结果。·jacoco配置配置方法:配置jacoco-maven-plugin插件,配置方法如下图所示,phase表示插件运行的生命周期阶段。执行方法:执行mvntest。/target/site/jacoco/目录下会生成总覆盖率报告index.html和不同包的单元测试覆盖率报告../xxx/index.html。还有csv和xml格式的单元测试覆盖率报告。如上图所示,是一个包的单元测试覆盖率报告。红色进度条表示无覆盖,绿色进度条表示覆盖,Cov为整体覆盖。MissedInstructions表示代码覆盖率,MissedBranches表示逻辑分支覆盖率,MissedCxty表示判断执行次数,missedLines表示代码行数,Methods表示方法数。