Mari kita mulai dari dasar-dasarnya. Mempelajari dua mode pengujian umum dan tiga jenis umum otomatisasi pengujian.
Kita semua pernah mengalaminya: apa meme {i>coding<i} berulang yang terlalu sering terjadi di kehidupan nyata?
Meme ini merangkumnya dengan cukup baik: setiap panel samping berfungsi dengan sangat baik satu per satu, tetapi jika digabungkan dengan panel samping lainnya, panel ini saling memblokir dan gagal berfungsi. Anda ingin kedua panel samping berfungsi baik satu sama lain dan dapat dioperasikan secara bersamaan.
Terapkan ini ke pengembangan web: Anda menulis beberapa pengujian, bahkan mungkin mencapai cakupan pengujian 100%, tetapi aplikasi Anda masih perlu berfungsi setelah bagian lain diterapkan. Unit-unit tersebut dapat berfungsi dengan baik sendiri-sendiri, tetapi tidak saling terkait. Menulis beberapa pengujian sangat penting, tetapi itu hanya salah satu bagian dari penyiapan pengujian yang ideal untuk proyek Anda. Sebagai langkah paling pertama, Anda perlu menentukan bagian kualitas aplikasi mana yang perlu dipastikan dan bagaimana Anda dapat mencapainya.
Sederhananya, Anda memerlukan rencana sebelum mulai menulis kode pengujian yang sebenarnya. Untuk mendekati topik tentang cara menguji secara praktis, mari kita mulai dengan dari awal dan menjawab dua pertanyaan dasar:
- Bagaimana Anda ingin mengujinya?
- Apa yang ingin Anda uji coba?
Artikel ini berfokus pada hal-hal umum yang perlu Anda ketahui untuk menjawab pertanyaan pertama. Untuk memulai dari kesamaan, mari kita pelajari mode pengujian apa saja yang ada, lalu fokus pada jenis pengujian umum. Pada artikel selanjutnya, kita akan menjawab pertanyaan kedua, menggabungkan jawaban, dan menemukan strategi pengujian yang paling cocok untuk proyek Anda. Ayo mulai! 🙌
Mulailah dengan dasar-dasar: Mode pengujian umum
Saat menjawab pertanyaan tentang cara melakukan pengujian, poin pertama yang harus di klarifikasi sangat abstrak. Haruskah Anda menguji secara manual atau membiarkan komputer mengambil alih? Namun, penting untuk tidak jatuh ke dalam pemikiran biner di sini.
Pengujian manual versus pengujian otomatis
Jika Anda meminta engineer uji mutu untuk menentukan pengujian, mereka mungkin akan menguraikannya menjadi dua "mode" terlebih dahulu:
- Pengujian manual. Ini adalah metode pengujian umum yang dilakukan oleh orang sungguhan. Insinyur jaminan kualitas mengklik aplikasi tersebut, memeriksa apakah aplikasi berfungsi dan, pada saat yang sama, mencoba untuk merusaknya. Cara yang paling umum adalah pengujian eksploratif, yaitu engineer menyelidiki aplikasi menggunakan pengetahuannya tentang aplikasi terhadap jalur atau checklist yang telah ditetapkan.
- Pengujian otomatis. Ini adalah jenis pengujian yang dilakukan oleh komputer. Engineer uji mutu menerapkannya untuk mengotomatiskan pengujian yang berulang dan monoton.
Rangkaian panduan ini sebagian besar akan berfokus pada pengujian otomatis. Namun, Anda tidak boleh hanya berfokus pada satu cara pengujian. Meskipun otomatisasi menghemat banyak waktu dan tenaga, pengujian manual dan manusia akan selalu memainkan peran penting. Sebaliknya, otomatisasi pengujian harus membebaskan orang untuk berfokus pada pengujian eksploratif dan pemecahan masalah secara kreatif. Misalnya, memastikan kualitas pengalaman pengguna atau melindungi logika bisnis berisiko tinggi. Dengan kata lain, otomatisasi mendukung Anda. ❤️
Kotak buram versus kotak bening
Jadi, Anda telah menentukan mode pengujian umum. Namun, hal itu belum cukup. Untuk merencanakan strategi pengujian, ada satu pertanyaan lagi yang harus dijawab: apakah Anda harus tahu cara kerja aplikasi Anda di balik layar atau lebih baik menguji tanpa pengetahuan ini? Bergantung pada jawabannya, ada dua prosedur yang dapat dipilih untuk mendapatkan dan memilih kasus pengujian:
- Pengujian kotak buram (atau pengujian kotak hitam). Hal ini didasarkan pada analisis persyaratan fungsional atau non-fungsional (spesifikasi) komponen atau sistem tanpa mempertimbangkan struktur internalnya.
- Pengujian kotak kosong (atau pengujian kotak putih) adalah prosedur yang mempertimbangkan struktur internal kotak tersebut. Dengan kata lain, cara kerja aplikasi Anda di balik layar.
Kedua prosedur tersebut dapat diterapkan untuk pengujian manual dan otomatis. Namun, beberapa aspek mode pengujian umum mungkin lebih berfokus pada salah satunya. Kita akan membahasnya nanti. Untuk saat ini, mari kita uraikan otomatisasi pengujian lebih lanjut menjadi beberapa jenis.
Jenis otomatisasi pengujian: Bagaimana Anda ingin mengujinya?
Saat Anda semakin dekat dengan menjawab pertanyaan "bagaimana", Anda telah memutuskan untuk melakukan pengujian manual. Namun, memilih dan menerapkan jenis otomatisasi pengujian sedikit lebih sulit. Jenis pengujian otomatisasi terkait erat dengan metrik yang ingin Anda buat dalam project Anda. Jadi, mari kita pelajari lebih lanjut yang paling penting.
Seperti digambarkan dalam meme yang disebutkan sebelumnya, Anda telah menemukan dua jenis: pengujian unit dan pengujian integrasi. Pengujian menyeluruh adalah hal ketiga yang penting untuk dipertimbangkan. Tapi tidak semuanya tetap seperti itu. Mari kita lihat lebih dekat.
Pengujian unit
Pengujian unit adalah jenis pengujian saat bagian atau unit kecil yang dapat diuji dari aplikasi diuji satu per satu dan secara independen untuk pengoperasian yang benar. Unit-unit ini dapat bervariasi cakupannya mulai dari fungsi, class, atau antarmuka, hingga layanan atau komponen lengkap. Atribut utamanya adalah kecepatan eksekusi, isolasi, dan kemudahan pemeliharaan. Jika Anda ingin mempelajari pengujian unit lebih lanjut, baca panduan pengujian unit ini.
Pengujian integrasi
Pengujian integrasi berfokus pada interaksi antara komponen atau sistem. Dengan kata lain, seberapa baik keduanya bekerja sama. Contoh umum pengujian integrasi adalah pengujian API atau komponen.
Pengujian menyeluruh
Pengujian ini sering disebut pengujian UI dan nama ini menjelaskan fungsinya dengan lebih baik lagi. Pengujian ini berinteraksi dengan UI aplikasi Anda, termasuk stack aplikasi lengkap, dan menguji aplikasi Anda dari satu ujung ke ujung lainnya.
Pengujian ini menyerupai uji sistem jika Anda merujuk pada teori uji mutu. Pengujian ini menyimulasikan pengguna asli dan interaksi mereka. Pengujian menyeluruh membutuhkan lebih banyak runtime karena melibatkan seluruh sistem, dan lebih banyak runtime yang memerlukan lebih banyak daya komputasi. Hasilnya, upaya tambahan ini mengakibatkan biaya pemeliharaan yang lebih tinggi.
Pengujian UI visual
Subkategori pengujian UI yang menarik adalah pengujian visual. Pengujian ini adalah pengujian menyeluruh yang diperluas yang menyediakan sarana untuk memverifikasi output yang terlihat dari sebuah aplikasi. Pengujian tersebut mengambil tangkapan layar setelah perubahan dan tangkapan layar lain yang berisi “status quo” (atau {i>file<i} emas), kemudian memberikan hasil tersebut kepada petugas peninjau untuk diperiksa dan diperiksa. Dengan kata lain, fitur ini membantu menemukan “bug visual” dalam tampilan halaman, di luar bug yang berfungsi sepenuhnya dan tidak ditulis secara eksplisit dalam pernyataan.
Analisis statis
Ada satu hal lagi yang perlu diperkenalkan di sini: analisis statis. Ini bukanlah jenis pengujian dalam pengertian buku pelajaran. Namun, hal tersebut akan menjadi aspek penting dalam strategi uji mutu di kemudian hari. Anda dapat membayangkan fungsinya seperti fungsi periksa ejaan: fungsi ini memindai kode Anda untuk menemukan cacat dan kesalahan sintaksis yang lebih signifikan tanpa menjalankan program, sehingga mendeteksi masalah gaya kode. Tindakan sederhana ini dapat mencegah banyak bug. Artikel ini adalah poin yang bagus untuk mempelajari Analisis Statis jika Anda ingin mengenalnya lebih detail.
Menguji dalam segala bentuk: Bagaimana semua ini bekerja bersama-sama?
Saat mencari jawaban untuk semua pertanyaan ini, Anda mungkin menemukan solusi yang mungkin dalam beberapa analogi. Khususnya di komunitas web dan pengujian, developer cenderung menggunakan analogi ini untuk memberi Anda gambaran tentang berapa banyak pengujian yang harus Anda gunakan dari jenis yang mana.
Lima strategi berikut yang digambarkan dalam gambar ini adalah strategi yang paling umum:
- Uji Piramida
- Berlian Uji
- Test Ice Cone (juga dikenal sebagai Test Pizza)
- Uji Sarang Lebah
- Piala Uji
Ini benar-benar banyak informasi yang harus diproses. Bagaimana sebaiknya Anda memutuskan strategi pengujian yang cocok berdasarkan semua ini? Jangan khawatir, kami siap membantu Anda. Pada artikel berikutnya, kita akan membahas berbagai strategi ini secara lebih rinci dan menjelaskan bagaimana memilih strategi yang paling cocok untuk proyek Anda. Nantikan kabar terbarunya. 🔥