레거시 요구 사항을 BDD로 마이그레이션


11

Q : 요구 사항 데이터베이스에서 15 년 이상의 레거시 소프트웨어 요구 사항을 유지하면서 대기업을 Cucumber로 이전하는 가장 좋은 방법은 무엇입니까?

현재 고려중인 사항 :

1) 모든 것을 마이그레이션

단점 : 우리는 무제한 시간 / 예산이 없으며 생존을 위해 앞으로 나아가 야하며 모든 것을 막을 수는 없으며 레거시 요구 사항 및 레거시 테스트 스위트의 100 %를 모두 막을 수는 없습니다.

2) 보이 스카우트 규칙

당신이 찾은 것보다 더 나은 모든 것을 남겨주세요. 요구 사항을 터치하거나 변경하면 Cucumber 기능을 작성 / 업데이트하십시오. 단점 : 우리는 두 개의 기록 시스템 (Cucumber, legacy req. DB)을 갖게 될 것입니다. 아마도 오랫동안 응용되지 않은 주어진 응용 프로그램의 모서리가 있다고 가정 할 것입니다.

3) 보이 스카우트 규칙 플러스

# 2와 동일하지만 보류중인 단일 시나리오를 통해 오이로 순 이동하지 않는 요구 사항을 기능에 넣고 레거시 요구 사항을 설명 섹션에 복사 / 붙여 넣습니다. 이러한 방식으로 우리는 Cucumber가 어떻게 "보장"했는지에 대한 메트릭을 보류중인 시나리오를 통해 얻을 수 있으며 기존 요구 사항 시스템을 유지해야 할 필요성을 극복 할 수 있습니다. 오이 내에서 큰 혼란이 될 수있는 것 이외의 다른 단점은 없습니다.

4) 여기에 아이디어를 삽입하십시오.

배경:

Cucumber로 이전하는 일부 프로젝트에는 자동화 된 테스트 스위트가 있으며 일부는 수동 테스트 만 사용했습니다. 모두 레거시 요구 사항 데이터베이스에서 요구 사항을 유지 관리합니다. 우리의 요구 사항은 법률 / 규제와 금융 상품에 대한 복잡한 논리 (위험, 가격, 구조 등)가 혼합되어 있기 때문에이를 수행해야합니다.

이동이 매우 큰 회사이므로 솔루션이 더 복잡해집니다.

우리는 이미 "새로운"요구 사항으로 Cucumber를 사용하는 프로젝트를 가지고 있습니다. 그래서 우리는 기술을 시험해 보았으며 지금까지 우리를 위해 일하고 있습니다. 웹과 순수한 데이터 프로젝트가 혼합되어 있습니다.

감사

편집 : 질문에 응답하려면 ... 레거시 요구 사항 관리 DB는 요구 사항을 테스트에 연결하지 않습니다. "테스트 가능"하지 않습니다. 오늘날 요구 사항을 테스트에 연결하는 것은 각 프로젝트가 끝날 때 테스트 케이스 관리 시스템에 요구 사항을 연결하는 까다 롭고 오류가 발생하기 쉬운 수동 프로세스를 통해 수행됩니다. 오이는 우리에게 더 나은 솔루션입니다. 그것에 대해 의문의 여지가 없습니다. 문제는 법적 및 기타 이유로 잃어 버릴 수없는 방대한 양의 중요한 요구 사항을 갖춘 대규모 조직으로 전환하는 방법입니다.


1
질문에 +1; 그러나보다 일반적인 환경에서 : 한 테스트 시스템에서 다른 테스트 시스템으로 이동하는 방법?
Sjoerd Job Postmus

"레거시"요구 사항 데이터베이스가 요구 사항 일치 확인에서 자동화됩니까? Cucumber 구문과 일치하도록 요구 사항을 다시 입력해야합니까?
Sjoerd Job Postmus

호기심,이 요구 사항 데이터베이스는 "테스트 가능"합니까? 그렇다면 레거시 테스트를 읽고 프로그램이 읽기 쉬운 방식이 아닌 경우에도 오이 테스트를 작성하는 프로그램을 수행하여 프로세스를 # 4 옵션으로 자동화하려고 시도 할 수 있습니다. 불일치 가능성 (2 개의 요구 사항 소스, db 및 오이)으로 인해 일반적으로 두 가지 소스를 갖는 것은 권장되지 않습니다.
pietromenna

1
"우리는 기술을 시험해 보았으며 지금까지 우리에게 도움이되었습니다"라고 썼지 만 "이전 기술보다 잘 작동했습니다"라고 쓰지 않았습니다. 이것이 100 % 개선 될 것이라고 확신합니까? 그렇지 않으면, 가장 좋은 방법은하지 않는 것입니다 ;-)
Doc Brown

답변:


8

창문을 교체 할 때 방을 스터드로 벗기는 실수를했습니다. 오래된 집입니다. 방은 형편 없었다. 그 과정의 모든 단계에서 나는 문제에 부딪쳤다. 낡은 파이프가 내 손에 쓰러졌습니다. 이제 매달린 25 파운드의 배관 통풍구가 떨어져서 부엌 천장에 부딪쳤다. (행운 적으로 다친 사람은 없지만 여자 친구의 충전 용 휴대 전화가 손상되었습니다. 인입 절연을 통한 고대 배선이 노출되었습니다.

각 문제마다 에너지를 방향 전환해야했습니다. 나는 문제를 해결하기 위해 멈췄다. 그리고 때로는 며칠이 지나서 앞으로 나아갔습니다. 가을에 나는 포기했다. (늦은 여름까지 계획을 세웠습니다.) 방금 멈췄습니다. 너무 많았습니다. 내 여자 친구는 계약자에게 전화하고 싶었습니다. 나는 이미 많은 일을 했으므로 거절했다. 나는 그들이 "영광"을 갖기를 원하지 않았다. (또한, 나는 조금 특별하고 누군가 내가 내가하지 않을 줄 알았던 모서리를 자르기를 원하지 않았다.) 그래서 방은 끝나지 않았다.

거의 1 년 전, 새해 후, 나는 주현절이있었습니다. 그 방이 끝날 때까지 독점적으로 일해야한다는 규칙은 없었습니다. 서두르지 않았습니다. 나는 그렇게 큰 일을 할 필요가 없었습니다. 대신, 약간의 자유 시간이 있다면, 위층으로 올라가서 방에서 한두 시간을 보낼 수있었습니다 ... 시트 락 한 장을 걸고, 진흙을 걸고 벽을 테이프로 붙이고, 문을 정리하십시오. 내가 알기 전에 끝났다. 내 여자 친구가 다시 나를 사랑했습니다. 나는 얼굴에 미소를 지었다. 세상에는 모든 것이 옳았습니다.

당신의 처지에 비슷한 것이 있다고 생각합니다. 느리고 꾸준한 현명한 거북이가 되십시오. "Migrate Everything"경로가 너무 스트레스가 많습니다. 손을 내밀고 떠날 수 있습니다. 보이 스카우트 규칙은 절대 변경되지 않으면 기능을 남겨 둡니다. 보이 스카우트 규칙 플러스는 하위 파 요구 사항을 만듭니다. 당신의 접근 방식을 최대한 활용하십시오 :

  1. 요구 사항을 만지면 오이로 옮깁니다.
  2. 그 동안 매주 마이그레이션 목표를 설정하십시오. 매주 조금씩하십시오. 전부 또는 전혀 제안하지 마십시오. 간혹 마이그레이션 작업이 다른 모든 작업에서 가져 오는 것이 좋습니다.

당신이 그것을 알기 전에, 당신은 끝날 것입니다. 당신의 상사는 당신을 사랑할 것입니다. 당신의 팀은 당신을 사랑합니다. 당신은 당신의 얼굴에 미소와 함께 잔다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.