QA Automation Engineer – Semua perusahaan dari yang kecil sampai yang unicorn berlomba-lomba terus membuat berbagai aplikasi.
Dari aplikasi-aplikasi yang sudah terkenal dan digunakan masyarakat luas seperti Ovo, Grab, Go-Pay, Dana, LinkAja, Traveloka, sampai yang nyeleneh seperti aplikasi prank kentut juga dibuat !
Sebenarnya kunci agar perusahaan bisa terus maju di tengah tren digitalisasi besar-besaran seperti ini adalah perusahaan harus bisa bergerak lebih cepat dari kompetitor. Harus lebih cepat dalam arti seperti apa ?
Kenapa ini penting ? Coba kita lihat kasus Gojek vs Uber 1-2 tahun yang lalu.
Uber adalah perusahaan raksasa yang sudah beroperasi beberapa tahun lebih dulu, sudah beroperasi di puluhan negara, dan memiliki sokongan dana yang jauh lebih besar dari Gojek. Ibarat Gajah vs Semut, seharusnya dengan mudah Uber dapat mengalahkan Gojek. Tapi ternyata tidak, justru Uber yang kalah dari persaingan.
Kenapa bisa ? Karena Gojek jauh lebih cepat segala-galanya dari Uber. Gojek dengan cepat memahami kebutuhan customer di Indonesia dan dengan cepat merilis fitur dan aplikasi yang benar-benar solve that problem !
Dalam rentang waktu yang sama, Gojek merilis Go-Pay, Go-Food, Go-Send, Go-Massage, Go-Auto, dan beberapa Go lainnya, sedangkan Uber hanya berhasil merilis Uber Motor saja. Alhasil, customer di Indonesia lebih memilih Go-Jek.
- saat itu ada juga selentingan UBER pergi karena perlu nilai perusahaan baik dan sebagainya untuk menghaluskan kesan sampai akhirnya menyerahkan ke GRAB. (bisa baca https://www.cnnindonesia.com/teknologi/20180325200256-185-285800/uber-resmi-serahkan-bisnis-ke-grab)
Banyak lagi contoh kasus lainnya seperti Bank BTPN yang tidak terlalu terkenal tiba-tiba bisa meledak & booming dengan aplikasi Jenius, atau Bioskop CGV yang tiba-tiba menjamur di seluruh Indonesia karena lebih cepat men-digitalisasi sistem pesan tiket bioskopnya dibanding kompetitornya, XXI.
Percayalah, ini bukan lagi tren. Tapi memang seluruh dunia sedang bertransformasi ke era digital. Perusahaan yang ingin menang, yang ingin maju, yang ingin mengalahkan kompetitornya, harus melakukan ini.
Agar perusahaan bisa sangat cepat dalam pembuatan aplikasi, diperlukan komposisi tim yang tepat. Programmer, Product Manager, dan QA Engineer merupakan tim yang wajib ada.
Tugas-tugasnya adalah sebagai berikut :
Orang yang bertugas memahami kebutuhan Customer / User / Stakeholder, lalu menuangkannya dalam bentuk requirement yang nantinya akan dikerjakan oleh Programmer.
Orang yang membuat ( coding ) aplikasi / fitur berdasarkan requirement dari Product Manager.
Orang yang menguji apakah aplikasi / fitur yang dibuat programmer sudah sesuai requirement awal dan tidak ada bug.
Mungkin Anda bertanya seperti ini “Sebentar, kalau Programmer mungkin saya sudah cukup paham kerjaannya. Tapi QA Engineer masih belum cukup terbayang. Boleh dijelaskan lebih lanjut ?”
Baik, QA Engineer ini memang terhitung cukup awam di kalangan masyarakat, padahal kerjaan mereka sama pentingnya dengan para Programmer. Seperti apa sih gambaran kerjaan mereka ini ?
Kita ambil contoh Programmer akan membuat fitur Login User. Nah QA Engineer tugasnya membuat skenario-skenario untuk menyatakan bahwa fitur Login tersebut sudah sesuai dengan kebutuhan. Contoh skenarionya adalah sbb :
Setelah fitur Login jadi, maka QA Engineer akan melakukan testing manual ( melakukan klik-klik, mengisi email dan password, melihat sendiri dengan mata apakah ada pesan error, dll ) sesuai skenario-skenario di atas.
Apabila ada yang masih belum sesuai, maka codingan akan dikembalikan lagi ke tim Programmer untuk diperbaiki. Proses akan terus diulang-ulang sampai seluruh skenario sudah dinyatakan lolos.
QA Engineer wajib ada, untuk memastikan para Programmer tidak ngoding secara asal sehingga program yang jelek dan banyak bug / error bisa lolos ke tangan Customer. QA Engineer wajib ada, untuk memastikan fitur & aplikasi yang sampai ke tangan customer benar-benar bagus dan berkualitas.
That’s it. Itulah gambaran pekerjaan seorang QA Engineer.
Sayangnya dengan komposisi tim yang tepat, tidak serta-merta membuat perusahaan lebih cepat dan unggul.
Ini dikarenakan banyak sekali perusahaan yang saat ini masih terjebak dengan cara kerja jadul, yaitu metodologi Waterfall. Dimana dalam pembuatan 1 aplikasi, akan di buat secara keseluruhan sekaligus dari awal sampai akhir. Gambaran metodologi waterfall adalah seperti berikut :
Cara ini memiliki beberapa kekurangan fatal. Dan kekurangan fatal ini menyebabkan perusahaan tidak akan bisa mengalahkan kompetitornya dengan cepat. Agar lebih paham apa kekurangan dari Waterfall, saya akan coba ceritakan bagaimana alur pembuatan 1 aplikasi menggunakan Waterfall :
“Perusahaan McDonald ingin membuat Aplikasi untuk pesan makanan secara online. Pembuatan aplikasi ini diperintahkan oleh Direktur Utama McDonald. Untuk itu McDonald menyiapkan 1 tim Development yang terdiri dari 2 Product Manager, 5 Programmer, dan 2 QA Engineer / Tester, dan ingin 1 aplikasi ini seluruhnya diselesaikan dalam 1 tahun dengan budget 1 Miliar Rupiah.”
Dan proses development pun dimulai.
Bulan 1
1 bulan pertama Product Manager akan banyak sekali berkomunikasi dengan Direktur Utama dari McDonald untuk benar-benar memahami seperti apa kebutuhan dari aplikasi ini. Seperti apa kira-kira alurnya, fitur apa saja yang dibutuhkan, referensi aplikasi sejenis, dll.
Setelah itu Product Manager membuat sebuah dokumen berisi requirement lengkap dari A-Z yang akan diserahkan ke Programmer. Hasil requirementnya kira-kira seperti ini :
Bulan 2 – 7
Programmer bekerja keras setiap hari membuat coding seluruh fitur sesuai requirement. Mereka berbagi tugas, ada yang mengerjakan fitur login, ada yang mengerjakan fitur pesan makanan, dll. Semua dikerjakan sampai beres.
Bulan 8
Setelah dirasa semua fitur beres, para Programmer menyerahkan ke QA Engineer untuk di tes apakah fitur tersebut sudah bebas bug dan sudah sesuai requirement yang diberikan.
Selama 1 bulan QA Engineer akan melakukan testing secara manual pada seluruh aplikasi dan fitur-fiturnya. Melihat secara desainnya, letak tombolnya, melakukan klik-klik tombolnya, mencoba registrasi menggunakan email yang salah, mencoba password yang aneh, mencoba pesan makanan, mencoba konfirmasi pesanan dll, pokoknya untuk mengetes kira-kira ada kasus-kasus tertentu yang menimbulkan bug atau tidak. Semuanya secara manual.
Apabila ada bug atau ada sesuatu yang belum sesuai requirement, misalnya ternyata ketika di klik tombol Register muncul pesan error, maka QA Engineer akan mengembalikan codingan tersebut ke Programmer untuk diperbaiki.
Bulan 9
Selama 1 bulan, Programmer melakukan seluruh perbaikan yang dibutuhkan. Lalu menyerahkan ulang codingan ke QA Engineer untuk di test kembali apakah masih ada bug atau tidak.
Bulan 10
Selama 1 bulan, QA Engineer melakukan testing ulang. 80% seluruh bug dan ketidaksesuaian sudah berhasil diperbaiki. Namun ternyata masih ada 20% bug-bug kecil yang masih muncul. Maka tim QA Engineer akan membuat kembali daftar requirement yang perlu diperbaiki oleh para Programmer.
Bulan 11
Selama 1 bulan, Programmer melakukan perbaikan lagi sisa-sisa bug yang ada. Lalu menyerahkan ulang ke QA Engineer.
Bulan 12
Selama 20 hari, QA Engineer melakukan testing terakhir dan akhirnya hasilnya sudah bagus seluruhnya.
Di 10 hari terakhir, seluruh tim melakukan rapat koordinasi dan melakukan berbagai proses untuk rilis aplikasi ke publik.
Dari seluruh proses dia tas, menurut Anda apa saja kekurangan fatal yang ada ? Saya coba jabarkan dibawah ini :
Contohnya : apa yang dilakukan QA Engineer selama bulan ke 2 – 7 saat Programmer membuat seluruh fitur ? Nganggur ? Yes. Mereka benar-benar nganggur dan hanya menunggu saja !
Yang memerintahkan pembuatan aplikasi ini adalah Direktur Utama McDonald, bukan dari kebutuhan pelanggan McDonald. Bagaimana kalau asumsi Direktur Utama salah ? Bagaimana kalau setelah di rilis para pelanggan tidak menggunakannya ? Bukankah ini artinya seluruh uang, waktu dan tenaga selama 1 tahun terakhir terbuang percuma ?
Metode Waterfall sangat beresiko untuk diterapkan, karena bisa saja membuang banyak uang, waktu dan tenaga untuk aplikasi yang ( mungkin saja ) tidak akan pernah digunakan oleh Customer.
Faktanya, penggunaan metode Waterfall di industri sudah sangat tidak relevan di era yang serba cepat saat ini. Dan oleh karenanya banyak perusahaan yang beralih ke metodologi Agile.
Secara sederhana, metodologi Agile selalu mengedepankan prinsip dimana aplikasi / fitur yang di buat haruslah benar-benar yang bermanfaat dan akan digunakan oleh customer / user.
Caranya ?
Gambaran metodologi Agile adalah sebagai berikut :
Cara ini benar-benar meminimalisir kekurangan dari Waterfall. Jauh lebih cepat dan efektif, serta aplikasi yang di rilis kemungkinan benar-benar akan digunakan oleh customer / user. Apabila dengan case pembuatan aplikasi pesan makanan online McDonald seperti sebelumnya, maka ceritanya menjadi begini :
“Pertama-tama seluruh tim sepakat per 4 minggu sekali ( per Sprint ) tiap fitur yang dikerjakan akan langsung di rilis ke customer.” Dan proses development pun langsung dimulai.
Bulan 1, Minggu 1
Product Manager melakukan riset ke customer terkait fitur apa yang paling penting dikerjakan paling pertama. Setelah itu Product Manager membuatkan requirement lengkapnya dan menyerahkannya ke tim Programmer. Dari hasil riset, requirement awal yang paling penting hanyalah fitur Login & Registrasi.
Catatan : terkadang jika penerapan Agile dibarengi dengan Scrum, maka ada istilah baru yaitu Product Owner. Product Owner & Product Manager punya beberapa aspek yang sama dan berbeda. Tapi untuk menyederhanakan, kita tetap akan menggunakan istilah Product Manager. Untuk lebih tahu perbedaan Product Owner & Product Manager bisa googling saja.
Bulan 1, Minggu 2
Programmer melakukan coding terhadap fitur login & registrasi saja. Dikerjakan sampai beres.
Bulan 1, Minggu 3,
Tim QA Engineer melakukan testing code para Programmer selama 1 minggu full secara manual. Mereka akan klik satu per satu tombol dan mengetest skenario-skenario kegagalan dan keanehan user saat login dan registrasi. Misalnya coba mengisi email tanpa @, coba klik tombol registrasi apakah benar data email user tersimpan, dll.
Bulan 1, Minggu 4
Tim Programmer mengerjakan berbagai perbaikan yang diberikan oleh tim QA Engineer, jika sudah, diberikan ulang ke tim QA Engineer. Tim QA Engineer melakukan testing ulang terhadap perbaikan dari tim Programmer secara manual. Jika sudah beres semua, maka fitur dapat di rilis ke Customer.
Di akhir minggu, biasanya 1-2 hari terakhir Product Manager melakukan testing ke customer apakah fitur tersebut sudah sesuai kebutuhan atau belum. Ternyata disini kasusnya customer sudah cukup puas terhadap fitur yang dibuat.
Sudah cukup terbayang ? Sekarang kita coba masuk ke bulan 2 dari cerita di atas :
Bulan 2, Minggu 1
Product Manager melakukan riset kembali ke customer terkait fitur apa yang paling penting dikerjakan berikutnya. Ternyata yang paling penting berikutnya adalah fitur : list daftar makanan & minuman yang bisa dipesan.
Bulan 2, Minggu 2
Programmer melakukan coding terhadap fitur List Daftar Makanan & Minuman.
Bulan 2, Minggu 3
Tim QA Engineer melakukan testing selama 1 minggu full secara manual. Tim Programmer memperbaiki, lalu Tim QA Engineer melakukan testing ulang. Jika sudah beres semua maka, fitur dapat dirilis ke Customer.
Bulan 2, Minggu 4,
Product Manager melakukan testing ke customer apakah fitur tersebut sudah sesuai kebutuhan mereka atau belum. Kebetulan kasusnya customer sudah cukup puas terhadap fitur yang di buat.
Seluruh proses tersebut akan terus diulang hingga aplikasi selesai dibuat seluruhnya. Sudah mulai paham canggihnya metode Agile dibanding Waterfall ? Perusahaan yang menerapkan Agile biasanya dapat mendevelop aplikasi 2-4 kali lebih cepat, dan aplikasi yang dibuat pun kemungkinan besar pasti digunakan oleh Customer.
Kenapa bisa ? Proses testing dan rilis customer yang dilakukan lebih cepat dan lebih sering menyebabkan :
Berbeda dengan Waterfall yang proses testing dan rilis ke customer sudah terlanjur terlalu kompleks, sehingga apabila ada kesalahan, butuh waktu yang lama untuk perbaikannya ( bahkan terkadang tidak bisa diperbaiki lagi ). Bayangkan memperbaiki aplikasi menggunakan metode Waterfall seperti membetulkan benang kusut sepanjang ini :
Sedangkan metode Agile seperti hanya membetulkan benang kusut per 1 meter, satu per satu seperti ini :
Ini yang menyebabkan perusahaan yang menerapkan Agile mulai bermunculan dimana-mana.
Tapi sayangnya, hype penerapan metode Agile di perusahaan masih terpusat ke tim Programmer saja. Tanpa melibatkan peran lain, khususnya tim QA Engineer. Jadi walaupun para Programmer sudah menerapkan Agile, tapi QA Engineer nya tidak. Sehingga masih sangat-sangat kurang efektif pada prakteknya.
Coba cerna kembali cerita diatas. Maka Anda akan bisa melihat kekurangan terbesar peran QA Engineer :
1. QA Engineer Ternyata Masih Nganggur
QA Engineer masih nganggur dalam 2 minggu pertama ! Hanya untuk menunggu Programmer beres bekerja menyelesaikan fitur. Sangat percuma dan tidak efektif bukan ?
2. Programmer Juga Nganggur Akibat Menunggu QA Engineer
Contoh diatas menunjukkan saat QA Engineer melakukan test selama 1 minggu full ( di minggu 3 ), yang artinya para Programmer juga akan nganggur selama 1 minggu.
3. Testing Yang Memakan Waktu Lama
Kenapa para QA Engineer bisa butuh waktu 1 minggu hanya untuk testing fitur ? Bayangkan kalau dalam 1 fitur Registrasi, QA Engineer perlu melakukan testing manual sekitar 10-20 skenario ( test email salah, test kombinasi password salah, test alur klik tombol register, dan banyak lainnya ).
Ini proses yang benar-benar manual. Benar-benar klik satu persatu, ketik satu persatu. Dan ketika sudah diperbaiki oleh Programmer, mereka harus mengulang testing hal yang sama.
Efek dari kekurangan diatas adalah :
1. Rawan Human Error
Bayangkan jika seorang QA Engineer melakukan klik satu persatu hal yang sama dan berulang-ulang, maka pasti akan cepat kelelahan dan kehilangan fokus. Ini menyebabkan rawan adanya bug / ketidaksesuaian yang terlewat.
2. Proses Testing Menghambat Kecepatan Programmer
Sangat mungkin terjadi keterlambatan dalam development aplikasi karena lamanya proses testing. Misalnya sudah akhir minggu ke 4, lalu ternyata masih juga ada bug yang harus diperbaiki.
Lalu bagaimana ? Ujung-ujungnya orang-orang akan lembur atau bahkan harus perpanjang waktu development di periode berikutnya. Sungguh membuang-buang waktu, tenaga, dan uang.
Kesimpulannya adalah, para QA Engineer yang ada saat ini belum bisa mengimbangi kecepatan Agile para Developer. Dan jika QA Engineer tidak merubah cara kerjanya, benar-benar menjadi hambatan besar pada perusahaan yang ingin menerapkan metodologi Agile.
Apa itu Software QA Automation Engineer ? Apa bedanya dengan Software QA Engineer biasa ? Kenapa Software QA Automation Engineer dapat menjadi solusi pada permasalahan Agile sebelumnya ?
Sebenarnya QA Automation Engineer ini hanyalah QA Engineer biasa yang bisa melakukan otomasi proses testing yang tadinya manual. Seorang QA Automation Engineer akan melakukan hal berikut untuk mengotomasi proses testingnya :
1. Membuat Kesepakatan Awal Dengan Programmer
Sebelum Programmer mulai coding, maka Programmer dan QA Automation Engineer akan menyepakati seperti apa saja skenario testing yang menyatakan fitur ini lolos test.
2. Paralel Ngoding dengan Programmer Untuk Membuat Script Otomation
Pada hari yang sama dimana para para Programmer mulai coding membuat fitur, di saat itu juga para QA Automation Engineer ngoding membuat script Otomation testing.
3. Programmer Bisa Test Codingan Mereka Sendiri Secara Otomatis
Saat fitur jadi, di saat yang sama script otomation test pun juga selesai. Programmer langsung masukkan codingan mereka ke script test otomasi yang sudah dibuat, dan Voila ! Proses testing akan berjalan secara otomatis seperti magic, dan langsung muncul hasilnya apakah masih ada bug atau tidak. Semua dalam hitungan menit !
Jika masih ada bug, tanpa menunggu apa-apa, Programmer langsung memperbaikinya. Dan jika sudah diperbaiki, masukkan lagi ke dalam script test. Begitu terus diulang-ulang sampai fitur dinyatakan lolos oleh Script Otomasi tersebut.
Perbedaan utama cara kerja QA Engineer biasa dengan QA Automation Engineer adalah sebagai berikut :
Keterangan | QA Engineer | QA Automation |
Cara Kerja | Saat Programmer membuat fitur, QA Engineer biasa akan nganggur. Setelah fitur jadi barulah QA Engineer melakukan testing fitur tersebut secara manual. | Ikut ngoding dari awal paralel bersama dengan Programmer. Programmer membuat fiturnya, QA Automation Engineer membuat script untuk testing fitur tersebut secara otomatis. |
Cara testing | QA Engineer biasa akan bekerja berkali-kali melakukan test yang sama berkali-kali apabila terjadi bug. | QA Automation Engineer cuma perlu kerja 1x, walaupun muncul bug berkali-kali dan harus di test pada fitur yang sama berkali-kali. |
Durasi testing | Proses testing memakan waktu yang lama, rawan kesalahan dan lolosnya bug yang tidak terlihat. | Proses testing berjalan super cepat, karena dilakukan oleh komputer / mesin. |
Efektifitas kerja | Akan saling tunggu dengan tim Programmer. Saat programmer membuat fitur, QA Engineer menunggu. Saat QA Engineer testing, Programmer menunggu. | Tidak perlu ada saling tunggu antara tim Programmer dan tim QA. Tim Programmer bisa langsung test fitur yang mereka buat kapanpun dan sesering apapun mereka mau. |
Dan perhatikan perbandingan gambar di bawah ini, agar Anda bisa melihat seberapa jauh efisiensi metode ini dibanding dengan Agile tanpa otomasi testing, atau bahkan dibanding dengan metode Waterfall :
Pada intinya dengan sistem ini QA Engineer dan Programmer menjadi tidak banyak nganggur. Waktu yang terbuang karena nganggur, bisa di konversi untuk mendevelop fitur yang lain.
Efeknya, di setiap Sprint fitur yang diselesaikan bisa lebih banyak. Misal dalam 1 bulan tanpa otomasi testing hanya bisa mengerjakan 2 fitur, maka dengan otomasi testing bisa 3-4 fitur. Ini yang membuat durasi proyek semakin singkat.
Saat ini memang masih sangat jarang talenta QA Engineer yang sudah bisa melakukan test otomasi. Rata-rata hanya bisa melakukan test manual, walaupun ada yang sudah menggunakan test secara scripting / coding, tapi juga masih manual.
Anda harus bisa kritis serta berkolaborasi dengan seluruh tim programmer, product manager, dan sesama QA engineer untuk memastikan fitur / aplikasi yang di buat benar-benar berkualitas.
Semakin Anda care, penasaran, dan paham betul terhadap produk / fitur yang akan / sedang di buat, maka Anda semakin bisa merancang skenario-skenario test yang ketat dan out-of-the-box. Gunanya ? Kembali lagi, untuk memastikan fitur / aplikasi yang di rilis benar-benar berkualitas dan bermanfaat.
Ini dibutuhkan untuk melihat apakah adanya kekurangan pada codingan yang dibuat oleh programmer, serta dapat memberikan saran-saran bagaimana cara meningkatkan kualitas code yang dibuat. Cukup kuasai 1 bahasa coding misalnya Java atau Python, maka akan sangat membantu karir Anda sebagai QA Automation Engineer.
Ini kemampuan utama, yaitu bisa membuat skenario-skenario test yang terotomasi. Sehingga membuat proses rilis aplikasi jauh lebih cepat dan jauh lebih berkualitas. Beberapa tools otomasi diantaranya Selenium, Postman, dll.
Inilah manfaat perusahaan yang mempekerjakan QA Automation Engineer dibanding QA Engineer biasa :
Walaupun sudah menerapkan metode Agile tapi tim QA Engineer-nya belum “Agile”, maka percuma. Tetap lebih lambat dalam produktifitas dan rilis aplikasi. Dengan masuknya QA Automation Engineer, maka metode Agile menjadi sempurna. Bahkan menurut suatu studi, bisa meningkatkan produktifitas dan kecepatan proses rilis aplikasi 2-3 kali lipat.
Bagaimana jika customer selalu dapat aplikasi yang cepat, responsif, dan tidak ada bug ? Otomatis customer akan semakin puas. Efeknya perusahaan semakin mendapatkan banyak customer loyal.
Apa jadinya jika sebuah perusahaan bisa terus-menerus rilis fitur / aplikasi lebih cepat daripada para pesaingnya ? Sederhana saja, perusahaan akan terus meninggalkan kompetitor-kompetitornya di belakang.
Sama seperti yang Gojek lakukan terhadap Uber. Gojek sudah berhasil rilis 5-8 fitur yang disukai customernya, sedangkan Uber baru 1 fitur. Gojek berhasil mengungguli proses inovasi Uber jauh di depan.
Sumber utama atau original diambil dari : https://blog.sekolahqa.com/qa-automation-engineer/
LENMARC MEGASOFT telah menggunakan metode ini dimana kami dalam waktu 3 tahun sudah berhasil membangun software dari skala kecil sampai ke besar baik untuk retail, fabrik dan tekstil, toko emas, spa, cafe, petshop dan product-product lainnya yang dibutuhkan oleh konsumen. Oleh karena itu, keputusan yang tepat bagi anda untuk memilih https://www.lenmarc.com/ sebagai penyedia software bagi anda dan team anda!
Tunggu apa lagi? hubungi kami sekarang juga di website atau live chat atau email di info@lenmarc.com atau whatsapp di 0896 2600 5000.
Berita Lainnya
Penjaga Pos Parkir yang Kini Menjadi Direktur Utama Perusahaan
AUTOPOSPAY SOLUSI usaha di kala PSBB
Yayasan Global CEO Indonesia Jateng, Kunjungan Kerja di Jepara