Partisi Ekivalensi: Teknik Desain Tes Dijelaskan Dengan Contoh yang Dikerjakan

  1. Beranda
  2. Blog
  3. Pengujian Perangkat Lunak

Pengujian Perangkat Lunak

Partisi Ekivalensi: Teknik Desain Uji Dijelaskan Dengan Contoh yang Dikerjakan

Anda tidak dapat menguji setiap masukan yang mungkin, jadi nilai manakah yang harus Anda pilih? Partisi kesetaraan memberi Anda jawaban yang jelas. Pelajari metode ini langkah demi langkah, kerjakan contoh nyata, dan lihat di mana metode tersebut memerlukan bantuan.

8 menit baca
Teknik desain tes partisi ekivalensi dijelaskan dengan contoh kerja

Poin penting

  • Partisi ekivalensi membagi masukan ke dalam kelompok-kelompok yang harus berperilaku sama.
  • Anda menguji satu nilai perwakilan dari setiap kelompok, bukan setiap nilai.
  • Selalu sertakan partisi tidak valid, karena penanganan kesalahan adalah tempat banyak bug bersembunyi.
  • Ini bekerja paling baik bersamaan dengan analisis nilai batas, karena bug sering kali berada di tepi grup.

Bidang usia yang menerima 18 hingga 60 tahun memiliki kemungkinan masukan dalam jumlah besar, setelah Anda menghitung negatif, angka besar, teks, dan kosong. Tidak ada yang bisa mencoba semuanya. Partisi kesetaraan memecahkan masalah ini, dengan mengelompokkan input yang harus diperlakukan dengan cara yang sama oleh perangkat lunak, dan kemudian menguji satu nilai dari setiap kelompok.

Ini adalah salah satu teknik desain tes pertama yang harus dipelajari setiap penguji. Dalam panduan ini kami mengerjakannya langkah demi langkah, dan menguji satu contoh dengan Python. Kami menjalankan kode itu di Python 3.13, dan keluarannya disertakan. Aturan kata sandi dan kupon di bawah ini adalah contoh ilustrasi, tidak diambil dari sistem nyata.

Apa itu partisi kesetaraan?

Partisi kesetaraan, juga disebut partisi kelas kesetaraan (ECP), adalah teknik desain pengujian kotak hitam. Ini membagi kemungkinan masukan suatu fitur ke dalam partisi, atau kelas. Setiap nilai di dalam partisi diharapkan menghasilkan perilaku yang sama.

Karena Anda tidak perlu melihat kodenya, Anda bisa menerapkannya langsung dari persyaratan. Untuk mempelajari lebih lanjut tentang gaya pengujian ini, baca pengujian kotak hitam vs kotak putih.

Mengapa ini berhasil

Teknik ini bertumpu pada satu asumsi: jika satu nilai dalam suatu partisi menemukan bug, nilai lain dalam partisi tersebut mungkin juga akan menemukannya. Dan jika satu nilai lolos, nilai lainnya mungkin juga akan lulus. Pengujian 25, 26, dan 27 pada bidang usia dewasa kemungkinan besar tidak memberi tahu Anda apa pun yang tidak dapat diberikan oleh pengujian 25 saja.

Pendekatan Tes untuk bidang usia Hasil
Lengkap Setiap nilai yang mungkin Tidak mungkin dalam praktiknya
Tebakan acak Apapun yang terlintas dalam pikiran Duplikat dan kesenjangan
Partisi kesetaraan Satu per partisi Kecil, dengan cakupan yang disengaja

Namun hal ini hanya asumsi dan bukan jaminan. Perangkat lunak dapat memiliki kasus khusus yang tersembunyi di dalam partisi, batasan yang akan kita bahas nanti.

Cara melakukannya dalam lima langkah

  1. Baca persyaratannya dan identifikasi masukan serta aturannya.
  2. Temukan partisi yang valid, yang merupakan kelompok nilai yang harus diterima, dan catat jika rentang yang berbeda berperilaku berbeda.
  3. Temukan partisi yang tidak valid, termasuk nilai yang terlalu rendah, terlalu tinggi, jenis yang salah, dan kosong.
  4. Pilih satu nilai perwakilan dari setiap partisi, biasanya di tengah-tengah.
  5. Tuliskan hasil yang diharapkan untuk masing-masing, seperti dalam kasus pengujian yang baik.

Contoh yang berhasil: bidang usia

Persyaratan: Pengguna berusia 18 hingga 60 tahun dapat mendaftar.

Partisi Ketik Nilai tes Hasil yang diharapkan
Di bawah 18 Tidak valid 10 Ditolak
18 hingga 60 Sah 35 Diterima
Di atas 60 Tidak valid 75 Ditolak
Bukan angka Tidak valid “abc” Kesalahan
Kosong Tidak valid (empty) pesan “Wajib”.

Lima tes memberi Anda cakupan setiap perilaku dalam persyaratan. Banyak tutorial berhenti pada tiga baris pertama, namun dua baris terakhir adalah yang dipicu oleh pengguna sebenarnya secara tidak sengaja. Anda juga dapat menambahkan baris untuk angka negatif atau desimal, jika hal tersebut dapat ditangani secara berbeda.

Mengujinya dalam kode

Berikut adalah aturan tersebut sebagai suatu fungsi, dengan satu pengujian unit per partisi, menggunakan unittest bawaan Python:

import unittest

def can_register(age):
    if not isinstance(age, int) or isinstance(age, bool):
        raise TypeError("age must be a whole number")
    return 18 <= age <= 60

class EquivalenceTests(unittest.TestCase):
    def test_valid_partition(self):
        self.assertTrue(can_register(35))

    def test_too_young_partition(self):
        self.assertFalse(can_register(10))

    def test_too_old_partition(self):
        self.assertFalse(can_register(75))

    def test_wrong_type_partition(self):
        with self.assertRaises(TypeError):
            can_register("abc")

Perjalanan kami berlalu:

test_too_old_partition ... ok
test_too_young_partition ... ok
test_valid_partition ... ok
test_wrong_type_partition ... ok

Dalam proyek nyata, fitur parameter pytest adalah cara yang tepat untuk menjalankan tabel nilai partisi melalui satu pengujian.

Contoh yang berhasil: kata sandi

Persyaratan: Kata sandi harus terdiri dari 8 hingga 20 karakter dan mengandung setidaknya satu digit.

Yang ini memiliki dua aturan, panjang dan konten, jadi kami mempertimbangkan partisi untuk keduanya:

Partisi Ketik Nilai tes Hasil yang diharapkan
Panjang valid, memiliki angka Sah matahari terbit42 Diterima
Terlalu pendek Tidak valid abc1 Kesalahan: terlalu pendek
Terlalu lama Tidak valid Nilai 30 karakter dengan satu digit Kesalahan: terlalu panjang
Panjang valid, tanpa digit Tidak valid matahari terbit Kesalahan: diperlukan digit
Kosong Tidak valid (empty) Kesalahan: diperlukan

Perhatikan bahwa setiap pengujian yang tidak valid melanggar hanya satu aturan. Jika suatu nilai terlalu pendek dan ada satu digit yang hilang, tes kelulusan tidak dapat memberi tahu Anda pemeriksaan mana yang berhasil. Satu cek mungkin rusak, sementara cek lainnya menyembunyikan fakta.

Contoh yang berhasil: input non-numerik

Teknik ini tidak terbatas pada rentang angka. Opsi, kategori, dan status terpisah juga membentuk partisi. Misalkan sebuah toko memiliki aturan ini:

Persyaratan: Pengiriman gratis untuk anggota Gold, 50 untuk anggota Silver, dan 100 untuk anggota lainnya. Nilai tingkat yang tidak diketahui adalah kesalahan.

Partisi Nilai tes Biaya yang diharapkan
Emas emas 0
Perak perak 50
Tidak ada keanggotaan (none) 100
Tingkat tidak diketahui platina Kesalahan

Di sini, setiap opsi adalah partisinya sendiri, karena masing-masing opsi harus berperilaku berbeda. Partisi umum lainnya mencakup jenis file, seperti unggahan valid dan tidak valid, serta grup berbasis keluaran, seperti pinjaman disetujui atau ditolak.

Kiat: Pikirkan tentang keluaran dan masukan. Jika penghitungan dapat menghasilkan diskon, tidak ada diskon, atau peringatan, pastikan setidaknya satu pengujian mencapai masing-masing hasil tersebut.

Beberapa masukan sekaligus

Dengan banyak bidang, jumlah kombinasi bertambah dengan cepat. Tiga bidang dengan empat partisi masing-masing memberikan 64 kombinasi. Dua strategi membantu:

  • Cakupan lemah: pastikan setiap partisi muncul setidaknya dalam satu pengujian, dengan menggabungkan beberapa nilai valid per pengujian. Untuk nilai yang tidak valid, uji satu per satu agar kesalahan tidak saling menutupi.
  • Cakupan berbasis aturan: ketika kombinasi benar-benar mengubah hasil, seperti status anggota dengan nilai pesanan, gunakan pengujian tabel keputusan untuk mencantumkannya dengan benar.

Dipasangkan dengan analisis nilai batas

Partisi memberi tahu Anda grup mana yang akan diuji. Ia tidak banyak menjelaskan tentang di mana dalam grup bug suka bersembunyi, dan banyak yang bersembunyi tepat di tepinya. Untuk menunjukkan hal ini, kami menulis versi buggy dengan kesalahan klasik satu per satu:

def buggy(age):
    return 18 < age <= 60     # should be 18 <= age

[buggy(a) for a in (35, 10, 75)]   # [True, False, False]
buggy(18)                          # False

Nilai partisi kita, 35, 10 dan 75, semuanya memberikan jawaban yang benar, sehingga pengujian tersebut akan lulus. Namun seorang anak berusia 18 tahun ditolak secara keliru. Inilah sebabnya mengapa kedua teknik ini digabungkan:

Teknik Memilih Nilai untuk usia 18 hingga 60 tahun
Partisi kesetaraan Satu nilai di dalam setiap grup 10, 35, 75
Analisis nilai batas Nilai di tepi masing-masing kelompok 17, 18, 60, 61

Gunakan partisi untuk menemukan grup, lalu batas untuk menguji di mana grup bertemu. Dalam kode kita, pengujian terpisah untuk 17, 18, 60 dan 61 meneruskan fungsi yang benar, dan akan menangkap bug tersebut. panduan analisis nilai batas kami membahas hal ini secara lengkap.

Keuntungan dan keterbatasan

Keuntungan Keterbatasan
Sangat mengurangi jumlah tes Bergantung pada partisi yang benar
Memberikan liputan yang jelas dan dapat dijelaskan Dapat melewatkan bug di perbatasan
Tidak memerlukan akses ke kode Dapat melewatkan kasus khusus yang tersembunyi
Berlaku lebih awal, bahkan dari persyaratan Tidak memodelkan urutan atau kombinasi dengan baik

Risiko terbesar adalah asumsi yang salah. Jika kode memiliki aturan tersembunyi untuk satu nilai tertentu, pengujian yang Anda pilih mungkin tidak mencapainya. Pengujian eksplorasi dan cakupan kode membantu Anda menemukan apa yang terlewatkan oleh partisi.

Kesalahan umum

  • Melupakan partisi yang tidak valid. Hanya menguji jalur bahagia membuat penanganan kesalahan tidak dicentang.
  • Menguji beberapa nilai dari satu partisi. Ini menambah biaya tanpa informasi baru.
  • Menggabungkan beberapa nilai yang tidak valid dalam satu pengujian. Satu kesalahan dapat menyembunyikan kesalahan lainnya.
  • Melewati batasan. Pengujian partisi saja sering kali melewatkan bug satu per satu.
  • Menebak aturannya. Jika ada persyaratan yang tidak jelas, tanyakan. Haruskah 60 tahun mencakup orang yang berusia 60 setengah tahun?

Penutup

Partisi ekivalensi menggantikan “berapa banyak tes yang harus saya tulis?” dengan pertanyaan yang jauh lebih baik: “perilaku apa yang ada, dan apakah saya sudah membahasnya masing-masing?” Untuk mencobanya, ambil formulir yang Anda uji hari ini dan buat daftar partisinya di atas kertas, termasuk partisi yang tidak valid. Tambahkan batasan berikutnya. Seringkali Anda akan mendapatkan lebih sedikit pengujian yang menemukan lebih banyak bug.

Pertanyaan yang sering diajukan

Apa yang dimaksud dengan partisi kesetaraan dalam pengujian?

Ini adalah teknik kotak hitam yang membagi masukan ke dalam kelompok-kelompok yang diharapkan berperilaku serupa. Anda kemudian menguji satu nilai perwakilan dari setiap kelompok, bukan setiap nilai.

Apa perbedaan antara partisi kesetaraan dan analisis nilai batas?

Partisi mengambil satu nilai dari dalam setiap grup. Analisis nilai batas menguji nilai-nilai di tepi kelompok tersebut. Mereka biasanya digunakan bersama-sama.

Berapa banyak kasus uji yang dibutuhkan oleh partisi kesetaraan?

Biasanya setidaknya satu per partisi, valid dan tidak valid. Bidang rentang usia biasanya memerlukan sekitar tiga hingga lima tes.

Apakah partisi kesetaraan mempartisi kotak hitam atau kotak putih?

Ini adalah teknik kotak hitam, karena partisi berasal dari persyaratan dan tidak memerlukan kode. Namun, pengembang juga dapat menerapkannya pada pengujian unit.

Apa partisi yang valid dan tidak valid?

Partisi yang valid berisi nilai yang harus diterima sistem. Partisi yang tidak valid berisi nilai yang harus ditolak, seperti nomor di luar rentang, tipe salah, dan kosong.

Teruslah belajar

Bekerja dengan Stack Quora

Butuh bantuan dengan pengujian, WordPress atau SEO?

Kami membantu tim mengirimkan perangkat lunak yang lebih baik dan mengembangkan situs mereka. Beritahu kami apa yang sedang Anda kerjakan dan kami akan menyarankan langkah selanjutnya yang jelas.

Teruslah membaca

Panduan lebih lanjut tentang pengujian, AI & pengembangan modern

Menikmati artikel ini? Pilih topik dan langsung masuk ke tutorial terbaru kami.

Kecerdasan buatan

Penjelasan Halusinasi AI: Mengapa Model Bahasa Memperbaiki Masalah dan Cara Menguranginya

Halusinasi AI menjelaskan: apa itu, mengapa model bahasa memproduksinya, tipe umum, cara menguranginya dengan landasan dan petunjuk, dan pemeriksaan…

Baca artikel →
DevOps

Penjelasan Variabel Lingkungan: File .env, Rahasia, dan Konfigurasi Dilakukan dengan Benar

Variabel lingkungan dijelaskan dengan contoh Python yang kami jalankan: membaca dan mengaturnya, mengapa setiap nilai berupa string, file .env, pewa…

Baca artikel →
Pengembangan perangkat lunak

Penjelasan Pembatasan Kecepatan API: Algoritma, Header, dan Penanganan 429 Kesalahan

Pembatasan laju API dijelaskan dengan simulasi yang kami jalankan: keranjang token, jendela tetap, jendela geser, respons 429, header batas laju, pe…

Baca artikel →
Otomatisasi pengujian

Mengejek dengan Python: unittest.mock, patch dan Kesalahan yang Membuat Tes Berbohong

Mengejek dengan Python dengan unittest.mock, menguji: Mock dan return_value, side_effect, menambal di mana nama digunakan, spesifikasi dan autospec,…

Baca artikel →
Pengujian perangkat lunak

Penjelasan Cakupan Kode: Cakupan Jalur vs Cabang dan Apa Arti 100% Sebenarnya

Cakupan kode dijelaskan dengan coverage.py yang sebenarnya dijalankan: cakupan garis, cabang dan kondisi, membaca laporan, mengapa cakupan 100% masi…

Baca artikel →
Basis data & SQL

DELETE vs TRUNCATE vs DROP dalam SQL: Perbedaan, Rollback dan Kapan Menggunakan Masing-Masing

DELETE vs TRUNCATE vs DROP dijelaskan dengan SQL yang diuji: apa yang dihapus, rollback, pemicu, reset identitas, kecepatan, dan perbedaan PostgreSQ…

Baca artikel →
Basis data & SQL

Penjelasan Tampilan SQL: Membuat, Menggunakan, dan Menghindari Kesalahan, Dengan Contoh

Tampilan SQL dijelaskan dengan kueri yang kami jalankan: membuat tampilan, hasil langsung, menyembunyikan kolom, kinerja, tampilan yang dapat diperb…

Baca artikel →
Pengembangan perangkat lunak

Antarmuka TypeScript vs Tipe: Perbedaan Nyata, Diuji Dengan Kompiler

Antarmuka TypeScript vs tipe, diperiksa dengan kompiler sebenarnya: apa yang bisa dilakukan keduanya, apa yang hanya bisa dilakukan satu orang, peng…

Baca artikel →
Pengembangan perangkat lunak

Penjelasan Python *args dan **kwargs: Fungsi Fleksibel Dengan Contoh Jelas

Python *args dan **kwargs dijelaskan dengan kode yang kami jalankan: pengepakan dan pembongkaran, urutan parameter, argumen hanya kata kunci dan pos…

Baca artikel →
Pengembangan perangkat lunak

Fungsi Python Lambda: Sintaks, Kegunaan Sebenarnya, dan Kapan Tidak Digunakan

Fungsi python lambda dijelaskan dengan kode yang kami jalankan: sintaksis, pengurutan dengan kunci, peta dan filter, penutupan, jebakan pengikatan a…

Baca artikel →
Kecerdasan buatan

Apa Itu Agen AI? Cara Kerjanya, Dengan Agent Loop Sederhana yang Dapat Anda Jalankan

Apa itu agen AI? Panduan sederhana tentang loop agen, alat, memori, dan pagar pembatas, dengan loop Python kecil yang kami jalankan, risiko nyata da…

Baca artikel →
DevOps

Pemantauan vs Observabilitas: Perbedaan Nyata, Dengan Log, Metrik, dan Jejak

Penjelasan pemantauan vs observabilitas: kegagalan yang diketahui dan tidak diketahui, log, metrik dan jejak, penelusuran insiden checkout, sinyal e…

Baca artikel →
DevOps

Volume Docker vs Bind Mounts: Pertahankan Data Kontainer dengan Cara yang Benar

Volume Docker vs pengikatan pengikat dijelaskan: mengapa data kontainer menghilang, volume yang diberi nama, pengikatan pengikatan, tmpfs, contoh Tu…

Baca artikel →
Otomatisasi pengujian

TDD vs BDD: Perbedaan Utama, Satu Fitur Dibangun dengan Dua Cara dan Kapan Menggunakan Masing-masing

TDD vs BDD dijelaskan dengan satu fitur diskon yang dibuat dengan dua cara: refactor merah-hijau dengan kode yang kami jalankan, skenario Mengingat-…

Baca artikel →
Pengujian perangkat lunak

User Acceptance Testing (UAT): Proses, Checklist dan Contoh Nyata

Pengujian penerimaan pengguna menjelaskan: siapa yang menjalankannya, perbedaannya dengan QA, proses tujuh langkah, templat kasus uji UAT, daftar pe…

Baca artikel →
Basis data & SQL

Penjelasan Nilai NULL SQL: IS NULL, COALESCE, NULLIF dan Jebakan yang Harus Dihindari

Nilai SQL NULL dijelaskan dengan kueri yang kami jalankan: logika tiga nilai, IS NULL, COALESCE, NULLIF, cara agregat, penggabungan, dan pengurutan …

Baca artikel →
Basis data & SQL

Pernyataan SQL CASE WHEN: Sintaks, Contoh Nyata dan Kesalahan Umum

SQL CASE KETIKA dijelaskan dengan kueri yang kami jalankan: formulir sederhana dan dicari, urutan kondisi, pivot dengan SUM, trik COUNT, pengurutan …

Baca artikel →
Pengembangan perangkat lunak

Apa itu JWT? Token Web JSON Dijelaskan Dengan Contoh Kerja

Apa itu JWT? JSON Web Tokens menjelaskan: tiga bagian, token yang dibuat dan dirusak dalam kode yang kami jalankan, sesi JWT vs, penyimpanan, token …

Baca artikel →
Pengembangan perangkat lunak

Penjelasan Loop Acara JavaScript: Call Stack, Microtasks, dan Timer Dengan Contoh

Perulangan peristiwa JavaScript dijelaskan dengan kode yang kami jalankan: tumpukan panggilan, antrian tugas dan tugas mikro, mengapa setTimeout 0 t…

Baca artikel →
Pengembangan perangkat lunak

Generator Python dan Penjelasan Hasil: Menghemat Memori Dengan Contoh Nyata

Generator dan hasil Python dijelaskan dengan kode yang kami jalankan: bagaimana mereka menjeda dan melanjutkan, mengukur penghematan memori, saluran…

Baca artikel →
Kecerdasan buatan

Apa itu Embedding? Kesamaan Vektor dan Kosinus Dijelaskan Secara Sederhana

Apa itu embeddings? Panduan bahasa sederhana tentang vektor, kesamaan kosinus, dan penelusuran semantik, dengan contoh kecil yang kami jalankan, pen…

Baca artikel →
DevOps

Penerapan Biru-Hijau vs Canary: Perbedaan, Kompromi, dan Cara Memilih

Penjelasan penerapan blue-green vs canary: cara kerja masing-masing, biaya, risiko dan rollback, pengelompokan pengguna stabil yang kami uji, migras…

Baca artikel →
Otomatisasi pengujian

Tes Tidak Stabil: Apa Penyebabnya dan Cara Memperbaikinya untuk Kebaikan

Pengujian yang tidak stabil dijelaskan dengan demo yang kami jalankan: penyebab utama, cara mengonfirmasi dan mendiagnosisnya, perbaikan waktu yang …

Baca artikel →
Pengujian perangkat lunak

Load Testing vs Stress Testing: Perbedaan, Metrik dan Contoh k6

Penjelasan pengujian beban vs pengujian stres: apa yang dibuktikan masing-masing, pengujian lonjakan dan rendam, metrik yang penting, mengapa rata-r…

Baca artikel →
Pengujian perangkat lunak

Kasus Uji vs Skenario Uji: Perbedaan Utama, Contoh, dan Kapan Menggunakan Masing-masing

Penjelasan kasus uji vs skenario pengujian: definisi yang jelas, tabel berdampingan, satu fitur pengaturan ulang kata sandi yang diambil dari skenar…

Baca artikel →
Basis data & SQL

Optimasi Kueri SQL: Baca Rencana Eksekusi dan Perbaiki Kueri Lambat, Dengan Pengaturan Waktu

Pengoptimalan kueri SQL diuji pada sejuta baris: membaca rencana eksekusi, menambahkan indeks yang tepat, memperbaiki filter yang tidak dapat disarg…

Baca artikel →
Basis data & SQL

SQL UNION vs UNION ALL: Perbedaan, Contoh dan Kinerja Diuji

SQL UNION vs UNION ALL dijelaskan dengan kueri yang kami jalankan: duplikat, aturan yang diikuti keduanya, bug data nyata, kinerja terukur, INTERSEC…

Baca artikel →
Pengembangan perangkat lunak

Tutorial API Pengambilan JavaScript: GET, POST, Penanganan Kesalahan, dan Batas Waktu

Tutorial JavaScript Fetch API diuji pada server lokal: GET dan POST, mengapa 404 tidak muncul, bantuan yang dapat digunakan kembali, string kueri, b…

Baca artikel →
Pengembangan perangkat lunak

Penanganan File Python: Baca, Tulis, CSV, JSON dan pathlib Dengan Contoh

Penanganan file Python dijelaskan dengan kode yang kami jalankan: mode terbuka, dengan, membaca file besar, CSV, JSON, pathlib, file biner, penulisa…

Baca artikel →
Pengembangan perangkat lunak

Kelas dan Objek Python: Tutorial OOP Dengan Contoh Nyata

Kelas dan objek Python dijelaskan dengan kode yang kami jalankan: __init__, metode, atribut kelas vs instance, warisan, properti, metode dunder, kel…

Baca artikel →
Kecerdasan buatan

Apa Itu Model Bahasa Besar? Bagaimana LLM Bekerja, Dijelaskan Tanpa Hype

Apa yang dimaksud dengan model bahasa besar? LLM dijelaskan dalam bahasa sederhana: token, penyematan, perhatian, pelatihan, jendela suhu dan kontek…

Baca artikel →
DevOps

Perintah Linux untuk Pemula: Panduan Terminal Penting Dengan Contoh

Perintah Linux untuk pemula, dikelompokkan berdasarkan tugas: navigasi, file, melihat log, grep, pipa, izin, proses dan arsip, dengan contoh analisi…

Baca artikel →
Otomatisasi pengujian

Selenium vs Penulis Drama: Perbedaan Utama, Perbandingan Kode, dan Mana yang Harus Dipilih

Selenium vs Playwright dibandingkan: arsitektur, menunggu, dukungan browser dan bahasa, debugging, pengujian yang sama di kedua alat, saran migrasi …

Baca artikel →
Pengujian perangkat lunak

Partisi Ekivalensi: Teknik Desain Tes Dijelaskan Dengan Contoh yang Dikerjakan

Penjelasan partisi ekivalensi: cara menemukan partisi yang valid dan tidak valid, contoh yang berfungsi untuk usia, kata sandi dan kupon, pengujian …

Baca artikel →
Pengujian perangkat lunak

Severity vs Priority dalam Pengujian Perangkat Lunak: Perbedaan, Matriks dan Contoh Nyata

Keparahan vs prioritas dalam pengujian perangkat lunak dijelaskan: definisi yang jelas, matriks empat arah dengan contoh, skala level, siapa yang me…

Baca artikel →
Basis data & SQL

Tutorial Subkueri SQL: Jenis, Subkueri yang Berkorelasi, dan ADA Dengan Contoh

Tutorial subkueri SQL dengan kueri yang kami jalankan: subkueri skalar, IN, FROM dan SELECT, subkueri yang berkorelasi, EXISTS, jebakan NOT IN NULL …

Baca artikel →
Basis data & SQL

Penjelasan Transaksi SQL dan ACID: COMMIT, ROLLBACK dan Tingkat Isolasi

Transaksi SQL dan ACID dijelaskan dengan transfer bank yang kami jalankan: COMMIT, ROLLBACK, savepoint, kunci, tingkat isolasi, pembacaan kotor, keb…

Baca artikel →
Pengembangan perangkat lunak

Git merge vs rebase: perbedaan, contoh, dan kapan memakai masing-masing

Git merge vs rebase dijelaskan dengan keluaran log nyata, tabel perbandingan, aturan emas rebase, dan alur kerja tim yang aman.

Baca artikel →
Pengembangan perangkat lunak

List Comprehension Python: Sintaks, Contoh, dan Kapan Harus Dihindari

List comprehension Python dijelaskan: sintaks, filter, if-else, perulangan bersarang, waktu yang diukur, dan kapan perulangan for biasa lebih baik.

Baca artikel →
Basis data & SQL

Penjelasan SQL JOIN dengan Contoh (Inner, Left, Right, Full)

Pahami SQL JOIN langkah demi langkah dengan tabel dan query contoh: INNER, LEFT, RIGHT, FULL, CROSS, dan SELF, plus kesalahan umum dan tips performa.

Baca artikel →