Jaminan Kualitas Perangkat Lunak : Membangun Kualitas melalui Proses, Budaya, Standar, dan Software Review
Mengenal pentingnya jaminan kualitas perangkat lunak melalui proses, budaya, standar, dan software review dalam pengembangan software.
Perangkat lunak telah menjadi bagian penting dalam berbagai bidang, mulai dari pendidikan, bisnis, kesehatan, hingga sistem yang berkaitan dengan keselamatan manusia. Namun, software yang dapat berjalan belum tentu dapat dikatakan berkualitas. Software harus mampu memenuhi kebutuhan pengguna dan persyaratan yang telah ditentukan. Oleh karena itu, kualitas perlu diperhatikan sejak awal proses pengembangan, bukan hanya ketika software telah selesai dibuat.
Memahami Kualitas Perangkat Lunak
Software quality berkaitan dengan kesesuaian perangkat lunak terhadap persyaratan yang telah ditentukan serta kemampuannya memenuhi kebutuhan yang dinyatakan maupun tersirat dalam kondisi tertentu. Dengan demikian, software yang berkualitas tidak hanya mampu menjalankan fungsi, tetapi juga menghasilkan fungsi sesuai dengan kebutuhan pengguna.
Sebagai contoh, sebuah aplikasi pembayaran memiliki fitur transaksi. Jika transaksi dapat dilakukan tetapi jumlah pembayaran yang dihasilkan tidak sesuai, maka software tersebut memang dapat berjalan, tetapi masih memiliki masalah kualitas.
Error, Defect, dan Failure
Dalam pengembangan software terdapat tiga istilah yang saling berkaitan, yaitu:
- Error merupakan kesalahan manusia yang menghasilkan hasil yang tidak benar.
- Defect merupakan masalah atau kecacatan pada software yang dapat menyebabkan aplikasi menghasilkan hasil yang salah.
- Failure terjadi ketika software tidak mampu menjalankan fungsi yang seharusnya atau tidak dapat bekerja sesuai batas yang telah ditentukan.
Hubungan ketiganya dapat dipahami dengan urutan Error → Defect → Failure. Misalnya, programmer salah menuliskan kode. Kesalahan tersebut merupakan error. Ketika kesalahan tersebut masuk ke dalam program dan menjadi masalah pada software, terbentuk defect. Jika defect tersebut dijalankan dan menyebabkan pengguna mendapatkan hasil yang salah, maka terjadi failure.
Karena itu, defect harus ditemukan dan diperbaiki sebelum berkembang menjadi failure.
Sumber Kesalahan Tidak Hanya dari Coding
Kesalahan dapat terjadi pada berbagai tahap dalam software development lifecycle. Penyebabnya juga tidak hanya berasal dari proses coding. Beberapa sumber kesalahan yang umum adalah masalah dalam mendefinisikan requirements, komunikasi antara client dan developer, penyimpangan dari spesifikasi, kesalahan arsitektur dan desain, kesalahan coding, ketidaksesuaian terhadap prosedur, review dan testing yang tidak memadai, serta kesalahan dokumentasi.
Hal tersebut menunjukkan bahwa kualitas software merupakan tanggung jawab seluruh proses dan anggota tim, bukan hanya programmer.
Peran Software Quality Assurance
Salah satu pendekatan untuk menjaga kualitas adalah Software Quality Assurance (SQA). SQA merupakan serangkaian aktivitas yang dilakukan secara terencana dan sistematis untuk memberikan keyakinan bahwa proses pengembangan software telah sesuai dan mampu menghasilkan software yang berkualitas.
SQA tidak sama dengan software testing. Testing hanya merupakan salah satu bagian dari SQA. SQA juga mencakup berbagai aktivitas seperti penerapan metode teknis, review, penerapan standar, pengendalian perubahan, pengukuran, serta pencatatan dan pelaporan.
Faktor yang Memengaruhi Kualitas
Pemilihan praktik software engineering tidak dapat disamakan untuk setiap proyek. Beberapa faktor yang perlu diperhatikan adalah:
- Criticality, yaitu tingkat keseriusan dampak apabila software mengalami kegagalan.
- Cost of fixing errors, yaitu biaya yang diperlukan untuk memperbaiki kesalahan.
- Regulations, yaitu aturan atau regulasi yang harus dipenuhi.
- Project size, yaitu ukuran dan kompleksitas proyek.
- Communication, yaitu komunikasi antara developer, client, manager, dan pihak terkait.
- Organization culture, yaitu budaya organisasi dalam menerapkan kualitas.
Pada software yang bersifat critical, kualitas menjadi semakin penting karena kegagalan dapat memberikan dampak serius terhadap pengguna maupun lingkungan, terutama dalam aspek safety, performance, dan security.
Kualitas Dimulai dari Proses
Semakin matang proses pengembangan software, semakin sedikit kesalahan yang diperkenalkan ke dalam software development lifecycle. Oleh karena itu, membangun software berkualitas bukan sekadar mencari kesalahan setelah software selesai dibuat. Kualitas perlu dibangun sejak awal melalui proses yang terstruktur, pemahaman terhadap sumber kesalahan, penerapan SQA, serta pemilihan praktik yang sesuai dengan karakteristik proyek.
Pada akhirnya, software yang berkualitas bukan hanya software yang dapat berjalan, tetapi software yang dikembangkan melalui proses yang mampu menjaga kualitas dari awal hingga akhir.