Saya tahu kita harus memiliki setidaknya 3 lingkungan berbeda saat mengembangkan solusi:
- Pengembangan : Pemrogram bebas untuk mengubah dan mendorong perubahan kapan saja untuk menguji kode mereka dengan cepat dan berintegrasi dengan perubahan lain, tanpa takut merusak apa pun - ini terhubung ke basis data dan layanan TEST;
- UAT : Seharusnya diperlakukan dengan hormat oleh pengembang, karena harus mengandung salinan "sebaik mungkin" dari lingkungan produksi mengenai perangkat keras, dengan perbedaan adalah bahwa lingkungan ini terhubung ke database UAT dengan salinan data produksi yang dapat diedit - itu digunakan baik oleh tim T&J dan pengguna untuk memvalidasi perubahan yang akan menuju produksi
- Produksi : Kesepakatan nyata.
Saya telah melihat pertanyaan ini pada SoftwareEngineering , dan pertanyaan ini pada ServerFault , dan mereka tampaknya berbeda pada apa arti dari Lingkungan Pementasan. Juga, halaman Wikipedia tentang subjek menyatakan bahwa:
Penggunaan utama lingkungan pementasan adalah untuk menguji semua skrip dan prosedur instalasi / konfigurasi / migrasi, sebelum diterapkan pada lingkungan produksi. Ini memastikan bahwa semua peningkatan besar dan kecil ke lingkungan produksi akan diselesaikan secara andal tanpa kesalahan, dalam waktu minimum.
Bagi saya, Pementasan sama dengan UAT, di mana Anda harus menguji aplikasi dan prosedur penyebaran sebelum mendorong ke dunia nyata. Jadi, kami mendorong paket dengan perubahan ke UAT dengan cara yang sama seperti kami mendorong produksi, sepenuhnya otomatis dan dengan semua upacara yang harus kami lakukan dengan lingkungan produksi.
Yang sedang berkata, apa perbedaan yang tepat antara lingkungan UAT dan lingkungan Pementasan?
-
EDIT: Untuk lebih jelasnya, saya berpikir dalam hal Aplikasi Web, baik itu situs web internet atau situs web intranet. Tidak ada aplikasi "formulir" atau aplikasi seluler.
Jawaban:
Perbedaannya adalah data.
Lingkungan UAT diatur untuk "penerimaan pengguna" atas fungsionalitas baru. Untuk menguji fungsionalitas itu, QA atau pemangku kepentingan dapat mengatur profil pengguna dengan cara tertentu untuk menjalankan fitur tertentu, atau dapat mengatur produk tiruan atau konfigurasi untuk memeriksa semuanya.
Lingkungan pementasan seringkali diatur dengan salinan data produksi, kadang-kadang dianonimkan. Beberapa perusahaan secara teratur "menyegarkan" database pementasan mereka dari snapshot produksi. Fokus utama adalah untuk memastikan bahwa aplikasi akan bekerja dalam produksi seperti cara kerjanya di UAT. Alih-alih menyiapkan data baru, penguji akan mencari profil dan produk database yang cocok dengan serangkaian kasus uji yang penting. Seringkali data "nyata" memiliki keanehan di dalamnya yang memunculkan kasus tepi tak terduga yang terlewatkan selama UAT. Juga, pengujian migrasi data apa pun perlu dilakukan di lingkungan pementasan.
sumber
Definisi penggunaan sangat luas di sini dan mungkin mencakup semua jenis hal mulai dari beberapa perubahan konfigurasi yang dilakukan oleh pengguna akhir hingga fitur infrastruktur mahal yang tidak tersedia di lingkungan UAT. Yang penting versi produk perangkat lunak pada pementasan dapat berupa yang baru atau yang sekarang tetapi selalu yang sudah melewati penerimaan.
Dengan kata lain:
Catatan: seperti yang digambarkan dalam pertanyaan itu sendiri ada pemahaman yang berbeda tentang "Lingkungan pementasan" dan yang digunakan di perusahaan / lingkungan Anda mungkin berbeda.
sumber
Penggunaan lingkungan yang berbeda ini sangat, sangat tergantung pada kebutuhan Anda. Dari komentar Anda bahwa "staging == UAT", kedengarannya sangat seolah-olah Anda memiliki aplikasi yang sangat kecil tanpa tim QA, dan hanya beberapa pengembang.
Lingkungan aplikasi yang lebih besar mungkin memiliki lingkungan pengujian integrasi, serta lingkungan QA, yang pertama di mana pengembang menjalankan tes integrasi mereka dan yang terakhir di mana tim QA menjalankan tes mereka. Mungkin ada lingkungan pelatihan yang memiliki data stok yang dipulihkan sebelum setiap sesi pelatihan. Lingkungan pementasan akan berada di bawah kendali tim operasi, untuk memastikan bahwa peluncuran dilakukan dengan benar. Lingkungan tes penerimaan pengguna (UAT) akan digunakan oleh tim pelanggan. Mungkin juga ada lingkungan snapshot produksi untuk mereproduksi masalah pelanggan.
Maksud saya adalah untuk berhati-hati terhadap sudut pandang tunggal saat menentukan lingkungan yang Anda butuhkan.
sumber
UAT adalah singkatan dari " Pengujian Penerimaan Pengguna " dan merupakan lingkungan di mana pengujian penerimaan pengguna dilakukan. Perhatikan penekanan pada pengguna - pengujian QA Anda berbeda, UAT adalah peluang bagi pengguna aktual (atau setidaknya tim pelatihan, penjualan, staf pendukung, dll ...) untuk mencoba fitur-fitur baru dan mengevaluasi perangkat lunak sebelum digunakan untuk sistem produksi mereka.
Apa artinya ini sebenarnya akan tergantung pada proses Anda:
Dalam hal Penyebaran Berkelanjutan / Pengiriman Berkelanjutan, lingkungan pementasan digunakan untuk menguji perangkat lunak dalam lingkungan "seperti produksi", karena kemungkinan pengembang akan bekerja di lingkungan dengan perbedaan signifikan pada produksi (mis. Tidak ada penyeimbangan muatan, lebih kecil dataset dll ...)
sumber