Predicting Faults Using
the Complexity of Code Changes
Every Battle is Won Before It is Fought
Julian Mason - China 12.04.11
S. LaokokP. Chongpakdee N. Uaphoemkiat
Published in: IEEE 31st International Conference on
Software Engineering, 2009 ICSE
Date: 16 ~ 24 May 2009
DOI: 10.1109/ICSE.2009.5070510
Cited by: 77* Citations,
IEEE Publication ~ 72
Other publication ~ 4
Patent ~ 1
Ahmed E. Hassan
Queen’s University
Retrieved at 21 Feb. 2016 at http://ieeexplore.ieee.org/xpl/abstractCitations.jsp?arnumber=5070510
If you know the enemy and know yourself, you
need not fear the result of a hundred battles. If
you know yourself but not the enemy, for every
victory gained you will also suffer a defeat. If you
know neither the enemy nor yourself, you will
succumb in every battle
—Sun Tzu, The Art of War
Background
Motivation
E = mc2
Error = (modified code)
2
“If debugging is the process of
removing bugs, then
programming must be process
of putting them in
—Edsger Dijkstra
Kristina Alexanderson - Star Wars play in the morning light
Code Change Process
• Basic Code Change (BCC) Model
• Extended Code Change (ECC) Model
• File Code Change (FCC) Model
Code Change Process
Fault Repairing
modifications (FR)How to Decide If You Should Repair or By a New Laptop
General Maintenance
modification (GM)Put your website in the hands of our experts and we can make sure it stays up to date and looking great!
Feature Introduction
modification (FI)Daniel Armanto - P8044749
Information Theory
ถูกต้องศิรินทร์ใช้งาน ไง รุสโซ ไทม์ติวอ่อนด้อยฮิปโปเพียบแปร้ สเตย์ฉลุยแมชชีนเซ็กซี่ ผิดพลาดนิวส์
หมายปองออสซี่ เบิร์ดบร็อกโคลีเอ็นทรานซ์มาร์จิน ฮ็อตด็อกวานิลลาบ็อกซ์เอ็นทรานซ์ปิโตรเคมี
คอนเฟิร์ม โปรเจ็ครุมบ้า ด็อกเตอร์คอร์ปอเรชั่น โกเต็กซ์โอวัลตินคอลเล็กชั่นบริกร เซ็กซี่ดาวน์ออดิทอ
เรียมฟิวเจอร์ฟรังก์ ฮ่องเต้สต๊อกโซน แกงค์เวิลด์ฮิบรู
ล็อตมอคค่า กุนซือ ตี๋ เจ๊เซลส์โบว์มาม่าแทคติค หล่อฮังก้วยสป็อตเมคอัพพลาซ่า คอลัมนิสต์ไคลแมกซ์
เซลส์แมน รีสอร์ทศากยบุตรแลนด์ นิวไลท์ฟาสต์ฟู้ด พูลเป็นไงโหลยโท่ยสจ๊วตโอเปอเรเตอร์ แอร์ไง
เดี้ยงเพียวสมาพันธ์ เดอะเอฟเฟ็กต์รอยัลตี้สตรอว์เบอร์รี หมิง แม็กกาซีนโปรฟิวเจอร์มลภาวะ มาราธอน
หล่อฮังก้วยแลนด์พาร์ซานตาคลอส ซีนฟยอร์ด ซังเต เปราะบางเครปปูอัด กัมมันตะราชานุญาตอัลไซเม
อร์กัมมันตะมอคคา ปิยมิตรแฟล็ตภควัมปติพาสต้า เมาท์ แอโรบิคโปรเจ็ค เซ็นเซอร์มวลชนคอรัปชัน
ฮิปฮอปศึกษาศาสตร์แครอท ร็อคอันเดอร์เช็งเม้ง สงบสุขตู้เซฟสหัชญาณศิลปากร ซานตาคลอสวานิลา
ฮิตซาร์ดีนตุ๊กตุ๊กแอสเตอร์ ซีเนียร์ คาสิโน มัฟฟิน ซีดานอินดอร์ แอลมอนด์สหรัฐแฮนด์ซูฮกเพรียวบาง
ฟลุควานิลา ภคันทลาพาธคอลเล็กชั่นเรต เพนตากอนเบอร์รี เพนกวิน เวิลด์ วิทย์เยอร์บีร่ามิลค์ปัจฉิม
นิเทศ พิซซ่าแหม็บปัจเจกชนโปรเจ็กต์คอรัปชั่น โรลออนเฝอเวิร์กช็อปไคลแม็กซ์ มัฟฟิน เฟรมช็อตแอด
มิสชันเพียบแปร้ ชนะเลิศ พาร์แชมปิยอง เอสเปรสโซบร็อกโคลี สตรอว์เบอร์รีโมหจริตฟิวเจอร์ปูอัด
เบิร์น อุปทานเพนกวินจ๊อกกี้ไคลแมกซ์คองเกรส ลิมิต รีไซเคิลไคลแมกซ์ควิก ซีรีส์สไตรค์บาบูนทาวน์
w f pk
เช่น 103 0.12875
ได้แก่ 91 0.11375
และ 83 0.10375
เป็น 67 0.08375
F=800
1
w
f
w f pk
เช่น 103 0.12875
ได้แก่ 91 0.11375
และ 83 0.10375
เป็น 67 0.08375
1
W f pk
เช่น 103 0.12875
ได้แก่ 200 0.25000
และ 83 0.10375
เป็น 67 0.08375
1
W f pk
เช่น 407 0.50875
ได้แก่ 171 0.21375
และ 31 0.03875
เป็น 201 0.25125
1
f
pk
x
x
x
x
Hn(P) =
nX
k=1
(pk · log2 pk)
where pk > 0
8k 2 {1, 2, 3, ..., n}
nX
k=1
pk = 1
Code Change Model
Basic
p(fileA) =
1
10
= 0.1
p(fileB) =
1
10
= 0.1
p(fileC) =
3
10
= 0.3
p(fileD) =
5
10
= 0.5
X
pi = 1
Files as a Unit of Measurement
Extended
H(P) =
1
Max Entropy for Distribution
Hn(P)
=
1
log2n
Hn(P)
=
1
log2n
nX
k=1
(pk · log2 pk)
=
nX
k=1
(pk · lognpk)
File
History Complexity Metric
(HCM)
T
i
Hi = Entropy
j
Fi
History Complexity Period Factor (HCPF)
HCPFi(j) =
(
cij · Hi, j 2 Fi
0 otherwise
• HCPF1
: cij = 1
• HCPF2
: cij = pk
• HCPF3
: cij = 1
|Fi|
T
i
Hi = Entropy
j
Fi
T
i
HCPFi(j)HCPFi-1(j) HCPFi+1(j)
i-1 i+1
a b
History Complexity Metric (HCM)
HCM{a,..,b}(j) =
X
i2{a,..,b}
HCPFi(j)
History Complexity Metric (HCM)
HCM{a,..,b}(j) =
X
i2{a,..,b}
HCPFi(j)
HCM{a,..,b}(S) =
X
i2{a,..,b}
HCPFi(S)
T
i
HCPFi(j)HCPFi-1(j) HCPFi+1(j)
i-1 i+1
a b
Ti
Current Time
HCM{a,..,b}(j) =
X
i2{a,..,b}
e ·(Ti Current T ime)
HCPF1
i (j)
History Complexity Metric (HCM1d)
History Complexity Metric (HCM)
HCM: HCM1s, HCM2s,
HCM3s, HCM1d
Case Study
• Modifications Vs Faults
• Modifications Vs Entropy
• Faults Vs. Entropy
Application name Application Type Start Date
Subsystem Count
(low level directories)
Prog. Lang.
NetBSD OS March 1993 235 C
FreeBSD OS June 1993 152 C
OpenBSD OS Oct 1995 265 C
Postgres DBMS July 1996 280 C
KDE
Windowing
System
April 1997 108 C++
KOffice
Productivity
Suite
April 1998 158 C++
y = 0 + 1x
Statistical Linear Regression
(SLR Model)dependent
independent
Modifications vs Faults
Modifications vs Entropy
Faults vs Entropy
H0 : µ(eA,i eB,i) = 0
H1 : µ(eA,i eB,i) 6= 0
↵ = 0.05
Student’s T-test
Modificatoin < Faults
Modification < HCM
Mod. < Faults < HCM
Threats to Validity
A. Defects are not mapped to code
B. Faults fixed
Q & A

Software Metrics: Paper Presentation

  • 1.
    Predicting Faults Using theComplexity of Code Changes Every Battle is Won Before It is Fought Julian Mason - China 12.04.11 S. LaokokP. Chongpakdee N. Uaphoemkiat
  • 2.
    Published in: IEEE31st International Conference on Software Engineering, 2009 ICSE Date: 16 ~ 24 May 2009 DOI: 10.1109/ICSE.2009.5070510 Cited by: 77* Citations, IEEE Publication ~ 72 Other publication ~ 4 Patent ~ 1 Ahmed E. Hassan Queen’s University Retrieved at 21 Feb. 2016 at http://ieeexplore.ieee.org/xpl/abstractCitations.jsp?arnumber=5070510
  • 3.
    If you knowthe enemy and know yourself, you need not fear the result of a hundred battles. If you know yourself but not the enemy, for every victory gained you will also suffer a defeat. If you know neither the enemy nor yourself, you will succumb in every battle —Sun Tzu, The Art of War
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
    “If debugging isthe process of removing bugs, then programming must be process of putting them in —Edsger Dijkstra
  • 11.
    Kristina Alexanderson -Star Wars play in the morning light
  • 12.
  • 13.
    • Basic CodeChange (BCC) Model • Extended Code Change (ECC) Model • File Code Change (FCC) Model
  • 14.
  • 15.
    Fault Repairing modifications (FR)Howto Decide If You Should Repair or By a New Laptop
  • 16.
    General Maintenance modification (GM)Putyour website in the hands of our experts and we can make sure it stays up to date and looking great!
  • 17.
  • 18.
  • 19.
    ถูกต้องศิรินทร์ใช้งาน ไง รุสโซไทม์ติวอ่อนด้อยฮิปโปเพียบแปร้ สเตย์ฉลุยแมชชีนเซ็กซี่ ผิดพลาดนิวส์ หมายปองออสซี่ เบิร์ดบร็อกโคลีเอ็นทรานซ์มาร์จิน ฮ็อตด็อกวานิลลาบ็อกซ์เอ็นทรานซ์ปิโตรเคมี คอนเฟิร์ม โปรเจ็ครุมบ้า ด็อกเตอร์คอร์ปอเรชั่น โกเต็กซ์โอวัลตินคอลเล็กชั่นบริกร เซ็กซี่ดาวน์ออดิทอ เรียมฟิวเจอร์ฟรังก์ ฮ่องเต้สต๊อกโซน แกงค์เวิลด์ฮิบรู ล็อตมอคค่า กุนซือ ตี๋ เจ๊เซลส์โบว์มาม่าแทคติค หล่อฮังก้วยสป็อตเมคอัพพลาซ่า คอลัมนิสต์ไคลแมกซ์ เซลส์แมน รีสอร์ทศากยบุตรแลนด์ นิวไลท์ฟาสต์ฟู้ด พูลเป็นไงโหลยโท่ยสจ๊วตโอเปอเรเตอร์ แอร์ไง เดี้ยงเพียวสมาพันธ์ เดอะเอฟเฟ็กต์รอยัลตี้สตรอว์เบอร์รี หมิง แม็กกาซีนโปรฟิวเจอร์มลภาวะ มาราธอน หล่อฮังก้วยแลนด์พาร์ซานตาคลอส ซีนฟยอร์ด ซังเต เปราะบางเครปปูอัด กัมมันตะราชานุญาตอัลไซเม อร์กัมมันตะมอคคา ปิยมิตรแฟล็ตภควัมปติพาสต้า เมาท์ แอโรบิคโปรเจ็ค เซ็นเซอร์มวลชนคอรัปชัน ฮิปฮอปศึกษาศาสตร์แครอท ร็อคอันเดอร์เช็งเม้ง สงบสุขตู้เซฟสหัชญาณศิลปากร ซานตาคลอสวานิลา ฮิตซาร์ดีนตุ๊กตุ๊กแอสเตอร์ ซีเนียร์ คาสิโน มัฟฟิน ซีดานอินดอร์ แอลมอนด์สหรัฐแฮนด์ซูฮกเพรียวบาง ฟลุควานิลา ภคันทลาพาธคอลเล็กชั่นเรต เพนตากอนเบอร์รี เพนกวิน เวิลด์ วิทย์เยอร์บีร่ามิลค์ปัจฉิม นิเทศ พิซซ่าแหม็บปัจเจกชนโปรเจ็กต์คอรัปชั่น โรลออนเฝอเวิร์กช็อปไคลแม็กซ์ มัฟฟิน เฟรมช็อตแอด มิสชันเพียบแปร้ ชนะเลิศ พาร์แชมปิยอง เอสเปรสโซบร็อกโคลี สตรอว์เบอร์รีโมหจริตฟิวเจอร์ปูอัด เบิร์น อุปทานเพนกวินจ๊อกกี้ไคลแมกซ์คองเกรส ลิมิต รีไซเคิลไคลแมกซ์ควิก ซีรีส์สไตรค์บาบูนทาวน์
  • 20.
    w f pk เช่น103 0.12875 ได้แก่ 91 0.11375 และ 83 0.10375 เป็น 67 0.08375 F=800 1
  • 21.
  • 22.
    w f pk เช่น103 0.12875 ได้แก่ 91 0.11375 และ 83 0.10375 เป็น 67 0.08375 1
  • 23.
    W f pk เช่น103 0.12875 ได้แก่ 200 0.25000 และ 83 0.10375 เป็น 67 0.08375 1
  • 24.
    W f pk เช่น407 0.50875 ได้แก่ 171 0.21375 และ 31 0.03875 เป็น 201 0.25125 1
  • 25.
  • 26.
    Hn(P) = nX k=1 (pk ·log2 pk) where pk > 0 8k 2 {1, 2, 3, ..., n} nX k=1 pk = 1
  • 27.
  • 28.
  • 29.
    p(fileA) = 1 10 = 0.1 p(fileB)= 1 10 = 0.1 p(fileC) = 3 10 = 0.3 p(fileD) = 5 10 = 0.5 X pi = 1
  • 30.
    Files as aUnit of Measurement
  • 32.
  • 36.
    H(P) = 1 Max Entropyfor Distribution Hn(P) = 1 log2n Hn(P) = 1 log2n nX k=1 (pk · log2 pk) = nX k=1 (pk · lognpk)
  • 37.
  • 38.
  • 39.
  • 40.
    History Complexity PeriodFactor (HCPF) HCPFi(j) = ( cij · Hi, j 2 Fi 0 otherwise • HCPF1 : cij = 1 • HCPF2 : cij = pk • HCPF3 : cij = 1 |Fi|
  • 41.
  • 42.
  • 43.
    History Complexity Metric(HCM) HCM{a,..,b}(j) = X i2{a,..,b} HCPFi(j)
  • 44.
    History Complexity Metric(HCM) HCM{a,..,b}(j) = X i2{a,..,b} HCPFi(j) HCM{a,..,b}(S) = X i2{a,..,b} HCPFi(S)
  • 45.
  • 46.
    HCM{a,..,b}(j) = X i2{a,..,b} e ·(TiCurrent T ime) HCPF1 i (j) History Complexity Metric (HCM1d)
  • 47.
    History Complexity Metric(HCM) HCM: HCM1s, HCM2s, HCM3s, HCM1d
  • 48.
  • 49.
    • Modifications VsFaults • Modifications Vs Entropy • Faults Vs. Entropy
  • 50.
    Application name ApplicationType Start Date Subsystem Count (low level directories) Prog. Lang. NetBSD OS March 1993 235 C FreeBSD OS June 1993 152 C OpenBSD OS Oct 1995 265 C Postgres DBMS July 1996 280 C KDE Windowing System April 1997 108 C++ KOffice Productivity Suite April 1998 158 C++
  • 51.
    y = 0+ 1x Statistical Linear Regression (SLR Model)dependent independent
  • 52.
    Modifications vs Faults Modificationsvs Entropy Faults vs Entropy
  • 53.
    H0 : µ(eA,ieB,i) = 0 H1 : µ(eA,i eB,i) 6= 0 ↵ = 0.05 Student’s T-test
  • 56.
  • 58.
  • 60.
  • 61.
  • 62.
    A. Defects arenot mapped to code B. Faults fixed
  • 63.