Apa perbedaan arti dari 'fixture'?

19

Saya mengalami kesulitan memahami konsep "fixture". Saya tahu apa itu test suite, test case, uji coba, tapi apa sebenarnya "fixture"? Kasing uji parameter?

Tampak bagi saya bahwa makna atau semantik dari istilah "fixture" dapat sedikit berbeda dengan bahasa pemrograman atau dengan kerangka pengujian? Saya pikir perlengkapan phpunit

" kode untuk mengatur dunia dalam kondisi diketahui dan kemudian mengembalikannya ke kondisi semula saat tes selesai. Keadaan yang dikenal ini disebut fixture of the test. "

sedikit berbeda dari " perlengkapan kebugaran ", di mana

" Jadwal adalah jembatan antara halaman Wiki dan System Under Test (SUT), yang merupakan sistem sebenarnya untuk diuji ".

Apakah ada ahli dalam pengujian perangkat lunak di sekitar sini yang dapat menjawab pertanyaan ini? Referensi ke bahasa pemrograman lain dipersilahkan.

knb
sumber
1
@ chris (dan knb) harap masukkan jawaban sebagai jawaban, bukan edit pertanyaan.
senang Anda bertanya, saya hampir mengajukan pertanyaan yang sama :)
Adi Prasetyo

Jawaban:

19

Dalam konteks alat pengujian yang Anda sebutkan, seperti PHPUnit dan Fitnesse , istilah ini pasti merujuk pada gagasan tentang perlengkapan uji :

sesuatu yang digunakan untuk secara konsisten menguji beberapa item, perangkat, atau perangkat lunak ...

Perangkat lunak

Fixture tes mengacu pada kondisi tetap yang digunakan sebagai garis dasar untuk menjalankan tes dalam pengujian perangkat lunak . Tujuan dari fixture tes adalah untuk memastikan bahwa ada lingkungan yang diketahui dan diperbaiki di mana tes dijalankan sehingga hasilnya dapat diulang. Beberapa orang menyebut ini konteks pengujian .

Contoh perlengkapan:

  • Memuat basis data dengan kumpulan data tertentu yang diketahui
  • Menghapus hard disk dan menginstal instalasi sistem operasi bersih yang dikenal
  • Menyalin satu set file tertentu yang diketahui
  • Persiapan input data dan pengaturan / pembuatan benda palsu atau tiruan ...

Penggunaan perlengkapan

Beberapa keuntungan perlengkapan termasuk pemisahan inisialisasi pengujian (dan penghancuran) dari pengujian, menggunakan kembali kondisi yang diketahui untuk lebih dari satu pengujian, dan asumsi khusus oleh kerangka pengujian bahwa pengaturan perlengkapan ...

agas
sumber
2
untuk meringkas, fixture adalah objek dengan status yang diketahui bahwa tes (atau apa pun) dapat dilanjutkan dengan dan memiliki hasil yang diharapkan.
dave thieben
jadi saya akan mengatakan fixture adalah semacam abstraksi dari test suite. Mungkin saya bingung karena kadang-kadang orang menggunakan sinonim: istilah fixture (abstraksi, atau objek stateful pada tes-runtime awal) dan konfigurasi fixture (konfigurasi disimpan untuk diproses oleh metode setup ()).
knb
4

Di luar konteks pengujian, istilah fixture kadang-kadang digunakan untuk menggambarkan data awal dalam penyimpanan (seperti data awal dalam basis data) saat menggunakan aplikasi untuk pertama kalinya.

Pavels
sumber