Tag Archives: TipTech

Tips Pengujian Produk Startup

TipTech #3: Miliki Sistem Berisiko Tinggi, Begini Cara Tim Pengembang Kredivo Melakukan Pengujian Aplikasi

TipTech adalah rubrik baru DailySocial yang membahas berbagai kiat dalam pengembangan produk atau aplikasi startup. Setelah sebelumnya membahas tentang arsitektur aplikasi yang scalable, kali ini kami berkesempatan untuk berbincang dengan Co-Founder & CTO Kredivo Alie Tan mengupas mengenai pengujian produk aplikasi secara terukur.

Seperti diketahui, Kredivo adalah perusahaan teknologi yang memberikan kemudahan masyarakat untuk melakukan kredit dalam pembelian barang di e-commerce. Sebagai platform finansial yang tergolong dalam sistem berisiko tinggi, tim pengembang harus memperhatikan banyak aspek, termasuk terpenting mengenai standar keamanan dan kepatuhan. Maka di setiap fitur atau layanan yang digulirkan harus melalui tahapan pengujian yang ketat.

Tan bercerita, untuk melakukan pengujian perangkat lunak (software testing) ada 8 langkah yang harus dilakukan:

  • Test Planning; mengidentifikasi kegiatan pengujian dan sumber daya yang dibutuhkan, termasuk menemukan metode serta metrik pengukuran yang tepat.
  • Test Design and Specification; pembuatan dokumen yang berisi informasi dan parameter yang diperlukan sebagai panduan prosedur pengujian perangkat lunak agar lebih efektif.
  • Test Setup; sebuah metode untuk membuat data pengujian secara terstruktur. Penerapannya di tingkat pemrograman, dengan menambahkan kelas-kelas tertentu untuk dimanfaatkan ke dalam proses pengujian.
  • Test Operation and Execution; pengujian untuk memastikan kepatuhan sistem dan penggunaan komponen yang sesuai dengan standar.
  • Test Result Analysis and Bug Reporting; menganalisis temuan-temuan yang didapat pada proses pengujian dan membuat pelaporan hasil celah yang terdeteksi.
  • Test Management and Measurement; penggunaan perangkat lunak baik otomatis maupun manual untuk mengelola proses pengujian. Tujuan lainnya agar prosesnya dapat terukur dengan jelas, baik dari indikasi kuantitatif, kapasitas, dimensi, jumlah dan sebagainya.
  • Test Automation; penggunaan perangkat lunak terpisah untuk mengontrol pelaksanaan pengujian dan membandingkan hasilnya secara aktual. Perangkat pengujian tersebut dapat mengautomasi beberapa tugas berulang dan melakukan pengujian tambahan yang sulit dilakukan secara manual.
  • Test Configuration Management; proses menentukan dengan jelas item yang membentuk perangkat lunak atau sistem, termasuk kode, skrip pengujian, perangkat lunak pihak ketiga, perangkat keras, data dan dokumentasi pengembangan dan pengujian. Juga tentang memastikan bahwa item tersebut dikelola dengan hati-hati, teliti, dan penuh perhatian selama seluruh proyek dan siklus hidup produk.

Project Manager, Developer, dan Tester idealnya terlibat dalam prosesnya. Project Manager terlibat untuk memahami tujuan utama dari sebuah fitur, juga memastikan setiap pihak yang terlibat dapat saling berkolaborasi untuk mencapai hasil yang diharapkan.

Kredivo adopsi pendekatan agile

Dengan kondisi yang ada, Tan mengatakan bahwa timnya saat ini mengadopsi agile testing. Metodologi itu menurutnya memungkinkan terjadinya sirkulasi yang lebih cepat — dalam artian workflow dalam pengembangan. Sehingga proses pengujian tidak harus menunggu semua fitur rampung dikerjakan oleh developer. Yang tak kalah penting, pendekatan ini memungkinkan timnya untuk mengidentifikasi bug secara lebih cepat.

Guna mendukung kegiatan pengujian, Kredivo menggunakan berbagai macam alat. Tan menyebutkan, “Tools yang sering digunakan untuk membantu kegiatan pengujian produk digital yaitu Appium, Selenium, Postman, Testng, Jmeter, Gradle, Cucumber, Restassured, Burp suite, Zap proxy, dan ChromeDev tools.”

Tim Kredivo juga miliki standardisasi yang ketat untuk seorang software tester atau quality assurance engineer. Beberapa karakteristik yang diperhatikan adalah selalu memperhatikan hal detail; berorientasi pada klien, bisnis, dan kualitas; memiliki pengalaman produk yang kuat; mampu bekerja secara paralel (multitasiking); memiliki kemampuan identifikasi dan observasi yang baik; hingga kualitas komunikasi yang mumpuni.

Co-Founder & CTO Kredivo Alie Tan
Co-Founder & CTO Kredivo Alie Tan / Kredivo

Yang sering luput saat pengujian produk

Dengan pengalamannya lebih dari 4 tahun menjadi CTO, Tan mencatat ada beberapa hal yang sering luput saat proses pengujian produk teknologi. Poin pertama non-functional case, yakni terkait kinerja dan keamanan sistem. Kedua terkait negative test, yang berdampak pada buruknya pengalaman pengguna aplikasi.

Namun Tan turut menjelaskan, bahwa hal tersebut dapat diantisipasi. Pasalnya celah keamanan seperti non-functional dalam diprediksi dan ditemukan dengan pengujian berulang. Kemudian terkait negative test, penguji dapat menulis dan menguji semua fungsional, lalu membuat laporan untuk perbaikan pengalaman pengguna.

Rekomendasi bacaan

Terkait proses pengujian, Tan punya beberapa rekomendasi bacaan, sebagai berikut:

Buku:

  • “The Art of Software Testing”, oleh Glenford Myers
  • “Agile Testing : A Practical Guide for Testers and Agile Teams”, oleh Lisa Crispin dan Janet Gregory

Blog:

Kursus Online :

Arsitektur Aplikasi Startup Digital

TipTech #2: Membangun Arsitektur Aplikasi “Scalable” ala Tim Pengembang Ovo

TipTech adalah rubrik baru DailySocial yang membahas berbagai kiat dalam pengembangan produk atau aplikasi startup. Setelah sebelumnya membahas tentang siklus pengembangan produk, kali ini kami berkesempatan untuk berbincang dengan Chief Product Officer Ovo Albert Lucius tentang arsitektur aplikasi yang scalable.

Tujuan dari pengembangan aplikasi yang scalable adalah menunjang pertumbuhan bisnis berkelanjutan. Ketika pengguna layanan semakin bertambah –kadang lonjakannya bisa sangat signifikan—harapannya produk tidak turun performa, misalnya aksesnya jadi lambat atau bahkan mati. Untuk itu diperlukan perencanaan arsitektur sistem yang matang.

Sejak debut pada tahun 2017 sebagai platform loyalty, lalu bertransformasi menjadi e-wallet, hingga sekarang punya basis pengguna mencapai lebih dari 100 juta pengguna; Ovo punya cerita menarik dari dapur pengembang. Saat ini layanan Ovo juga sudah terintegrasi ke banyak platform lain yang memiliki arus transaksi besar –sebut saja Tokopedia dan Grab.

Kepada Albert kami menanyakan tentang bagaimana arsitektur sistem yang baik untuk sebuah aplikasi mobile.

“Menurut kami, dengan cepatnya pertumbuhan secara umum, sangat penting aplikasi bersifat modular dan menggunakan sistem feature flag. Karena akan  banyak komponen aplikasi yang dibuat oleh berbagai tim. Jika sistemnya bersifat monolith, maka akan memperlambat laju pengembangan.”

Dengan pendekatan modular, di dalam sebuah aplikasi terdapat kumpulan unit fungsional (disebut: modul) yang dapat diintegrasikan untuk menjadi aplikasi yang lebih besar. Modul aplikasi tersebut dapat dianalogikan sebagai aplikasi kecil di dalam aplikasi yang dapat diambil, dipasang, atau dikonfigurasi kembali ke aplikasi lain. Modul-modul tersebut terbungkus dalam logika bisnis program yang direpresentasikan dalam antarmuka pengguna.

Sementara konsep feature flag penting diterapkan, sehingga memungkinkan pengembang membatasi/menonaktifkan beberapa fitur saat terjadi masalah, tanpa mematikan fungsi aplikasi secara keseluruhan.

Albert Lucius
Chief Product Officer Ovo Albert Lucius / Ovo

Kiat integrasi aplikasi

Selain mempertimbangkan dua hal di atas, Albert juga menyampaikan tentang konsiderasi pembagian aplikasi native dan webview untuk menjaga performa aplikasi.  Hal tersebut akan berdampak pada ukuran APK dari tiap aplikasi. Menurutnya ini jadi faktor penting, terlebih saat startup terus beranjak mencapai skala yang lebih besar.

Aplikasi native dibangun dengan bahasa pemrograman tertentu yang menyatu dengan core aplikasi. Sementara aplikasi webview memanfaatkan fungsionalitas penampil laman web di dalam aplikasi tanpa harus memaksa pengguna membuka browser terpisah.

Di lain sisi, integrasi dengan pihak ketiga juga menjadi hal yang butuh diperhitungkan secara teknis untuk aplikasi seperti Ovo. Albert menyebutkan, keamanan pengguna menjadi prioritas utama bagi perusahaan ketika melakukan integrasi. Selain proses internal dan disiplin terhadap SOP, ia selalu menyarankan untuk melakukan penetration testing (pen-testing) eksternal. Banyak sekali saat ini vendor lokal maupun luar negeri yang dapat membantu proses ini.

Pen-testing adalah kegiatan menyimulasikan serangan terhadap sistem aplikasi. Ini jadi komponen penting dalam audit keamanan, biasanya wajib dilakukan untuk aplikasi yang menampung data sensitif, agar tidak mudah dibobol atau diintervensi oleh pihak yang tidak bertanggungjawab –baik dari internal maupun eksternal.

pen-testing
Tahapan dalam pen-testing / Imperva

“Program bug bounty juga dapat membantu menyalurkan laporan bugs yang mungkin tidak terdeteksi oleh proses internal. Peningkatan kualitas layanan dan sistem keamanan (di sisi aplikasi kita) juga jadi faktor penting untuk kenyamanan pengguna,” terang Albert.

Pengelolaan sumber daya

Infrastruktur teknologi yang baik juga harus ditangani oleh SDM yang mumpuni untuk menghasilkan performa terbaik. Untuk mengelola pekerjaannya, juga diperlukan metodologi yang tepat. Namun menurut Albert, di perusahaannya tidak terpaku pada tren yang sedang menjadi sorotan, kesesuaian dengan karakteristik tim menjadi pertimbangan utama.

“Sangat penting untuk kami dalam merekrut tim yang betul-betul paham scaling infrastruktur secara baik dan benar.”

Setiap pengembang juga dituntut untuk menghasilkan baris konde yang berkualitas. Menurutnya ada tiga indikator yang dapat menggambarkan susunan pemrograman yang efisien, yakni sistem repositori yang memadai, konsep best coding practice, dan code reveiw yang solid. Best coding practice menjadi aturan informal yang harus sering diutarakan melalui sebuah standar yang diterapkan di perusahaan, dilengkapi dengan pelatihan yang memadai.

“Sistem code review juga sangat penting karena sedikit banyak SDM mudah membuat kesalahan. Oleh karena itu untuk startup yang sedang berkembang, jangan lupa untuk melakukan automated testing dan unit testing. Hal ini dikarenakan semakin membesarnya skala startup, semakin banyak developer yang bekerja di code repository kita, semakin banyak kesalahan dapat terjadi. Automated testing akan sangat membantu mengurangi human-error yang dapat terjadi,” jelas Albert.

Application Information Will Show Up Here
Tips pengembangan produk

TipTech #1: Bagaimana Pengembang Bukalapak Mengelola Fitur Baru di Tengah Siklus Produk yang Kencang

TipTech adalah rubrik baru DailySocial yang membahas berbagai kiat dalam pengembangan produk atau aplikasi startup. Pada bagian pertama ini, kami berkesempatan untuk berdiskusi dengan VP of Engineering Bukalapak Ibrahim Arief dan VP of Product Design Bukalapak Yoel Sumitro.

Di tengah persaingan bisnis online marketplace yang sangat ketat, banyak hal yang harus dilakukan Bukalapak untuk membuat para pembeli betah. Salah satu yang dilakukan dengan menggulirkan inovasi produk secara terus-menerus di aplikasi. Kami sendiri mengamati beberapa pembaruan yang diluncurkan, misalnya setelah fitur Serbu Seru kini mereka menggulirkan #MauDitinju dan #Maudikode sebagai mekanisme distribusi voucer dan pengundian diskon.

Sebagai komplementer, fitur tersebut harus mendapatkan porsi dan penempatan yang sesuai agar tidak mengganggu model bisnis utamanya. Pendekatan ini yang akan kami diskusikan, tentang bagaimana tim pengembang dan produk memaksimalkan fitur aplikasi untuk meningkatkan traksi pengguna.

Manfaatkan framework yang tepat

User Interface (UI) dan User Experience (UX) menjadi bagian penting ketika merumuskan sebuah produk baru. Secara sederhana, UI didefinisikan sebagai representasi dari produk yang akan diakses oleh pengguna; sementara UX menjadi alur desainnya, mengakomodasi cara-cara konsumen dalam mengakses produk tersebut.

“Ada berbagai macam jalan yang bisa diambil ketika merumuskan rancangan UX untuk fitur yang baru. Salah satu yang kita pernah pakai adalah framework buatan Nir Eyal. Di dalamnya dia melempar sebuah ide bahwa fitur yang bisa membuat kebiasaan baru untuk pengguna harus mempunyai empat siklus: trigger, action, variable reward, dan investment,” terang Yoel.

Nir Eyal dalam bukunya “Hooked: How to Build Habit-Forming Products” menjelaskan bagaimana produk dikonversi menjadi kebiasaan. Maksudnya, konsumen dikondisikan memiliki dorongan emosional untuk menggunakan tanpa harus berpikir panjang. Contohnya keberhasilan Instagram, membuat orang akan kembali dari waktu ke waktu tanpa pikiran sadar untuk melihat foto baru dan scroll timeline.

Gambaran Hooked Model Framework yang dicetuskan Nir Eyal / Startup Grind
Gambaran Hooked Model Framework yang dicetuskan Nir Eyal / Startup Grind

Trigger atau pemicu, yakni faktor yang dijadikan alasan bagi pengguna untuk mengakses dan menggunakan produk tersebut. Pemicu ini dibagi menjadi dua aspek, eksternal dan internal. Pemicu eksternal ini yang ditugaskan untuk mendorong orang masuk ke dalam produk yang diluncurkan, bentuknya bermacam-macam, misalnya yang dilakukan di Bukalapak dengan mengirimkan notifikasi yang cukup persuasif kepada pengguna.

Kemudian pemicu internal – ini adalah faktor yang paling sulit terkait penciptaan pengalaman pengguna, membutuhkan pemikiran kritis dari desainer produk. Menurut Neil, dikatakan sukses jika mampu menghasilkan emosi negatif yang persisten; kemudian memberikan kelegaan singkat dari emosi itu, lalu menciptakan kecanduan.

Contohnya fitur Serbu Seru di Bukalapak, dengan harga produk yang relatif sangat kecil, pengguna dapat menyerbu produk-produk pilihan. Kemudian sistem akan melakukan pengundian secara acak di tiap produk, hingga terpilih satu penyerbu yang beruntung. Bagi yang kurang beruntung, nominal yang diberikan akan dikembalikan, baik berupa saldo ataupun pembelian item lain. Harga yang sangat murah, keberuntungan, dan varian produk yang menarik memanfaatkan faktor emosional tersebut.

“Di dalam fitur baru Maudikode yang baru kita luncurkan, empat elemen di atas bisa cukup terasa, terutama external trigger yang kuat,” lanjut Yoel.

Untuk pembahasan framework ini secara lengkap, buku Neil tadi dapat dijadikan rujukan.

Pengujian dan kolaborasi

Agar bisa diterima dan memberikan dampak yang diharapkan, pengujian juga penting untuk dilakukan. Ibrahim menjelaskan, di Bukalapak mereka menggunakan A/B Testing.

“A/B Testing, sangat penting untuk memastikan pengembangan UI/UX aplikasi memberikan dampak positif yang bisa terkuantifikasi bagi pengguna dan bagi conversion funnel kita. Layanan dan pustaka A/B Testing yang bisa digunakan dan diintegrasikan dengan aplikasi kita cukup banyak, mulai yang gratis hingga berbayar,” terang Ibrahim.

Gambaran tentang A/B Testing / Conversio
Gambaran tentang A/B Testing / Conversio

Kolaborasi dan manajemen tim juga menjadi bagian krusial untuk meningkatkan kualitas UI/UX di Bukalapak.

“Untuk perangkat pendukung kolaborasi dalam membuat desain, dulunya kami memakai gabungan Sketch, Abstract, dan Realtimeboard. Tapi setelah melakukan beberapa eksperimen, kami menemukan bahwa Figma bisa menggantikan tiga alat tersebut, bahkan bisa menunjang kolaborasi yang lebih bagus dengan tim-tim di luar desain,” lanjutnya.

Personalisasi untuk pengguna

Peningkatan traksi juga dipengaruhi oleh kenyamanan pengguna dalam mengakses aplikasi. Misalnya terkait keandalan aplikasi, ketika diakses tetap kencang meskipun banyak fitur yang dibubuhkan. Agar aplikasi tetap kencang, Ibrahim menyiasatinya dengan memisahkan pola penggunaan aplikasi, antara yang read-heavy dengan yang write-heavy.

“Biasanya aplikasi yang berhadapan dengan pelanggan cenderung pada skenario penggunaan read-heavy. Dalam kasus tersebut, pertimbangkan juga penggunaan cache yang efisien. Diskusikan juga bersama tim bisnis, untuk produk apakah ada jangka waktu tertentu yang masih acceptable untuk menyajikan stale data ke pelanggan,” jelasnya.

Misalnya, untuk aplikasi yang menampilkan data cuaca, mungkin data yang stale selama maksimal 20 menit masih bisa diterima dan bisa di-cache untuk jangka waktu yang lama.

Selain itu saat ini Bukalapak menggunakan teknologi kecerdasan buatan (AI) untuk membangun model personalisasi dari jutaan pelanggannya. Model ini bisa digabungkan dengan AI yang digunakan untuk rekomendasi agar bisa membantu pengguna dalam memudahkan pengalaman berbelanja.

“Untuk membangun model seperti ini, kami mengumpulkan miliaran data terkait perilaku setiap pelanggan di Bukalapak, dan menggunakan data tersebut untuk melatih berbagai jenis model dengan menggunakan teknik-teknik pembelajaran mesin seperti bayesian model, neural network, atau logistical regression,” jelas Ibrahim.

Application Information Will Show Up Here
Application Information Will Show Up Here