Apa perbedaan antara lingkungan pementasan dan UAT?

10

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.

Machado
sumber
4
Saya ingin lebih banyak orang menimbang, tetapi ini tampaknya terutama didasarkan pada pendapat. Di lingkungan saya saat ini, Pementasan dan UAT berbeda. UAT adalah lingkungan publik langsung yang disinkronkan dengan penyebaran produksi tetapi dengan beban data yang berbeda untuk memungkinkan pengguna bermain-main dengan perangkat lunak. Kami menyebutnya sebagai lingkungan Sandbox untuk pengguna. Pementasan adalah tempat pribadi untuk menguji penyebaran dan perubahan infrastruktur sebelum menjalankannya dalam Produksi dan UAT. Ada kewajiban untuk pelanggan tentang ketersediaan dan penggunaan UAT, tetapi tidak Staging. Perusahaan lain cenderung berbeda.
Thomas Owens
@ThomasOwens intinya adalah bahwa: Kedua lingkungan berbeda dan bagi sebagian orang tampaknya menjadi satu hal dan bagi orang lain itu berarti hal lain. Pertanyaan tentang Kesalahan Server menyatakan bahwa Anda menggunakan pementasan menunjuk ke data produksi online dan hanya "flip the switch", yang saya pikir itu pendekatan yang menarik, tetapi pandangan yang berbeda dari apa yang Anda katakan.
Machado
2
Fakta bahwa itu adalah satu hal bagi sebagian orang dan sesuatu yang lain bagi orang lain adalah apa yang membuat ini terutama didasarkan pada pendapat - tidak ada jawaban. Saya belum menarik pelatuk saat menutupnya, kalau-kalau saya salah. Ini pertanyaan yang ditulis dengan baik, dan mungkin ada definisi standar di luar sana. Sekarang, jika orang memilih untuk mengabaikan definisi standar dan menggunakan definisi mereka sendiri adalah cerita lain.
Thomas Owens
@ Thomas Owens, pernyataan yang adil. Jika Anda tidak keberatan, mari kita tetap buka selama beberapa hari dan jika itu hanya memunculkan jawaban berdasarkan pendapat, saya dengan senang hati akan memilih untuk menutup dengan Anda. :)
Machado
@ThomasOwens setuju saya merasa pertanyaan ini juga agak subyektif dalam apa yang orang sebut sebagai pementasan. UAT kami dan lingkungan pementasan adalah "hal yang sama" tetapi ini karena kami memiliki banyak rilis sehingga ketika kami siap untuk rilis, kami mengambil alih lingkungan pementasan dan mempersiapkannya untuk UAT untuk melepaskannya. Pengembang yang mengerjakan hal-hal mereka sendiri masih memiliki cara untuk menggunakan cabang fitur di lingkungan panggung kami sehingga tidak menghalangi mereka.
Agustus

Jawaban:

10

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.

John Wu
sumber
1
| Environment | Software version  | Way of usage of software |
 ------------- ------------------- --------------------------
| UAT         | New               | Same as production       |
| Staging     | New or production | New for this version     |

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:

  • UAT ada untuk membuktikan bahwa versi baru dari produk perangkat lunak akan berfungsi jika digunakan dengan cara yang sama seperti bagaimana versi saat ini digunakan.
  • Pementasan ada untuk membuktikan bahwa cara baru penggunaan produk perangkat lunak dengan beberapa versi produk perangkat lunak yang diterima akan bekerja dengan cara yang sama seperti bagaimana versi produk perangkat lunak saat ini digunakan sekarang.

Catatan: seperti yang digambarkan dalam pertanyaan itu sendiri ada pemahaman yang berbeda tentang "Lingkungan pementasan" dan yang digunakan di perusahaan / lingkungan Anda mungkin berbeda.

Vlad
sumber
0

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.

BobDalgleish
sumber
Tampaknya Anda memiliki 3 lingkungan pengujian yang berbeda, dengan tujuan yang berbeda, tetapi masih menguji lingkungan: 1 fokus pada T&J, 1 fokus pada pengembang dan satu fokus pada tim operasi. Tetapi semuanya masih menguji lingkungan, dan terkait dengan pengujian database, misalnya. Apakah ini benar atau saya kehilangan sesuatu?
Machado
Masing-masing dari mereka akan diikat ke database mereka sendiri, ya.
BobDalgleish
-1

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:

  • UAT (lingkungan) mungkin "level" dengan produksi, dan pada dasarnya adalah kotak pasir bagi pengguna untuk mencoba fitur baru.
  • UAT (lingkungan) mungkin "di depan" produksi, sehingga fitur-fitur baru tidak digunakan untuk produksi sampai mereka dievaluasi. (Saya tidak tertarik pada pendekatan ini karena itu berarti Anda memiliki waktu tunggu yang lebih lama).
  • Jika Anda memiliki sistem multi-penyewa, Anda mungkin bahkan tidak memerlukan lingkungan UAT, sebagai gantinya Anda dapat memilih agar pengguna mengevaluasi fitur-fitur baru dalam sistem produksi dengan menggunakan flag fitur.

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 ...)

Justin
sumber