Mari kita mulai dari dasar-dasarnya. Mempelajari dua mode pengujian umum dan tiga jenis otomatisasi pengujian umum.
Kita semua pernah mengalaminya: apa meme coding berulang yang sering terjadi dalam kehidupan nyata?
Meme ini merangkumnya dengan cukup baik: setiap panel samping berfungsi dengan baik secara terpisah, tetapi jika dikombinasikan dengan panel samping lainnya, panel samping tersebut akan saling memblokir dan gagal berfungsi. Anda ingin kedua panel samping berfungsi dengan baik satu sama lain dan dapat dioperasikan secara bersamaan.
Terapkan hal ini ke pengembangan web: Anda menulis beberapa pengujian, bahkan mungkin mencapai cakupan pengujian 100%, tetapi aplikasi Anda masih harus berfungsi setelah bagian lain terpasang. Unit tersebut mungkin berfungsi dengan baik sendiri, tetapi tidak terkait satu sama lain. Menulis beberapa pengujian sangatlah penting, tetapi itu hanyalah satu bagian dari penyiapan pengujian yang ideal untuk project Anda. Sebagai langkah pertama, Anda perlu menentukan bagian kualitas aplikasi yang perlu Anda pastikan dan cara mencapainya.
Singkatnya, Anda memerlukan rencana sebelum mulai menulis kode pengujian yang sebenarnya. Untuk membahas topik cara melakukan pengujian secara praktis, mari kita mulai dari awal dan jawab 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 dasar yang sama, mari kita pelajari terlebih dahulu mode pengujian yang ada, lalu berfokus pada jenis pengujian umum. Dalam artikel berikutnya, kita akan menjawab pertanyaan kedua, menggabungkan jawaban, dan menemukan strategi pengujian yang paling sesuai untuk project Anda. Ayo mulai! 🙌
Mulailah dengan dasar-dasarnya: Mode pengujian umum
Saat menjawab pertanyaan tentang cara melakukan pengujian, poin pertama yang harus diklarifikasi sangat abstrak. Apakah Anda harus menguji secara manual atau membiarkan komputer mengambil alih? Namun, penting untuk tidak terjebak dalam pemikiran biner di sini.
Pengujian manual versus pengujian otomatis
Jika Anda meminta engineer jaminan kualitas untuk menentukan pengujian, mereka mungkin akan membaginya menjadi dua "mode" terlebih dahulu:
- Pengujian manual. Ini adalah metode pengujian umum yang dilakukan oleh orang sungguhan. Engineer jaminan kualitas mengklik aplikasi, memeriksa apakah aplikasi berfungsi, dan pada saat yang sama, mencoba merusaknya. Cara yang paling umum adalah pengujian eksplorasi, yaitu ketika engineer menyelidiki aplikasi menggunakan pengetahuan mereka tentang aplikasi tersebut berdasarkan jalur atau checklist yang telah ditentukan.
- Pengujian otomatis. Ini adalah jenis pengujian yang dilakukan oleh komputer. Engineer jaminan kualitas menerapkannya untuk mengotomatiskan pengujian 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, manusia dan pengujian manual akan selalu berperan penting. Sebaliknya, otomatisasi pengujian harus membebaskan orang untuk berfokus pada pengujian eksplorasi dan pemecahan masalah kreatif. Misalnya, memastikan kualitas pengalaman pengguna atau melindungi logika bisnis berisiko tinggi. Dengan kata lain, otomatisasi siap membantu Anda. ❤️
Kotak buram versus kotak bening
Jadi, Anda telah menentukan mode pengujian umum. Namun, itu belum cukup. Untuk merencanakan strategi pengujian, ada satu pertanyaan lagi yang harus dijawab: apakah Anda harus mengetahui cara kerja aplikasi di balik layar atau lebih baik melakukan pengujian 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 transparan (atau pengujian kotak putih) adalah prosedur yang memperhitungkan 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 satu dari keduanya—kita akan membahasnya nanti. Untuk saat ini, mari kita uraikan otomatisasi pengujian lebih lanjut ke dalam jenis.
Jenis otomatisasi pengujian: Bagaimana Anda ingin melakukan pengujian?
Saat semakin mendekati jawaban atas pertanyaan "bagaimana", Anda telah memutuskan untuk melakukan beberapa pengujian manual. Namun, memilih dan menerapkan jenis otomatisasi pengujian sedikit lebih menantang. Jenis pengujian otomatisasi sangat terkait dengan metrik yang ingin Anda buat dalam project. Jadi, mari kita pelajari lebih lanjut yang paling penting.
Seperti yang diilustrasikan dalam meme yang disebutkan sebelumnya, Anda telah menemukan dua jenis: pengujian unit dan pengujian integrasi. Pengujian menyeluruh adalah hal penting ketiga yang perlu dipertimbangkan. Namun, itu belum semuanya. Ayo kita pelajari lebih lanjut.
Pengujian unit
Pengujian unit adalah jenis pengujian yang menguji bagian atau unit kecil yang dapat diuji dari aplikasi secara terpisah dan independen untuk memastikan pengoperasiannya berjalan dengan benar. Cakupan unit ini dapat bervariasi, 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, buka panduan tentang pengujian unit ini.
Pengujian integrasi
Pengujian integrasi berfokus pada interaksi antarkomponen 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. Pengujian ini berinteraksi dengan UI aplikasi Anda, termasuk stack aplikasi lengkap, dan menguji aplikasi Anda dari satu ujung ke ujung lainnya.
Pengujian ini menyerupai pengujian sistem jika Anda merujuk pada teori jaminan kualitas. Pengujian ini menyimulasikan pengguna asli dan interaksinya. Pengujian menyeluruh memerlukan lebih banyak runtime karena melibatkan seluruh sistem dan lebih banyak runtime memerlukan lebih banyak daya komputasi. Akibatnya, upaya tambahan ini menghasilkan 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 cara untuk memverifikasi output aplikasi yang terlihat. Pengujian tersebut mengambil screenshot setelah perubahan dan screenshot lain yang berisi “status quo” (atau file emas), lalu memberikan hasil tersebut kepada peninjau manual untuk diperiksa dan dicek. Dengan kata lain, ini membantu menemukan “bug visual” pada tampilan halaman, selain bug fungsional murni dan tidak ditulis secara eksplisit dalam pernyataan.
Analisis statis
Ada satu hal lagi yang perlu diperkenalkan di sini: analisis statis. Ini bukan jenis pengujian dalam arti buku teks. Namun, hal ini akan menjadi aspek penting dalam strategi jaminan kualitas nanti. Anda dapat membayangkannya berfungsi seperti fungsi periksa ejaan: fungsi ini memindai kode Anda untuk menemukan cacat dan error sintaksis yang lebih signifikan tanpa menjalankan program, sehingga mendeteksi masalah gaya kode. Tindakan sederhana ini dapat mencegah banyak bug. Ini adalah titik yang tepat untuk mempelajari Analisis Statis jika Anda ingin mengenalnya secara lebih mendetail.
Pengujian dalam berbagai bentuk: Bagaimana semuanya bekerja sama?
Saat mencari jawaban atas semua pertanyaan ini, Anda mungkin menemukan kemungkinan solusi dalam beberapa analogi. Khususnya di komunitas web dan pengujian, developer cenderung menggunakan analogi ini untuk memberi Anda gambaran tentang jumlah pengujian yang harus digunakan dari jenis mana.
Lima strategi berikut yang digambarkan dalam gambar ini adalah yang paling umum:
- Piramida Pengujian
- Diamond Pengujian
- Test Ice Cone (juga dikenal sebagai Test Pizza)
- Menguji Sarang Lebah
- Trofi Ujian
Ini benar-benar banyak informasi yang harus diproses. Bagaimana cara Anda menentukan strategi pengujian yang cocok berdasarkan semua hal ini? Jangan khawatir, kami siap membantu Anda. Pada artikel berikutnya, kita akan membahas berbagai strategi ini secara lebih mendetail dan menjelaskan cara memilih strategi yang paling sesuai untuk project Anda. Nantikan kabar terbarunya. 🔥