Software Quality Assurance – Pentingnya detail dan komunikasi dibalik pengembangan software

Berminat pada bidang teknologi informasi, Mega (@anamegasari) memilih untuk berkuliah di Jurusan Teknologi Informasi di Universitas Gadjah Mada. Menurutnya, saat itu teknologi informasi adalah bidang yang berprospek besar, melihat boomingnya aplikasi Path dan disusul oleh berbagai macam aplikasi lainnya yang menjadi tren di luar negeri. Kala itu, Mega memilih jurusan yang ditekuninya dengan penuh pertimbangan. Keputusannya masuk Jurusan Teknik Informatika memperkenalkannya tentang pekerjaan sebagai Software Quality Assurance yang kini dijabatnya di sebuah startup di Jakarta. 

Jurusan TI Berprospek Tinggi

Background studiku adalah Teknologi Informasi (TI) di UGM. Alasan aku berkuliah di Jurusan TI karena aku berminat di bidang ini. 

Sejujurnya, waktu itu aku belum ada gambaran mau kuliah di jurusan apa. Dari semua jurusan yang ada, aku mempertimbangkan kira-kira jurusan mana yang bisa buat aku betah. Setelah itu, aku lihat prospek dari masing-masing jurusan itu. Kebetulan waktu itu, awal tahun 2014 Aplikasi Path sempat booming di Indonesia. Di luar negeri itu, bidang TI sedang berkembang pesat, aplikasi-aplikasi mobile udah pada mulai naik daun. Biasanya apa yang naik daun di luar negeri, beberapa tahun kemudian akan ikutan masuk ke Indonesia. Ngeliat peluang ini, aku akhirnya memilih masuk ke Jurusan TI. 

Kebetulan, pekerjaanku sama background studiku pas banget karena sama-sama di bidang teknologi informasi. Sekarang aku kerja di sebuah startup yang erat sama dunia TI.

Kesuksesan Teman Mendorong untuk Maju

Pekerjaan sebagai Software Quality Assurance mungkin asing di telinga orang awam. Tapi, aku  udah tahu tentang keberadaan pekerjaan ini karena quality assurance itu bagian dari proses pengembangan software. Tapi awalnya aku emang nggak ngira kalau aku akhirnya bakal kerja di bidang quality assurance karena waktu itu, dari pilihan kerjaan yang ada, aku belum bisa memilih yang mana dan aku membiarkan semuanya ngalir aja. Ternyata, aku nyamannya di sini.

Awal mula aku bisa kerja jadi Software Quality Assurance itu begini. Ceritanya, aku habis selesai yudisium. Kampusku punya semacam media sosial sendiri untuk update info-info lowongan kerja terbaru. Sebenernya, website nya juga ada, tapi kebetulan waktu itu aku belum aware. Aku baru masuk, nih dan aku belum ada kepikiran mau ikut hiring apa-apa. Tapi, melihat teman-temanku yang sigap udah pada langsung dapet kerjaan, aku jadi minder sendiri. 

Akhirnya aku coba cari di medsos kampus dan di sana aku nemu lowongan untuk berbagai posisi. Kalau ada lowongan, aku bakal lihat dulu perusahaan itu butuhnya apa, tapi waktu itu karena aku merasa nama perusahaannya terkenal dan sudah familiar, makanya aku langsung melamar. Setelah itu, aku dikasih tanggal untuk proses selanjutnya, mulai dari tes logika, interview, lalu ada focus grup discussion

Software Testing adalah Makanan Sehari-Hari

Biasanya, untuk menentukan apa yang kita kerjain, akan ada sprint review dua minggu sekali. Kita pakai sistem agile. Tiap dua minggu, kita rapat untuk bahas apa yang mau kita kerjain dan dari situ tiap orang akan ngambil kerjaan sendiri-sendiri, jadi kerjaannya nggak diassign (ditugaskan). Memang itu kesadaran dan tanggung jawab kita sendiri tentang apa yang mau kita kerjakan. Di dalam meeting itu, hadir berbagai anggota tim, ada product owner, developer, dan quality assurance juga. 

Selain itu, tiap hari biasanya juga ada daily meeting. Dalam daily meeting nanti akan ditentukan mau ngerjain apa, kemarin udah ngerjain apa, lalu hambatannya apa. 

Jadi alur kerjanya adalah dimulai dari task yang akan dikerjakan oleh developer, lalu setelah selesai bakal dites sama quality assurance, terus nanti quality assurance akan memberikan feedback kepada seluruh bagian tim yang terlibat dalam sprint review dan planning (contohnya UI/UX designer, graphic designer, developer) supaya nanti bisa diimprove lagi.

Nah, quality assurance itu berperan di bagian mengevaluasi skenario, mengidentifikasi resiko, dan bersama tim membahas acceptance criteria. Misalnya bagian login, apa yang harus di-input-kan, apakah harus huruf uppercase, dan lain sebagainya. Jadi, kita sebagai quality assurance juga ikut menentukan kriteria-kriteria kayak gitu.

Pada akhir pengerjaan task, kita memastikan dari yang kita diskusikan tadi, apakah sudah sesuai atau belum. Terus ketika sudah selesai, kita juga memastikan apakah ada bug-bug lain yang bikin error, apakah ada typo (salah ketik), atau mungkin ada button yang nggak bekerja. 

Menambah Skill Komunikasi dan Attention to The Detail

Skill yang aku bangun dengan bekerja sebagai software quality assurance itu attention to the detail, mencoba benar-benar memahami alur proses sebuah sistem itu seperti apa, jadi dari A ke B ke C. Hal ini penting karena dari situ kita tahu kemungkinan error nya di mana. Jadi, kemampuan untuk attention to the detail dan memahami tentang produknya memang yang dibutuhkan banget. 

Sementara itu, pemakaian software atau tools untuk membantu pekerjaan quality assurance untungnya saat ini sudah banyak tersedia lewat Google. Tapi, untuk dapetin logika softwarenya harus bisa attention to the detail, berani komunikasi, pede ketika presentasi atau ketika minta masukan. Aku harus mengkomunikasikan concern nya di sebelah mana, dan kenapa concernnya di situ. Karena pada beberapa kasus, siapa tahu itu bukan bug, ya mungkin memang dibuat seperti itu dan ada alasannya. 

Perlu Teamwork yang Kuat

Karena quality assurance bertugas memastikan software/sistem berjalan sesuai yang dikehendaki, maka tantangannya adalah saat nggak ada dokumentasi tentang software/sistem tersebut. Mungkin untuk software yang dibuat baru, kita bisa mendesain dan membuat dokumentasinya sendiri karena memang kita turut serta untuk membuat produk itu. Beda kalau kita ngetes software yang sudah ada dan itu minim dokumentasi, terkadang emang jadi membuat kita bertanya-tanya tentang banyak hal kayak apakah skenario ini bisa diterapkan, apakah tes tertentu bisa dipakai, atau memang sistemnya terbatas seperti ini.

Padahal, biasanya pembuatan software/sistem yang ngerjain nggak cuma satu orang aja. Misalkan hari ini yang megang si A dan besok yang megang si B, terus tiap orang memiliki style coding yang berbeda juga. Sebenernya, selama alurnya sama, itu nggak jadi masalah. Nah, yang bikin pusing itu kalau nggak ada dokumentasinya, kadang kita sering bingung. Bahkan developernya sendiri juga sering bingung untuk membaca software yang sebelumnya. 

Kalau developer software yang sebelumnya masih ada, mungkin bisa kita tanyain langsung. Kalau nggak, ya kita harus baca dokumentasi yang ada dan itu memang butuh waktu. Biasanya, dokumentasi testing ada, tapi kalau dokumentasi produk belum tentu ada. Mau nggak mau, kita harus mengais-ngais informasi yang ada, mungkin nggak akan dapet secara spesifik, tapi akan mendapatkan gambaran secara garis besarnya. Kadang harus menanyakan juga ke product ownernya sendiri karena mereka lebih tahu tentang produk itu. Kita biasanya juga dibantu sama developernya untuk membaca program dan mengenali sifatnya itu seperti apa. Memang perlu teamwork yang kuat untuk menjalankan tugas ini.

Tempat Kerja Asyik Tanpa Ada yang Pelit Ilmu

Lingkungan kerjaanku itu hangat banget karena sebenarnya dari segi usia juga rentangnya nggak beda-beda jauh. Kebanyakan orang yang kerja di sini usianya 20-an. Orangnya pada welcoming banget. Mereka sering bantu anak-anak baru, apalagi yang fresh graduate. Ketika mereka baru pertama kali boarding, mereka akan dibantu dalam mengerjakan tugas. Yang paling kerasa itu bahwa mereka mendukung yang namanya pembelajaran, jadi mereka dengan senang hati membagikan pengalaman-pengalaman mereka. Itu memang yang membuat nyaman. 

Selain itu, benefit dari kerja di sini (perusahaan startup) adalah aku jadi deket sama orang-orang, sih karena emang banyak orang-orang yang seumuran di tempat kerja ya. Bahkan dengan kolega lain yang level jabatannya lebih tinggi dan lebih tua, ngobrolnya masih tetep enak.

Benefit lainnya adalah dengan aku menjadi software quality assurance ini, aku merasa ikut serta dalam mengembangkan software/sistem yang aku tes, jadi istilahnya kayak dia itu anak aku gitu. Karena kita bener-bener pay attention to the detail banget, kita jadi tahu sifat dia gimana, behavior dia gimana, trus dia kurangnya gimana.

Pengetahuan Dasar Testing dan Kemampuan Berkomunikasi adalah Bekal Penting

Kebetulan banget ketika join ke perusahaan tempatku kerja, aku adalah fresh graduate yang benar-benar belum punya skill maupun pengalaman di bidang testing. Tapi setidaknya waktu itu aku tahu tentang fundamental testing, tester itu seperti apa, dan pengetahuan dasar tentang tools testing. Detailnya aku pelajari ketika benar-benar handle proyek saat mulai kerja.

Pengetahuan tentang itu semua aku dapat biasanya dari Hackerrank untuk basic coding, terus di LinkedIn Learning juga bisa belajar banyak tentang fundamental testing, apa aja yang harus diperhatikan. Lalu, di Udemy juga banyak banget online course tentang software testing.

Selain pengetahuan fundamental testing, untuk jadi software quality assurance, kalian harus berani speak up dan presentasi karena salah satu kunci dalam mengembangkan sistem/software adalah dengan komunikasi yang lancar dan baik dalam tim. Tugas kita adalah menyampaikan problem yang ada dan apa yang harus kita perbaiki kalau ada kekurangan. 

Jadi, waktu interview pun aku mengandalkan diriku dengan presentasi apa adanya. Ketika aku kurang paham atau kurang tahu dengan topik yang diberikan, aku mencoba mencari tahu itu. Puji Tuhan kemampuan komunikasi yang baik itu membantu.

Untuk mencari pekerjaan sebagai software quality assurance, di LinkedIn banyak banget peluangnya. Di situ banyak perusahaan yang akan ngepost lowongan kerja. Selain LinkedIn, ada juga platform yang namanya Tech In Asia, dia kebetulan fokus kepada industri teknologi gitu. Saranku, pay attention apa yang menjadi requirement sebuah lowongan kerja, tapi jangan minder duluan karena bukan berarti akan berpatok di situ juga.

Sebagai software quality assurance pemula, kalian bisa lihat LinkedIn Learning juga karena kebetulan di sana banyak juga beberapa figur tester yang akan share knowledge, biasanya mereka bisa difollow gitu seperti halnya di IG. Waktu mereka sharing pengalaman mereka, kita bisa catat tips mereka, in case ke depan kalau kita ada problem yang sama, itu akan bener-bener membantu. 

Usahakan juga ikut berbagai meetup dengan para tester atau komunitas tester. Dengan begitu, kita jadi tahu apakah problem kita sama dengan mereka, dan kalau emang sama problemnya, kita bisa resolve bersama. Selain itu, kita jadi bisa update apa, sih yang lagi menjadi concern para tester sekarang. Dan yang penting sebenarnya adalah pede aja untuk handle proyek. Karena ketika mau belajar testing, banyak pendekatan dan metode testing yang bisa digunakan. Oleh karena itu proses pembelajaran akan lebih terasa jika langsung hands on project.