(CCC-110)
MODUL 12
SOFTWARE QUALITY
DISUSUN OLEH
MALABAY,S.KOM,M.KOM
Ada banyak variasi dalam definisi kualitas perangkat lunak, tetapi jika memeriksa
definisi di atas, pertanyaan “kesesuaian untuk tujuan” apakah perangkat lunak
memenuhi tujuannya atau tidak, atau dalam istilah awam, “Apakah itu melakukan
apa yang seharusnya dilakukan?” Itulah karakteristik yang dilihat sebagai
pengguna akhir. Kualitas desain dan kualitas kesesuaian dengan desain tersebut
terkait dengan aspek internal perangkat lunak, beberapa di antaranya mungkin
dapat dilihat, seperti navigasi antarmuka pengguna, penempatan kontrol, dan
sebagainya. Lainnya, biasanya tidak melihat, seperti arsitektur kode, kualitas
kode, dan keamanan kode.
Ini model lainnya: siklus hidup kualitas. Model ini mungkin lebih dekat dengan
cara memandang kualitas. Artinya, kualitas dari sudut pandang pengguna akhir
saat benar-benar menggunakan perangkat lunak di kehidupan nyata dan bukan di
laboratorium. Itulah yang dimaksud dengan "konteks penggunaan". Misalnya,
pengujian kualitas perangkat lunak dapat terjadi pada server pengujian dan
memiliki hasil pengujian yang sempurna, tetapi pengguna di lingkungan mungkin
memiliki hasil yang berbeda;mungkin tidak dapat menemukan tombol atau
kontrol semudah penguji, atau mungkin ingin mencetak langsung dari tempat di
aplikasi yang tidak pernah dipikirkan.
Yang juga penting untuk diperhatikan pada Gambar 2 adalah penggunaan panah
dan garis putus-putus. Melihat bahwa ada hubungan antara kualitas internal,
kualitas eksternal dan kualitas yang digunakan. Yaitu, kualitas internal memiliki
pengaruh pada, tetapi tidak berkorelasi langsung dengan, kualitas eksternal dan
kualitas eksternal bergantung pada kualitas internal. Mari pikirkan tentang ini. Ini
berarti dapat memiliki kualitas kode yang bagus (kualitas internal) dan masih
memiliki kualitas eksternal yang buruk (perilaku perangkat lunak). Ini masuk akal
juga secara terbalik. Perangkat lunak mungkin berfungsi dengan baik, tetapi
kualitas internalnya bisa buruk.
Pada titik ini mungkin terengah-engah, bertanya-tanya bagaimana hal ini cocok
dengan CMMI dan kualitas proses. Organisasi mungkin disertifikasi sebagai
CMMI-Level 5 atau mungkin memeriksa organisasi untuk pengadaan dan
mengharuskan memiliki sertifikasi CMMI-5. kualitas proses memang sesuai
dengan skema kualitas keseluruhan dalam rekayasa perangkat lunak.
Dengan menggunakan aplikasi panah dan garis putus-putus yang sama seperti
pada diagram siklus hidup kualitas dapat melihat bahwa kualitas produk
bergantung pada kualitas proses dan kualitas proses memengaruhi kualitas produk.
Alasan menggunakan kata ajaib "pengaruh" adalah bahwa meskipun memiliki
proses pengujian kualitas perangkat lunak yang fantastis, berulang, dan lebih baik,
itu tidak berarti bahwa proses tersebut diarahkan untuk memecahkan masalah
yang tepat atau bahkan membangun produk yang tepat. Jadi, meskipun memiliki
proses yang sangat baik, mungkin masih memiliki produk yang biasa-biasa saja.
Sebaliknya, bisa mendapatkan kualitas produk yang bagus, tetapi prosesnya buruk.
Ingat sejarah CMMI, yang dikembangkan oleh Software Engineering Institute di
Carnegie Melon, dengan dana dari Departemen Pertahanan.
Beberapa faktor berkontribusi pada kualitas perangkat lunak; akan melihat aspek
penting kualitas perangkat lunak dan beberapa cara praktis untuk mengukurnya
sehingga dapat memastikan setiap bagian kode yang diterapkan ke dalam produksi
memenuhi persyaratannya.
Keandalan
Efisiensi kinerja
Keamanan
Pemeliharaan
Reliabilitas adalah risiko kegagalan perangkat lunak dan stabilitas program saat
terkena kondisi yang tidak terduga. Perangkat lunak yang andal memiliki waktu
henti yang minimal, integritas data yang baik, dan tidak ada kesalahan yang secara
langsung memengaruhi pengguna.
Efisiensi kinerja mengacu pada penggunaan sumber daya aplikasi dan bagaimana
hal itu memengaruhi skalabilitas, kepuasan pelanggan, dan waktu responsnya.
Arsitektur perangkat lunak, desain kode sumber, dan komponen arsitektur
individu semuanya berkontribusi pada efisiensi kinerja.
Tingkat Pengiriman
Tingkat pengiriman berarti seberapa sering versi baru perangkat lunak dikirimkan
ke pelanggan. Karena versi perangkat lunak baru biasanya disertai dengan
peningkatan yang berdampak langsung kepada pengguna, dapat menyimpulkan
bahwa tingkat pengiriman yang lebih tinggi sesuai dengan perangkat lunak
berkualitas lebih baik bagi pelanggan.
Testabilitas
Perangkat lunak berkualitas membutuhkan tingkat kemampuan pengujian yang
tinggi. Menemukan kesalahan dalam perangkat lunak dengan kemampuan uji
tinggi lebih mudah, membuat sistem seperti itu cenderung tidak mengandung
kesalahan saat dikirim ke pengguna akhir. Semakin sulit memberikan jaminan
kualitas, semakin sulit waktu yang dimiliki untuk memastikan bahwa aplikasi
berkualitas diterapkan ke dalam produksi.
Kegunaan
Antarmuka pengguna adalah satu-satunya bagian dari perangkat lunak yang
terlihat oleh pengguna, jadi sangat penting untuk memiliki UI yang baik.
Kesederhanaan dan kecepatan eksekusi tugas adalah dua faktor yang
menghasilkan UI yang lebih baik.
Dapat mengukur keamanan dengan menilai berapa lama waktu yang dibutuhkan
untuk menambal atau memperbaiki kerentanan perangkat lunak; dapat memeriksa
insiden keamanan aktual dari versi perangkat lunak sebelumnya, termasuk apakah
sistem telah dilanggar dan jika ada pelanggaran yang menyebabkan waktu henti
bagi pengguna. Semua masalah keamanan sebelumnya, tentu saja, harus ditangani
dalam rilis mendatang.
Saran yang dikeluarkan oleh NIST untuk kompleksitas siklomatik adalah bahwa
nilai di atas 10 menandakan basis kode yang berpotensi berisiko dalam hal
kemungkinan cacat. Alat pengujian perangkat lunak seperti Visual Studio dapat
mengukur metrik uji kompleksitas siklomatik.
Pikiran Penutup
Pergerakan menuju rilis perangkat lunak yang lebih cepat yang dipengaruhi oleh
pendekatan seperti Agile dan DevOps telah menghadirkan tantangan umum bagi
semua perusahaan pengembang perangkat lunak — bagaimana memastikan
Artikel ini telah menguraikan beberapa aspek yang menunjukkan kualitas aplikasi
apa pun, termasuk keandalan, kemampuan untuk diuji, pemeliharaan kode, dan
tingkat pengiriman.
Yang mendasari setiap faktor kualitas penting adalah pengujian perangkat lunak.
Pengujian adalah cara dasar untuk mengukur semua aspek kualitas perangkat
lunak, terlepas dari seberapa cepat perangkat lunak harus dirilis. Tekanan untuk
merilis perangkat lunak tepat waktu menuntut adopsi otomatisasi pengujian
perangkat lunak yang lebih banyak, terutama untuk pengujian GUI, yang bisa jadi
sulit.
Perangkat lunak berkualitas bebas bug atau cacat, dikirimkan tepat waktu dan
sesuai anggaran, memenuhi persyaratan dan / atau ekspektasi, dan dapat
dipelihara.
Konsistensi:
Perangkat lunak harus memiliki konsistensi di seluruh aplikasi atau produk.
Perangkat lunak tunggal bisa multi dimensi. Sangat penting bahwa semua dimensi
yang berbeda harus berperilaku secara konsisten.
Nilai uang:
Itu selalu penting untuk mengirimkan produk kepada pelanggan yang memiliki
nilai uang. Produk harus memenuhi spesifikasi persyaratan. Ini harus bekerja
seperti yang diharapkan, harus ramah pengguna; harus memberikan layanan yang
baik kepada pelanggan. Selain fitur yang disebutkan dalam spesifikasi
persyaratan, beberapa fungsi tambahan dapat diberikan kepada pelanggan yang
mungkin tidak terpikirkan. Fungsi tambahan ini harus membuat produk lebih
ramah pengguna dan mudah digunakan. Ini juga menambah nilai uang.
Kualitas Software
Produk kualitas perangkat lunak ditentukan dalam kaitannya dengan kesesuaian
tujuannya. Artinya, produk berkualitas melakukan persis apa yang diinginkan
pengguna. Untuk produk perangkat lunak, kesesuaian penggunaan umumnya
dijelaskan dalam hal pemenuhan persyaratan yang ditetapkan dalam dokumen
SRS. Meskipun "kesesuaian tujuan" adalah interpretasi kualitas yang memuaskan
untuk banyak perangkat seperti mobil, kipas meja, mesin gerinda, dll. Untuk
produk perangkat lunak, "kesesuaian tujuan" bukanlah definisi kualitas yang
sepenuhnya memuaskan.
C. Latihan
1. Metode utama yang digunakan oleh organisasi untuk memastikan bahwa
produk yang dikembangkan memiliki kualitas yang diinginkan Aktivitas siklik
yang melibatkan pengujian eksekusi dan koreksi kode, disebut ?
2. Sebutkan 2 jenis persyaratan perangkat lunak diklasifikasikan, dalam kualitas
perangkat lunak !
D. Kunci Jawaban
1. Sistem Manajemen Mutu.
2. Fungsional atau Non-Fungsional.
E. Daftar Pustaka
1. Roger S. Pressman, Software Engineering A Practioner's Apporach, 2014
2. Ian Sommerville, Software Engineering (10th Edition), 2015
3. https://xbosoft.com/definition-software-quality/
4. https://www.altexsoft.com/blog/engineering/what-software-quality-really-is-
and-the-metrics-you-can-use-to-measure-it/
5. http://tryqa.com/what-is-software-quality/
6. https://www.javatpoint.com/software-engineering-software-quality