Lines of Code
Line of Code (LOC) adalah suatu teknik pengukuran besar software dengan cara menghitung jumlah baris kode program yang ada. Metode LOC salah satu metode tradisional yang paling mudah dalam mengukur kualitas sebuah software, Walaupun mudah metode LOC cukup rumit bila dipelajari.
LOC adalah suatu bukti real dari apa yang dilakukan oleh perekayasa perangkat lunak (dalam konteks ini membuktikan berapa banyak baris program yang ditulis oleh seorang programmer comment yang ada).
System boleh dibilang memiliki kompleksitas kecil jika dalam system tersebut memiliki error rata-rata 1,3% - 1,8%, sedangkan system yang boleh dikatakan memiliki tingkat kompleksitas besar adalah system yang memiliki peluang error 2,7% - 3,2%.
Halsteads Matrix adalah pengukuran yang berdasarkan operator-operator yang digunakan(misal: keyword) dan operan-operan(misal: variable, objek database) yang ada dalam suatu program.
N1 = Perhitungan keseluruhan operator program.
n1 = jumlah operator yang unik.
N2 = Perhitungan keseluruhan operan program.
n2 = jumlah operan-operan yang unik.
H = n1 Log2 n1 + n2 Log2 n2
Prediksi Bug = (N1+N2) Log2 (n1+n2)/3000
Kekurangan metode Line of Code yang paling fatal adalah :
1.Relatif terhadap bahasa pemprograman dan gaya pengkodean programmer
2.Line of Code tidak bisa ditentukan sebelum proyek pengembangan menyelesaikan tahapan implementasi (pengkodean).
2.Line of Code tidak bisa ditentukan sebelum proyek pengembangan menyelesaikan tahapan implementasi (pengkodean).
Dengan berkembangnya bahasa pemrograman Object-Oriented, dimana membuat suatu program yang terdiri dari berbagai object yang saling berinteraksi metode Line of Code jelas sulit untuk diterapkan.
Metode Line of Code dibagi beberapa cara, yaitu :
1. Physical lines
2. Physical lines of code
3. Logical lines
4. Logical lines of code
5. Statements
Dua macam pendekatan test yaitu :
1. Black Box Testing
Test case ini bertujuan untuk menunjukkan fungsi PL tentang cara
beroperasinya, apakah pemasukan data keluaran telah berjalan
sebagaimana yang diharapkan dan apakah informasi yang disimpan
secara eksternal selalu dijaga kemutakhirannya.
beroperasinya, apakah pemasukan data keluaran telah berjalan
sebagaimana yang diharapkan dan apakah informasi yang disimpan
secara eksternal selalu dijaga kemutakhirannya.
2. White Box Testing
Adalah meramalkan cara kerja perangkat lunak secara rinci, karenanya
logikal path (jalur logika) perangkat lunak akan ditest dengan menyediakan test case yang akan mengerjakan kumpulan kondisi dan atau pengulangan secara spesifik. Secara sekilas dapat diambil kesimpulan white box testing merupakan petunjuk untuk mendapatkan program yang benar secara 100%. UJI COBA WHITE BOX
Uji coba white box adalah metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case. Dengan rnenggunakan metode white box, analis sistem akan dapat memperoleh test case yang:
a. menjamin seluruh independent path di dalam modul yang dikerjakan sekurang-kurangnya sekali
logikal path (jalur logika) perangkat lunak akan ditest dengan menyediakan test case yang akan mengerjakan kumpulan kondisi dan atau pengulangan secara spesifik. Secara sekilas dapat diambil kesimpulan white box testing merupakan petunjuk untuk mendapatkan program yang benar secara 100%. UJI COBA WHITE BOX
Uji coba white box adalah metode perancangan test case yang menggunakan struktur kontrol dari perancangan prosedural untuk mendapatkan test case. Dengan rnenggunakan metode white box, analis sistem akan dapat memperoleh test case yang:
a. menjamin seluruh independent path di dalam modul yang dikerjakan sekurang-kurangnya sekali
b. mengerjakan seluruh keputusan logical
c. mengerjakan seluruh loop yang sesuai dengan batasannya
d. mengerjakan seluruh struktur data internal yang menjamin validitas
1. UJI COBA BASIS PATH
Uji coba basis path adalah teknik uji coba white box yg diusulkan
Tom McCabe. Metode ini memungkinkan perancang test case mendapatkan
ukuran kekompleksan logical dari perancangan prosedural dan menggunkan
ukuran ini sbg petunjuk untuk mendefinisikan basis set dari jalur
pengerjaan. Test case yg didapat digunakan untuk mengerjakan basis set
yg menjamin pengerjaan setiap perintah minimal satu kali selama uji coba.
Tom McCabe. Metode ini memungkinkan perancang test case mendapatkan
ukuran kekompleksan logical dari perancangan prosedural dan menggunkan
ukuran ini sbg petunjuk untuk mendefinisikan basis set dari jalur
pengerjaan. Test case yg didapat digunakan untuk mengerjakan basis set
yg menjamin pengerjaan setiap perintah minimal satu kali selama uji coba.
PENGUJIAN BLACK-BOX
Pengujian black-box berfokus pada persyaratan fungsional PL. Pengujian
ini memungkinkan analis system memperoleh kumpulan kondisi input yg akan mengerjakan seluruh keperluan fungsional program.
ini memungkinkan analis system memperoleh kumpulan kondisi input yg akan mengerjakan seluruh keperluan fungsional program.
Tujuan metode ini mencari kesalaman pada:
a. Fungsi yg salah atau hilang
b. Kesalahan pada interface
c. Kesalahan pada struktur data atau akses database
d. Kesalahan performansi
e. Kesalahan inisialisasi dan tujuan akhir
Metode ini tidak terfokus pada struktur kontrol seperti pengujian whitebox
tetapi pada domain informasi.
tetapi pada domain informasi.
Pengujian dirancang untuk menjawab pertanyaan sbb:
a. Bagaimana validitas fungsional diuji?
b. Apa kelas input yg terbaik untuk uji coba yg baik?
c. Apakah sistem sangat peka terhadap nilai input tertentu?
d. Bagaimana jika kelas data yang terbatas dipisahkan?
e. Bagaimana volume data yg dapat ditoleransi oleh sistem?
f. Bagaimana pengaruh kombinasi data terhadap pengoperasian system?
1. EQUIVALENCE PARTITIONIN
Equivalence partitioning adalah metode pengujian black-box yg memecah
atau membagi domain input dari program ke dalam kelas-kelas data
sehingga test case dapat diperoleh. Perancangan test case equivalence partitioning berdasarkan evaluasi kelas equivalence untuk kondisi input yg menggambarkan kumpulan keadaan yg valid atau tidak. Kondisi input dapat berupa nilai numeric, range nilai, kumpulan nilai yg berhubungan atau kondisi Boolean.
Contoh :
atau membagi domain input dari program ke dalam kelas-kelas data
sehingga test case dapat diperoleh. Perancangan test case equivalence partitioning berdasarkan evaluasi kelas equivalence untuk kondisi input yg menggambarkan kumpulan keadaan yg valid atau tidak. Kondisi input dapat berupa nilai numeric, range nilai, kumpulan nilai yg berhubungan atau kondisi Boolean.
Contoh :
Pemeliharaan data untuk aplikasi bank yg sudah diotomatisasikan. Pemakai
dapat memutar nomor telepon bank dengan menggunakan mikro komputer
yg terhubung dengan password yg telah ditentukan dan diikuti dengan perintah-perintah.
dapat memutar nomor telepon bank dengan menggunakan mikro komputer
yg terhubung dengan password yg telah ditentukan dan diikuti dengan perintah-perintah.
Data yg diterima adalah : Kode area : kosong atau 3 digit Prefix : 3 digit atau tidak diawali 0 atau 1 Suffix : 4 digit Password : 6 digit alfanumerik Perintah : check, deposit, dll Selanjutnya kondisi input digabungkan dengan masing-masing data elemen dapat ditentukan sbb : Kode area : kondisi input, Boolean – kode area mungkin ada atau tidak kondisi input, range – nilai ditentukan antara 200 dan 999
Prefix : kondisi input range > 200 atau tidak diawali 0 atau 1 Suffix : kondisi input nilai 4 digit Password : kondisi input boolean – pw mungkin diperlukan atau tidak kondisi input nilai dengan 6 karakter string Perintah : kondisi input set berisi perintah-perintah yang telah didefinisikan.
contoh:
Prefix : kondisi input range > 200 atau tidak diawali 0 atau 1 Suffix : kondisi input nilai 4 digit Password : kondisi input boolean – pw mungkin diperlukan atau tidak kondisi input nilai dengan 6 karakter string Perintah : kondisi input set berisi perintah-perintah yang telah didefinisikan.
contoh:
2. Boundary value analysis : pemilihan kasus uji dengan mencari batas-batas ekstrim dari kelas data. Suatu teknik disain test cases yang berguna untuk melakukan pengujian terhadap nilai sekitar dari pusat domain masukan. Lebih mudahnya dikatakan sebagai suatu teknik yang hampir sama dengan Equivalance tetapi lebih spesifik karena yang diperiksa adalah nilai setiap batas dalam setiap pastisi.