Apa itu Pengujian Antarmuka? Jenis & Contoh

โšก Ringkasan Cerdas

Pengujian Antarmuka memverifikasi bahwa dua sistem perangkat lunak yang terhubung bertukar data dengan benar. Ini mencakup tautan server web, server aplikasi, dan server basis data yang membawa setiap permintaan yang dibuat oleh aplikasi, beserta penanganan kesalahan di sekitarnya.

  • ๐Ÿ”— Definisi: Antarmuka adalah koneksi apa pun โ€” API, layanan web, atau antrian pesan โ€” yang menghubungkan dua komponen.
  • ๐Ÿงญ Dua segmen: Pengujian menargetkan tautan antara server web dan server aplikasi, serta tautan antara server aplikasi dan server basis data.
  • ๐Ÿ“„ Contoh yang dikerjakan: Input XML dan output JSON divalidasi terhadap spesifikasi format yang telah dipublikasikan.
  • ๐Ÿงช Jenis pengujian: Alur kerja, kasus-kasus ekstrem, kinerja dan beban, ditambah setiap sistem individual yang diuji secara terpisah.
  • ๏ธ Perkakas: Klien API dan virtualisasi layanan mendorong permintaan ketika tidak ada antarmuka pengguna yang dapat diklik.
  • ๐Ÿ” Batasan cakupan: Pengujian antarmuka adalah subtipe dari pengujian integrasi yang berfokus pada koneksi antar komponen.tracitu sendiri.

Pengujian Antarmuka antara server web, server aplikasi, dan server basis data

Apa itu Pengujian Antarmuka?

Pengujian Antarmuka didefinisikan sebagai jenis pengujian perangkat lunak yang memverifikasi apakah komunikasi antara dua sistem perangkat lunak yang berbeda dilakukan dengan benar.

Koneksi yang mengintegrasikan dua komponen disebut antarmuka. Dalam dunia komputer, antarmuka ini bisa berupa apa saja, seperti API, layanan web, dan lain sebagainya. Pengujian layanan penghubung atau antarmuka ini disebut Pengujian Antarmuka.

Antarmuka sebenarnya adalah perangkat lunak yang terdiri dari kumpulan perintah, pesan, dan atribut lain yang memungkinkan komunikasi antara perangkat dan pengguna.

Poin pentingnya adalah bahwa sebuah antarmuka memiliki sebuah kontract: format permintaan yang disepakati, format respons yang disepakati, serangkaian kode kesalahan yang disepakati, dan batas waktu yang disepakati. Latihan pengujian antarmuka yang mencakuptracdari kedua sisi, sehingga perubahan yang dilakukan oleh satu tim tidak secara diam-diam merusak tim lainnya. Karena sebagian besar lalu lintas ini tidak pernah mencapai layar, cacat yang ditemukannya tidak terlihat oleh pengujian kotak hitam dilakukan hanya melalui antarmuka pengguna.

Bagaimana melakukan Pengujian Antarmuka

Pengujian Antarmuka mencakup pengujian dua segmen utama:

  1. Server web dan antarmuka server aplikasi
  2. Server aplikasi dan antarmuka server database.

Untuk skenario yang disebutkan di atas, pengujian antarmuka dilakukan

  • Periksa server dijalankan dengan benar atau tidak
  • Kesalahan ditangani dengan benar atau mengembalikan pesan kesalahan untuk setiap permintaan yang dibuat oleh aplikasi
  • Periksa hasilnya ketika koneksi ke server web diatur ulang di antaranya

Diagram di bawah ini menunjukkan kedua segmen tersebut sebagai satu rantai tunggal, dengan browser berkomunikasi dengan server web, server web berkomunikasi dengan server aplikasi, dan server aplikasi berkomunikasi dengan server basis data.

Pengujian antarmuka di seluruh rantai server web, server aplikasi, dan server basis data.

Dalam praktiknya, seorang penguji menelusuri rantai tersebut satu langkah demi satu langkah. Setiap langkah dijalankan dengan permintaan yang valid terlebih dahulu, kemudian dengan permintaan yang salah format, lalu dengan ujung yang lain sengaja tidak tersedia, sehingga jalur keberhasilan dan jalur kegagalan dicatat pada hal yang sama. Kasus cobaan.

Contoh Pengujian Antarmuka

Misalkan untuk aplikasi xyz apa pun, antarmuka tersebut mengambil XML file sebagai input dan memberikan JSON file sebagai output. Untuk menguji antarmuka aplikasi ini, yang dibutuhkan hanyalah spesifikasi format file XML dan format file JSON.

Dengan bantuan spesifikasi ini, kita dapat membuat contoh file XML input dan memasukkannya ke dalam antarmuka. Kemudian, memvalidasi file input (XML) dan output (JSON) dengan persyaratan tersebut disebut pengujian antarmuka.

Perhatikan apa yang tidak dibutuhkan oleh contoh ini: tidak ada layar, tidak ada pembuatan antarmuka pengguna (front end), dan tidak ada pengetahuan tentang kode di dalam antarmuka. Dua spesifikasi format sudah cukup untuk menulis pengujian, itulah sebabnya pengujian antarmuka dapat dimulai jauh sebelum antarmuka pengguna ada.

Mengapa Pengujian Antarmuka

Pengujian Antarmuka selesai

  • Untuk memastikan bahwa pengguna akhir atau pelanggan tidak mengalami masalah apa pun saat menggunakan produk perangkat lunak tertentu
  • Untuk mengidentifikasi area aplikasi mana yang biasanya diakses oleh pengguna akhir dan untuk memeriksa kemudahan penggunaan juga.
  • Untuk memverifikasi persyaratan keamanan saat komunikasi menyebar antar sistem
  • Untuk memeriksa apakah suatu solusi mampu menangani kegagalan jaringan antara server aplikasi dan situs web

Ada juga argumen biaya. Cacat pada format permintaan murah untuk diperbaiki saat kedua sistem masih dihubungkan, dan menjadi mahal setelah sistem hilir telah menyimpan data yang salah format tersebut.

Jenis Pengujian Antarmuka

Selama Pengujian Antarmuka berbagai jenis pengujian dilakukan pada antarmuka yang mungkin termasuk

  • Alur kerja: Ini memastikan bahwa mesin antarmuka menangani alur kerja standar Anda seperti yang diharapkan.
  • Kasus-kasus khusus - nilai yang tidak terduga: Hal ini dipertimbangkan ketika pengujian mencakup pembalikan tanggal, bulan, dan hari.
  • Pengujian kinerja, beban, dan jaringan: Antarmuka bervolume tinggi mungkin memerlukan lebih banyak Pengujian beban daripada antarmuka bervolume rendah, tergantung pada mesin antarmuka dan infrastruktur konektivitas
  • Sistem individu: Hal ini mencakup pengujian setiap sistem secara individual. Misalnya, sistem penagihan dan sistem manajemen inventaris untuk toko ritel harus dapat beroperasi secara terpisah.

Item pertama cukup dekat dengan pengujian alur kerja untuk menggunakan kembali skenarionya, dan item terakhir tumpang tindih dengan pengujian modulKarena sistem yang gagal dengan sendirinya akan gagal lagi begitu terhubung.

Strategi Pengujian Antarmuka

Strategi Pengujian Antarmuka adalah metode yang digunakan untuk menguji antarmuka dengan pengujian umum tanpa memandang implementasinya. Kita dapat menggunakan abstract kasus uji dan membuat contoh konkret dari Kasus Uji untuk setiap implementasi strategi pengujian antarmuka. Basis/absoluttracKasus uji t melakukan pengujian yang netral terhadap implementasi, sedangkan pengujian konkret menangani instansiasi objek yang akan diuji dan melakukan pengujian spesifik implementasi.

Keuntungan dari struktur tersebut adalah penggunaan kembali. Ketika implementasi ketiga dari antarmuka yang sama muncul, maka...tract suite berjalan tanpa perubahan, dan hanya kode instansiasi yang perlu ditulis. Ide yang sama diterapkan dalam skala yang lebih besar di pengujian komponen, di mana sebuah kesepakatan bersamatract suite dijalankan terhadap setiap komponen yang mengklaim memenuhi persyaratannya.

Alat Pengujian Antarmuka

Karena antarmuka tidak memiliki layar, perangkat lunak harus membuat permintaan secara langsung dan memastikan kebenaran respons mentah. Tim biasanya menggabungkan tiga kategori perangkat lunak.

  • Klien API dan pembangun permintaan: Alat seperti Postman, SoapUIInsomnia dan Hoppscotch mengirimkan panggilan REST, SOAP, atau GraphQL, menyimpannya sebagai koleksi yang dapat digunakan kembali, dan melakukan penegasan pada kode status, header, dan isi respons.
  • Code-perpustakaan pengujian tingkat lanjut: Pustaka yang berjalan di dalam rangkaian pengujian yang ada memungkinkan pemeriksaan antarmuka berjalan berdampingan dengan pengujian unit dan dieksekusi pada setiap proses build, sehingga mencegahnya menjadi usang.
  • Alat pemuatan dan protokol: Alat seperti JMeter menggerakkan antarmuka yang sama pada volume, yang mengubah pemeriksaan fungsional menjadi pengujian kinerja dari koneksi.
  • Virtualisasi layanan dan simulasi: Sebuah saluran cabang yang menggantikan ujung yang lain memungkinkan satu sisi diuji sementara sisi lainnya tidak tersedia, belum selesai, atau terlalu mahal untuk dihubungi berulang kali.

Pemilihan klien kurang penting dibandingkan cakupan pengujian. Klien mana pun yang dipilih, kumpulan permintaan harus disimpan dalam kontrol versi bersama dengan kode, sehingga perubahan pada antarmuka dan perubahan pada pengujiannya tiba dalam commit yang sama. Detail kategori yang lebih luas dibahas dalam Pengujian API.

Daftar Periksa dan Praktik Terbaik Pengujian Antarmuka

Daftar periksa singkat menjaga cakupan antarmuka tetap akurat di seluruh rilis. Kerjakan daftar periksa ini untuk setiap koneksi, bukan untuk aplikasi secara keseluruhan.

  • dengantracPertama: Konfirmasikan bahwa skema permintaan dan respons sesuai dengan spesifikasi yang dipublikasikan, bidang demi bidang, termasuk tipe data dan bidang opsional.
  • Nilai batas: Mengirimkan payload kosong, kolom dengan panjang maksimum, kumpulan karakter yang tidak terduga, dan format tanggal terbalik.
  • Jalur kesalahan: Pastikan setiap kegagalan mengembalikan kode dan pesan yang bermakna, bukan sekadar tumpukan (stack). tracatau kesuksesan yang senyap.
  • Batas waktu dan percobaan ulang: Putuskan koneksi di tengah permintaan dan pastikan pemanggil mencoba lagi dengan aman tanpa menduplikasi transaksi.
  • Keamanan: Periksa otentikasi, otorisasi, dan enkripsi pada tautan tersebut, dan pastikan pesan kesalahan tidak membocorkan detail internal.
  • Konsistensi data: Baca kembali rekaman dari sisi yang berlawanan dan pastikan tidak ada yang terpotong, dikode ulang, atau diurutkan ulang selama pengiriman.
  • Volume: Ulangi panggilan dengan lalu lintas tertinggi di bawah beban bersamaan dan perhatikan hingga terjadi kehabisan kumpulan koneksi.

Tiga praktik membuat daftar periksa tersebut dapat diulang. Pertama, otomatiskan rangkaian pengujian dan jalankan pada setiap build, karena antarmuka berubah lebih senyap daripada layar. Kedua, catat permintaan dan respons lengkap untuk setiap kegagalan, karena cacat antarmuka hampir tidak mungkin direproduksi dari tangkapan layar. Ketiga, jaga agar rangkaian pengujian tetap independen dari data pengujian yang dibuat oleh rangkaian pengujian lain, sehingga kegagalan mengarah pada antarmuka dan bukan pada catatan yang hilang.

Pemeriksaan ini secara alami terintegrasi dalam rencana yang lebih luas yang dijelaskan di jenis pengujian perangkat lunak, dan mereka berjalan sebelum koneksi yang sama dijalankan dari ujung ke ujung selama pengujian sistem.

Pengujian Antarmuka Vs Pengujian Integrasi

Kedua istilah tersebut saling terkait, bukan bertentangan: pengujian antarmuka adalah bagian dari pekerjaan integrasi yang berfokus pada koneksi itu sendiri. Tabel di bawah ini menjelaskan penekanan dari masing-masing sisi.

Pengujian Antarmuka Tes integrasi
Jenis pengujian integrasi yang berkaitan dengan pengujian antarmuka antar komponen atau sistem Pengujian dilakukan untuk mengungkap cacat pada antarmuka dan interaksi antara komponen atau sistem yang terintegrasi.
Fokus adalah kontratract โ€” format permintaan, format respons, kode kesalahan, dan batas waktu Fokus adalah perilaku gabungan dari komponen-komponen setelah digabungkan.
Dapat dieksekusi segera setelah spesifikasi ada, dengan ujung yang lain masih berupa kerangka kerja. Membutuhkan komponen-komponen yang berpartisipasi untuk dibangun dan diimplementasikan secara bersamaan.
Kegagalan terjadi pada satu koneksi. Kegagalan dapat terjadi pada komponen mana pun dalam kelompok yang dirakit.

Siapa pun yang baru mengenal disiplin ilmu yang lebih luas akan menemukan tingkatan-tingkatan di sekitarnya dijelaskan di sini. tes integrasi dan secara umum pengujian perangkat lunak Pendahuluan, sementara terminologi yang digunakan di atas berasal dari standar. rekayasa Perangkat Lunak praktik. Untuk sistem yang menghadap peramban, koneksi yang sama pada akhirnya akan digunakan kembali selama pengujian aplikasi web.

Pertanyaan Umum Demo Slot

Biasanya, insinyur QA yang bertanggung jawab atas cakupan integrasi, bekerja sama dengan pengembang kedua sistem. Pada produk yang banyak menggunakan layanan, penguji API khusus yang menanganinya, karena pekerjaan tersebut membutuhkan keterampilan konstruksi permintaan daripada keterampilan navigasi layar.

Tidak ada output yang terlihat untuk diperiksa, endpoint pihak ketiga yang tidak dapat dipanggil secara bebas, data uji yang harus ada di kedua sisi, dan spesifikasi yang berubah tanpa pemberitahuan. Stub dan koleksi permintaan yang dikontrol versi mengurangi sebagian besar masalah tersebut.

Keduanya sangat tumpang tindih. API adalah salah satu jenis antarmuka, jadi... Pengujian API Pengujian antarmuka diterapkan pada teknologi spesifik tersebut. Pengujian antarmuka juga mencakup pengiriman file, antrian pesan, dan tautan basis data yang tidak memiliki API.

Tidak. Namanya sama, tetapi targetnya berbeda. Pengujian antarmuka memeriksa koneksi antar sistem; pengujian antarmuka pengguna memeriksa layar, kontrol, dan tata letak. Mencampuradukkan keduanya berarti koneksi sisi server tidak diuji.

Segera setelah spesifikasi permintaan dan respons disepakati, yang biasanya terjadi sebelum kedua sistem selesai. Penggunaan stub pada ujung yang lain memungkinkan rangkaian pengujian berjalan lebih awal, dan rangkaian pengujian yang sama dapat digunakan kembali setelah kedua sistem beroperasi.

Proporsi titik akhir yang terdokumentasi dengan setidaknya satu pengujian positif dan satu pengujian negatif, proporsi kode kesalahan yang dinyatakan yang benar-benar dipicu, dan jumlah cacat antarmuka yang terdeteksi.ping ke fase selanjutnya. Jumlah tes mentah membuktikan sangat sedikit.

Pembelajaran mesin membaca skema dan menghasilkan muatan batas dan negatif yang akan dilewati oleh manusia, kemudian mengelompokkan respons yang gagal sehingga satu penyebab utama tidak dilaporkan delapan kali. Ia juga menandai perubahan skema yang tidak lagi sesuai dengan permintaan yang ada.

Ya. Dengan diberikan skema atau contoh muatan data, sistem ini dapat dengan cepat membuat pembuat permintaan, pernyataan, dan respons tiruan. Spesifikasi tetap harus diberikan oleh manusia, karena pernyataan yang dihasilkan hanya seakurat pernyataan yang diberikan oleh manusia.tract di belakangnya.

Ringkaslah postingan ini dengan: