test data management concept
지난 튜토리얼에서 우리는 테스트 환경 결함을 최소화하기 위해 테스트 베드를 준비하는 방법 . 동일한 튜토리얼을 계속하면서 오늘 우리는 테스트 환경을 설정하고 유지하는 방법과 중요테스트 데이터 관리기법.
테스트 환경 설정 프로세스
테스트 환경에서 가장 중요한 요소는 가능한 한 최종 사용자 환경에 가깝게 복제하는 것입니다. 일반적으로 최종 사용자는 완전한 제품이나 시스템이 배송 될 때 스스로 구성이나 설치를 수행 할 필요가 없습니다. 따라서 그 정의, 심지어 테스트 팀조차 이러한 구성을 명시 적으로 수행 할 필요가 없습니다.
이러한 구성이 순수하게 테스트 목적으로 필요한 경우 (최종 사용자 용으로 구성됨) 관리자를 식별해야합니다. 개발 환경을 구성하는 관리자는 테스트 환경을 구성하는 사람과 동일해야합니다.
개발팀 자체가 설치 / 구성을 주도한다면 테스트 환경에서도 똑같이 할 수 있도록 도와야합니다.
예를 들어, 다양한 OS 플랫폼 등의 시스템에서 애플리케이션 (관련 미들웨어가 설치 및 구성됨)을 테스트해야하는 경우 –이를 해결하는 가장 좋은 방법은 다음을 사용하는 것입니다. 가상화 또는 클라우드 환경 .
모든 애플리케이션과 필요한 미들웨어가 올바르게 설치되고 구성된 마스터 시스템을 보유하십시오. 그런 다음이 시스템을 캡처하여 마스터 이미지로 만들고 동일한 이미지에서 여러 인스턴스를 복제하여 각 사용자가 테스트중인 애플리케이션이있는 전용 시스템을 가지고있는 것처럼 느끼도록합니다.
아래는 테스트 환경 프로세스에 수반되는 내용을 그림으로 묘사 한 것입니다.
테스트 환경 설정 프로세스
학습 내용 :
테스트 환경의 유지 관리
테스트 환경 준비에 대해 너무나 많은 이야기가 있지만, 이는 테스트 환경을 유지 관리하거나 표준화해야하는 근거 이상입니다. 많은 경우 테스터는 환경 또는 설정 문제로 인해 테스트 시간을 잃습니다.
운영 체제와 하드웨어 및 소프트웨어의 범위가 급격히 증가함에 따라 환경은 본질적으로 거의 동적이어야합니다. 테스트 팀은 우수한 테스트 관리 프로세스를 통해 고품질 제품을 제공하고 있는지 확인할 수 있으며 이는 제한적으로 사용 가능한 리소스를 최적으로 사용하는 데 도움이 될 것입니다.
테스트 환경의 효과적인 유지 관리를위한 핵심 사항
테스트 환경으로서 대부분의 경우 이기종 플랫폼과 스택이 포함되어 있습니다. 아래는 테스트 환경의 효과적인 유지 관리를 보장하기위한 몇 가지 핵심 사항입니다.
# 1) 효과적인 환경 공유 및 배포 :
앞에서 이미 언급했듯이 테스트 환경 준비의 주요 과제 중 하나는 많은 팀이나 사람들이 테스트 목적으로 동일한 리소스 집합을 사용해야한다는 것입니다. 따라서 일정을 늦추지 않고 모든 팀과 사람들의 요구를 충족하는 적절한 공유 메커니즘을 개발해야합니다.
이는 다음과 관련된 모든 데이터가있는 저장소 또는 정보 링크를 유지하여 달성 할 수 있습니다.
- 누가 환경을 사용하고 있는지
- 환경을 자유롭게 사용할 수 있고
- 환경 사용 시간 분포를 정확히 입력하는 방법
리소스 요구 사항이 제한된 가용성과 비교하여 리소스 요구 사항이 큰 부분을 사전에 확인함으로써 많은 양의 혼란이 자동으로 무효화됩니다.
두 번째 측면은 각 팀의 리소스 요구 사항을 재검토하는 것입니다. 테스트주기 그다지 많이 사용되지 않는 리소스를 찾습니다. 이러한 특정 리소스를 필요한 새 리소스 나 시스템으로 교체 할 수 있는지 분석합니다.
# 2) 온 전성 검사 :
일부 테스트 요구 사항에는 매우 많은 시간이 소요되는 정교한 단계를 포함하는 포괄적 인 테스트 설정 또는 설정이 필요합니다. 이것은 특히 종단 간 테스트 두 개 이상의 구성 요소가 함께 작동합니다. 따라서 동일한 테스트 환경을 여러 팀에서 재사용해야 할 수 있습니다.
이러한 경우 전체 환경을 전체적으로 잘 이해하고 다양한 팀에서 어떤 종류의 테스트를 수행하는지 대조하면 해당 특정 리소스를 각 팀에 제공하는 데 도움이되는 합리적인 그림을 그릴 수 있습니다.
위의 요소를 고려하면 개별 팀에 대한 테스트를 신속하게 처리하는 데 도움이되는 기본 온 전성 테스트를 수행 할 수 있으며 이러한 온 전성 검사의 결과로 환경이 일부 변경되거나 수정되어야하는 경우 즉시 경고 할 수 있습니다.
# 3) 정전 추적 :
테스트 환경을 소유 한 모든 팀이 자체적으로 보유한 것처럼 조직은 글로벌 지원 팀에서 유지 관리 할 수있는 모든 테스트 환경을 보유하고 있습니다.
또한 테스트 환경을 소유 한 팀이 펌웨어 / 소프트웨어 업그레이드의 경우 자체 로컬 다운 타임을 갖는 것처럼 글로벌 팀은 모든 환경이 전원 또는 네트워크 중단을 포함 할 수있는 최신 표준을 준수하는지 확인해야합니다.
따라서 테스트 환경을 유지하는 사람들은 발생할 수있는 이러한 중단을 주시하고 이에 따라 작업을 계획하도록 사전에 테스트 팀에 알려야합니다.
# 4) 가능한 모든 곳에서 가상화 :
이는 환경을 공유하여 테스트를 수행해야하고 리소스 최적화가 절실한 경우에도 매우 적합합니다. 이러한 시대에는 테스트 목적으로 클라우드와 같은 가상화 된 환경을 사용하는 것이 답입니다.
이러한 환경을 사용할 때 모든 테스터는 즉시 제공하고이 인스턴스가 프로비저닝되면 전용 OS, 데이터베이스, 미들웨어, 자동화 프레임 워크와 같은 모든 다양한 리소스를 포함하는 독립적 인 테스트 베드 또는 테스트 환경을 형성해야합니다. , 등이 필요합니다.
테스트가 완료되면 이러한 인스턴스를 제거하여 조직의 비용을 크게 줄일 수 있습니다. 클라우드 환경은 기능 검증 테스트, 자동화 테스트 영역에 특히 유용합니다.
# 5) 회귀 테스트 / 자동화 :
오늘 사용되는 자바는 무엇입니까
새로운 기능과 기능이 개발 될 때 회귀 테스트 모든 릴리스주기에 대해 이러한 기능을 수행해야합니다. 따라서 회귀 테스트를위한 테스트 환경은 사후에 있지만 동일한 데이터를 사용하여 동일한 테스트 설정에서 실행되는 것처럼 보이지만 실제로 구현되는 기능에 따라 모든 릴리스를 지속적으로 발전시키고 있습니다.
모든 제품 출시주기에는 회귀 테스트가 하나 이상 있습니다. 따라서 모든 제품 출시주기에 대한 회귀 테스트 환경을 설정하고주기 내에서 재사용하면 테스트 환경의 안정성을 확실히 표현할 수 있습니다.
자동화 프레임 워크를 개발하고 회귀 테스트를위한 자동화를 사용하면 자동화가 환경이 안정적이고 생성 된 결함이 순전히 기능 / 코드 지향적이라고 가정하므로 테스트 환경의 효율성을 개선하는 데 도움이됩니다.
# 6) 일반 거버넌스 :
테스트 환경 하드웨어 또는 소프트웨어에 몇 가지 문제가있는 경우 이러한 문제는 적절한 사람에게 전달되어 랩을 유지 관리하는 사람들이 내부적으로 수정할 수없는 경우 수정을 보장해야합니다.
예를 들어, 테스트에서 현재 환경에서 사용중인 펌웨어 또는 소프트웨어의 제한으로 구성된 결함이 발생하는 경우 일반적으로 환경 유지 관리 담당자 만 해결할 수 없습니다.
따라서 소비자 (이 경우 테스터)에게 적절한 서비스 요청을 요청해야합니다. 이는 적절한 공급 업체 또는 팀에 전달되어야하며 다음 버전이 특정 문제를 해결하도록하기 위해 정기적으로 협력해야합니다.
거버넌스의 또 다른 측면은 투명성을 발산하고 분석을위한 좋은 기반을 형성하는 데 도움이되는 자세한 환경 보고서를 경영진 또는 이해 관계자에게 수시로 제공하는 것입니다.
테스트 데이터 준비
이제 마지막 부분을 살펴 보겠습니다. 테스트 베드 생성 – 테스트 데이터 설정 포함 . 테스트 환경에 대해 이렇게 큰 덩어리가 언급되면 테스트 환경의 진정한 본질, 견고성 및 효율성을 테스트 데이터로 측정 할 수 있습니다. 정의에 따라 테스트 데이터는 테스트중인 소프트웨어 코드에 제공되는 모든 종류의 입력입니다.
테스트 케이스를 설계하는 데 많은 시간을 소비하지만 테스트 데이터가 중요한 이유는 모든 종류의 시나리오에 대한 완전한 테스트 범위를 보장하여 품질을 향상시키기 때문입니다. 행복하거나 긍정적 인 경로 테스트에 필요한 테스트 데이터가있을 수 있습니다.
일부 다른 데이터는 오류 또는 부정적인 테스트를 위해 설계 될 수 있으며 이는 비정상적인 상황에 놓일 때 애플리케이션의 성능을 발견하는 데 매우 유용합니다.
테스트 데이터는 일반적으로 텍스트 실행이 시작되기 전에 생성됩니다. 모든 테스트 환경에는 고유 한 복잡성이 있거나 데이터 자체를 준비하는 작업이 오래 걸리기 때문입니다. 따라서 일반적으로 테스트 데이터 소스는 내부 개발 팀이거나 코드 또는 기능을 사용하는 최종 사용자 일 수 있습니다.
예를 들어,기능 테스트
기능 테스트 또는 블랙 박스 테스트를 수행해야하는 예를 들어 보겠습니다. 여기서 목표는 지정된 요구 사항을 충족하기 위해 코드가 기능적으로 있어야한다는 것입니다.
따라서 이러한 경우 – 테스트 케이스 준비에는 일반적으로 다음과 같은 종류의 데이터가 포함되어야합니다.
- 긍정적 인 경로 데이터 : 개발 사용 사례 문서를 참조로 사용하면 일반적으로 긍정적 인 경로 시나리오를 수행하는 것과 동기화 된 데이터입니다.
- 부정적인 경로 데이터 : 이것은 코드의 올바른 기능적 작동과 관련하여 일반적으로 '유효하지 않은'데이터로 간주됩니다.
- Null 데이터 : 애플리케이션 또는 코드가 해당 데이터를 예상 할 때 데이터를 제공하지 않습니다.
- 잘못된 데이터 : 데이터가 잘못된 형식으로 제공되는 경우 코드의 성능을 결정합니다.
- 경계 조건 데이터 : 인덱스 또는 배열에서 제공되는 데이터를 테스트하여 코드의 성능을 확인합니다.
테스트 데이터는 제품 또는 기능이 완전히 중단 될 수있는 부분을 식별하는 데 중요한 역할을합니다. 항상 여러 테스트 단계에서 테스트 환경에 제공된 데이터 종류를 폴링하고 유효성을 검사하는 연습을합니다.
테스트 데이터 관리
테스트 데이터가 제품의 품질을 보장하는 데 매우 중요한 역할을하는 경우, 관리 및 간소화도 고객에게 출시되어야하는 모든 제품의 품질 보증에서 똑같이 중요한 역할을한다고 말하는 것이 합리적입니다.
테스트 데이터 관리 및 모범 사례의 필요성 :
#1) 많은 조직이 빠르게 변화하는 비즈니스 목표 최종 사용자의 요구를 충족시키기 위해 적절한 테스트 데이터가 테스트의 품질을 결정하는 데 중요한 역할을한다는 것은 말할 필요도 없습니다. 여기에는 각 테스트 환경에 대해 정확한 종류의 데이터를 설정하고 동작 패턴을 모니터링하는 작업이 포함됩니다.
이미 논의했듯이 테스트 팀의 시간 중 상당 부분은 테스트 데이터 및 관련 작업을 계획하는 데 소비됩니다. 모든 기능의 테스트는 전체 테스트 범위와 관련하여 중요한 문제를 제기하는 적절한 테스트 데이터를 사용할 수 없기 때문에 크게 방해되는 경향이 있습니다.
#두) 또한 때때로 특정 테스트 요구 사항 테스트 데이터는 지속적으로 갱신되어야합니다. . 이 자체로 인해 지속적인 재 작업으로 인해주기에서 많은 지연이 발생하며 이는 또한 시장에 출시되는 애플리케이션 비용을 증가시킵니다.
배송되는 제품이 대규모 조직의 서로 다른 작업 그룹 단위와 관련된 다른 특정 경우에는 테스트 데이터를 만들고 새로 고치려면 이러한 작업 그룹 전체에서 복잡한 수준의 조정이 필요합니다.
#삼) 테스트 팀은 적절한 테스트를 보장하기 위해 가능한 모든 종류의 데이터를 만들어야하지만 조직은 이렇게하면 모든 종류의 데이터가 일종의 저장소에 저장되어야한다는 것을 의미하기도합니다.
리포지토리를 갖는 것이 좋은 습관이지만 과도하고 원치 않는 데이터 이렇게 큰 데이터 청크를 저장하기 위해 저장 공간을 크게 늘릴뿐만 아니라이 저장소의 버전 유지 관리 및 보관이없는 경우 문제의 테스트에 적합한 데이터를 가져 오는 것이 점점 더 어려워집니다.
대부분의 조직은 일반적으로 테스트 데이터와 관련하여 이러한 일반적인 문제에 직면 해 있습니다. 따라서 이러한 문제의 정도를 최소화하기 위해 몇 가지 관리 전략을 마련해야합니다.
다음은 테스트 데이터 관리를위한 몇 가지 제안 된 방법론이며 테스트 요구 사항과 관련이 있도록 유지합니다. 다음 관행은 대부분의 조직에서 일반적으로 작동하는 매우 기본적이고 일반적입니다. 채택 방법은 순전히 각 조직의 재량입니다.
테스트 데이터 관리 전략
# 1) 데이터 분석
일반적으로 테스트 데이터는 실행할 테스트 케이스를 기반으로 구성됩니다. 예를 들어 시스템 테스트 팀에서 종단 간 테스트 시나리오 어떤 테스트 데이터가 설계되었는지에 따라 식별해야합니다. 여기에는 하나 이상의 응용 프로그램이 작동해야 할 수 있습니다.
워크로드 관리를 수행하는 제품을 예로 들어 보겠습니다. 관리 컨트롤러 애플리케이션, 미들웨어 애플리케이션, 데이터베이스 애플리케이션이 모두 서로 공존하여 작동합니다. 동일한 테스트 데이터가 흩어져있을 수 있습니다. 효과적인 관리를 위해 필요할 수있는 모든 종류의 데이터에 대한 철저한 분석이 이루어져야합니다.
# 2) 프로덕션 환경을 미러링하기위한 데이터 설정
이것은 일반적으로 이전 단계의 확장이며 최종 사용자 또는 프로덕션 시나리오가 무엇이며 동일한 데 필요한 데이터가 무엇인지 이해할 수 있습니다. 해당 데이터를 사용하고 해당 데이터를 현재 테스트 환경에 현재 존재하는 데이터와 비교합니다. 이 새로운 데이터를 기반으로 생성 또는 수정해야 할 수 있습니다.
#삼) 테스트 데이터 정리 결정
현재 릴리스주기 (릴리스주기가 오랜 시간에 걸쳐있을 수 있음)의 테스트 요구 사항에 따라 테스트 데이터를 위의 내용에 따라 변경하거나 생성해야 할 수 있습니다. 이 테스트 데이터는 즉시 관련되지는 않지만 나중에 필요할 수 있습니다. 따라서 테스트 데이터를 정리할 수있는시기를 판단하는 명확한 프로세스를 공식화해야합니다.
# 4) 민감한 데이터 식별 및 보호
애플리케이션을 적절하게 테스트하기 위해 여러 번 매우 민감한 데이터가 필요할 수 있습니다. 예를 들어, 클라우드 기반 테스트 환경은 다양한 제품에 대한 주문형 테스트를 렌더링하기 때문에 널리 사용되는 선택입니다.
그러나 클라우드에서 사용자 개인 정보를 보장하는 것과 같은 기본적인 것이 우려의 원인입니다. 따라서 특히 사용자 환경을 복제해야하는 경우 중요한 데이터를 보호하는 메커니즘을 식별해야합니다. 메커니즘은 주로 사용되는 테스트 데이터의 양에 의해 결정됩니다.
# 5) 자동화
반복 테스트를 실행하거나 다른 종류의 데이터로 동일한 테스트를 실행하기 위해 자동화를 채택한 것처럼 테스트 데이터 생성을 자동화 할 수도 있습니다. 이렇게하면 테스트 중에 데이터와 관련하여 발생할 수있는 오류를 노출하는 데 도움이됩니다. 이를 수행하는 가능한 방법은 연속 테스트 실행의 데이터 세트에 의해 생성 된 결과를 비교하는 것입니다. 다음으로이 비교 프로세스를 자동화하십시오.
# 6) 중앙 저장소를 사용하여 효과적인 데이터 새로 고침
이것은 가장 중요한 방법론이며 데이터 관리 구현의 핵심을 형성합니다. 위에서 언급 한 모든 사항, 특히 데이터 설정, 데이터 정리와 관련된 사항은 직접 또는 간접적으로 이와 관련됩니다.
다양한 종류의 테스트에 필요할 수있는 모든 종류의 데이터가 포함 된 중앙 저장소를 유지하면 테스트 데이터를 만드는 데 많은 노력을 기울일 수 있습니다. 어떻게하나요? 연속 테스트주기에서 새 테스트 케이스 또는 수정 된 테스트 케이스에 대해 데이터가 저장소에 있는지 확인하십시오. 존재하지 않는 경우 먼저 테스트 환경에서 해당 데이터를 제공하십시오.
다음으로 나중에 참조 할 수 있도록이 저장소로 이동할 수 있습니다. 이제 연속 릴리스주기 동안 테스트 팀은이 데이터의 전체 또는 일부를 사용할 수 있습니다. 장점이 분명하지 않습니까? 자주 사용되는 데이터 세트에 따라 오래된 데이터를 쉽게 제거 할 수 있으므로 올바른 데이터가 항상 존재하는지 확인하여 불필요한 데이터를 저장하는 비용을 줄일 수 있습니다.
둘째,이 저장소의 몇 가지 버전을 저장하거나 필요에 따라 수정할 수도 있습니다. 서로 다른 버전의 리포지토리를 사용하면 회귀 테스트에서 데이터 변경으로 인해 코드가 손상 될 수 있는지 식별하는 데 크게 도움이 될 수 있습니다.
결론
테스트 환경은 모든 테스트 팀에서 가장 중요해야합니다. 모든 릴리스주기는 신뢰할 수없고 계획되지 않은 테스트 환경에 맞서 싸우기 위해 완전히 새로운 도전을 가져옵니다.
혁신적인 조치로서 많은 조직은 이제보다 원활한 릴리스주기를 보장하기 위해 테스트 환경의 효과적인 유지 관리를위한 특정 프레임 워크를 설정하는 전담 테스트 환경 유지 관리 팀을 구성하는 것과 같은 전략을 시행하고 있습니다.
향상된 테스트는 테스트 데이터 관리를 간소화하는 명백한 효과 일뿐입니다. 그것의 핵심 본질은 제품의 신뢰성을 타협하지 않으면 서 조직을위한 비용 효율적인 솔루션을 보장하는 것입니다.
테스트 환경을 관리하는 방법과 테스트 데이터를 준비하는 방법을 알려주시겠습니까? 팁을 추가하고 싶으십니까?
추천 도서
- 2021 년 최고의 14 가지 최고의 테스트 데이터 관리 도구
- 완벽한 데이터 관리를위한 10 가지 최고의 데이터 분석 도구 (2021 목록)
- 테스트 관리 튜토리얼 : 테스트 관리를위한 궁극적 인 가이드
- 테스트 데이터 란? 예제를 사용한 테스트 데이터 준비 기법
- 테스트 데이터 관리를위한 IBM Rational Quality Manager의 데이터 풀 기능
- Selenium 프레임 워크 생성 및 Excel에서 테스트 데이터 액세스-Selenium Tutorial # 21
- GEDIS Studio 온라인 도구를 사용한 테스트 데이터 생성 (2 부)