25.13.1 - Definition
Enroll to start learning
You’ve not yet enrolled in this course. Please enroll for free to listen to audio lessons, classroom podcasts and take practice test.
Interactive Audio Lesson
Listen to a student-teacher conversation explaining the topic in a relatable way.
Introduction to Code Coverage
🔒 Unlock Audio Lesson
Sign up and enroll to listen to this audio lesson
Today, we are going to learn about code coverage. Can anyone tell me what that means?
Is it how much of the code we actually test when we run our unit tests?
Exactly! Code coverage measures the percentage of code that is executed when your tests run. Why do you think that's important?
It probably helps us find parts of the code that we haven't tested yet, right?
Absolutely! It helps identify untested areas, which can contain potentially risky bugs. This is crucial in delivering reliable software.
Tools for Measuring Code Coverage
🔒 Unlock Audio Lesson
Sign up and enroll to listen to this audio lesson
Now, let's talk about some tools. What tools do you think can measure code coverage?
I think I've heard of JaCoCo!
And Cobertura, right?
Exactly! JaCoCo and Cobertura are popular code coverage tools. They provide detailed insights into which parts of your code are not covered by tests.
Are there others?
Yes, SonarQube is another valuable option that not only analyzes code coverage but also provides a broader overview of code quality.
Goals and Best Practices for Code Coverage
🔒 Unlock Audio Lesson
Sign up and enroll to listen to this audio lesson
What do you think a good target for code coverage would be?
Maybe around 80%?
That's a great target! Generally, aiming for about 70-80% coverage is sensible because targeting 100% can lead to diminishing returns, especially on certain code types.
Like error logging?
Exactly! Not all code needs to be tested to that extent, as long as critical paths are well covered.
Introduction & Overview
Read summaries of the section's main ideas at different levels of detail.
Quick Overview
Standard
Code coverage measures how much of the application code is executed when tests are run. It helps identify untested parts of the codebase, informs about potential areas of risk, and assists in improving overall software quality.
Detailed
Detailed Summary
Code coverage is a crucial metric in software testing that quantifies the percentage of code that is executed during test execution. It serves as an important indicator of the quality and reliability of software because it helps developers identify parts of the code that are not adequately tested.
There are various tools available to measure code coverage, such as JaCoCo, Cobertura, and SonarQube, each offering different features and insights. The primary objective of obtaining code coverage is to aim for high percentages, however, it is important to note that striving for 100% coverage might not be practical; certain types of code, like error logging, may not require exhaustive testing. The main goal is to ensure that critical paths and functionalities are well-covered by tests, which helps to reduce bugs and improve overall software quality.
Youtube Videos
Key Concepts
-
Code Coverage: The percentage of code executed during testing.
-
Tools: JaCoCo, Cobertura, and SonarQube are tools that measure code coverage.
-
Goals: Aim for a reasonable code coverage target (70-80%) without attempting to cover every line of code.
Examples & Applications
If you run a suite of tests covering 70 out of 100 lines of code, your code coverage is 70%.
Using JaCoCo can reveal which lines have not been executed by your tests, allowing you to focus on improving coverage in those areas.
Memory Aids
Interactive tools to help you remember key concepts
Rhymes
Code that runs, code that tests, good coverage seals the best.
Stories
In the end, a thorough investigation (high coverage) leads to more successful cases (fewer bugs).
Memory Tools
CATS: Coverage Aims To Secure (critical paths).
Acronyms
COVER
Code Organization Verifies Executed Results.
Flash Cards
Glossary
- Code Coverage
A metric that indicates the percentage of code executed while running tests.
- JaCoCo
An open-source tool for measuring code coverage in Java applications.
- Cobertura
A tool that can measure code coverage for Java applications and provides reports on test coverage.
- SonarQube
An open-source platform for continuous inspection of code quality, which includes assessing code coverage.
Reference links
Supplementary resources to enhance your learning experience.