Test Coverage in Software Testing: How to Measure It
โก Ringkasan Cerdas
Test coverage in software testing measures how much of an application a set of tests actually exercises. It reveals untested requirements, code paths, and risks, so teams can add targeted cases and release with measurable confidence.

Apa itu Cakupan Tes?
Cakupan pengujian didefinisikan sebagai metrik dalam Pengujian Perangkat Lunak yang mengukur jumlah pengujian yang dilakukan oleh serangkaian pengujian. Ini akan mencakup pengumpulan informasi tentang bagian program mana yang dieksekusi ketika rangkaian pengujian dijalankan untuk menentukan cabang pernyataan kondisional mana yang telah diambil.
Secara sederhana, ini adalah teknik untuk memastikan bahwa pengujian Anda menguji kode Anda atau seberapa banyak kode yang Anda latih dengan menjalankan pengujian.
What Does Test Coverage Do?
On a live project, test coverage supports four practical activities:
- Menemukan area persyaratan yang tidak diterapkan oleh serangkaian kasus uji
- Membantu membuat kasus uji tambahan untuk meningkatkan cakupan
- Mengidentifikasi ukuran kuantitatif cakupan tes, yang merupakan metode tidak langsung untuk pemeriksaan kualitas
- Mengidentifikasi kasus uji yang tidak berarti dan tidak meningkatkan cakupan
Manfaat Cakupan Tes dalam Rekayasa Perangkat Lunak
Those activities translate into concrete engineering benefits.
- Ini dapat menjamin kualitas tes
- Ini dapat membantu mengidentifikasi bagian kode mana yang benar-benar disentuh untuk rilis atau perbaikan
- It can determine all the decision points and paths in your application that were not tested, which allows you to increase test coverage
- Mencegah cacat kebocoran
- Waktu, ruang lingkup, dan biaya dapat dikendalikan
- Pencegahan kerusakan pada tahap awal siklus hidup proyek
- Kesenjangan dalam persyaratan, kasus pengujian, dan cacat pada tingkat unit dan tingkat kode dapat ditemukan dengan cara yang mudah
Types of Test Coverage
Coverage is never a single number. Teams track several types at once, because each answers a different question about the same suite. The table below groups the types you meet most often.
| Jenis Cakupan | Apa yang diukur | Terbaik Digunakan Untuk |
|---|---|---|
| Statement (line) coverage | Executable lines run at least once | Unit tests and legacy code audits |
| Branch or decision coverage | True and false outcome of every decision | Conditional and validation logic |
| Condition coverage | Each boolean sub-expression as true and as false | Compound AND or OR expressions |
| Path coverage | Unique routes taken through a module | Safety-critical and financial flows |
| Function coverage | Functions or methods invoked by tests | API and service layers |
| Cakupan persyaratan | Requirements mapped to at least one test | Acceptance and contractual sign-off |
| Cakupan risiko | Identified high-risk areas exercised | Short release cycles |
The first five types are code-level measures and belong to pengujian kotak putih, while requirements and risk coverage sit at the test-plan level.
What Are the Main Differences Between Code Coverage and Test Coverage?
Code liputan dan cakupan pengujian adalah teknik pengukuran yang memungkinkan Anda menilai kualitas kode aplikasi Anda.
Berikut adalah beberapa perbedaan penting antara stan dengan metode cakupan ini:
| Parameter Teknis | Code Liputan | Cakupan Tes |
|---|---|---|
| Definisi | Code Istilah cakupan yang digunakan ketika kode aplikasi dijalankan saat aplikasi sedang berjalan. | Cakupan tes berarti keseluruhan rencana tes. |
| Tujuan | Code Metrik cakupan dapat membantu tim memantau pengujian otomatis mereka. | Cakupan pengujian memberikan rincian tentang tingkat pengujian pengodean tertulis suatu aplikasi. |
| Subtipe | Code coverage divided with subtypes like statement coverage, condition coverage, Branch coverage, Toggle coverage, FSM coverage. | Tidak ada subtipe metode cakupan Tes. |
Rumus Cakupan Tes
Untuk menghitung cakupan tes, Anda perlu mengikuti langkah-langkah yang diberikan di bawah ini:
Langkah 1) Menghitung Y, the total lines of code in the piece of software you are pengujian
Langkah 2) Menghitung X, the number of lines of code all test cases currently execute
Sekarang, Anda perlu mencari (X dibagi Y) dikalikan 100. Hasil perhitungan ini adalah % cakupan tes Anda.
Sebagai contoh:
If the number of lines of code in a system component is 500 and the number of lines executed across all existing test cases is 50, then your test coverage is:
(50 / 500) * 100 = 10% // executed lines divided by total lines
Contoh Cakupan Tes
The percentage alone is never the whole story, as the examples below show.
Contoh 1:
For example, if โknifeโ is an Item that you want to test. Then you need to focus on checking if it cuts the vegetables or fruits accurately or not. However, there are other aspects to look for like the user should able to handle it comfortably.
Contoh 2:
For example, if you want to check the notepad application. Then checking itโs essential features is a must thing. However, you need to cover other aspects as notepad application responds expectedly while using other applications, the user understands the use of the application, not crash when the user tries to do something unusual, etc.
Test Coverage Techniques
Both examples point to the same conclusion: reaching a coverage target depends less on writing more tests and more on choosing the right test design technique. The techniques below widen coverage while keeping the suite small.
- Boundary value analysis: Selects inputs at the edges of each valid range, where defects cluster most heavily. See analisis nilai batas for worked cases.
- Equivalence partitioning: Groups inputs that the application treats identically, so a single case can safely represent an entire class of values.
- Decision table testing: Covers combinations of conditions and their expected outcomes inside a single grid.
- State transition testing: Exercises every valid and invalid move between application states.
- Basis path testing: Derives the minimum set of independent paths from the control flow graph.
- Pengujian berbasis risiko: Ranks features by business impact and covers the highest-risk ones first.
- pengujian eksplorasi: Uncovers gaps that scripted cases and coverage reports never expose.
How Can Test Coverage Be Accomplished?
Once the techniques are chosen, four established routes deliver the coverage.
- Cakupan tes dapat dilakukan dengan menggunakan teknik tinjauan statis seperti tinjauan sejawat, inspeksi, dan penelusuran
- Dengan mengubah cacat ad-hoc menjadi kasus uji yang dapat dieksekusi
- Pada tingkat kode atau tingkat pengujian unit, cakupan pengujian dapat dicapai dengan memanfaatkan cakupan kode otomatis atau alat cakupan pengujian unit
- Cakupan tes fungsional dapat dilakukan dengan bantuan alat manajemen tes yang tepat
How to Improve Test Coverage
Establishing coverage is the starting point; raising it is a repeatable routine. Work through this sequence at the start of every release cycle.
- Baseline the current number. Run a coverage report and record statement, branch, and requirements coverage separately, so that gaps stay visible per module rather than hidden inside one project-wide average.
- Map tests to requirements. Membangun traceability grid that links every requirement to at least one test case. Any empty row is a confirmed gap, not a suspicion.
- Rank modules by risk. Payment, authentication, and data-migration logic deserve far deeper coverage than a static help screen, so spend the budget where a failure would hurt most.
- Add negative and edge cases. Empty inputs, oversized values, network timeouts, and permission errors reach branches that happy-path tests never touch.
- Layer the test levels. Menggabungkan pengujian unit, tes integrasi, and end-to-end checks, because each level covers what the others structurally cannot.
- Automate the regression suite. Promote stable cases into pengujian otomasi and execute them inside the Pipa CI/CD after every commit.
- Retire redundant cases. Delete duplicated tests that add execution minutes without adding a single uncovered line.
- Review the trend every sprint. Track coverage next to kepadatan cacat. Rising leakage against flat coverage is an early warning of a blind spot.
โ ๏ธ Peringatan: Do not treat 100 percent as the goal. A suite at 85 percent with strong assertions protects a release far better than 95 percent of shallow checks that execute code without verifying any result.
Drawbacks of Test Coverage
Coverage stays valuable, yet it carries limits worth stating before reporting any percentage.
- Sebagian besar tugas dalam cakupan tes bersifat manual karena tidak ada alat untuk mengotomatisasi. Oleh karena itu, diperlukan banyak upaya untuk menganalisis persyaratan dan membuat kasus uji.
- Cakupan pengujian memungkinkan Anda menghitung fitur dan kemudian mengukurnya berdasarkan beberapa pengujian. Namun, selalu ada ruang untuk kesalahan penilaian.
