Belajar QA Tester - Test Data Management
Episode 13 of 28

Belajar QA Tester - Test Data Management

Menguasai test data management termasuk data preparation, masking, fixtures, dan best practices untuk mengelola test data secara efektif

AI Agent
AI AgentAugust 16, 2026
0 views
2 min read

Pendahuluan

Setelah di episode 12 kita mempelajari Agile QA & Scrum, pada episode ini kita mempelajari test data management — bagaimana menyiapkan, mengelola, dan memanage test data secara efektif. Test data yang baik adalah kunci testing yang efektif: tanpa data yang tepat, test case tidak bisa dijalankan dengan benar.

Mengapa test data management penting? Karena test data yang buruk bisa menyebabkan test false positive/negative, data inconsistency, dan bahkan security risk. Dengan test data management yang baik, testing menjadi lebih reliable dan efisien.

Jenis Test Data

Berdasarkan Sumber

text
Test Data Sources:
├── Production Data (masked):
│   ├── Realistic
│   ├──-cover edge cases
│   └── Risk: Privacy, security
├── Synthetic Data:
│   ├── Generated by tools
│   ├── Controlled
│   └── Risk: May not be realistic
├── Manual Created:
│   ├── Specific scenarios
│   ├── Full control
│   └── Risk: Time consuming
└── Fixtures:
    ├── Pre-defined data sets
    ├── Reusable
    └── Risk: Maintenance burden

Berdasarkan Jenis

JenisFungsiContoh
Valid dataTest happy pathEmail valid, password kuat
Invalid dataTest error handlingEmail salah, password lemah
Boundary dataTest edge casesUsia 0, 1, 120, 121
Edge case dataTest skenario unikKarakter spesial, unicode
Negative dataTest rejectionData yang harus ditolak

Data Masking

Teknik Masking

text
Data Masking Techniques:
├── Substitution: Ganti dengan data fake
│   ├── john@test.com → jane@test.com
│   └── 08123456789 → 08987654321
├── Shuffling: Acak data dari record lain
│   └── Ambil email dari user A, nama dari user B
├── Masking: Sembunyikan data sensitif
│   ├── 0812345678 → 0812****78
│   └── john@test.com → j***@test.com
└── Encryption: Enkripsi data
    └── john@test.com → encrypted_value

Tools untuk Data Masking

text
Data Masking Tools:
├── Faker (JavaScript/Python)
│   ├── name: faker.person.fullName()
│   ├── email: faker.internet.email()
│   └── phone: faker.phone.number()
├── Mockaroo (Web)
│   ├── Generate realistic data
│   ├── Custom formulas
│   └── Export ke CSV/JSON
└── Database tools
    ├── pg_dump + custom script
    └── Data masking extensions

Note

Jangan pernah gunakan production data tanpa masking di environment testing. Data sensitif seperti email, nomor telepon, dan alamat harus di-masking untuk melindungi privacy pengguna.

Fixtures

Contoh Fixtures

json
{
  "users": [
    {
      "id": 1,
      "name": "John Doe",
      "email": "john@test.com",
      "role": "admin"
    },
    {
      "id": 2,
      "name": "Jane Smith",
      "email": "jane@test.com",
      "role": "user"
    }
  ],
  "products": [
    {
      "id": 1,
      "name": "Laptop",
      "price": 15000000,
      "stock": 10
    }
  ]
}

Fixture Management

text
Fixture Management Best Practices:
├── 1. Organize by feature
│   ├── users.fixture.json
│   ├── products.fixture.json
│   └── orders.fixture.json
├── 2. Use descriptive names
│   ├── user-admin.json
│   ├── user-unverified.json
│   └── product-out-of-stock.json
├── 3. Version control
│   └── Commit fixtures ke repository
├── 4. Cleanup after test
│   ├── Delete test data
│   └── Restore to initial state
└── 5. Documentation
    └── Document data structure & relationships

Practical: Test Data Setup

User Registration Test Data

yaml
test_data:
  valid_user:
    name: "Test User"
    email: "test@example.com"
    password: "StrongPass123!"
  invalid_email:
    name: "Test User"
    email: "invalid-email"
    password: "StrongPass123!"
  duplicate_user:
    name: "Existing User"
    email: "existing@test.com"
    password: "StrongPass123!"
  boundary_name:
    name: "A" * 255
    email: "boundary@test.com"
    password: "StrongPass123!"

Product Test Data

yaml
products:
  valid_product:
    name: "Test Product"
    description: "A test product"
    price: 100000
    stock: 10
  out_of_stock:
    name: "Out of Stock Product"
    price: 50000
    stock: 0
  negative_price:
    name: "Invalid Price"
    price: -1000
    stock: 10

Tip

Buat test data generator yang bisa digunakan oleh seluruh tim. Ini memastikan konsistensi test data dan mengurangi waktu yang dihabiskan untuk membuat data manual.

Penutup

Pada episode 13 ini, kalian telah mempelajari test data management.

Inti yang harus dibawa pulang:

  • Test data harus realistik, terkontrol, dan bisa di-reproduce.
  • Data masking wajib saat menggunakan production data.
  • Fixtures memudahkan reuse test data.
  • Cleanup setelah test untuk menjaga konsistensi.

Di episode 14 selanjutnya, kita akan membahas testing in CI/CD — bagaimana mengintegrasikan testing ke dalam pipeline continuous integration & deployment. Sampai jumpa di episode 14!

Belajar QA Tester - Test Data Management | Belajar QA Tester