Seputar Quality Assurance
Overview
Terlepas dari perangkat lunak, setiap pembuatan suatu produk apapun, hendaknya diperlukan yang namanya Quality Assurance.
Quality Asssurance (QA) adalah setiap proses sistematis untuk menentukan apakah suatu produk atau layanan memenuhi persyaratan yang ditentukan atau tidak. QA mencegah suatu produk atau layanan bebas dari kesalahan/cacat sebelum bebas digunakan oleh pelanggan. Dalam hal pengembangan perangkat lunak, QA berusaha mencegah kode atau produk bebas dari bug dan berfungsi sebagaimana mestinya.
Code Review vs QA Review
Secara umum kedua proses saling melengkapi satu sama lain.
Pada fase code review kita fokus kepada kode implementasi seperti Unit Test, Instrumented Test, Logic Algoritma yang digunakan, apakah sudah mengikuti konvesi best practice atau standar tim, dll. Hal ini menyebabkan dapat dibilang code review lebih mengarah kepada Developer.
Sedangkan, QA Review lebih mengarah kepada pelanggan nantinya. QA memperlakukan produk perangkat lunak secara black box, tidak memperdulikan implementasi kode. QA mencoba produk apakah berjalan sebagaimana mestinya jika digunakan, memposisikan diri sebagai pelanggan yang nantinya akan memakai produk ini. QA boleh saja tidak memiliki kemampuan tentang kode.
Namun, QA ada juga yang memperhatikan kode, melihat bagian mana yang dapat menyebabkan terjadinya bug dan/atau membuat test yang nantinya dijalankan secara otomatis.
Dari penjelasan diatas, bisa dibilang secara umum code review dilakukan saat produk belum jadi seutuhnya, masih berupa bagian-bagian fitur terpisah yang di test secara tersendiri. Namun, ketika sudah digabungkan dengan fitur-fitur lain membentuk suatu sistem, barulah dilakukan QA apakah sistem tersebut berjalan semestinya.
QA sebelum Sprint Review
Sebelum mendemokan hasil produk kepada PO di sesi sprint review, hendaknya produk kita sudah layak dipresentasikan, bebas dari bug, memenuhi product backlog, dan memenuhi sprint goal.
Salah satu bug yang saya temukan ketika mencoba-coba produk aplikasi yang kami buat (tldr: Pencatatan Transaksi Barang) adalah ketika awalnya memasukan suatu Transaksi dengan harga lebih dari 10 Juta, namun ketika ingin melihat detail dari Transaksi tersebut harga yang dimunculkan ternyata berupa angka yang dikonversi secara ekponen
Masih juga ketika melihat detail dari Transaksi yang sudah dimasukan, terdapat kesalahan ketika melakukan parse dari Double ke String yang berujung kepada bug harga yang berbeda.
Bagaimana melakukan QA?
Saya melakukan QA tersebut dengan mencoba secara manual. Karena aplikasi tersebut adalah aplikasi android, saya mencoba di HP saya dan melakukan serangkaian proses hendaknya seseorang ingin melakukan pencatatan transaksi barang yang alurnya sudah dibuat sedemikian rupa cukup intuitif.
Jika hal-hal yang sesuai alur sudah benar, mungkin dilanjutkan dengan beberapa kasus-kasus yang agak ekstrim yang bentuknya bisa bermacam-macam terkandung kasus aplikasi yang akan di test. Mungkin contoh pada kasus saya bagaimana jika harganya dimasukkan nilai negatif, stok dimasukkan kurang sama dengan 0, Terdapat transaksi keluar yang jumlahnya melebihi stok dari transaksi masuk, dsb.