실제 개발 환경없이 자신있게 개발


12

최근에 여러 타사 "엔터프라이즈"시스템과 함께 작업하는 프로젝트를 위해 고용되었습니다. 생산 환경의 충실한 복제본을 구축하는 데 필요한 천문학적 비용과 노력이 필자가 생각하기 때문에 실제 개발 환경에 대한 전망은 사라질 것 같습니다.

물론 이것은 이상적이지 않습니다. 밝은 측면에서, 이와 같은 복제 할 수없는 환경에서 소프트웨어를 안전하게 테스트하고 배포하는 사람들이 있어야한다고 생각합니다.

이런 상황을 효과적으로 다루는 사람들은 어떻게합니까?


1
"유사한 환경"등을 갖는 가상화 ... 본질적으로 최소한 시스템의 대부분의 "이동하는 부분"을 커버하기 위해 소규모로 복제 할 수 있습니다.
Oded

6
엔터프라이즈 시스템 API의 정확성에 의존하고 테스트 계정을 사용하여 많은 통합 테스트를 수행해야합니다.
Robert Harvey

@RobertHarvey는 여기서 죽었습니다. 누군가 대답에 이것을 설명해야하지만 이것은 정확히 당신이 필요로하는 것입니다. 시스템을 수동으로 테스트하기위한 환경이 없으면 코드를 자동으로 테스트하기 만하면됩니다.
Jimmy Hoffa

1
좋아, 아마도 좋은 테이크 아웃 포인트는 완전한 개발 환경을 가질 수 없다면 프로덕션의 테스트 계정 이 차선책 일 수 있다는 것입니다.
Jason Swett

답변:


9

이것은 항상 현실 세계에서 발생합니다. 나는 거대한 농업 온실을 제어하는 ​​앱을 작성하는 사람을 알고 있습니다-환기, 난방, 습기 조절. "테스트 온실"은 없지만 실제 하드웨어 시스템을 구축하는 회사에서 제공하는 시뮬레이터 프로그램을 가지고 있습니다. 코드가 시뮬레이터에서 올바르게 작동하면 실제 장비에서 올바르게 작동하는 것으로 간주됩니다. 드문 경우에 시뮬레이터가 잘못된 것으로 판명되었지만 온실 시뮬레이션 회사의 문제는 올바르게 시뮬레이션되지 않기 때문에 처리해야합니다.


OP는 '시뮬레이터'를 보장하지 않는 것 같습니다. 또한 귀하의 경우, 동료의 고용주가 시뮬레이터가 실패 할 경우 보상을 요청할 수 있습니다. 유사한 상황에서 OP가 무엇을 할 수 있습니까? 보험 회사를 귀찮게합니까?
K.Steff

4
OP에 시뮬레이터가 없으면 구걸 / 도둑질 / 빌리 / 빌드 중 하나를 획득해야합니다. 시뮬레이터가 얼마나 좋은가-그것이 결정해야 할 일이며, 필요하다고 느끼면 보험 회사에 면책이라고 불리는 작은 것에 대해 이야기 할 수 있습니다.
mattnz

3

이러한 상황은 API 문서, 인터페이스 제어 문서 및 에뮬레이터가 가장 중요합니다. 필자가 이전에 근무했던 회사에서 실제로 이런 일이 발생했습니다. 한 세그먼트가 준비되었지만 다른 세그먼트가 뒤쳐 졌거나 다른 기능이 작동 중이거나 다른 이유로 배치 할 수없는 특정 통합 단계에서 프로젝트 내에서 자주 발생했습니다. 테스트 시스템에 대한 최신 버전의 세그먼트 예, 실제로 테스트 한 프로덕션 환경을 충실히 복제했습니다. 그러나 실제로 모든 세그먼트는 일정대로 준비되지 않았지만 개발 시작 전에 인터페이스가 합의되고 잠겼으며 대부분 다른 세그먼트 동작을 모방 할 수있는 에뮬레이터가 만들어졌습니다.

다른 답변에서 언급했듯이 에뮬레이터는 배포 전에 테스트를 수행 할 수있는 것입니다. 좋은 에뮬레이터; 그러나 잘 정의 된 인터페이스 및 설명서에 따라 다릅니다.


1

나는 항상 그런 상황에 처해 있습니다.

반드시 전체 응용 프로그램과 상호 작용할 필요는 없지만 몇 가지 인터페이스가있을 수 있습니다. 인터페이스에 대한 자세한 문서를 확인하고 자세한 내용을 확인한 다음, 추가 / 변경된 코드가 의도 한대로 작동하는지 확인하기 위해 이러한 인터페이스의 모의를 설정하십시오.

하이브리드를 수행 할 수도 있습니다. 오히려 쉽게 할 수있는 부분을 복제 한 다음 실제 시스템에 "연결"하십시오 (이 상황에서 가능할 경우). 내 논리와 서버 소프트웨어가 로컬에서 실행되는 경우에 성공을 거두었지만 여전히 실제 ERP 시스템에 연결하여 불명예 등을 확인했습니다. 이상적이지는 않지만 거의 없습니다.

작업 할 프로덕션 시스템 만있는 경우 복제본 설정에 소요되는 개발 시간 만 계산할 수는 없지만 테스트되지 않은 코드를 실제 비즈니스 데이터와 함께 사용할 경우 비즈니스 위험을 고려해야합니다. 복제본에 대해 테스트 한 코드보다 코드의 안정성이 떨어집니다. 시스템이 얼마 동안 다운 될 수 있습니까? 데이터가 손상된 경우 복원 할 수 있습니까? 그 비용은 얼마입니까?

기업의 모범 사례는 프로덕션 환경이 설정되는 시점에 프로덕션 복제본 (또는 둘 이상)을 설치하는 것입니다. 그 순간 추가 비용은 그렇게 크지 않을 것입니다.


1

우리 시스템은 다수의 대형 외부 시스템과 작동합니다. 완벽한 엔드-투-엔드 설정이없는 경우 테스트 할 때 다음 방법을 결합합니다.

  • 실제 데이터 기록 재생. 실제 데이터를 기록하고 (실제 외부 시스템의 요청 / 응답) 필요한 경우 매개 변수화하고 재생
  • 외부 시스템으로 작동 하는 시뮬레이터 구축 또는 구매
  • 테스트 데이터 생성을위한 DSL. 데이터 중심 시스템의 경우 테스트 데이터 생성을위한 고급 DSL을 작성하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.