ความแตกต่างระหว่างสภาพแวดล้อม Staging และ UAT คืออะไร


10

ฉันรู้ว่าเราควรมีสภาพแวดล้อมที่แตกต่างกันอย่างน้อย 3 สภาพในขณะที่กำลังพัฒนาวิธีแก้ปัญหา:

  • การพัฒนา : โปรแกรมเมอร์มีอิสระที่จะเปลี่ยนแปลงและผลักดันการเปลี่ยนแปลงได้ตลอดเวลาเพื่อทดสอบโค้ดของพวกเขาและรวมเข้ากับการเปลี่ยนแปลงอื่น ๆ ได้อย่างรวดเร็วโดยไม่ต้องกลัวว่าจะทำสิ่งใด - มันเชื่อมต่อกับฐานข้อมูลและบริการทดสอบ
  • เอือด : ควรได้รับการปฏิบัติด้วยความเคารพจากนักพัฒนาเพราะมันควรจะมีสำเนา "ดีที่สุดเท่าที่จะเป็นไปได้" ของสภาพแวดล้อมการผลิตที่เกี่ยวข้องกับฮาร์ดแวร์ด้วยความแตกต่างที่ว่าสภาพแวดล้อมนี้เชื่อมต่อกับฐานข้อมูลของ UAT มันใช้ทั้งคำถามและคำตอบของทีมและผู้ใช้ในการตรวจสอบการเปลี่ยนแปลงที่จะไปสู่การผลิต
  • การผลิต : เรื่องจริง

ฉันได้ดูคำถามนี้เกี่ยวกับ SoftwareEngineeringและคำถามนี้ใน ServerFaultและพวกเขาดูเหมือนจะแตกต่างกันในความหมายของ Staging Environment นอกจากนี้หน้า Wikipediaเกี่ยวกับหัวเรื่องระบุว่า:

การใช้งานหลักของสภาวะแวดล้อม staging คือการทดสอบสคริปต์และโพรซีเดอร์การติดตั้ง / คอนฟิกูเรชัน / การโอนย้ายทั้งหมดก่อนที่จะนำไปใช้กับสภาวะแวดล้อมการใช้งานจริง สิ่งนี้ทำให้มั่นใจได้ว่าการอัปเกรดหลักและรองทั้งหมดไปยังสภาพแวดล้อมการผลิตจะสมบูรณ์ได้อย่างน่าเชื่อถือโดยไม่มีข้อผิดพลาดในเวลาขั้นต่ำ

สำหรับฉัน Staging เท่ากับ UAT ซึ่งคุณต้องทดสอบแอปพลิเคชันและขั้นตอนการปรับใช้ก่อนที่จะผลักดันสู่โลกแห่งความจริง ดังนั้นเราจึงผลักดันแพ็คเกจด้วยการเปลี่ยนแปลง UAT ในลักษณะเดียวกับที่เราผลักดันไปสู่การผลิตอัตโนมัติโดยสมบูรณ์และด้วยพิธีทั้งหมดที่เราควรมีกับสภาพแวดล้อมการผลิต

ที่ถูกกล่าวว่าสิ่งที่แตกต่างที่เหมาะสมระหว่างสภาพแวดล้อม UAT และสภาพแวดล้อม Staging คืออะไร?

-

แก้ไข: เพื่อให้ชัดเจนฉันคิดในแง่ของ Web Application ไม่ว่าจะเป็นเว็บไซต์อินเทอร์เน็ตหรือเว็บไซต์อินทราเน็ต ไม่มีแอป "ฟอร์ม" หรือแอปมือถือ


4
ฉันต้องการให้ผู้คนจำนวนมากขึ้นที่จะชั่งน้ำหนัก ในสภาพแวดล้อมปัจจุบันของฉัน Staging และ UAT แตกต่างกัน UAT เป็นสภาพแวดล้อมสาธารณะแบบสดที่ซิงโครไนซ์กับการปรับใช้การผลิต แต่ด้วยการโหลดข้อมูลที่แตกต่างกันเพื่อให้ผู้ใช้สามารถเล่นกับซอฟต์แวร์ได้ เราเรียกมันว่าเป็นสภาพแวดล้อมของ Sandbox สำหรับผู้ใช้ การจัดเตรียมเป็นสถานที่ส่วนตัวสำหรับทดสอบการปรับใช้และการเปลี่ยนแปลงโครงสร้างพื้นฐานก่อนที่จะดำเนินการในการผลิตและ UAT มีข้อผูกพันกับลูกค้าในเรื่องความพร้อมใช้งานและการใช้ UAT แต่ไม่ใช่การจัดเตรียม บริษัท อื่น ๆ มีแนวโน้มที่จะแตกต่างกัน
Thomas Owens

@ThomasOwens ประเด็นก็คือว่า: ทั้งสองสภาพแวดล้อมมีความแตกต่างกันและสำหรับบางคนดูเหมือนจะเป็นเรื่องหนึ่งและสำหรับคนอื่นมันหมายถึงสิ่งอื่น ๆ คำถามเกี่ยวกับ Server Fault ระบุว่าคุณใช้การชี้แบบชี้ไปที่ข้อมูลการผลิตออนไลน์และเพียงแค่ "พลิกสวิตช์" ซึ่งฉันคิดว่ามันเป็นวิธีการที่น่าสนใจ แต่เป็นมุมมองที่แตกต่างจากที่คุณพูด
Machado

2
ความจริงที่ว่ามันเป็นเรื่องหนึ่งสำหรับบางคนและอย่างอื่นสำหรับคนอื่น ๆ คือสิ่งที่ทำให้ความคิดเห็นนี้เป็นไปตามหลัก - ไม่มีคำตอบ ฉันยังไม่ได้ทริกเกอร์เมื่อปิดมันในกรณีที่ฉันผิด เป็นคำถามที่เขียนได้ดีและอาจมีคำจำกัดความมาตรฐานอยู่ที่นั่น ทีนี้ถ้าคนเลือกที่จะเพิกเฉยต่อคำจำกัดความมาตรฐานนั้นและใช้ของตัวเองเป็นอีกเรื่องหนึ่ง
โธมัสโอเวนส์

@ThomasOwens แถลงการณ์อย่างยุติธรรม ถ้าคุณไม่รังเกียจลองเปิดไว้สักสองสามวันแล้วถ้ามันวางไข่แค่คำตอบที่อิงตามความคิดเห็นฉันยินดีที่จะลงคะแนนปิดเพื่อคุณ :)
Machado

@ThomasOwens เห็นด้วยฉันรู้สึกว่าคำถามนี้ค่อนข้างเป็นอัตนัยในสิ่งที่ผู้คนเรียกว่าการจัดเตรียม UAT ของเราและสภาพแวดล้อมการจัดเตรียมนั้นเป็น "สิ่งเดียวกัน" แต่นี่เป็นเพราะเรามีการเปิดตัวจำนวนมากดังนั้นเมื่อเราพร้อมที่จะเปิดตัวเราจะเข้าสู่สภาวะการจัดเตรียมและเตรียมการสำหรับการเปิดตัว UAT นักพัฒนาซอฟต์แวร์ที่ทำงานกับสิ่งของของตัวเองยังคงมีวิธีใช้สาขาฟีเจอร์ในสภาพแวดล้อมบนเวทีของเราดังนั้นจึงไม่ปิดกั้นพวกเขา
สิงหาคม

คำตอบ:


10

ความแตกต่างคือข้อมูล

ตั้งค่าสภาพแวดล้อม UAT สำหรับ "การยอมรับของผู้ใช้" ของฟังก์ชันใหม่ เพื่อทดสอบการใช้งาน QA หรือผู้มีส่วนได้ส่วนเสียอาจตั้งค่าโปรไฟล์ผู้ใช้ด้วยวิธีเฉพาะเพื่อใช้คุณสมบัติเฉพาะหรืออาจตั้งค่าผลิตภัณฑ์จำลองหรือการกำหนดค่าเพื่อตรวจสอบพวกเขาทั้งหมด

สภาวะแวดล้อมการเตรียมฉากมักถูกตั้งค่าด้วยสำเนาของข้อมูลการผลิตซึ่งบางครั้งไม่ระบุชื่อ บริษัท บางแห่งมัก "รีเฟรช" ฐานข้อมูลการจัดเตรียมจากสแนปชอตการผลิตเป็นประจำ เป้าหมายหลักคือเพื่อให้แน่ใจว่าแอปพลิเคชันจะทำงานในการผลิตเช่นเดียวกับที่ทำงานใน UAT แทนที่จะตั้งค่าข้อมูลใหม่ผู้ทดสอบจะค้นหาฐานข้อมูลสำหรับโปรไฟล์และผลิตภัณฑ์ที่ตรงกับชุดทดสอบที่จำเป็น บ่อยครั้งที่ข้อมูล "ของจริง" มีพฤติกรรมแปลก ๆ ที่ก่อให้เกิดคดีขอบที่ไม่คาดคิดซึ่งพลาดไปในระหว่างเอือด นอกจากนี้การทดสอบการย้ายข้อมูลใด ๆ จะต้องเกิดขึ้นในสภาพแวดล้อมการจัดเตรียม


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

คำจำกัดความของการใช้งานนั้นกว้างขวางมากที่นี่และอาจรวมถึงสิ่งต่าง ๆ ทุกประเภทตั้งแต่การเปลี่ยนแปลงการกำหนดค่าที่ทำโดยผู้ใช้ไปจนถึงคุณสมบัติโครงสร้างพื้นฐานราคาแพงที่ไม่สามารถใช้ได้ในสภาพแวดล้อมของ UAT เวอร์ชันผลิตภัณฑ์ซอฟต์แวร์ที่สำคัญในการจัดเตรียมอาจเป็นผลิตภัณฑ์ใหม่หรือปัจจุบัน แต่จะเป็นผลิตภัณฑ์ที่ผ่านการยอมรับอยู่แล้ว

ในคำอื่น ๆ :

  • UATมีอยู่เพื่อพิสูจน์ว่าผลิตภัณฑ์ซอฟต์แวร์เวอร์ชันใหม่จะใช้งานได้หากใช้ในลักษณะเดียวกับการใช้เวอร์ชันปัจจุบัน
  • Stagingมีอยู่เพื่อพิสูจน์ว่าวิธีการใหม่ของการใช้ผลิตภัณฑ์ซอฟต์แวร์กับผลิตภัณฑ์ซอฟต์แวร์ที่ยอมรับบางรุ่นจะทำงานในลักษณะเดียวกับวิธีการใช้ผลิตภัณฑ์ซอฟต์แวร์รุ่นปัจจุบัน

หมายเหตุ: ตามที่ปรากฎในคำถามตัวเองมีความเข้าใจที่แตกต่างกันของ "สภาพแวดล้อมการแสดงละคร" และสิ่งหนึ่งที่ใช้ใน บริษัท / สภาพแวดล้อมของคุณอาจแตกต่างกัน


0

การใช้สภาพแวดล้อมที่แตกต่างกันเหล่านี้ขึ้นอยู่กับความต้องการของคุณ จากความคิดเห็นของคุณที่ "staging == UAT" มันฟังดูราวกับว่าคุณมีแอปพลิเคชันขนาดเล็กมากที่ไม่มีทีมงาน QA และมีนักพัฒนาเพียงไม่กี่คน

สภาพแวดล้อมของแอปพลิเคชันที่ใหญ่ขึ้นอาจมีสภาพแวดล้อมการทดสอบการรวมรวมถึงสภาพแวดล้อม QA ซึ่งเป็นอดีตที่นักพัฒนาใช้การทดสอบการรวมระบบและหลังที่ทีม QA ใช้การทดสอบ อาจมีสภาพแวดล้อมการฝึกอบรมที่มีข้อมูลสต็อกที่คืนค่าก่อนการฝึกซ้อมแต่ละครั้ง สภาวะแวดล้อมการจัดเตรียมจะอยู่ภายใต้การควบคุมของทีมปฏิบัติการเพื่อให้แน่ใจว่าการม้วนเอกสารเกิดขึ้นอย่างถูกต้อง ทีมลูกค้าจะใช้สภาพแวดล้อมการยอมรับการทดสอบ (UAT) นอกจากนี้ยังอาจมีสภาพแวดล้อมที่ถ่ายภาพการผลิตสำหรับการทำซ้ำปัญหาของลูกค้า

จุดของฉันคือระวังจุดชมวิวเดียวเมื่อพิจารณาสภาพแวดล้อมที่คุณต้องการ


ดูเหมือนว่าคุณมีสภาพแวดล้อมการทดสอบที่แตกต่างกัน 3 แบบโดยมีวัตถุประสงค์ที่แตกต่างกัน แต่ยังคงมีสภาพแวดล้อมการทดสอบ: 1 มุ่งเน้นไปที่ Q&A, 1 เน้นนักพัฒนาและอีกหนึ่งเน้นไปที่ทีมปฏิบัติการ แต่ทั้งหมดยังคงทดสอบสภาพแวดล้อมและเชื่อมโยงกับฐานข้อมูลทดสอบ สิ่งนี้ถูกต้องหรือฉันขาดอะไรไป?
Machado

แต่ละคนจะเชื่อมโยงกับฐานข้อมูลของตัวเองใช่
BobDalgleish

-1

UAT ย่อมาจาก " การทดสอบการยอมรับของผู้ใช้ " และเป็นสภาพแวดล้อมที่มีการทดสอบการยอมรับของผู้ใช้ สังเกตความสำคัญของผู้ใช้ - การทดสอบ QA ของคุณนั้นแตกต่างกัน UAT เป็นโอกาสสำหรับผู้ใช้จริง (หรืออย่างน้อยทีมฝึกอบรมของคุณฝ่ายขายฝ่ายสนับสนุน ฯลฯ ... ) เพื่อลองใช้คุณสมบัติใหม่ ๆ และประเมินซอฟต์แวร์ก่อนที่จะนำไปใช้งาน ระบบการผลิตของพวกเขา

สิ่งนี้หมายความว่าจะขึ้นอยู่กับกระบวนการของคุณ:

  • เอือด (สภาพแวดล้อม) อาจเป็น "ระดับ" พร้อมการผลิตและเป็นหลัก sandbox สำหรับผู้ใช้ลองคุณสมบัติใหม่ด้วย
  • เอือด (สภาพแวดล้อม) อาจเป็น "ล่วงหน้า" ของการผลิตดังนั้นคุณสมบัติใหม่จะไม่ถูกปรับใช้กับการผลิตจนกว่าพวกเขาจะได้รับการประเมิน (ฉันไม่กระตือรือร้นกับวิธีการนี้เนื่องจากจำเป็นต้องหมายความว่าคุณมีเวลารอคอยนานกว่า)
  • คุณมีระบบหลายผู้เช่าที่คุณอาจไม่ต้องการสภาพแวดล้อม UAT แทนคุณสามารถเลือกให้ผู้ใช้ประเมินคุณลักษณะใหม่ในระบบที่ใช้งานจริงโดยใช้แฟล็กคุณลักษณะ

ในแง่ของการปรับใช้อย่างต่อเนื่อง / การจัดส่งอย่างต่อเนื่องสภาพแวดล้อมการจัดเตรียมถูกใช้เพื่อทดสอบซอฟต์แวร์ในสภาพแวดล้อม "เหมือนการผลิต" เนื่องจากมีแนวโน้มว่าผู้พัฒนาจะทำงานในสภาพแวดล้อมที่มีความแตกต่างอย่างมีนัยสำคัญต่อการผลิต ชุดข้อมูลอื่น ๆ ... )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.