A Review of Software Defect Prediction

advertisement
Surabaya, 2015
A Review of Software Defect Prediction
Supria / 5114201059
Jurusan Teknik Informatika, Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember, Surabaya
e-mail: [email protected]
Contents :
1. Introduction
2. Study Literature
2.1 Software Defect
2.2 Software Defect Prediction Model
2.3 Machine Learning dan Statistic
2.4 Dataset
2.5 Fitur Selection
3. Discussion
4. Conclusion
5. Future Work
1. Introduction
Secara umum ada beberapa tahap dalam
software development life cycle (SDLC)
yaitu
analisa
kebutuhan,
desain,
implementasi, ujicoba dan release [1].
Tahap pengujian harus dioperasikan secara
efektif untuk merilis perangkat lunak untuk
pengguna yang bebas dari bug. Bebas dari
bug adalah hal yang paling penting untuk
diperhatikan
dalam
pengembangan
perangkat lunak untuk keefektifan dan
efisiensi kinerja perangkat lunak bagi
pengguna.
Kecacatan perangkat lunak (software
defect) didefinisikan sebagai cacat pada
perangkat lunak seperti cacat pada
dokumentasi, pada kode program, desain
dan hal-hal lain yang akan mengakibatkan
kegagalan
perangkat
lunak.
Cacat
perangkat lunak dapat muncul pada
berbagai tahap proses pengembangan
perangkat lunak. Cacat perangkat lunak
merupakan
faktor
penting
yang
mempengaruhi kualitas perangkat lunak.
Kualitas
perangkat
lunak
dapat
ditingkatkan dengan mencegah munculnya
cacat perangkat lunak melalui aksi
perbaikan yang mungkin menghasilkan
cacat perangkat lunak pada proses
pengembangan perangkat lunak.
Untuk
mempertahankan
kualitas
perangkat lunak perlu adanya pengawasan
seperti mendeteksi kecacatan perangkat
lunak tersebut. Software yang berkualitas
tinggi adalah software yang dapat
membantu proses bisnis perusahaan dengan
efektif, efisien dan tidak ditemukan cacat
selama proses pengujian, pemeriksaan dan
implementasi. Perbaikan software setelah
pengiriman
dan
implementasi
membutuhkan biaya jauh lebih mahal
daripada masih dalam tahap pengembangan
[2]. Biaya yang dibutuhkan untuk
pengujian software menghabiskan lebih
dari 50% dari biaya pengembangan.
Dibutuhkan model pengujian cacat pada
software untuk mengurangi biaya yang
dikeluarkan [3].
Software Defect Prediction (SDP)
adalah salah satu kegiatan yang sangat
membantu pada tahap pengujian SDLC [4].
Teknik pencegahan cacat perangkat lunak
pertama kali diusulkan oleh IBM
corporation dan dapat digunakan untuk
mencegah munculnya cacat perangkat
lunak ditahap lanjut pada proses
pengembangan perangkat lunak [5]. Setelah
itu, muncul beberapa pendekatan untuk
mencegah munculnya cacat perangkat
lunak seperti causal analysis dan prediction
model.
Dalam beberapa penelitian tentang
prediksi cacat perangkat lunak telah
mengadopsi beberapa metode statistic dan
machine learning untuk mengatasi masalah
prediksi kecacatan pada software [1].
1
Random Forest (RF), Artificial Immune
System (AIS), Naive Bayes (NB), J48, tree
based methods, Case-based Reasoning
(CBR), Support Vector Machines (SVM),
dan Logistic Regression (LR).
Metode association rule mining
merupakan metode dalam pencarian
kondisi terjadinya nilai atribut dari data
yang muncul bersama-sama [6],[7]. Pada
penelitian sebelumnya (Okumoto, 2011)
digunakan metode association rule mining
untuk melihat pola-pola perangkat lunak
yang berpotensi terjadi defect dengan
menambahkan konstrain berupa relasi antar
atribut untuk menaikkan tingkat akurasi.
Secara umum dalam menggunakan metode
association rule, metode ini membutuhkan
nilai support dan confidence yang
ditentukan secara manual. Penentuan kedua
nilai
tersebut
mempengaruhi hasil
pencarian pola defect, sehingga untuk
melakukan otomatisasi penentuan nilai
support dan nilai confidence dibutuhkan
langkah tambahan yaitu dengan melakukan
perhitungan cumulative support threshold
(Selvi dan Tamilarasi, 2009) yang akan
dijelaskan secara mendetail pada bagian
selanjutnya.
Beberapa peneliti melakukan penelitian
untuk mendeteksi kecacatan perangkat
lunak dengan menggunakan berbagai
metode prediksi, bahkan ada yang
menggabungkan beberapa metode untuk
mendapatkan dan meningkatkan akurasi
hasil prediksi kecacatan perangkat lunak
yang optimal.
Pada tulisan ini akan dibahas tentang
model prediksi kecacatan pada perangkat
lunak beserta metode-metode yang
diaplikasikan pada masalah penyelesaian
prediksi perangkat lunak, pemilihan fitur
yang tepat dan juga dataset yang digunakan
dalam penelitian tersebut.
2. Study Literature
2.1 Software Defect
Cacat pada perangkat lunak (software
defect) didefinisikan sebagai defect pada
perangkat lunak yang mungkin terjadi
defect pada kode program, defect pada
dokumentasi, pada desain, dan hal-hal lain
yang menyebabkan kegagalan perangkat
lunak. Defect perangkat lunak dapat
muncul pada berbagai tahap proses
pengembangan perangkat lunak (Pressman,
2001). Defect perangkat lunak merupakan
faktor penting yang mempengaruhi kualitas
perangkat lunak. Kualitas perangkat lunak
dapat ditingkatkan dengan mencegah
munculnya defect perangkat lunak melalui
perbaikan yang mungkin menghasilkan
defect perangkat lunak pada proses
pengembangan perangkat lunak (Boehm
dan Basili, 2001). Menurut (Runeson dkk,
2006) defect perangkat lunak terdiri dari
defect kebutuhan (requirement defect),
defect desain (design defect), dan kode
cacat (code defect).
2.2 Software Defect Prediction Model
Teknik software defect prediction model
berusaha untuk menemukan sejumlah pola
cacat perangkat lunak yang dapat
digunakan untuk memprediksi kemunculan
cacat perangkat lunak dimasa mendatang.
Sebuah pola cacat perangkat lunak
didefinisikan sebagai sekumpulan atribut
yang
dapat
digunakan
untuk
mendeskripsikan dan memprediksikan
kemunculan dari cacat perangkat lunak.
Pola cacat perangkat lunak dapat
diturunkan dengan menerapkan model
statistik pada perangkat lunak yang
mengandung cacat. Untuk menentukan
apakah
sebuah
perangkat
lunak
mengandung cacat perangkat lunak,
attribut-attribut dari perangkat lunak
dibandingkan dengan pola cacat perangkat
lunak. Attribut-attribuat yang digunakan
untuk mengukur produk perangkat lunak
antara lain ukuran, kompleksitas, usaha dan
sejarah perubahan.
Surabaya, 2015
2.3 Machine Learning and Statistic
Berbagai metode machine learning dan
statistic
telah
diaplikasikan
untuk
menyelesaikan masalah prediksi cacat
software
[8],[9],[10],[11].
Beberapa
metode dan algoritma yang digunakan pada
beberapa penelitian adalah kombinasi
antara Artificial Neural Network (ANN)
dan Ant Bee Colony (ABC) [1], Ensemble
learning [12], Double Transfer Boosting
(DTB) [13], Two-stage classification
method yang diintegrasikan dengan Threeway decisions dan ensemble learning [14],
k-means ++ [15], Association mining dan
Naive Bayes (NB) classifier [16], Costsensitive decision forest dan voting [17],
Logika Fuzzy [2], Algoritma SD dan CN2SD [18], Transfer Naïve Bayes (TNB) [19],
Multiple criteria decision making (MCDM)
[20], Pendekatan Nearest Neighbor (NN)
[21], Software Defect Prediction Model
Learning Problem (SDPMLP) [22],
Algoritma Cost-Sensitive Boosting Neural
Network (CSBNN) [23], Action Based
Defect Prediction (ABDP) [5], Support
Vector Machines (SVM) [24], algoritma
optimasi Adaptive Particle Swarm (APSO)
[25], Learning-to-Rank [26], Two-Stage
Cost-Sensitive Learning (TSCS) [27],
AdaBoost.NC [28],
Coding-Based
Ensemble Learning [12].
Untuk menunjukkan efek positif dari
penggabungan fitur selection dan ensemble
learning terhadap kinerja klasifikasi cacat
pada software [12]. Seiring dengan fitur
selection yang efisien, two-varian (with and
without fitur selection) algoritma ensemble
learning untuk memberikan ketahanan dari
ketidakseimbangan data dan redudansi
fitur.
Perlu
berhati-hati
untuk
menggabungkan model ensemble learning
dengan fitur selection yang efisien untuk
mengatasi ketidakseimbangan data dan
redudansi fitur yang dapat mengurangi efek
dari kinerja klasifikasi cacat.
Metode traditional two-way decisions
sering menghasilkan kesalahan klasifikasi
yang tinggi dan membutuhkan biaya yang
lebih mahal. Two-stage classification
method yang diintegrasikan dengan Threeway decisions dan ensemble learning dapat
mengatasi masalah tersebut [14].
Salah satu algoritma klasterisasi yang
banyak digunakan adalah k-means++ yang
menunjukkan kinerja yang baik pada
dataset yang besar [15]. Selama beberapa
tahun yang lalu, penelitian prediksi cacat
pada software telah diterapkan untuk
mengurang biaya produk software.
Meskipun
hasilnya
yang
sangat
menjanjikan tetapi penelitian tersebut
hampir tidak pernah diterapkan pada sistem
yang berbasis web. Metode clustering
sangat cocok untuk memperkirakan
kecacatan source code pada sistem web.
Algoritma klasifikasi tradisional selalu
mengoptimalkan akurasi. Cost-sensitive
classification method berusaha untuk
membuat prediksi dengan biaya klasifikasi
terendah. Dalam hal ini teknik costsensitive forest yang disebut CSForest yang
merupakan ensemble learning dari decision
tree dan teknik cost-sensitive voting yang
disebut CSVoting untuk memanfaatkan
decision tree untuk meminimalkan biaya
klasifikasi [17].
Indikator kepadatan software defect
prediction disetiap tahap pada software
development life cycle (SDLC) yang
dibutuhkan untuk mengembangkan produk
software yang handal. Software defect
prediction yang dilakukan pada akhir tahap
pengujian
mungkin
tidak
lebih
menguntungkan, karena perubahan perlu
dilakukan pada tahap sebelum SDLC,
sehingga tidak memerlukan biaya dan
tenaga yang lebih banyak untuk mencapai
target kualitas software. Oleh karena itu,
indikator kepadatan cacat software model
prediksi phase-wise adalah sangat penting.
Model yang didasarkan logika fuzzy
diusulkan untuk memprediksi indikator
kepadatan software defect pada setiap tahap
dalam SDLC [2]. Indikator kepadatan cacat
dalam analisis kebutuhan, desain, source
code dan tahap pengujian diprediksi
menggunakan sembilan software metrics
3
dari empat tahap. Software metrics yang
dinilai dari segi bahasa dan sistem fuzzy
inferensi
telah
digunakan
untuk
mengembangkan model.
Penggunaan pendekatan deskriptif untuk
prediksi cacat pada teknik klasifikasi yang
tepat yang biasanya diadopsi. Hal ini
memungkinkan
kita
untuk
mengkarakterisasi modul yang rusak
dengan aturan sederhana yang dapat dengan
mudah diterapkan oleh praktisi dan
memberikan kemudahan (atau teknik)
pendekatan daripada hasil yang sangat
akurat. Algoritma SD dan algoritma CN2SD untuk mendapatkan aturan yang
mengidentifikasi bagian modul yang rawan
cacat [18]. Aturan yang dihasilkan dapat
digunakan
untuk
memandu
upaya
pengujian dalam rangka meningkatkan
kualitas proyek pengembangan perangkat
lunak. Aturan tersebut dapat menunjukkan
metric, nilai threshold dan hubungan antara
metric dengan modul yang rusak.
Association Rule adalah sebuah metode
pada data mining. Metode tersebut
berfungsi untuk mencari hubungan antara
beberapa atribut pada sebuah data. Pada
penerapannya metode ini sering digunakan
pada database berskala besar untuk mencari
pola data. Chen & Hung (2009) telah
melakukan sebuah penelitian untuk
merangkum beberapa associative rule
menggunakan metode decision tree. Chen
& Hung (2009) menjelaskan bahwa, aturan
asosiatif (associative rule) dapat diekstrak
dari sebuah dataset yang di dalamnya
terdapat label (class) untuk setiap datanya.
Chen & Hung (2009) menyimpulkan pada
akhir penelitiannya bahwa, dengan
melakukan peringkasan aturan terdapat dua
keuntungan. Pertama, aturan lebih mudah
dibaca, lebih ringkas dan lebih mudah
untuk digunakan sebagai classifier. Kedua,
lebih akurat dibandingkan dengan metode
biasa.
2.4 Dataset
Untuk menerapkan metodologi prediksi
cacat software perlu diterapkan terhadap
dataset sebagai ujicoba untuk menghasilkan
keunggulan suatu metodologi penelitian
yang dilakukan. Banyak penelitian yang
menggunakan NASA defect dataset untuk
melakukan simulasi pendeteksian cacat
pada perangkat lunak (Bouktif dkk, 2010;
Catal, 2010; Zhang, 2009; Zhang dkk,
2007). Namun, sangat sedikit informasi
yang menjelaskan tentang penerapan
metode klasifikasi berbasis aturan pada
dataset
NASA
dengan
proses
pembangkitan aturan secara otomatis. Pada
penelitian Tappolet dkk (2010) dijelaskan
sebuah mekanisme analisa perangkat lunak
khususnya pendeteksian code smell dengan
pendekatan semantik web. Cacat dapat
mungkin ditimbulkan karena adanya code
smell dalam kode program. Pendekatan
semantik
yang
digunakan
adalah
menggunakan ontologi sebagai representasi
data dan adanya aturan yang diterapkan
untuk proses pendeteksian. Proses
pendefinisian aturan dilakukan dengan cara
manual
dengan
menggunakan
DL
(Description Logic). Dalam hal ini,
pembangkitan sebuah aturan secara
otomatis dirasa akan sangat berguna dalam
peningkatan kecepatan dalam proses
deteksi cacat.
2.5 Fitur Selection
Pemilihan fitur merupakan hal yang
sangat penting untuk diperhatikkan dalam
melakukan proses prediksi cacat pada
software. Kesalahan dalam pemilihan fitur
dapat menyebabkan kesalah pula pada hasil
prediksi seperti bagian yang tidak cacat
akan terdeteksi sebagai cacat, begitu juga
sebaliknya bagian yang cacat tidak
terdeteksi sebagai cacat.
Beberapa
masalah
yang
dapat
menghambat data cacat pada software
adalah redudansi, korelasi, fitur yang tidak
relevan dan sampel yang tidak lengkap
[29]. Hal ini juga sulit untuk menentukan
distribusi yang seimbang antara data yang
berkaitan dengan software cacat dan tidak
cacat.
Surabaya, 2015
Dalam memprediksi bagian kode
program yang mungkin mengandung cacat
perlu dipertimbangkan dengan sangat hatihati [17],[30],[31],[32], karena dapat
menyebabkan biaya yang dikenakan sangat
tinggi. Untuk itu perlu adanya klasifikasi
fitur yang tepat untuk meminimalkan biaya
yang dikeluarkan.
3. Discussion and Conclusion
Beberapa definisi dan kesimpulan pada
hasil review prediksi kecacatan perangkat
lunak adalah sebagai berikut :
1. Software defect prediction dipandang
sebagai tahap untuk meningkatkan
kualitas perangkat lunak. Ini membantu
kita untuk meramalkan masa depan,
yaitu untuk mengidentifikasi modul
yang cenderung memiliki kesalahan. Ini
membantu tim manajemen proyek
perangkat lunak untuk menangani
proyek selesai secara tepat waktu dan
dengan usaha yang cukup.
2. Biaya untuk menemukan cacat pada
perangkat lunak merupakan suatu
kegiatan pengembangan perangkat
lunak yang paling mahal. Semakin
lambat mengatasi software defect maka
biaya yang akan dikeluarkan semakin
tinggi. Untuk itu beberapa penelitian
prediksi software defect telah diterapkan
untuk menemukan kecacatan pada
software sedini mungkin, sehingga dapat
meminimalkan biaya.
3. Untuk menghasilkan pola, aturan
association rule mining merupakan
teknik utama, disisi lain sebagian besar
association
rule
kadang
tidak
significant. Aturan association rule
mining sering menunjukkan frequensi
yang sangat mahal.
4. Algoritma optimasi genetic terbatas
untuk mengacak solusi dan konvergensi.
5. Untuk menggali aturan pada perangkat
lunak dengan menggunakan satu teknik
mining tidak akan efisien, jadi selalu
membutuhkan teknik optimasi.
6. Naïve bayes classifier membutuhkan
jumlah catatan atau record yang sangat
besar untuk mendapatkan hasil yang
baik.
7. Pemilihan fitur dan atribut sangat
menentukan hasil prediksi kecacatan
pada perangkat lunak.
8. Teknik-teknik Machine Learning yang
dikategorikan menjadi Decision Tree,
Bayesian Learning, Ensemble Learning,
Rule Based Learning, Evolutionary
Algorithms, Neural Networks dan
Miscellaneous.
Teknik
Machine
Learning yang paling sering digunakan
untuk memprediksi kecacatan software
adalah C4.5, Naive Bayes, Multilayer
Perceptron, Support Vector Machines
dan Random Forest.
9. Teknik yang paling umum digunakan
untuk pemilihan bagian metrik dalam
beberapa studi literatur adalah korelasi
berdasarkan fitur selection. Prosedur
metric merupakan metric yang paling
umum digunakan dalam literatur.
Dataset NASA adalah yang paling
sering digunakan sebagai dataset dalam
literatur. Akan tetapi, sangat sedikit
penelitian menggunakan dataset industri
untuk mengevaluasi efektivitas teknik
machine learning.
4. Future work
1. Penggunaan Machine Learning untuk
software defect prediction akan
menghasilkan akurasi yang lebih baik.
2. Menentukan nilai parameter yang jelas
untuk masing-masing teknik Machine
Learning yang digunakan sehingga
framework pada studi dapat diterapkan
pada software-company.
3. Focus pada preprocessing, fitur
selection dan teknik data mining lainnya
untuk menemukan hasil klasifikasi yang
lebih baik.
5
REFERENCES
[1]
Ö. F. Arar and K. Ayan, “Software
defect prediction using costsensitive neural network,” Appl. Soft
Comput., vol. 33, pp. 263–277, 2015.
[2]
H. B. Yadav and D. K. Yadav, “A
fuzzy logic based approach for
phase-wise
software
defects
prediction using software metrics,”
Inf. Softw. Technol., vol. 63, pp. 44–
57, 2015.
[3]
A. Paksoy and M. Göktürk,
“Procedia Computer Information
fusion
with
dempster-shafer
evidence theory for software defect
prediction,” Procedia Comput. Sci.,
vol. 3, pp. 600–605, 2011.
[4]
I. Arora, V. Tetarwal, and A. Saha,
“Open Issues in Software Defect
Prediction,” Procedia Comput. Sci.,
vol. 46, no. Icict 2014, pp. 906–912,
2015.
[5]
C. Chang, C. Chu, and Y. Yeh,
“Integrating in-process software
defect prediction with association
mining to discover defect pattern,”
Inf. Softw. Technol., vol. 51, no. 2,
pp. 375–384, 2009.
[6]
G. Czibula, Z. Marian, and I. G.
Czibula, “Software defect prediction
using relational association rule
mining,” Inf. Sci. (Ny)., vol. 264, pp.
260–278, 2014.
[7]
[8]
Q. Song, M. Shepperd, M.
Cartwright, and C. Mair, “Software
defect association mining and defect
correction effort prediction,” IEEE
Trans. Softw. Eng., vol. 32, no. 2, pp.
69–82, 2006.
M. Shepperd, D. Bowes, and T. Hall,
“Researcher Bias : The Use of
Machine Learning in Software
Defect Prediction,” vol. 40, no. 6, pp.
603–616, 2014.
[9]
L. Pelayo and S. Dick, “Evaluating
Stratification
Alternatives
to
Improve
Software
Defect
Prediction,” IEEE Trans. Reliab.,
vol. 61, no. 2, pp. 516–525, 2012.
[10] P. He, B. Li, X. Liu, J. Chen, and Y.
Ma, “An empirical study on software
defect prediction with a simplified
metric set,” Inf. Softw. Technol., vol.
59, pp. 170–190, 2015.
[11] R. Malhotra, “A systematic review
of machine learning techniques for
software fault prediction,” Appl. Soft
Comput. J., vol. 27, pp. 504–518,
2015.
[12] Z. Sun, Q. Song, and X. Zhu, “Using
coding-based ensemble learning to
improve software defect prediction,”
IEEE Trans. Syst. Man Cybern. Part
C Appl. Rev., vol. 42, no. 6, pp.
1806–1817, 2012.
[13] L. Chen, B. Fang, Z. Shang, and Y.
Tang, “Negative samples reduction
in cross-company software defects
prediction,” Inf. Softw. Technol., vol.
62, pp. 67–77, 2015.
[14] W. Li, Z. Huang, and Q. Li, “Threeway decisions based software defect
prediction,” Knowledge-Based Syst.,
2015.
[15] “2015 - A novel defect prediction
method for web pages using kmeans++.” .
[16] Z. A. Rana, M. M. Awais, and S.
Shamail, “Improving Recall of
software defect prediction models
using
association
mining,”
Knowledge-Based Syst., 2015.
[17] M. J. Siers and M. Z. Islam,
“Software defect prediction using a
cost sensitive decision forest and
voting, and a potential solution to the
Surabaya, 2015
class imbalance problem,” Inf. Syst.,
vol. 51, pp. 62–71, 2015.
using ANN,” Procedia - Procedia
Comput. Sci., vol. 46, no. Icict 2014,
pp. 432–442, 2015.
[18] D. Rodriguez, R. Ruiz, J. C.
Riquelme, and R. Harrison, “A study
of subgroup discovery approaches
for defect prediction,” Inf. Softw.
Technol., vol. 55, no. 10, pp. 1810–
1822, 2013.
[26] X. Yang, K. Tang, S. Member, and
X. Yao, “A Learning-to-Rank
Approach to Software Defect
Prediction,” vol. 64, no. 1, pp. 234–
246, 2015.
[19] Y. Ma, G. Luo, X. Zeng, and A.
Chen, “Transfer learning for crosscompany
software
defect
prediction,” Inf. Softw. Technol., vol.
54, no. 3, pp. 248–256, 2012.
[27] M. Liu, L. Miao, and D. Zhang,
“Two-Stage Cost-Sensitive Learning
for Software Defect Prediction,”
IEEE Trans. Reliab., vol. 63, no. 2,
pp. 676–686, 2014.
[20] Y. Peng, G. Wang, and H. Wang,
“User preferences based software
defect detection algorithms selection
using MCDM,” Inf. Sci. (Ny)., vol.
191, pp. 3–13, 2012.
[28] S. Wang and X. Yao, “Using class
imbalance learning for software
defect prediction,” IEEE Trans.
Reliab., vol. 62, no. 2, pp. 434–443,
2013.
[21] A. Hassouna and L. Tahvildari, “An
effort prediction framework for
software defect correction,” Inf.
Softw. Technol., vol. 52, no. 2, pp.
197–209, 2010.
[29] I. H. I. Laradji, M. Alshayeb, and L.
Ghouti, “Software defect prediction
using ensemble learning on selected
features,” Inf. Softw. Technol., vol.
58, pp. 388–402, 2015.
[22] P. C. Pendharkar, “Engineering
Applications
of
Artificial
Intelligence Exhaustive and heuristic
search approaches for learning a
software defect prediction model,”
Eng. Appl. Artif. Intell., vol. 23, no.
1, pp. 34–40, 2010.
[30] C. Couto, P. Pires, M. Tulio, R. S.
Bigonha, and N. Anquetil, “The
Journal of Systems and Software
Predicting software defects with
causality tests,” J. Syst. Softw., vol.
93, pp. 24–41, 2014.
[23] J. Zheng, “Expert Systems with
Applications Cost-sensitive boosting
neural networks for software defect
prediction,” Expert Syst. Appl., vol.
37, no. 6, pp. 4537–4543, 2010.
[24] K. O. Elish and M. O. Elish,
“Predicting defect-prone software
modules using support vector
machines,” vol. 81, pp. 649–660,
2008.
[31] R. Moser, “A Comparative analysis
of the efficiency of change metrics
and static code attributes for defect
prediction A Comparative Analysis
of the Efficiency of Change Metrics
and Static Code Attributes for Defect
Prediction,” no. December, 2015.
[32] D. Gray, D. Bowes, N. Davey, Y.
Sun, and B. Christianson, “The
Misuse of the NASA Metrics Data
Program Data Sets for Automated
Software Defect Prediction,” 2003.
[25] B. Dhanalaxmi, G. A. Naidu, and K.
Anuradha, “Adaptive PSO based
Association Rule Mining Technique
for Software Defect Classification
7
Download