Phát triển với sự tự tin mà không có môi trường phát triển thực sự


12

Gần đây tôi đã được thuê cho một dự án liên quan đến làm việc với và xung quanh một số hệ thống "doanh nghiệp" của bên thứ ba. Do những gì tôi tưởng tượng sẽ là chi phí và nỗ lực thiên văn cần thiết để xây dựng một bản sao đủ trung thành của môi trường sản xuất, triển vọng có một môi trường phát triển thực sự có vẻ mỏng manh.

Điều này tất nhiên là không lý tưởng. Về mặt sáng sủa, tôi tưởng tượng phải có những người ngoài kia đang thử nghiệm và triển khai phần mềm một cách an toàn vào những môi trường không thể thay thế như thế này, và tôi có lẽ có thể đi theo bước chân của họ.

Làm thế nào những người có hiệu quả đối phó với các loại tình huống làm điều đó?


1
Ảo hóa, có môi trường "tương tự như", v.v ... Về bản chất, hãy cố gắng sao chép những gì bạn có thể, ở quy mô nhỏ hơn, ít nhất là bao gồm hầu hết các "bộ phận chuyển động" của hệ thống.
Oded

6
Bạn phải dựa vào tính chính xác của API của hệ thống doanh nghiệp và thực hiện nhiều thử nghiệm tích hợp, có thể với một số tài khoản thử nghiệm.
Robert Harvey

@RobertHarvey đã chết ở đây. Ai đó nên giải thích điều này trong một câu trả lời nhưng đây chính xác là những gì bạn cần. Trong trường hợp không có môi trường để kiểm tra hệ thống theo cách thủ công, tất cả những gì bạn có thể làm là tự động kiểm tra mã.
Jimmy Hoffa

1
Được rồi, vì vậy có lẽ một điểm mang đi tốt là nếu bạn không thể có một môi trường phát triển đầy đủ, tài khoản thử nghiệm trong sản xuất có thể là điều tốt nhất tiếp theo.
Jason Swett

Câu trả lời:


9

Điều này xảy ra mọi lúc trong thế giới thực. Tôi biết một anh chàng viết các ứng dụng kiểm soát nhà kính nông nghiệp khổng lồ - thông gió, sưởi ấm, kiểm soát độ ẩm, bạn đặt tên cho nó. Anh ta không có "nhà kính thử nghiệm", nhưng anh ta có một chương trình giả lập được cung cấp bởi công ty xây dựng các hệ thống phần cứng thực tế. Nếu mã hoạt động chính xác với trình giả lập, nó được coi là hoạt động chính xác với thiết bị thực. Trong các trường hợp hiếm hoi, trình giả lập hóa ra là sai, nhưng đó là vấn đề của công ty phần cứng nhà kính, vì nó không mô phỏng chính xác.


OP dường như không có sự đảm bảo của một 'trình giả lập'. Ngoài ra, trong trường hợp của bạn, chủ nhân của đồng nghiệp của bạn có thể yêu cầu bồi thường nếu giả lập thất bại. OP có thể làm gì trong tình huống tương tự? Làm phiền công ty bảo hiểm?
K.Steff

4
Nếu OP không có trình giả lập, anh ta cần phải có được một cái - ăn xin / ăn cắp / mượn / xây dựng - không thực sự quan trọng. Một trình giả lập cần phải tốt đến mức nào - đó là điều anh ta cần quyết định, và nếu anh ta cảm thấy cần thiết, anh ta có thể / nên nói chuyện với một công ty bảo hiểm về một điều nhỏ gọi là bồi thường.
mattnz

3

Đây là những tình huống là tài liệu API, tài liệu kiểm soát giao diện và trình giả lập là tối quan trọng. Trong một công ty tôi từng làm việc trước đây, điều này thực sự đã xảy ra, điều này sẽ xảy ra thường xuyên trong một dự án trong các giai đoạn tích hợp nhất định khi một phân khúc đã sẵn sàng, nhưng các phân đoạn khác đã hoạt động, hoặc vì một lý do nào khác mà chúng không thể triển khai phiên bản mới nhất của phân khúc của họ cho hệ thống thử nghiệm của chúng tôi. Vì vậy, vâng, chúng tôi đã thực sự có một bản sao trung thành của môi trường sản xuất mà chúng tôi đã thử nghiệm; tuy nhiên, trên thực tế, tất cả các phân đoạn chưa bao giờ sẵn sàng theo lịch trình, nhưng các giao diện đã được thỏa thuận và khóa trước khi bắt đầu phát triển và các trình giả lập đã được tạo ra có thể bắt chước hầu hết các hành vi của các phân đoạn khác.

Như một câu trả lời khác đã nêu trình giả lập là những gì sẽ cho phép thử nghiệm diễn ra trước khi triển khai. Một trình giả lập tốt; tuy nhiên, phụ thuộc vào giao diện và tài liệu được xác định rõ.


1

Tôi luôn ở trong những tình huống như vậy.

Bạn chắc chắn không cần phải tương tác với toàn bộ ứng dụng, nhưng có lẽ một vài giao diện nào đó. Hãy chắc chắn rằng bạn đã xác nhận và tài liệu chi tiết về các giao diện, sau đó chỉ thiết lập các giả lập của các giao diện này để xác minh rằng mã được thêm / thay đổi của bạn hoạt động theo cách bạn dự định làm việc.

Bạn cũng có thể làm một phép lai. Cố gắng sao chép các phần mà bạn có thể dễ dàng thực hiện, sau đó "kết nối" với các hệ thống thực (nếu điều này là có thể trong tình huống của bạn). Tôi đã làm được điều đó với một số thành công - trong một số trường hợp logic và phần mềm máy chủ của tôi được chạy cục bộ, nhưng tôi vẫn có kết nối với hệ thống ERP thực để xác minh các yêu cầu, v.v. Không lý tưởng, nhưng mọi thứ hiếm khi xảy ra.

Do bạn chỉ có một hệ thống sản xuất để làm việc - lưu ý rằng bạn không thể chỉ tính bất kỳ thời gian phát triển nào được lưu khi thiết lập bản sao, nhưng bạn phải tính đến rủi ro kinh doanh khi sử dụng mã phần lớn chưa được kiểm tra với dữ liệu kinh doanh trực tiếp. Mã của bạn S be kém tin cậy hơn mã được kiểm tra đối với bản sao. Hệ thống có thể ngừng hoạt động một thời gian không? Họ có thể được khôi phục trong trường hợp tham nhũng dữ liệu? Cái đó giá bao nhiêu?

Một thực tiễn tốt nhất trong các doanh nghiệp là đưa ra một bản sao (hoặc có thể nhiều hơn một) sản phẩm tại thời điểm môi trường sản xuất được thiết lập. Tại thời điểm đó, chi phí bổ sung sẽ không quá lớn.


1

Hệ thống của chúng tôi hoạt động với một số hệ thống bên ngoài lớn. Chúng tôi kết hợp các cách tiếp cận sau khi kiểm tra chúng nếu chúng tôi không có thiết lập hoàn chỉnh từ đầu đến cuối:

  • Ghi lại dữ liệu thực. Ghi lại dữ liệu thực (yêu cầu / phản hồi từ các hệ thống bên ngoài thực), tham số hóa nó nếu cần thiết và phát lại
  • Xây dựng hoặc mua một trình giả lập hoạt động như một hệ thống bên ngoài
  • DSL để tạo dữ liệu thử nghiệm. Đối với các hệ thống điều khiển dữ liệu, hãy viết DSL cấp cao để tạo dữ liệu thử nghiệm.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.