2009-03-03 3 views
6

나는이 시간과 시간을 다시 본다. UAT 테스트 매니저는 새 빌드를 금요일까지 테스트 할 준비가되기를 원합니다. 사전 테스트 회의에서 묻는 첫 번째 질문 중 하나는 "어떤 버전을 테스트 할 것인가?"입니다. (이것은 공정한 질문입니다). 방이 조용 해지면 누군가가 다시 돌아올 것입니다. "모든 어셈블리에는 자체 버전이 있습니다. 마우스 오른쪽 버튼으로 클릭하고 속성을 확인하십시오."분산 아키텍처에서 버전을 관리하는 것이 왜 어려운가요?

테스트 관리자 입장에서 볼 때이 방법은 유용하지 않습니다. 그들은 에 걸쳐 버전/레이블/태그가 모두 그들이 작업하고있는 것을 알려주는을 원합니다. 그들은이 정보를 쉽게 이용할 수 있기를 원합니다.

필자는 시스템의 다른 영역 버전을 데이터 저장소에 저장 한 다음 주 응용 프로그램의 정보 상자에 표시하는 솔루션을 보았습니다. 문제는 유지해야합니다.

문제점을 해결하기 위해 어떤 해결책을 찾았습니까?

EDIT. 분산 시스템은 VB6, 클래식 ASP, VB.Net, C#, 웹 서비스 (부서 간, 그래서 우리는 어떤 버전을 사용하고 있습니까?), SQL Server 2005를 다룹니다.

답변

3

저는 문제는 여러분과 여러분의 테스트 매니저가 서로 다른 두 가지 점에 대해 이야기하고 있다고 생각합니다. 어셈블리 버전은 어셈블리에 적합하지만 테스트 관리자는 상위 버전 인 "시스템 버전"에 대해 말합니다. 적어도 그것은 당신의 게시물을 읽은 것입니다.

이러한 상황에서해야 할 일은 서로 다른 모든 구성 요소 어셈블리를 시스템 버전에 매핑하는 것입니다. "시스템의 버전 ​​1.5는 Foo.Bar.dll v1.4.6과 Baz.Qux.dll v2.6.7 및 (등)로 구성되어 있습니다."라는 줄을 따라 말하십시오. 지옥, 분산 시스템에서 각기 다른 버전의 .dll 파일로 구성 될 수있는 각기 다른 버전의 서비스가 필요할 수 있습니다. 예를 들어 다음과 같이 말할 수 있습니다. "시스템의 버전 ​​1.5는 Foo.dll v1.9.3과 Bar.dll v1.6.9로 구성된 Foo 서비스 v1.3과 Bar 서비스 v1.9로 구성됩니다. Baz.dll v1.8.2 및 Qux.dll v1.5.2 및 (등)로 구성됩니다. "

이런 일을하는 것은 일반적으로 조직의 소프트웨어 아키텍트 및/또는 빌드 관리자의 역할입니다.

이 문제를 처리하는 데 사용할 수있는 다양한 도구가 사용자가 선택한 언어와 관련이 없습니다. 내 개인적으로 가장 좋아하는 것은 현재 Jira이며 버그 추적 외에도 훌륭한 제품 버전 및 로드맵 지원 기능을 제공합니다.

1

일부 방법을 설명하는 this page 일관된 버전 관리를 빌드 프로세스에 통합합니다.

+0

멋진 기사, 감사합니다. –

0

내부 참조 외에는 빌드 기반 버전 번호 매기기를 사용하지 않습니다. UAT 매니저가 질문을하면 "금요일 *"이라고 말합니다.

다음 트릭은 소스 제어에서 레이블링이 안정적으로 이루어 지도록하는 것입니다.

* 여기에 해당 날짜 스탬프/라벨

0

우리는 .NET 및 Subversion을 사용하여 삽입합니다. 모든 응용 프로그램 어셈블리는 수동으로 업데이트 된 주 및 부 버전 번호와 Subversion 개정 번호 (<major>.<minor>.<revision>)에서 파생 된 버전 번호를 공유합니다. 공유 AssemblyVersionInfo.vb 파일에서이 버전 번호를 업데이트하는 사전 빌드 작업이 있습니다. 그런 다음 테스터가 버전 번호를 요청할 때 전체 3 부분 번호 또는 전복 버전을 제공 할 수 있습니다. 우리가 소비하는 라이브러리는 변경되지 않았으며 변경 사항은 테스터와 관련이 없습니다.

+0

Google 시스템의 구성 요소 중 절반을 다루는 것이 합리적입니다. 다른 기술에 구성 요소가있는 시스템에서도 작동합니다. 나는이 문제를 언급하기 위해 나의 질문을 편집 할 것이다. 감사. – Ferdeen

1

문제의 원인이되는 여러 가지가 있습니다. 내 머리 꼭대기에서 떨어져, 여기 하나있어 :

분산 아키텍처의 장점 중 하나는 서비스를 만들고 어떤 형태로든 인터페이스를 게시하여 재사용 할 수있는 큰 잠재력을 얻는 것입니다. 그러면 클라이언트 응용 프로그램의 릴리스가 기본 서비스의 릴리스와 밀접하게 동기화되지는 않습니다. 따라서 새로운 버전의 비즈니스 응용 프로그램이 출시 될 수 있습니다.이 응용 프로그램은 1 년 동안 사용해온 동일한 신뢰할 수있는 서비스를 사용합니다. 이 경우 단일 출시 태그를 어떻게 적용해야합니까?

그럼에도 불구하고, 그것은 공정한 질문이지만, 의미없는 의미있는 대답을 요구하는 질문입니다.

+0

"새 버전의 비즈니스 응용 프로그램이 출시 될 수 있습니다.이 응용 프로그램은 내 경험에 비추어 볼 때 1 년 동안 사용하던 신뢰할 수있는 동일한 서비스를 사용합니다. 비즈니스 응용 프로그램은 특히 개발 환경에서 그다지 신뢰할 수 없습니다. – Ferdeen

+0

@Ferds : 당신의 의미를 잘 모르겠다. 나는 우리가 여기에 dev 환경에 대해 이야기하고 있다고 생각하지 않는다. 상황이 UA 환경에서 발생하는 것 같았습니다. 그리고 나는 하나 이상의 환경에서이 정확한 상황을 보았습니다. –

+0

오해의 소지가 있습니다. 나는 다른 환경, 특히 불안정한 환경을 의미했습니다. 이러한 다른 환경에서도 (개발, 비즈니스 사용자 및 관리자) 현재 "엔터프라이즈"버전이 무엇인지 알아야합니다. – Ferdeen

관련 문제