What is Code Coverage?

Kyaw Zay Moore
2 min readOct 5, 2021

--

Test Coverage နဲ့ Code Coverage ကွာသေးလားတော့မသိဘူး ခု ဖတ်ကြည့်တဲ့
guru မှာဖတ်ပီးသိရတာတော့ coverage အဓိက major method က ဒါတေရှိတယ်

  • Statement Coverage
  • Decision Coverage
  • Branch Coverage
  • Toggle Coverage
  • FSM Coverage

Statement Coverage ကတော့ ဖတ်ပီးပီးဆိုတော့
သူက code 10 ကြောင်းရေးထားရင် ကိုယ် test တဲ့ Scenario တွေအကုန်က 10 ကြောင်းလုံးကို သွားထိမှ 100% coverage ဖြစ်တယ်ခေါ်တယ် ဘယ်လိုတွက်မလည်းဆိုတော့
ရှိတဲ့ code အကြောင်းရေက ၁၀ ကြောင်း ကိုယ်စမ်းလို့ ထိတဲ့ အကြောင်းရေက ၇ ကြောင်းပဲရှိတယ်ဆို
7/10 x 100 = 70% ပဲ
ကျန်တဲ့ ၃ ကြောင်းကို သွားထိစေမယ့် Scenario မစမ်းထားတဲ့တွက် production ရောက်ရင် အဲကောင်က ပြသာနာဖြစ်စေနိုင်မယ် မစမ်းထားတဲ့တွက်

ဥပမာ ကိုယ်ရေးထားတဲ့ code က အောက်က အတိုင်းပေါ့

Prints (int a, int b) {         ------------  Printsum is a function 
int result = a+ b;
If (result> 0)
Print ("Positive", result)
Else
Print ("Negative", result)
} ----------- End of the source code

ဟုတ်ပီ ဒီရေးထားတဲ့ code ကို စမ်းရပီဆို ဒါက a နဲ့ b ပေါင်းပီး
ရလဒ်က 0 ထက်ကြီးရင် positive ငယ်ရင် negative ဆိုပီး စာထုတ်ပြတာ
ဒါကို စမ်းမယ့် Scenario က positive ထွက်အောင်လည်း စမ်းရမယ် negative ထွက်အောင်လည်းစမ်းရမယ်

Scenario 1: a = 3, b = 6

အဲဒါဆို a = 3, b = 6 နဲ့စမ်းရင် positive ထွက်မယ် အဲမယ် ဒီ code က run ရင် result က positive ထွက်တာမို့ if else condition မှာ positive နဲ့ထွက်မယ် သွားထိမယ့် code စာကြောင်းတွေက အဝါနဲ့ပြထားတဲ့နေရာတေ သွားထိမယ် အဲတော့ ပုံသေနည်းနဲ့တွက်ရင် ဒီ ဟာနဲ့စမ်းတာမှာ ၇ ကြောင်းရှိတာမှ ၅ ကြောင်းထိတယ်
5/7 * 100 = 71% ရှိတယ်

Scenario 2: a = -3, b = -9

ဒီမှာဆို a = -3, b = -9 ဆိုတော့ ပေါင်းရင် အနှုတ်ပဲထွက်မယ် အဲတော့ if else condition မှာ If ကို စစ်တယ် 0 မကြီးဘူး else ကိုသွားမယ် negative ထွက်ပြမယ် အဲတော့ Print (“Positive”, result) အကြောင်းကိုပဲ မထိခဲ့တော့ ၇ ကြောင်းမှာ ၆ ကြောင်းထိတဲ့
6/7 * 100 = 85% ရှိတယ်
မထိခဲ့တဲ့ အကြောင်းက 4

အဲတော့ နောက်ဆုံး ပြန်တွက်ကြည့်ရင် scenario ၂ မျိုးစမ်းတဲ့ချိန်မှာ code 7 ကြောင်းလုံးကိုသွားထိတဲ့တွက် Statement Coverage test scenario က 100% ဖြစ်တယ်ပြောလို့ရတယ်

ပြောချင်တာက စမ်းတဲ့ Scenario တေမှာ တခုခုသာ ကျန်ခဲ့ရင် user လက်ထဲရောက်မှ အဲနေရာရောက်ရင် error တက်မလား success ဖြစ်မလား မသိနိုင်ဘူး။ ဒါကတော့ Statement Coverage အကြောင်း

ref : https://www.guru99.com/code-coverage.html

blog : https://blog.kyawzaymoore.com/what-is-code-coverage/

--

--

Kyaw Zay Moore
Kyaw Zay Moore

Written by Kyaw Zay Moore

Hi, I’m Kyaw Zay Moore, most people know as FiDO. Software Engineer. https://kyawzaymoore.com

No responses yet