Apa itu Pengujian Negatif? Uji kasus Dengan Contoh

⚡ Ringkasan Cerdas

Pengujian Negatif memeriksa bagaimana aplikasi perangkat lunak berperilaku ketika menerima data masukan atau kondisi operasi yang tidak terduga, sehingga produk tersebut dapat berfungsi dengan baik meskipun mengalami penurunan kinerja, alih-alih mengalami kerusakan, merusak data, atau memunculkan celah keamanan.

  • ???? Tujuan: Konfirmasikan bahwa aplikasi menolak data yang tidak valid dengan baik, bukan dengan cara gagal atau mengalami kerusakan.
  • Kontras: Hasil tes positif membuktikan jalan yang baik; hasil tes negatif menyelidiki segala sesuatu di luar jalan yang baik tersebut.
  • 🛗 Analogi: Lift harus mampu bertahan dari beban berlebih, kebakaran, dan pemadaman listrik, bukan hanya perjalanan penumpang normal.
  • 🔒 Keamanan: Unggahan yang tidak valid dan upaya injeksi SQL adalah skenario pengujian negatif klasik.
  • 🧪 desain: Nilai batas, kelas kesetaraan, tebakan kesalahan, dan pengujian fuzzing menghasilkan kasus-kasus tersebut.
  • 📊 prioritas: Urutkan masukan yang tidak valid berdasarkan dampaknya, karena liputan negatif yang menyeluruh tidak terjangkau.
  • ⚠️ Kompromi: Pengujian negatif yang berlebihan menghabiskan anggaran yang mungkin lebih dibutuhkan untuk pengujian positif.

Pengujian Negatif dalam pengujian perangkat lunak dengan contoh input yang tidak valid

Pengujian Negatif

Pengujian Negatif Pengujian negatif adalah jenis pengujian perangkat lunak yang digunakan untuk memeriksa aplikasi perangkat lunak terhadap data dan kondisi masukan yang tidak terduga. Data atau kondisi yang tidak terduga berkisar dari kesalahan tipe data dalam kolom formulir sederhana hingga serangan peretasan yang disengaja. Tujuan pengujian negatif adalah untuk mencegah aplikasi mengalami kerusakan akibat masukan yang tidak valid dan untuk meningkatkan kualitas serta stabilitas produk.

Pengujian positif saja hanya membuktikan bahwa sistem berfungsi dalam kondisi normal. Pengujian negatif menegaskan bahwa sistem yang sama juga mampu menangani kondisi abnormal, yang merupakan persyaratan dari produk yang tahan terhadap kesalahan.

Contoh Pengujian Negatif

Lift adalah contoh yang paling sering digunakan untuk menjelaskan pengujian negatif, karena perilaku normal dan perilaku kegagalannya sama-sama mudah dibayangkan.

Prinsip kerja lift cukup familiar: menekan nomor lantai akan mengirimkan lift ke lantai tersebut, dan pintu akan terbuka secara otomatis begitu lift mencapai lantai yang ditentukan.

Beberapa skenario negatif untuk peningkatan yang sama tercantum di bawah ini, di samping asumsi yang dibuat oleh hasil tes positif.

Pengujian Negatif Pengujian Positif
Apa jadinya jika jumlah orang (berat) melebihi batas yang ditentukan? Diasumsikan hanya sejumlah orang yang ditentukan yang akan masuk ke dalam lift.
Apa yang terjadi jika seseorang merokok atau menyebabkan kebakaran di dalam lift? Diasumsikan tidak akan ada asap atau api di dalam lift.
Apa yang terjadi jika terjadi pemadaman listrik selama pengoperasian? Diasumsikan tidak akan terjadi pemadaman listrik saat lift beroperasi.

Semua kasus ini termasuk dalam kategori hasil tes negatif. Tidak ada satu pun yang dapat dipastikan tidak akan pernah terjadi, jadi setiap kasus harus dikendalikan.

Bayangkan jika kondisi kelebihan beban tidak pernah diperiksa, dan lift berperilaku tidak normal setelah kelebihan muatan. Celah tunggal itu merusak keandalan sistem dan bahkan dapat membahayakan nyawa. Inilah yang dimaksud dengan pengujian negatif dalam praktiknya, dan mengapa hal itu penting.

Perangkat lunak berperilaku dengan cara yang sama. Tes negatif sengaja menyimpang dari prosedur operasional normal. Pertimbangkan formulir pendaftaran.

Pengujian Negatif Pengujian Positif
Masukkan alamat email yang tidak valid di kolom email. Hanya alamat email yang valid yang akan dimasukkan ke dalam kolom email.
Masukkan nomor telepon yang tidak valid, misalnya karakter tertentu, di kolom nomor telepon. Hanya angka yang dimasukkan di kolom angka.
Unggah gambar dengan ukuran di luar batas yang ditentukan. Hanya gambar yang berada dalam batas ukuran yang ditentukan yang dapat diunggah.
Mengunggah file yang tidak valid seperti XML or SQL berkas di kolom unggahan gambar Hanya format gambar yang valid seperti .jpg atau .png yang diunggah.

Masing-masing kasus negatif ini tetap harus membuat sistem tetap berfungsi. Jika sebuah karakter diketikkan ke dalam kolom angka, aplikasi tidak dapat memproses data yang tidak terduga dan tidak pernah diharapkan, dan mungkin akan mengalami crash. Lebih buruk lagi, Injeksi SQL Kesalahan penulisan string pada kolom yang sama dapat menghapus isi basis data. Kerugian semacam itu adalah alasan mengapa pengujian negatif ada.

Mengapa Pengujian Negatif?

Pengujian memakan waktu dan uang, jadi memutuskan apa, bagaimana, dan seberapa banyak yang harus diuji itu penting. Alasan untuk menghabiskan sebagian anggaran tersebut untuk pengujian negatif terlihat berbeda dari kedua sisi proyek.

Perspektif organisasi

Memberikan produk berkualitas baik kepada klien adalah tanggung jawab organisasi, dan pengujian negatif merupakan bagian dari kewajiban tersebut. Hal ini juga merupakan bukti bagi organisasi bahwa mereka telah melakukan segala upaya yang wajar untuk mencegah kegagalan, meskipun tidak ada sistem yang sepenuhnya bebas dari kesalahan.

Dampak adalah faktor penentu. Sebuah situs e-commerce mungkin lolos setiap pengujian positif dan tetap memiliki celah yang memungkinkan penyerang menjalankan injeksi SQL dan menghapus data di baliknya. Itu adalah pelanggaran keamanan yang serius, dan hanya pengujian negatif yang dapat mendeteksinya.

Aplikasi yang dapat diakses publik, khususnya situs web, hampir tidak memberikan kendali atas bagaimana pengunjung menggunakannya, sehingga pengujian negatif adalah satu-satunya cara untuk memastikan bahwa penggunaan yang tidak biasa tercakup dan terkendali. Hal yang sama berlaku untuk pengguna jahat: penyerang secara aktif mencari peluang untuk merusak sistem, dan skenario peretasan termasuk dalam cakupan pengujian negatif.

Perspektif klien

Klien mengharapkan produk tanpa kerentanan sama sekali, dan pengujian negatif adalah hal yang mendukung harapan tersebut. Untuk produk sensitif seperti e-commerce atau perdagangan saham online, pengujian keamanan dan hasil tes negatif bersifat wajib, bukan opsional.

Satu-satunya kekhawatiran utama klien adalah biaya. Setelah dampak kegagalan dianalisis, klien dapat memutuskan sejauh mana upaya pengujian negatif harus dilakukan.

Cara Melakukan Tes Negatif

Pengujian negatif dimulai dengan mempertimbangkan setiap input yang secara fisik dapat diterima oleh aplikasi, bukan hanya input yang seharusnya diterima. Masing-masing input tersebut termasuk dalam sebuah Uji Kasus bahkan ketika jelas-jelas itu adalah cara yang salah untuk menggunakan fitur tersebut. Kolom email diuji dengan semua hal yang bukan alamat email yang valid, dan kontrol unggah gambar diuji dengan setiap jenis file yang bukan gambar.

Daftar kemungkinan input yang tidak valid pada dasarnya tidak terbatas, sehingga kasus uji negatif harus diprioritaskan. Untuk kolom gambar yang hanya menerima file .png, kandidat unggahan meliputi .jpeg, .xml, .xls, dan banyak lainnya. File XML atau SQL memiliki potensi dampak yang jauh lebih besar daripada file .jpeg, sehingga kasus-kasus tersebut dieksekusi terlebih dahulu. Pemeringkatan kasus berdasarkan dampaknya sebelum eksekusi adalah hal yang membuat pengujian negatif tetap terjangkau.

Sebagian besar kasus uji negatif berasal dari sejumlah kecil teknik desain yang sudah mapan, bukan dari improvisasi:

  • Nilai batas: Gunakan nilai-nilai yang berada tepat di luar rentang yang valid, seperti 0 dan 101 untuk kolom yang menerima nilai 1 hingga 100.
  • Kelas kesetaraan tidak valid: Pilih satu perwakilan dari setiap kelas input yang ditolak, misalnya huruf dalam bidang numerik.
  • Kesalahan tebakan: Gunakan pengalaman dari cacat sebelumnya untuk menargetkan input yang paling mungkin menyebabkan kegagalan fitur semacam ini.
  • Data yang cacat dan berbahaya: tag skrip, fragmen SQL, dan muatan data berukuran besar yang menguji validasi dan penanganan keamanan.
  • Pengujian kabur: Menghasilkan sejumlah besar input acak atau yang telah dimodifikasi secara otomatis untuk menemukan kesalahan yang belum ditangani.
  • Alur terputus: membatalkan, menyegarkan, habis waktu, atau kehilangan konektivitas di tengah transaksi.

Teknik apa pun yang menghasilkan kasus tersebut, hasil yang diharapkan harus dicatat sebagai kegagalan yang terkontrol dan mudah dibaca — pesan validasi, unggahan yang ditolak, pengembalian yang bersih — dan tidak pernah hanya sebagai "sistem tidak mengalami kerusakan".

Keuntungan dan Kerugian dari Hasil Tes Negatif

Seperti teknik pengujian lainnya, pengujian negatif memiliki kelebihan dan kekurangan yang bergantung pada di mana, kapan, dan seberapa banyak pengujian tersebut diterapkan.

Keuntungan Pengujian Negatif

  • Hal ini secara langsung melindungi kualitas produk, karena produk berkualitas baik adalah produk yang tidak memiliki kerentanan yang dapat dieksploitasi.
  • Hal ini memperluas cakupan. Input yang tidak valid mencapai sistem yang sedang berjalan, baik disengaja maupun tidak sengaja, sehingga kasus negatif harus berjalan bersamaan dengan kasus positif agar cakupannya bermakna.
  • Hal ini meningkatkan kepercayaan klien sebelum perilisan dilakukan.
  • Hal ini mengungkap cacat yang secara struktural tidak dapat dijangkau oleh pengujian positif, seperti pengecualian yang tidak ditangani dan validasi input yang lemah.

Kerugian dari Pengujian Negatif

  • Dalam beberapa situasi, hal itu merupakan pemborosan waktu dan energi. Jika sebuah aplikasi dibangun untuk satu pengguna, kasus 100 pengguna simultan tidak perlu diuji, jadi memilih kondisi yang tepat sangat penting dan beberapa sistem hanya membutuhkan sedikit pengujian negatif.
  • Diperlukan orang-orang yang terampil dan berpengalaman untuk mendesain kasus-kasus tersebut.
  • Dari sudut pandang klien, hal ini menambah biaya dan dapat menunda perilisan.
  • Hal ini menimbulkan persaingan dalam hal upaya. Tim yang menghabiskan banyak uang untuk pengujian negatif mungkin akan kurang berinvestasi dalam pengujian positif.

Pertanyaan Umum Demo Slot

Pengujian positif memasukkan data yang valid dan mengkonfirmasi hasil yang diharapkan. Pengujian negatif memasukkan data yang tidak valid, format yang salah, dan urutan yang rusak, dan mengkonfirmasi bahwa aplikasi menolaknya dengan pesan terkontrol alih-alih gagal.

Kredensial kosong, pengguna yang valid dengan kata sandi yang salah, fragmen SQL dalam nama pengguna, string yang terlalu panjang, spasi di awal atau akhir, akun yang dinonaktifkan, dan upaya berulang yang gagal untuk mengkonfirmasi bahwa perilaku penguncian berfungsi.

Tidak. Keduanya tumpang tindih jika melibatkan input yang tidak valid atau berbahaya, tetapi pengujian keamanan juga mencakup otentikasi, otorisasi, enkripsi, dan penanganan sesi. Pengujian negatif adalah teknik input dan kondisi yang lebih luas.

Para penguji dan insinyur QA biasanya menulisnya, seringkali dengan pengembang yang meninjau jalur kesalahan dan analis bisnis yang mengkonfirmasi kondisi tidak valid mana yang sebenarnya dilarang oleh persyaratan tersebut.

Cukup untuk mencakup setiap kelas input yang ditolak, setiap batasan, dan setiap jalur kegagalan berdampak tinggi. Di luar itu, kasus tambahan memberikan sedikit nilai, jadi risiko dan dampak menentukan batasnya.ping titik.

Ya. Kasus input tidak valid sangat sering terjadi berulang kali, sehingga cocok digunakan. pengujian otomasi dan rangkaian pengujian regresi. Alat fuzzing mengotomatiskan pembuatan input acak, sementara pernyataan (assertions) memeriksa apakah pesan validasi muncul.

Model membaca persyaratan atau skema formulir dan mengusulkan nilai yang tidak valid, kondisi batas, dan string yang tidak sesuai yang mungkin tidak dicantumkan secara manual oleh penguji. Peninjau tetap mengkonfirmasi bahwa setiap hasil yang diharapkan sesuai dengan spesifikasi.

Ya, ia menyusun kode pernyataan, fixture data tidak valid, dan kasus berparameter dari file pengujian yang sudah ada. Ekspektasi yang dihasilkan perlu ditinjau, karena pernyataan yang tampak masuk akal dapat mengkodekan perilaku yang salah.

Ringkaslah postingan ini dengan: