文明网站建设情况,网站网址更新了怎么查,南京网站建设优化,网站建设 好牛为什么需要单元测试
从产品角度而言#xff0c;常规的功能测试、系统测试都是站在产品局部或全局功能进行测试#xff0c;能够很好地与用户的需要相结合#xff0c;但是缺乏了对产品研发细节#xff08;特别是代码细节的理解#xff09;。
从测试人员角度而言#xff0…为什么需要单元测试
从产品角度而言常规的功能测试、系统测试都是站在产品局部或全局功能进行测试能够很好地与用户的需要相结合但是缺乏了对产品研发细节特别是代码细节的理解。
从测试人员角度而言功能测试和系统测试以及其他性能测试等等对测试人员的全局特性理解能力要求较高只要测试人员能够掌握一两种自动化测试框架基本能够开展功能、性能自动化测试但是借助于测试框架进行研发降低了测试人员对代码的掌握、理解要求。
从开发人员角度而言用户需求往往并不是具体的、全面的因此基于用户需求转换成开发文档或着针对某个功能编写开发代码往往也存在着局限性也即我们常说的bug。
因此编写单元测试可以帮助测试人员更好地理解代码细节、提高代码开发能力也能帮助开发人员提前辨识代码中可能存在的bug提高代码的容错能力。
如何制定单元测试报告
良好的单元测试报告能够帮助测试人员更好地分析、挖掘潜藏的问题。那么如何制定单元测试报告呢从哪些维度出发呢在这里我们主要从测试人员角度出发来思考这个问题。
首先我们需要报告中能够呈现我们的测试用例数量和测试结果pass或者fail以及错误细节。
其次从单元测试本身特点出发我们需要报告中能够呈现出针对单元代码分支、单元方法等的覆盖率更好地帮助我们梳理和测试用例设计的优良。
在此我们使用surefire-report统计测试用例数量和测试结果使用jacoco统计单元测覆盖率注本文默认测试用例的执行方式是mvn test。
如何配置
surefire-report配置
配置方法配置maven-surefire-plugin插件maven-surefire-plugin是maven默认的test执行器配置方法如下图所示
上图中testFailureIgnore表示忽略单元测试中的错误继续构建/*Test.java表示任何子目录下所有命名以Test结尾的Java类/Test*.java表示不执行任何子目录下所有命名以Test开头的Java类。
执行方法使用mvn test surefire-report:report即可会生成在/target/site/surefire-report.html测试报告文档。
如下图所示
Tests显示总用例数
Errors指的是程序没有考虑到的情况例如异常未能捕捉
Failure指的是预期的结果与实际运行单元的结果不同所导致常出现在断言处
Skipped表示跳过的测试用例数
Success Rate表示用例成功率成功用例数/总用例数
Time显示总耗时
Package List显示详细的package下用例执行结果。 配置方法配置jacoco-maven-plugin插件配置方法如下图所示phase表示插件运行的生命周期阶段。 执行方法mvn test执行即可。会在/target/site/jacoco/目录下生成总的覆盖率报告index.html和不同package的单元测试覆盖率报告…/xxx/index.html。此外还有csv和xml格式的单元测试覆盖率报告。
如上图所示为某个package的单元测试覆盖率报告
红色进度条表未覆盖
绿色进度条表示已覆盖
Cov 为总体覆盖率
Missed Instructions表示代码覆盖率
Missed Branches表示逻辑分支覆盖率
Missed Cxty表示判断执行数
Missed Lines表示代码行数
Methods表示方法个数。
如何利用单元测试报告
至此我们讲了单元测试的重要性以及如何设置和查看单元测试报告。现在我们来聊聊如何利用单元测试报告。
本文中我们讲述了两种单元测试报告一种是从测试人员角度出发方便测试人员统计单元测试用例数和分析用例执行结果的surefire-report报告另一种是可以帮助测试人员和开发人员深入分析单元测试用例覆盖代码率的jacoco报告。
对于surefire-report报告而言我们主要是用于统计用例数和通过用例执行结果判断用例设计是否合理、测试环境是否存在问题可以类似于某种更接近于代码层的“功能测试”报告。 对于jacoco单元测试覆盖率报告我们可以借助单元测试覆盖率判可以断测试用例设计是否缺漏从而补全遗漏的测试用例。如下图所示为某个Package下某个类中某个方法的单元测试覆盖率报告。
如上图所示绿色钻石表示全部覆盖黄色钻石表示部分覆盖红色钻石表示没有覆盖。
通过上图测试报告我们可以看出缺少覆盖红色部分的单元测试用例因此可以重新设计、补全对应红色分支部分的测试用例。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你