"미묘한"버그는 준비 환경 에서 식별되지 않은 프로덕션에서 발견됩니다. 이러한 문제가있는 프로젝트 중 하나에서이 문제는 이중 문제라고하는 전술에 의해 성공적으로 해결되었습니다. 나는 그런 버그를 의미합니다. 은 이슈 트래커에서 두 개의 티켓을 . 하나는 코드를 수정하기 위해 개발자에게 할당되고 다른 하나는 테스터에게 회귀 테스트를 설계 및 설정하거나 스테이징 환경에서 변경하여 향후 반복을 막을 수 있도록합니다. 그것은 꾸준한 준비를 유지하는 데 도움이되었습니다.
프로덕션 환경에서 문제가 발생하면 롤백이 필요합니다. 빈번한 경우 매주 릴리스가 실제로 가짜입니다. 실제로 작동하는 레벨로 빈도를 조정하십시오. 으로 가짜 말은 두 개의 주간 방출의 말 하나 롤 - 다시 사용자가 2 주 만에 한 번 새 (작업) 출시에 직면한다는 것을 의미하는 경우 - 모든 수, 배포 시간이 아닌 수이다.
열성적으로 강화 된 기능 분기 -이전에 단일 분기에서 작업을 시도하여 열등하다는 것을 알았습니까? 그렇다면 나머지를 건너 뛰십시오. 그렇지 않은 경우 단일 분기 (필요한 경우 분기 전략 "개발 분기"에 대한 Google 또는 분기 전략 "불안정 트렁크"에 대한 자세한 내용은 Google)에서 작업 해보십시오 . 또는 Perforce를 사용하는 경우 분기 및 병합에 대한 Microsoft 지침을 웹에서 검색하십시오. 시도 내가 말 했습니까? 미안 적절한 단어를 테스트 해야합니다 : 1) 단일 지점이 현재 가지고있는 것보다 나은지 여부와 시간을 측정하는 방법과 2)이 경우에 대비하여 기능 지점으로 다시 전환하는시기와 방법을 계획합니다. 테스트 가 실패합니다 .
추신.
웹에서 소프트웨어 프로젝트 위험 관리 와 같은 것을 검색하여 더 많은 트릭을 찾을 수 있습니다.
최신 정보
<의견에서 복사>
테스트 파이프 라인이 고장난 증상으로 빈번한 핫픽스를 인식합니다. 그렇지 않습니까? 어느 쪽이든, 그들은 수정 팀이 더 많은 작업을 할 수 있도록 핫픽스를 얻으려면 반복 릴리스가 필요합니다. 또한 핫픽스는 일반적으로 극단적 인 시간 압력으로 코딩되므로 정상적인 작업보다 품질이 떨어질 수 있습니다.
</ 댓글에서 복사>
- 막판 핫픽스 -위의 우려 사항은 나에게 합리적이며 깨진 테스트 파이프 라인에 대한 참조입니다. 이 업데이트로, 새로운 코드 통합은 월요일에 차단되어 귀하의 사전주의가 깨진 하나 개 더 증상 같은 소리 (좀 더 정확한 단어가 될 것이라고 생각 주장 파이프 라인). 경합의 의미는 다음과 같습니다. 단일 브랜치를 사용하여 통합 및 릴리스라는 두 가지 목적 을 동시에 제공합니다. 릴리스가 다가 오면이 두 가지 목적이 서로 충돌하기 시작하여 상충되는 요구 사항을 추진합니다. 통합 목적은 지속적으로 개방 된 브랜치 ( Merge Early And 종종 ) 와 함께 제공되는 것이 가장 좋은 반면, 브랜치 밀봉으로 인한 릴리스 안정성 이점(절연) 가능한 한 오랫동안. 퍼즐 부분이 일치하기 시작한 것 같습니다 ...
.. 월요일 동결은 이제 상충되는 목적을 달성하기 위해 타협 한 것처럼 보입니다. 개발자는 새로운 코드 통합 블록으로 고통 받고 테스터는이 블록으로 너무 짧아 고통을 겪습니다.
알다시피, 나는 당신의 최선의 방법은 전용 브랜치 (통합 이외)에서 릴리스 를 시도하는 것이라고 생각합니다 입니다. 이 브랜치가 통합처럼 오래 살았는지 또는 기능 브랜치처럼 짧게 살았 든 ( "기능"릴리스와 함께), 그것은 당신에게 달려 있습니다. 그것은 분리되어 있어야합니다.
그냥 생각 해봐 현재 언젠가는 릴리스를 편리하게 안정화시키기에 충분하지 않다는 것을 알고 있습니까? 새로운 브랜칭 전략을 사용하면 릴리스 2 일 전에 문제없이 포크 할 수 있습니다. 이틀만으로도 충분하지 않다면 3 일 전에 포크를 시도하십시오. 문제는 더 이상 새 분기를 통합 지점에 병합하는 것을 차단하지 않기 때문에 원하는 시점에 릴리스 지점을 격리 할 수 있습니다. 이 모델에서는 통합 분기를 전혀 동결 할 필요가 없습니다. 개발자는 지속적으로 월요일, 화요일, 금요일 등 어디서나 사용할 .
이 행복에 대한 대가는 핫픽스의 합병증입니다. 이것들은 하나가 아닌 두 개의 브랜치 (release + integration)로 합쳐 져야합니다. 이것이 새 모델을 테스트 할 때 중점을 두어야 할 사항입니다. 두 번째 지점에 합병하는 데 드는 추가 노력, 두 번째 지점에 합병하는 것을 잊을 수있는 위험과 관련된 모든 노력을 모두 추적하십시오.
테스트가 끝나면 추적 한 내용을 집계하고이 추가 노력의 양이 수용 가능한지 여부를 알아보십시오. 괜찮다면 다 끝난 것입니다. 그렇지 않으면 현재 모델로 돌아가서 무엇이 잘못되었는지 분석하고 개선 할 수있는 방법에 대해 생각하기 시작하십시오.
update2
<의견에서 복사>
내 목표는 반복 내에서 스토리를 테스트하고 전달할 수 있도록하는 것입니다 (구성 벽 뒤 또는 앞쪽). 테스터가 반복 작업을 수행하는 테스트를 수행하는 경우에만 가능합니다 (이전 반복의 코드를 안정화하지 않음).
</ 댓글에서 복사>
내가 참조. 글쎄, 나는 그런 식으로 직접적인 경험이 없지만 우리와 관련된 프로젝트에서 반복 테스트가 성공적으로 수행되는 것을 보았습니다 . 우리 프로젝트가 반대 방향을 따르고 있었기 때문에 이러한 반대 접근법에 대한 대면 비교도 훌륭했습니다 .
내 관점에서 볼 때, 반복 외 테스트 방식은 그 경쟁에서 우월 해 보였다. 예, 그들의 프로젝트는 훌륭했고 테스터들은 우리보다 버그를 더 빨리 감지했지만 어쨌든 도움이되지 않았습니다. 우리 프로젝트도 잘 진행되었고, 어쨌든 우리는 그들보다 더 짧은 반복을 감당할 수 있었고, 릴리스보다 릴리스가 훨씬 적었고, 개발자와 테스터 사이의 긴장이 적었습니다.
BTW는 측면에서 더 빠른 탐지에도 불구하고 평균 버그 수명이 거의 같았습니다 (수명 은 소개와 탐지가 아닌 소개와 수정 사이의 시간입니다 ). 아마도 반복 횟수가 짧고 릴리스가 줄어듦에 따라 평균적으로 수정 사항 이 사용자보다 더 빨리 도달 한다고 주장 할 수 있기 때문에 아마도 여기에 약간의 우위가 있었을 것입니다 .
요약하자면, 릴리스 코드 라인을 분리하면 팀 생산성을 향상시킬 수있는 더 좋은 기회라고 생각합니다.
더 생각하면 ...
- 릴리스 코드 라인을 분리하면 더 나은 기회를 얻을 수 있습니다. 다시 읽을 때 반복 테스트 를 시도하지 않는 것이 좋습니다 . 나는 그렇지 않다는 것을 완벽하게 분명히하고 싶습니다.
귀하의 경우 반복 테스트 방법은 테스트 방법 (부드럽게 테스트 파이프 라인 )을 이해하고 주요 장애물이 무엇인지 명확하게 이해하기 때문에 시도하기에 안전합니다 (er ... test ) . 결국 파이프 라인을 제대로 구축하기가 너무 어렵다면 대체 방법으로 대체 할 수있는 옵션이 항상 있습니다.
장애물에 관한 BTW, 그 경우 추적해야 할 추가 사항 은 개발자 측에서 버그를 재현하지 못하고 테스터 측에서 수정 사항을 확인하기 위해 늦게 찾거나 늦게하는 것과 같은 문제 입니다. 핫픽스로 인해 발생하는 것처럼 파이프 라인 도 막힐 수 있습니다.