พัฒนาด้วยความมั่นใจโดยไม่มีสภาพแวดล้อมการพัฒนาที่แท้จริง


12

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

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

ผู้ที่จัดการกับสถานการณ์ประเภทนี้ได้อย่างมีประสิทธิภาพทำได้อย่างไร


1
การทำเวอร์ชวลไลเซชันโดยมีสภาพแวดล้อมแบบ "คล้ายกับ" ฯลฯ โดยสาระสำคัญพยายามทำซ้ำสิ่งที่คุณทำได้ในระดับที่เล็กลงอย่างน้อยก็ครอบคลุม "ส่วนที่เคลื่อนไหว" ส่วนใหญ่ของระบบ
Oded

6
คุณต้องพึ่งพาความถูกต้องของ API ของระบบองค์กรและทำการทดสอบการรวมระบบจำนวนมากอาจมีบัญชีทดสอบบางบัญชี
Robert Harvey

@ RobertHarvey เสียชีวิตที่นี่ ใครบางคนควรอธิบายสิ่งนี้ในคำตอบ แต่นี่คือสิ่งที่คุณต้องการ ในกรณีที่ไม่มีสภาพแวดล้อมสำหรับการทดสอบระบบด้วยตนเองสิ่งที่คุณทำได้คือทดสอบโค้ดโดยอัตโนมัติ
Jimmy Hoffa

1
ตกลงดังนั้นอาจเป็นจุดซื้อกลับที่ดีนั่นคือถ้าคุณไม่สามารถมีสภาพแวดล้อมที่สมบูรณ์ได้การทดสอบบัญชีในการผลิตอาจเป็นสิ่งที่ดีที่สุดถัดไป
Jason Swett

คำตอบ:


9

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


OP ดูเหมือนจะไม่ได้รับประกันการ 'จำลอง' นอกจากนี้ในกรณีของคุณนายจ้างของเพื่อนร่วมงานของคุณอาจขอค่าชดเชยหากการจำลองล้มเหลว OP สามารถทำอะไรได้บ้างในสถานการณ์ที่คล้ายคลึงกัน รบกวน บริษัท ประกันภัยเหรอ?
K.Steff

4
หาก OP ไม่มีการจำลองเขาจำเป็นต้องได้รับหนึ่ง - ขอ / ขโมย / ยืม / สร้าง - ไม่สำคัญ ช่างจำลองดีแค่ไหน - นั่นคือสิ่งที่เขาต้องการตัดสินใจและถ้าเขารู้สึกว่าต้องการเขาสามารถพูดคุยกับ บริษัท ประกันภัยเกี่ยวกับสิ่งเล็กน้อยที่เรียกว่าการชดใช้
mattnz

3

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

ในขณะที่คำตอบอื่นระบุไว้อีมูเลเตอร์คือสิ่งที่จะช่วยให้การทดสอบเกิดขึ้นก่อนการปรับใช้ ตัวจำลองที่ดี อย่างไรก็ตามขึ้นอยู่กับอินเตอร์เฟสและเอกสารที่กำหนดไว้อย่างดี


1

ฉันอยู่ในสถานการณ์เช่นนี้ตลอดเวลา

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

คุณยังสามารถทำไฮบริด พยายามทำซ้ำส่วนที่คุณสามารถทำได้ง่ายจากนั้น "เชื่อมต่อ" กับระบบจริง (ถ้าเป็นไปได้ในสถานการณ์ของคุณ) ฉันได้ทำไปแล้วด้วยความสำเร็จ - ในบางกรณีที่ตรรกะและซอฟต์แวร์เซิร์ฟเวอร์ของฉันทำงานในพื้นที่ แต่ฉันยังคงมีการเชื่อมต่อกับระบบ ERP ที่แท้จริงเพื่อตรวจสอบความถูกต้อง ฯลฯ ไม่เหมาะ แต่สิ่งต่าง ๆ ไม่ค่อยมี

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

แนวทางปฏิบัติที่ดีที่สุดในองค์กรคือการสร้างแบบจำลอง (หรืออาจมากกว่าหนึ่ง) ของการผลิตในขณะที่สภาพแวดล้อมการผลิตมีการติดตั้ง ในขณะนั้นต้นทุนเพิ่มเติมจะไม่ใหญ่มาก


1

ระบบของเราทำงานกับระบบภายนอกขนาดใหญ่จำนวนมาก เรารวมวิธีการต่อไปนี้เมื่อทำการทดสอบหากเราไม่มีการตั้งค่าแบบครบวงจร:

  • บันทึกข้อมูลจริงซ้ำ บันทึกข้อมูลจริง (ร้องขอ / ตอบกลับจากระบบภายนอกจริง), ทำการเปรียบเทียบมันถ้าจำเป็นและเล่นซ้ำ
  • สร้างหรือซื้อตัวจำลองที่ทำหน้าที่เป็นระบบภายนอก
  • DSL สำหรับการสร้างข้อมูลทดสอบ สำหรับระบบที่ขับเคลื่อนด้วยข้อมูลให้เขียน DSL ระดับสูงเพื่อสร้างข้อมูลทดสอบ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.