Last Updated on March 11, 2023 by
Sebelum aplikasi bisa dirilis ke pengguna, satu tahap yang tidak bisa dilewatkan adalah pengujian atau testing. Bahkan pada tahap paling awal pun, kegiatan testing sangat penting dan tidak bisa dilupakan untuk memastikan sebuah fungsi apakah sudah bisa berjalan dengan semestinya terkendala suatu masalah. Untuk Anda yang mengembangkan aplikasi web dengan JavaScript, Anda dapat menggunakan aplikasi bernama Cypress. Cypress adalah software untuk mengotomatisasi pengujian aplikasi web, sehingga bisa lebih efisien waktu namun tidak mengurangi esensi dan hasil dari pengujian itu sendiri. Untuk pemaparan lebih lanjut, simak artikel berikut ini ya!
Table of Contents
Apa itu Cypress?
Cypress adalah tool untuk memudahkan proses pengujian dan debugging aplikasi web. Cypress bisa melakukan tes seperti end-to-end test dan component test. Cypress biasanya digunakan untuk pengujian aplikasi web, contohnya yang dibuat dengan React atau Angular, karena semua pengujian dilakukan dalam lingkungan peramban web (web browser). Cypress sebagai salah satu bagian dari ekosistem Node.js dapat diinstal menggunakan npm atau yarn, selain itu juga bisa diunduh langsung dari situs web resminya.
Cypress memungkinkan Anda untuk menyiapkan, merancang skenario, menjalankan tes, hingga menyelidiki apa saja aspek yang tidak berjalan dengan benar dalam kegiatan tes tersebut. Kegiatan tes berjalan secara otomatis sehingga tidak mengganggu waktu Anda dalam pengembangan aplikasi, dan hasilnya bisa diketahui dengan jelas sehingga Anda tidak menghabiskan waktu hanya untuk mencari-cari letak kesalahan.
Fitur-fitur Cypress
Cypress memiliki daftar fitur yang cukup banyak. Beberapa fitur unggulan yang dimiliki Cypress adalah:
- Pencatatan seluruh kegiatan yang berlangsung saat pengujian, dibantu Command Log yang membantu menjelaskan perilaku apa yang dilakukan pada saat pengujian dan bagaimana aplikasi Anda meresponnya.
- Pengguna dapat men-debug kegiatan tes dari alat yang sudah familiar, seperti Developer Tools di browser untuk mengetahui, misalnya, apa yang membuat testing tidak berhasil.
- Kegiatan pengujian pada Cypress tidak perlu menambahkan teknik sinkronisasi seperti sleep atau wait, jadi ia menunggu aksi selanjutnya atau verifikasi selesai sebelum melanjutkan ke tahap selanjutnya.
- Pengendalian serta mengecek karakteristik function, timer, dan response.
- Pengujian pada edge test casedengan mengontrol traffic jaringan seolah-olah memanipulasinya.
- Pengambilan tangkapan layar (screenshot) saat pengujian tidak berhasil diselesaikan serta domjavascript perekaman video dari keseluruhan proses testing saat dilakukan dari CLI.
- Pengujian dari peramban yang berbeda seperti Firefox dan Chrome, termasuk peramban yang menggunakan teknologi Chromium seperti Microsoft Edge dan Electron.
- Integrasi dengan alat Continuous Integration untuk eksekusi di beberapa parameter.
- Pelaporan hasil yang cepat, stabil, dan dapat diandalkan karena menggunakan arsitektur yang berbeda dibandingkan produk sejenisnya. Tiap kegiatan pengujian juga diisolasi dan keadaan (state) browser dibersihkan sebelum melakukan tes selanjutnya.
- Pengujian tata letak responsivepada situs web dengan ukuran viewport yang bisa disesuaikan
- Menu test statusuntuk melihat skenario pengujian yang berhasil dan gagal dijalankan.
- Memuat ulang (reload) pembaruan yang dibuat pada pengujian secara default.
- Pesan error log yang jelas jika ada kesalahan pada pengujian sehingga penyebabnya bisa diperbaiki.
- API yang sederhana dan baik, serta tidak perlu konfigurasi yang banyak untuk mulai menjalankan Cypress.
Saat membangun rangkaian pengujian, pengguna perlu menentukan jenis tes yang akan dieksekusi. Cypress mendukung end-to-end dan component testing. Kedua jenis pengujian ini punya tujuan yang berbeda, tergantung dari kebutuhan Anda.
- End-to-end testing: pengujian ini menginspeksi aplikasi secara menyeluruh dari sisi back end sampai ke web browser, dengan menjangkau integrasi pihak ketiga. End to end test bertujuan untuk mengecek keseluruhan cara kerja aplikasi. Cypress melakukan pengujian jenis end to end dengan meniru cara pengguna sungguhan berinteraksi dengan aplikasi web, sehingga rangkaian pengujian diharapkan dapat mencerminkan pengalaman pengguna manusia saat menggunakan aplikasi tersebut. Perancangan jenis tes ini dibantu dengan API untuk mensimulasi pengujian oleh manusia. Pengujian ini perlu setupdan maintenance yang lebih rumit daripada component testing.
- Component testing: pengujian ini menginspeksi komponen-komponen dari aplikasi yang pengembangannya dipecah. Contoh komponen misalnya tombol sederhana dan formulir. Component testing berfokus pada fungsionalitas dari satu komponen, dapat berjalan terpisah dari keseluruhan aplikasi, serta lebih mudah dilakukan. Namun, pengujian ini mungkin tidak menggambarkan performa komponen secara keseluruhan, karena tidak menguji bagaimana komponen tersebut berinteraksi dengan yang lainnya atau bagaimana keseluruhan aplikasi berfungsi.
Selain mempunyai layanan berbentuk aplikasi, Cypress saat ini juga menawarkan Cypress Cloud sebagai layanan berbasis web untuk bisnis. Fitur-fitur Cypress Cloud seperti penyimpanan hasil perekaman testing, mengatur jalannya tes pada beberapa perangkat, analisis dan diagnosa yang lebih detail, dan integrasi dengan alat CI/CD. Saat ini Cypress Cloud tersedia dengan pilihan paket gratis dan berbayar. Untuk paket gratis memiliki kapasitas 3 pengguna, 500 hasil tes dan fitur penting seperti analytics, integrasi, debugging, dan parallelization. Untuk paket tim memiliki kapasitas 10 pengguna, 10 ribu hasil tes serta fitur tambahan seperti analisis jika dirasa ada hasil yang kurang bisa dipercaya.
Perbedaan Cypress dengan produk lainnya
Pada salah satu poin di bagian sebelumnya kami sempat menyinggung tentang arsitektur Cypress yang membuat hasil pengujian lebih akurat dan bisa diandalkan (reliable). Mungkin ada yang penasaran, apa bedanya arsitektur Cypress dan aplikasi lainnya?
Alat pengujian dari kompetitor seperti Selenium beroperasi dengan berjalan di luar browser dan mengeksekusi perintah jarak jauh (remote) lintas jaringan. Tetapi pada Cypress, pengujian dioperasikan langsung di dalam browser, dengan kata lain script pengujian dijalankan langsung pada peramban web. Hal ini memungkinkan Cypress untuk “mendengarkan” dan mengubah perilaku dari peramban yang dibuat untuk pengujian dengan memanipulasi Document Object Model (DOM) serta mengubah network request dan respon jaringan saat kegiatan pengujian tersebut dijalankan.
Cypress sangat sering dibandingkan dengan produk pengujian perangkat lunak lainnya yaitu Selenium. Keduanya memiliki kegunaan yang sama, namun cara kerja antara keduanya cukup berbeda. Pada Selenium, perlu ditentukan terlebih dahulu driver dari browser mana yang akan digunakan untuk kegiatan pengujian. Script pengujian yang isinya perintah yang dieksekusi akan berkomunikasi dengan browser driver ini melalui HTTP response dan HTTP request, baru selanjutnya dieksekusi pada browser. Sedangkan di Cypress, perintah langsung dieksekusi pada jendela browser yang dijalankan.
Penginstalan dan set up Cypress adalah proses yang terbilang cukup sederhana, tanpa memerlukan pengunduhan atau dependency tambahan. Berbeda dengan Selenium yang perlu pengaturan lebih lanjut untuk lingkungan pengujian serta pengunduhan driver yang spesifik untuk browser yang ingin digunakan. Keunggulan lainnya dari Cypress adalah perekaman video otomatis saat testing berjalan (hanya didukung pada penginstalan Cypress di npm), kemampuan untuk mencoba lagi (retry) aksi yang dilakukan pada elemen, fitur mock/stub request untuk skenario pengujian yang lebih luas, framework yang terinstal otomatis dan dapat langsung digunakan, serta hasil pengujian yang lebih jelas dengan kemampuan untuk menelusuri setiap langkah yang dilakukan. Ditambah lagi, Cypress memaparkan pesan error sejelas mungkin.
Namun, Cypress hanya bisa digunakan dengan bahasa JavaScript dan hanya mendukung framework Mocha JS. Sedangkan Selenium yang hadir lebih lama mendukung lebih banyak bahasa pemrograman, misalnya Java, Python, C#, serta PHP. Dukungan bahasa yang lebih banyak membuat Selenium juga dapat digunakan dengan framework bahasa pemrograman lainnya. Selain itu, Selenium mendukung Safari (Apple WebKit) secara penuh, sedangkan Cypress hanya mendukungnya secara experimental saat tulisan ini dibuat.
Maka dari itu, untuk pengembang yang baru mengenali pengujian aplikasi web, Cypress adalah pilihan yang cukup tepat. Namun jika ingin menguji aplikasi dengan bahasa pemrograman lain, mungkin akan lebih tepat memilih Selenium.
Penutup
Itu dia Cypress, suatu perangkat lunak untuk memudahkan pengujian aplikasi web. Semoga dapat menambah referensi Anda dalam pengembangan aplikasi. Ingin mendapatkan informasi lainnya soal website dan aplikasi? Ikuti terus kami di appkey.id agar tidak ketinggalan ya!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.