Jelaskan point penialian untuk 2 dari jenis metric, perangkat lunak.
Jawab :
· METRIC PROGRAM ( SOURCE KODE )
· Complexity Metrics (Metrik Kompleksitas):
· Cyclomatic Complexity: Mengukur kompleksitas struktural kode berdasarkan jumlah jalur yang berbeda dalam kode sumber.
· Halstead Complexity Measures: Menggunakan jumlah operator, operand, dan ukuran unik untuk mengukur kompleksitas kode.
· Size Metrics (Metrik Ukuran):
· Lines of Code (LOC): Menghitung jumlah baris kode, yang dapat memberikan gambaran tentang ukuran program.
· Function Points: Mengukur fungsionalitas dari perspektif pengguna.
· Quality Metrics (Metrik Kualitas):
· Code Coverage: Mengukur seberapa banyak kode yang telah diuji.
· Code Duplication: Menentukan jumlah kode duplikat yang ada.
· Maintainability Index: Memberikan nilai terhadap kemudahan pemeliharaan kode.
· Performance Metrics (Metrik Kinerja):
· Execution Time: Waktu yang dibutuhkan oleh program untuk menyelesaikan tugas tertentu.
· Memory Usage: Penggunaan memori oleh program selama proses eksekusi.
· Security Metrics (Metrik Keamanan):
· Vulnerabilities Count: Mengukur jumlah kerentanan keamanan yang teridentifikasi dalam program.
· Security Testing Coverage: Tingkat cakupan pengujian keamanan terhadap program.
· Maintainability Metrics (Metrik Pemeliharaan):
· Change Request Count: Jumlah permintaan perubahan atau pemeliharaan.
· Mean Time to Repair (MTTR): Waktu rata-rata yang dibutuhkan untuk memperbaiki bug atau masalah.
· User-Centric Metrics (Metrik Pengguna):
· User Satisfaction Surveys: Pengukuran kepuasan pengguna terhadap program.
·
User
Engagement Metrics: Misalnya, jumlah pengguna aktif, frekuensi penggunaan, dll.
Poin-poin
penilaian ini membantu dalam mengevaluasi berbagai aspek dari program perangkat
lunak, dari kompleksitas kode hingga pengalaman pengguna, memungkinkan
pengembang untuk memahami dan meningkatkan kualitas serta kinerja program yang
dibuat.
·
METRICS PENGUJIAN
·
Cakupan
Pengujian (Testing Coverage):
·
Code
Coverage: Mengukur seberapa banyak kode yang telah diuji, seperti coverage pada
level statement, branch, path, atau function.
·
Requirement
Coverage: Memastikan bahwa semua persyaratan fungsional dan non-fungsional
telah diuji.
·
Kualitas
Pengujian:
·
Defect
Density: Jumlah bug atau kesalahan yang ditemukan per satuan ukuran (misalnya,
per baris kode atau per fungsi).
·
Defect
Leakage: Jumlah bug yang terlewat atau terjadi setelah rilis perangkat lunak.
·
Efisiensi
Pengujian:
·
Time
to Execute Tests: Waktu yang dibutuhkan untuk mengeksekusi keseluruhan suite
pengujian.
·
Resource
Utilization: Penggunaan sumber daya (misalnya, CPU, memori) selama pengujian.
Kemampuan Pengulangan (Reusability):
·
Test
Reusability: Sejauh mana pengujian dapat digunakan kembali untuk skenario atau
komponen yang serupa.
·
Modularity:
Keterkaitan dan kemandirian dari setiap unit pengujian.
·
Efektivitas
Deteksi Bug:
·
Defect
Discovery Rate: Jumlah bug yang ditemukan per unit waktu selama pengujian.
·
Severity
of Bugs Found: Tingkat keparahan bug yang berhasil ditemukan.
·
Coverage
Platform (Platform Cakupan):
·
Cross-platform
Testing: Seberapa baik pengujian telah dilakukan di berbagai platform (sistem
operasi, perangkat, dll.).
·
Automatisasi
Pengujian:
·
Test
Automation Coverage: Seberapa banyak dari pengujian yang telah diotomatisasi
dibandingkan dengan yang masih memerlukan pengujian manual.
·
Kesiapan
Rilis (Release Readiness):
·
Exit
Criteria: Kriteria yang harus dipenuhi sebelum memutuskan apakah produk siap
untuk dirilis atau tidak.
Poin-poin ini membantu dalam mengevaluasi
cakupan, kualitas, efisiensi, dan kesiapan rilis dari pengujian perangkat
lunak. Dengan menggunakan metrik ini, tim pengujian dapat menilai keefektifan
upaya pengujian mereka dan memastikan bahwa produk yang dihasilkan telah diuji
secara menyeluruh sebelum dirilis ke pasar.
·
Kombinasi
tidak boleh sama dengan anggota kelompok anda
Jawab
·
Kombinasi dari metrics program dan
metrics pengujian ?
Kombinasi metric program dan metric pengujian
dapat memberikan gambaran yang lengkap tentang kualitas, kinerja, dan
kehandalan perangkat lunak yang sedang dikembangkan. Ini memungkinkan tim
pengembangan untuk memahami tidak hanya bagaimana kualitas kode tersebut,
tetapi juga sejauh mana pengujian telah dilakukan dan seberapa baik pengujian
tersebut meliputi aspek-aspek kunci dari perangkat lunak tersebut.
Beberapa cara untuk menggabungkan metric
program dan metric pengujian termasuk:
·
Korelasi
antara Coverage Pengujian dan Metric Program:
Melihat bagaimana cakupan pengujian (seperti code coverage) berkorelasi
dengan metrik program seperti complexity metrics atau jumlah bug yang
ditemukan. Jika terdapat hubungan antara cakupan pengujian yang lebih baik
dengan kode yang lebih sederhana atau lebih sedikit bug, itu dapat menunjukkan
efektivitas pengujian.
·
Penggunaan
Defect Density dan Quality Metrics:
Membandingkan tingkat defect density dengan
metrik kualitas kode. Jika terdapat keterkaitan antara kode yang memiliki
kompleksitas rendah dan defect density yang rendah, itu bisa menunjukkan bahwa
pengujian telah efektif dalam mengidentifikasi masalah.
·
Efisiensi
Pengujian dan Performa Program:
Membandingkan waktu eksekusi pengujian dengan
metrik kinerja program. Misalnya, apakah ada korelasi antara cakupan pengujian
yang baik dengan kinerja yang lebih baik dari segi waktu eksekusi atau
penggunaan memori yang lebih efisien.
·
Pengukuran
Reusabilitas Pengujian dan Modularity Code:
Melihat sejauh mana unit pengujian dapat
digunakan kembali dan sejauh mana kode memiliki struktur yang modular. Hal ini
dapat memberikan gambaran tentang seberapa baik kode dirancang untuk pengujian
dan pemeliharaan yang lebih mudah.
·
Pengujian
terhadap Kebutuhan Fungsional dan Non-Fungsional:
Membandingkan
coverage pengujian terhadap persyaratan fungsional dan non-fungsional. Ini
membantu memastikan bahwa pengujian mencakup semua fitur dan kebutuhan yang
diharapkan.
Dengan mengintegrasikan metric program dan
metric pengujian, tim pengembangan dapat memperoleh pemahaman yang lebih
holistik tentang kualitas perangkat lunak yang sedang dikembangkan dan
efektivitas pengujian yang dilakukan. Hal ini memungkinkan mereka untuk membuat
keputusan yang lebih baik dalam pengembangan, perbaikan, dan peningkatan
kualitas perangkat lunak.