Satu hal yang sering terlewatkan dalam pengembangan perangkat lunak — Quality

Shazi Awaludin
4 min readJan 13, 2024

--

Photo by Annie Spratt on Unsplash

Seperti apapun yang dibuat dan dikembangkan, software juga selalu memiliki tujuannya kenapa ia dikembangkan. Kita tahu software yang bagus adalah yang dapat menjawab masalah yang dihadapi oleh khalayak umum, atau pengguna spesifik. Pernah ga sih mendengar istilah bahwa software yang bagus adalah yang efficient, usable, reliable, secure, adaptable, accurate, robust, reusable, maintainable, etc whatever. Okay, kita tahu semua itu. Aplikasi yang bagus adala yang punya komponen-komponen itu. Tapi dikatakan bagus itu yang bagaimana sih sebenarnya? yang efisiensinya atau securitynya seperti apa? Nah ini yang sering terlewatkan. Pengukuran dan bagaimana mengukur hal-hal tersebut tidak didefinisikan dengan baik sehingga aspek tersebut tidak jelas apakah terpenuhi atau tidak.

Mari kita buka mata dan pikiran kita bahwa pengembangan perangkat lunak tidak hanya tentang menuliskan kode.

Aku akan mulai bagian ini dengan bertanya, apakah kamu pernah memikirkan bagaimana barang elektronik dan kendaraan bermotor dijual dan dapat dipastikan berfungsi ketika digunakan? lalu dikasih garansi pula. Bagaimana mereka bisa membuat barang-barang itu lalu dijual dengan kondisi yang sesuai dengan ekspektasi konsumen?

Jawabannya ada pada proses pengujian yang mereka lakukan. Kamu pasti perna menemukan stiker semacam berikut ini semasa hidupmu:

Stiker tersebut menandakan bahwa produk tersebut telah melewati tahap pengujian dan pengecekan kualitas yang biasa disebut dengan Quality Control dan dipastikan telah memenuhi standar kualitas yang dibutuhkan oleh produk tersebut.

Kualitas

Ini adalah kata kuncinya, bukan hanya sesuatu yang bentuknya fisik yang perlu punya kualitas, tapi software juga ya. Apa sih kualitas itu?

Kualitas dalam konteks pengembangan perangkat lunak bisa kita definisikan sebagai

Pemenuhan terhadap kebutuhan dan ekspektasi customer atau pengguna sehubungan dengan fungsionalitas, desain, keandalan (reliablilty), dan harga dari suatu produk.

Aspek kualitas yang diperlukan oleh suatu software diantaranya adalah berikut ini:

  • Reliability
  • Understandability
  • Modifiability
  • Usability
  • Testability
  • Portability
  • Efficiency

Siapa yang bertanggung jawab untuk memastikan semua itu?
Yang bertanggung jawab untuk memastikan semua itu adalah mereka yang berada dalam tim quality. Tapi kalau gaada, berarti dev harus merangkap pekerjaannya :D

Tim quality memastikan apakah software sudah memenuhi kriteria yang ditentukan atau belum. Di lain sisi tim development perlu untuk mendengarkan saran dari mereka dan apa saja yang mereka dapatkan selama masih dalam scope (lingkup) pengembangan saat itu.

Bagaiamana tim quality ini bisa memastikan apakah software telah memenuhi kriteria atau belum?
Pengujian, yap siapapun yang ada di dalam tim quality akan mencoba menguji software yang dikembangkan dengan berbagai teknik untuk menemukan defect (kecacatan) yang terlihat maupun tidak terlihat dari softawre tersebut. Bahkan bukan hanya softwarenya, tapi juga requirementnya diuji apakah ada gap atau semacamnya.

Bagaimana mereka menguji suatu software? apakah ditelusurin asal klik klik terus nemu defect atau bug?
yap agak sesuai, tapi tidak hanya sampai di situ. Mereka punya skenario dan teknik-teknik pengujian tergantung dari tujuan yang ingin dicapai atau dibutuhkan pada saat testing dilakukan.

Berikut ini aku list ya beberapa teknik pengujian yang biasa dilakuin. kalau secara garis besar akan terbagi jadi 3. Yaitu Functional testing, Non-Functional testing, dan Maintenance testing.

Functional Testing

  • Unit testing
  • Integration Testing
  • Smoke Testing
  • UAT (User Acceptance Testing)
  • dll

Non-Functional Testing

  • Performance testing
  • Security testing
  • Load testing
  • Usability testing
  • dll

Maintenance Testing

  • Regression
  • Maintenance

Sebenernya masih banyak lagi yang lainnya. Tapi perlu dicatat bahwa tidak semua jenis testing dapat diaplikasikan pada suatu perangkat lunak atau scope project. Jadi perlu diperhatikan apakah jenis testing tersebut cocok untuk software yang dikembangkan.

Benefit

Lah terus kenapa sih kita perlu melakukan testing itu? Heyyyy ingat! Kualitassss. Karena benefit utamanya sendiri dari testing ini adalah:

  • Cost-effective — Semakin cepat defect ditemukan, akan lebih murah juga biaya yang perlu dikeluarkan untuk memperbaikinya. Akan lebih murah kalau bug diperbaiki pada fase development dibanding ketika sudah ada di production, karena bisa aja menimbulkan kerugian finansial dan turunnya kepercayaan pelangan. Apalagi jika defect ditemukan sebelum fase pengembangan, akan lebih mura lagi untuk nguba requirement dibanding minta developer perbaiki kode yang udah ditulis.
  • Security — Orang menggunakan layanan itu butuh keamanan, kalau datanya ga aman, orang agakan percaya dan gabakal mau pake software tersebut. Mereka gaakan mau mengambil sesuatu yang memiliki risiko.
  • Product quality — Berkualitas, untuk memastikan produk memenui kebutuhan pengguna.
  • Customer Satisfaction — Tujuan utama produk dikembangkan itu aku rasa untuk memberikan kepuasan untuk setiap pelanggannya. Testing disini berguna memastikan bawa pengguna dapat pengalaman terbaiknya dalam menggunakan software atau produk yang dikembangkan.

Jadi ini adalah permulaan untuk masuk ke dalam sesuatu yang sering dilupakan ini. Quality. Aku akan membahas banyak yang berkaitan tentang “quality ” dan segala macamnya serta hal yang lebih teknis di post selanjutnya. Jadi stay tune and subscribe yaa jika ingin terus mengetahui perkembangannya.

Makasih telah membaca!

Jika kamu merasa ada sesuatu yang salah atau punya pertanyaan, jangan ragu untuk memberi saya tanggapan ya!

--

--