Partisi ekuivalensi

Bagaimana partisi ekivalensi mengurangi jumlah pengujian sekaligus mempertahankan cakupan yang bermakna dan memilih data yang representatif.

Diperbarui:

Daftar isi

Partisi ekuivalensi membagi data masukan ke dalam kelas-kelas di mana sistem harus berperilaku sama. Daripada memeriksa lusinan nilai serupa, QA memilih satu atau dua perwakilan dari setiap kelas yang bermakna.

Ide dasarnya

Jika sistem menangani seluruh rentang secara identik, pengujian setiap nilai akan memberikan sedikit manfaat. Identifikasi kelas sebagai gantinya: format valid, tidak valid, kosong, terlalu besar, dilarang, dan sebagainya.

Sebuah contoh sederhana

Misalkan bidang Usia menerima nilai dari 18 hingga 60 inklusif. Setidaknya ada tiga kelas: di bawah 18, 18–60, dan di atas 60. Pilih nilai yang mewakili setiap kelas daripada mencoba setiap nomor.

Menerapkannya dalam praktik

  • →Pahami terlebih dahulu aturan validasi dan makna bisnis bidang atau parameter.
  • →Identifikasi kelas dengan perilaku yang diharapkan berbeda.
  • →Pilih satu nilai dari setiap kelas dan pertimbangkan batasannya secara terpisah.
  • →Periksa nilai valid bersama masukan kosong, bertipe salah, terlarang, dan bertentangan secara logika.

Kesalahan umum

  • →Mendefinisikan kelas secara mekanis tanpa memahami logika bisnis.
  • →Lupa bahwa kelas ekuivalensi tidak menggantikan analisis nilai batas.
  • →Mengasumsikan nilai-nilai setara ketika sistem menanganinya secara berbeda.
  • →Hanya menggunakan kelas yang valid dan mengabaikan masukan negatif.

Partisi ekuivalensi sangat berguna untuk formulir, parameter API, filter, rentang, status, dan masukan apa pun di mana pengujian menyeluruh tidak praktis atau tidak ada gunanya. Kekuatannya adalah mengurangi volume pengujian sambil mempertahankan cakupan logis.

Contoh lengkap: kelayakan usia bilangan bulat

Aturan pelatihan: aplikasi menerima usia bilangan bulat dari 18 hingga 65 inklusif. Perlakukan nilai bilangan bulat di bawah 18, dari 18 hingga 65, dan di atas 65 sebagai tiga partisi terpisah untuk aturan ini. Pilih satu perwakilan dari masing-masing sebelum menambahkan pemeriksaan batas.

plain text
Partisi	Nilai perwakilan	Hasil yang diharapkan
Bilangan bulat di bawah 18	16	Tolak: di luar rentang usia yang diizinkan
Bilangan bulat dari 18 sampai 65	40	Terima
Bilangan bulat di atas 65	70	Tolak: di luar rentang usia yang diizinkan

Model ini mengasumsikan nilai di dalam setiap partisi diproses dengan cara yang sama. Itu adalah hipotesis desain pengujian, bukan bukti bahwa satu nilai menemukan setiap cacat. Jika aturan bisnis memperkenalkan hasil yang berbeda untuk usia 60–65, bagilah partisi yang valid sesuai dengan itu. Jangan menggabungkan hasil yang berbeda hanya karena semua masukan memiliki tipe data yang sama.

Pisahkan kesalahan representasi

Tentukan juga kontrak pengangkutannya. Dalam latihan ini bidang age JSON harus ada dan berisi bilangan bulat; string, pecahan, dan null tidak valid. Nilai-nilai berikut bukan merupakan perwakilan tambahan dari tiga partisi bilangan bulat.

plain text
Payload	Hasil yang diharapkan
{}	Tolak: kolom wajib tidak ada
{"age": null}	Tolak: harus berupa bilangan bulat
{"age": "40"}	Tolak: harus berupa bilangan bulat
{"age": 40.5}	Tolak: harus berupa bilangan bulat
{"age": 40}	Terima

Latihan dan jawabannya

Akankah 25, 40 dan 55 mencakup tiga partisi integer? Tidak: ketiganya berada di partisi yang valid. Satu set seperti 16, 40 dan 70 mencakup ketiganya; lalu tambahkan 17, 18, 19, 64, 65, dan 66 untuk menyelidiki perilaku spesifik batas. Hasil yang diharapkan berasal dari aturan yang disebutkan, sedangkan kode status HTTP dan skema kesalahan memerlukan kontrak API terpisah.

Lanjutkan belajar

Analisis nilai batas

Tabel keputusan

Referensi teknik: silabus CTFL ISTQB, bagian 4.2 dan 5.5. Contoh di atas adalah skenario pelatihan asli.