当前位置:网站首页>Advanced skills of testers: a guide to the application of unit test reports
Advanced skills of testers: a guide to the application of unit test reports
2022-07-02 00:39:00 【Two black】
Why unit testing is needed
From a product perspective , Routine function test 、 System tests are conducted based on the local or global functions of the product , It can be well combined with the needs of users , But there is a lack of product development details ( Especially the understanding of code details ).
From the tester's point of view , Functional test, system test and other performance tests require testers to have a high ability to understand the global characteristics , As long as testers can master oneortwo automated test frameworks, they can basically carry out functions 、 Performance automated testing , But research and development with the help of testing framework reduces testers' mastery of code 、 Understanding requirements .
From a developer perspective , User requirements are often not specific 、 comprehensive , Therefore, there are limitations in converting user requirements into development documents or writing development code for a certain function ( That is what we often say bug).
therefore , Writing unit tests can help testers better understand code details 、 Improve code development capability , It can also help developers identify possible problems in the code in advance bug, Improve the fault tolerance of code .
How to make unit test report
Good unit test reports can help testers better analyze 、 Digging for hidden problems . that , How to make a unit test report , From which dimensions ? Here we mainly think about this problem from the perspective of testers .
First , We need to present the number of our test cases and test results in the report (pass perhaps fail), And error details .
secondly , Starting from the characteristics of unit test itself , We need to be able to show the branch for unit code in the report 、 Coverage of unit methods, etc , Better help us sort out and test the excellence of case design .
Here it is , We use surefire-report Count the number of test cases and test results , Use jacoco The coverage rate of unit measurement is calculated ( notes : The default test case execution method in this article is mvn test).
How to configure
surefire-report To configure
Configuration method : To configure maven-surefire-plugin plug-in unit ,maven-surefire-plugin yes maven default test actuator , The configuration method is shown in the figure below :

Above picture testFailureIgnore It means to ignore the errors in the unit test and continue to build ,/*Test.java: Indicates that all the names under any subdirectory are named with Test At the end of the Java class ,/Test*.java: It means that all naming under any subdirectory will not be executed Test At the beginning Java class .
Execution method : Use mvn test surefire-report:report that will do , Will be generated in /target/site/surefire-report.html Test report document .
As shown in the figure below :
Tests Displays the total number of use cases ;
Errors It refers to the situation that the procedure does not take into account , For example, exception failed to catch ;
Failure It refers to the difference between the expected result and the result of the actual operation unit , It often appears in assertions ;
Skipped Indicates the number of test cases skipped ;
Success Rate Indicates the success rate of the use case (= Number of successful use cases / Total number of use cases );
Time Show total time ;
Package List Show detailed package Next use case execution result .

jacoco To configure
Configuration method : To configure jacoco-maven-plugin plug-in unit , The configuration method is shown in the figure below ,phase Represents the life cycle phase of the plug-in operation .

Execution method :mvn test Execution can be . Will be in /target/site/jacoco/ Generate the total coverage report under the directory index.html And different package Unit test coverage report for …/xxx/index.html. Besides, there are csv and xml Unit test coverage report in .

As shown in the above figure, there is a package Unit test coverage report for :
The red progress bar table does not cover ;
A green progress bar indicates that ;
Cov Is the overall coverage ;
Missed Instructions Indicates code coverage ;
Missed Branches Indicates the logical branch coverage ;
Missed Cxty Indicates the number of judgments executed ;
Missed Lines Represents the number of lines of code ;
Methods Indicates the number of methods .
How to use unit test reports
thus , We talked about the importance of unit tests and how to set up and view unit test reports . Now let's talk about how to use unit test reports .
In this article, we describe two unit test reports , One is to facilitate testers to count the number of unit test cases and analyze the results of case execution from the perspective of testers surefire-report The report , The other is to help testers and developers analyze the code coverage of unit test cases jacoco The report .
about surefire-report For reporting purposes , We are mainly used to count the number of use cases and judge whether the use case design is reasonable through the use case execution results 、 Is there a problem with the test environment , Can be similar to something closer to the code layer “ A functional test ” The report .
about jacoco Unit test coverage report , We can judge whether the test case design is missing by unit test coverage , So as to complete the missing test cases . The following figure shows a Package Unit test coverage report of a method in a class .

As shown in the figure above , Green diamonds mean full coverage , Yellow diamonds indicate partial coverage , A red diamond means there is no cover .
From the above test report, we can see the lack of unit test cases covering the red part , So it can be redesigned 、 Complete the test cases corresponding to the red branch .
Summary
For most testers , There are few opportunities to contact unit testing at work . however , From the perspective of career development path and personal ability improvement , Learning unit testing can not only improve the business ability of testers , Understanding of the code , It can also improve some “ viability ” Well , It is said that “ Many hands make light work ” It is so .
Learning resource sharing
Finally, thank everyone who reads my article carefully , Watching the rise and attention of fans all the way , Reciprocity is always necessary , Although it's not very valuable , If you can use it, you can take it 
These materials , For those who want to advance 【 automated testing 】 For our friends, it should be the most comprehensive and complete war preparation warehouse , This warehouse also accompanied me through the most difficult journey , I hope it can help you ! Everything should be done as soon as possible , Especially in the technology industry , We must improve our technical skills . I hope that's helpful …….
Join my communication group below for free !
边栏推荐
- 2022 safety officer-b certificate examination practice questions simulated examination platform operation
- BPR (Bayesian personalized sorting)
- Halcon knowledge: an attempt of 3D reconstruction
- Leetcode skimming: stack and queue 06 (top k high-frequency elements)
- SQL Server 安装指南
- Leetcode skimming: binary tree 02 (middle order traversal of binary tree)
- 一个实习生的CnosDB之旅
- Talents come from afar, and Wangcheng district has consolidated the intellectual base of "strengthening the provincial capital"
- 数据库--SqlServer详解
- Output results of convolution operation with multiple tensors and multiple convolution kernels
猜你喜欢

Friends circle community program source code sharing
![Data analysis methodology and previous experience summary [notes dry goods]](/img/00/e4c4cf37f1ca9134546f970d800226.png)
Data analysis methodology and previous experience summary [notes dry goods]

Kuberntes cloud native combat high availability deployment architecture

What does open loop and closed loop mean?

heketi 记录

SQL数据分析之流程控制语句【if,case...when详解】

2022 operation of simulated examination platform for melting welding and thermal cutting work license

Gaussdb (for MySQL):partial result cache, which accelerates the operator by caching intermediate results

数据分析方法论与前人经验总结【笔记干货】

Leetcode skimming: stack and queue 02 (realizing stack with queue)
随机推荐
RFID让固定资产盘点更快更准
@Valid parameter verification does not take effect
数据分析方法论与前人经验总结【笔记干货】
AIX存储管理之总结篇
【CTF】bjdctf_2020_babystack2
2022 low voltage electrician examination questions and answers
2022 safety officer-a certificate examination questions and online simulation examination
【会议资源】2022年第三届自动化科学与工程国际会议(JCASE 2022)
LeetCode 0241.为运算表达式设计优先级 - DFS
Node - generate wechat permission verification configuration
Node——生成微信权限验证配置
JS -- image to base code, base to file object
Using multithreaded callable to query Oracle Database
创业团队如何落地敏捷测试,提升质量效能?丨声网开发者创业讲堂 Vol.03
GaussDB(for MySQL) :Partial Result Cache,通过缓存中间结果对算子进行加速
Leetcode question brushing: stack and queue 07 (maximum value of sliding window)
Node——Egg 创建本地文件访问接口
When installing mysql, there are two packages: Perl (data:: dumper) and Perl (JSON)
[CTF] bjdctf 2020 Bar _ Bacystack2
Output results of convolution operation with multiple tensors and multiple convolution kernels