Tutorial Pengujian API: Apa itu Otomatisasi Pengujian API?
โก Ringkasan Cerdas
Pengujian API memvalidasi Antarmuka Pemrograman Aplikasi untuk memastikan fungsionalitas, keandalan, kinerja, dan keamanan menggunakan panggilan berbasis kode, bukan interaksi GUI.

Apa itu Pengujian API?
Pengujian API adalah jenis pengujian perangkat lunak yang memvalidasi Antarmuka Pemrograman Aplikasi (API). Tujuan Pengujian API adalah untuk memeriksa fungsionalitas, keandalan, kinerja, dan keamanan antarmuka pemrograman. Dalam Pengujian API, alih-alih menggunakan input pengguna standar (keyboard) dan output, Anda menggunakan perangkat lunak untuk mengirim panggilan ke API, mendapatkan output, dan mencatat respons sistem. Pengujian API sangat berbeda dari Pengujian GUI dan tidak akan berkonsentrasi pada tampilan dan nuansa aplikasi. Pengujian ini terutama berkonsentrasi pada lapisan logika bisnis dari arsitektur perangkat lunak.
Untuk latar belakang, API (Antarmuka Pemrograman Aplikasi) adalah antarmuka komputasi yang memungkinkan komunikasi dan pertukaran data antara dua sistem perangkat lunak terpisah. Sistem perangkat lunak yang menjalankan API mencakup beberapa fungsi/subrutin yang dapat dijalankan oleh sistem perangkat lunak lain. API mendefinisikan permintaan yang dapat dibuat, cara membuat permintaan, format data yang dapat digunakan, dll., antara dua sistem perangkat lunak.
Penyiapan Lingkungan Otomatisasi Uji API
Pengujian otomatisasi API memerlukan aplikasi yang dapat diinteraksi melalui API. Untuk menguji API, Anda perlu:
- Gunakan alat pengujian untuk menjalankan API.
- Tulis kode Anda sendiri untuk menguji API
Beberapa poin yang perlu diperhatikan:
- Pengujian API berbeda dari jenis pengujian lainnya karena GUI tidak tersedia, dan Anda harus menyiapkan lingkungan yang memanggil API dengan parameter yang dibutuhkan lalu memeriksa hasil pengujian.
- Menyiapkan lingkungan pengujian untuk pengujian otomatisasi API tampaknya agak rumit.
- Basis data dan server harus dikonfigurasi sesuai dengan kebutuhan aplikasi.
- Setelah instalasi selesai, fungsi API harus dipanggil untuk memeriksa apakah API tersebut berfungsi.
Jenis Output API
Salah satu output dari API bisa berupa:
- Semua jenis data
- Status (katakanlah Lulus atau Gagal)
- Panggil fungsi API lainnya.
Semua Jenis Data
Contoh: Ada fungsi API yang harus menambahkan dua bilangan bulat.
Long add(int a, int b)
Angka-angka harus diberikan sebagai parameter masukan. Outputnya harus berupa penjumlahan dari dua bilangan bulat. Keluaran ini perlu diverifikasi dengan hasil yang diharapkan.
add (1234, 5656)
Pengecualian harus ditangani jika angkanya melebihi batas bilangan bulat.
Status (Lulus atau Gagal)
Perhatikan fungsi-fungsi API di bawah ini:
- Kunci()
- Membuka kunci()
- Menghapus()
Mereka mengembalikan nilai apa pun seperti True (jika berhasil) atau False (jika terjadi kesalahan) sebagai output. Sebuah penjelasan yang lebih akurat. Kasus cobaan akan memanggil fungsi-fungsi dalam skrip mana pun dan kemudian memeriksa perubahan baik di basis data maupun antarmuka pengguna aplikasi.
Pemanggilan API/Acara Lain
Dalam hal ini, kita memanggil salah satu fungsi API yang pada gilirannya akan memanggil fungsi lain. Misalnya โ Fungsi API pertama dapat digunakan untuk menghapus data tertentu dalam tabel dan fungsi ini, pada gilirannya, memanggil fungsi lain untuk MEMPERBARUI basis data.
Kasus Uji untuk Pengujian API
Kasus uji pengujian API didasarkan pada:
- Nilai kembalian berdasarkan kondisi masukan: pengujiannya relatif mudah, karena masukan dapat ditentukan dan hasilnya dapat diautentikasi
- Tidak mengembalikan apa pun: Ketika tidak ada nilai kembalian, perilaku API pada sistem harus diperiksa
- Memicu beberapa API/peristiwa/interupsi lainnya: Jika keluaran dari suatu API memicu suatu kejadian atau interupsi, maka kejadian dan pendengar interupsi tersebut haruslah... tracked
- Perbarui struktur data: Memperbarui struktur data akan mempunyai beberapa hasil atau efek pada sistem, dan itu harus diautentikasi
- Ubah sumber daya tertentu: Jika panggilan API mengubah beberapa sumber daya maka panggilan tersebut harus divalidasi dengan mengakses sumber daya masing-masing
Pendekatan Pengujian API
Pendekatan Pengujian API adalah strategi atau metode yang telah ditentukan sebelumnya yang akan dilakukan oleh tim QA untuk melakukan pengujian API setelah build selesai. Pengujian ini tidak termasuk kode sumber. Pendekatan pengujian API membantu untuk lebih memahami fungsionalitas, teknik pengujian, parameter input, dan eksekusi kasus uji.
Poin-poin berikut membantu memandu pendekatan pengujian API:
- Memahami fungsionalitas program API dan mendefinisikan dengan jelas ruang lingkup program
- Terapkan teknik pengujian seperti kelas kesetaraan, analisis nilai batas, dan tebakan kesalahan serta tulis kasus pengujian untuk API
- Parameter input untuk API perlu direncanakan dan didefinisikan dengan tepat.
- Jalankan kasus uji dan bandingkan hasil yang diharapkan dan hasil aktual.
Cara Menguji API
Pengujian otomatisasi API setidaknya harus mencakup metode pengujian berikut di samping proses SDLC yang biasa:
- Pengujian penemuan: Grup pengujian harus secara manual menjalankan serangkaian panggilan yang didokumentasikan dalam API seperti memverifikasi bahwa sumber daya tertentu yang diekspos oleh API dapat dicantumkan, dibuat, dan dihapus sebagaimana mestinya
- Pengujian kegunaan: Pengujian ini memverifikasi apakah API berfungsi dan ramah pengguna. Dan apakah API juga terintegrasi dengan baik dengan platform lain
- Pengujian keamanan: Pengujian ini mencakup jenis autentikasi apa yang diperlukan dan apakah data sensitif dienkripsi melalui HTTP atau keduanya
- Pengujian otomatis: Pengujian API harus berujung pada pembuatan serangkaian skrip atau alat yang dapat digunakan untuk mengeksekusi API secara teratur
- Dokumentasi: Tim penguji harus memastikan bahwa dokumentasinya memadai dan memberikan informasi yang cukup untuk berinteraksi dengan API. Dokumentasi harus menjadi bagian dari hasil akhir
Perbedaan Antara Pengujian API dan Pengujian Unit
| Pengujian Unit | Pengujian API |
|---|---|
| Pengembang melakukannya | Penguji melakukannya |
| Fungsionalitas terpisah diuji | Fungsionalitas ujung ke ujung diuji |
| Pengembang dapat mengakses kode sumber | Penguji tidak dapat mengakses kode sumber |
| Pengujian UI juga terlibat | Hanya fungsi API yang diuji |
| Hanya fungsi dasar yang diuji | Semua masalah fungsional diuji |
| Terbatas dalam ruang lingkup | Cakupannya lebih luas |
| Biasanya dijalankan sebelum check-in | Uji coba dijalankan setelah build dibuat |
Praktik Terbaik Pengujian API
- Kasus uji API harus dikelompokkan berdasarkan kategori pengujian.
- Di atas setiap pengujian, Anda harus menyertakan deklarasi API yang dipanggil.
- Pemilihan parameter harus disebutkan secara eksplisit dalam kasus uji itu sendiri.
- Prioritaskan panggilan fungsi API agar mudah diuji oleh penguji.
- Setiap kasus uji harus sebisa mungkin mandiri dan tidak bergantung pada kasus lain.
- Hindari "pengujian berantai" dalam pengembangan Anda.
- Perhatian khusus harus diberikan saat menangani fungsi panggilan satu kali seperti Hapus, TutupJendela, dll.
- Pengurutan panggilan harus dilakukan dan direncanakan dengan baik.
- Untuk memastikan cakupan pengujian yang lengkap, buat kasus pengujian API untuk semua kemungkinan kombinasi input API.
Jenis-jenis Bug yang Terdeteksi oleh Pengujian API
- Gagal menangani kondisi kesalahan dengan baik
- Bendera yang tidak terpakai
- Fungsionalitas hilang atau duplikat
- Masalah keandalan, termasuk kesulitan terhubung dan mendapatkan respons dari API.
- Masalah keamanan
- Masalah multi-threading
- Masalah performa di mana waktu respons API sangat tinggi.
- Kesalahan/peringatan yang tidak tepat untuk penelepon
- Penanganan nilai argumen yang valid salah
- Data respons tidak terstruktur dengan benar (JSON atau XML)
Cara Melakukan Otomatisasi Pengujian API
Berikut ini adalah panduan terperinci untuk mengotomatiskan pengujian API:
Selain itu, ada yang lain alat untuk pengujian API.
Bagaimana AI Mengubah Pengujian API
Kecerdasan buatan sedang membentuk kembaliping Pengujian API dengan mengotomatiskan tugas manual. Algoritma pembelajaran mesin dapat menganalisis spesifikasi API, menghasilkan kasus uji, dan mengidentifikasi kasus-kasus khusus yang mungkin terlewatkan oleh penguji manusia.
AI juga meningkatkan pengujian keamanan dengan mendeteksi kerentanan. Namun, AI seharusnya melengkapi, bukan menggantikan keahlian manusia, karena insinyur QA membawa pengetahuan domain yang tidak dapat ditiru oleh AI.
Tantangan Pengujian API
- Tantangan utama dalam pengujian API web adalah kombinasi parameter, pemilihan parameter, dan pengurutan panggilan.
- Tidak ada GUI yang tersedia untuk menguji aplikasi, sehingga menyulitkan untuk memberikan nilai input.
- Memvalidasi dan memverifikasi output di sistem yang berbeda agak sulit bagi penguji.
- Pemilihan dan kategorisasi parameter harus diketahui oleh penguji.
- Fungsi penanganan pengecualian perlu diuji.
- Pengetahuan pemrograman diperlukan bagi para penguji.
Kesimpulan
API terdiri dari sekumpulan kelas/fungsi/prosedur yang mewakili lapisan logika bisnis. Jika API tidak diuji dengan benar, hal ini dapat menyebabkan masalah tidak hanya pada aplikasi API tetapi juga pada aplikasi pemanggil. Ini adalah tes yang sangat diperlukan dalam rekayasa perangkat lunak.



