1. 데이터 이해
    1. 데이터란?
      • 컴퓨터가 처리할 수 있는 변수, 문자, 숫자, 영상 등의 형태로 된 자료.
      • 연구나 실험, 조사로 얻은 사실을 나타내는 수치로, 의미를 갖지 않은 원소의 상태를 의미한다.
      • 데이터를 구조화하여 수집하고, 가공 및 분석을 거쳐 이론의 기초로 사용하거나 유용한 정보를 얻을 수 있다.
      • 일반적으로 인사이트를 얻거나, 발생한 현상의 원인 및 미래를 예측하기 위해 데이터를 수집하고 분석한다.
    2. 데이터 이해
      • 데이터 요소란 논리적 데이터의 가장 작은 단위로서, 데이터 집합을 구성하는 각 세부항목을 의미한다.
      • 데이터 형식에는 정형 데이터, 반정형 데이터, 비정형 데이터가 있다.
      • 정형 데이터
        • 정해진 구조에 따라 저장된 데이터로, DB의 열과 행으로 데이터를 저장한다.
        • 데이터를 저장하는 장소와 DB 스키마가 분리되어있다.
      • 반정형 데이터
        • 테이블 형태로 구조화되있진 않지만 스키마 및 메타 데이터 특성을 함께 가지고 있다.
        • 데이터 정보를 파악하는 파싱 과정이 필요하고, HTML, XML, JSON 파일 형태로 저장된다.
      • 비정형 데이터
        • 정의된 구조나 규칙, 데이터 모델 없이 저장된 데이터로, 값의 의미를 파악하기 힘든 데이터
        • 비디오, 이미지, 오디오, 문장과 같이 테이블 형태의 스키마가 없는 데이터베이스의 데이터가 포함된다.
      • 데이터 유형에는 정량적 데이터, 정성적 데이터로 분류된다.
        정량적 데이터 
        연속형 데이터 m, cm, mm 와 같이 수치적인 의미를 가지고 있고, 소수점 단위까지 표현이 가능한 측정가능한 데이터.
        이산형 데이터 가격, 인원 수와 같이 셀 수 있는 형태의 값으로, 속성이나 그룹을 셀 수 있는 데이터. 소수점이 아닌 정수로 표현된다.

        정성적 데이터
        이항 데이터 0과 1의 상태만을 가지는 데이터로 예/아니오, True/False등이 있다.
        명목형 데이터 카테고리로 분류되지만 순서 관계가 없는 데이터. 혈액형, 성별, 색상 등이 있다.
        순서형 데이터 카테고리와 순서로 분류되는 데이터로, 대/중/소, 학점 등을 예시로 들 수 있다.
  2. 데이터 활용
    1. 데이터의 가치
      • IT기술의 발전으로 대용량 데이터 축적 및 가공/분석/처리하게 되었고, 다양하게 사용된다.
      • 데이터로 새 기술 및 제품 개발, 다양한 분야로의 발전, 솔루션 제공, 효율적인 업무 전략 수립이 가능해졌다.
      • 예를 들어, 고객의 나이와 성별, 고나심을 분석하여 연관 상품을 추천해주고 쇼핑 경험을 개선할 수 있다.
  3. 데이터 품질 관리
    1. 데이터 품질 관리의 필요성
      • 빅데이터와 AI가 본격적으로 업계에 활용됨으로서, 데이터 품질 검증의 중요성과 필요성이 커졌다.
      • 테스팅 업계에서도 데이터 품질 테스트를 도입하고, 전문성을 갖추기 위해 다양한 연구를 시도하고 있다.
      • 데이터 품질이란, 비즈니스에 적합하고 정확한 데이터를 적시에 안전하고 일관성 있게 제공함으로써 비즈니스 효율을 높이고 전략적인 의사결정을 지원하는 정보 자산으로서의 가치를 의미한다.
      • 즉, 데이터가 목적에 따라 정확하게 기록 및 사용되고, 최신화되고 향상되며 상호 연계가 가능해야 한다.
      • 데이터 품질 저하 발생 시, 정보 품질 저하로 매출 감소, 비즈니스 전략/의사 결정에 오류가 발생할 수 있다.
    2. 데이터 품질 테스트의 생명주기
      • 테스트 프로세스와 동일하게 데이터 계획/구축 단계에서부터 검정과 관리 활동이 시작되어야 한다.
        출처 : https://brunch.co.kr/@swtestrecipe/10
         
    3. 데이터 품질 오류
      데이터의 완정성 데이터를 저장하는 DB구조 설계의 완전성 (표준화, 모델링, 아키텍처)
      데이터의 정확성 설계 및 규칙에 맞게 데이터 값이 저장되는지
      데이터의 일관성 데이터의 표준 준수, 비즈니스 활용성, 서비스/콘텐츠 내 사용성
      • 데이터의 안정성, 정확성, 일관성이 충족되지 않은 데이터를 `데이터 품질 오류`라고 한다.
      • DB설계 구조의 오류
        • 설계된 규칙을 위반하여 저장된 데이터
        • 데이터 모델 설계도와 실제 구현된 데이터 컬럼과 데이터간 구조의 불일치
        • 데이터 구분을 위한 식별자 미정의
        • 입력 데이터 오류 방지 검증 장치 혹은 운영중인 데이터에 오류 감지 대응 프로세스가 설계되지 않음
        • 테이블 구조의 중복성
        • 메타데이터 관리를 위한 설계가 되지 않아 데이터 활용이 어려움
      • 데이터 값의 오류
        • 데이터 컬럼과 테이블에 저장된 값이 유효하지 않거나 상이한 경우.
        • 금액, 번호, 소수점 등 단위의 혼재
        • 숫자 또는 문자가 함께 저장되는 데이터 값의 범위가 유효범위를 벗어나는 경우 (ex: 날짜 형식)
        • 규칙에 위배된 데이터 값의 저장 (ex: 전화번호 길이)
        • 코드 테이블을 참조하는 컬럼이 코드 테이블에 정의하지 않은 값을 저장
        • 컬럼 간의 규칙이 존재할 때, 컬럼의 논리적 일관성 오류 (ex: 나이와 생년월일 불일치 등)
      • DB 표준 준수 오류
        • DB 컬럼과 테이블 내 데이터 타입, 길이, 소숫점 길이 등이 상이하거나 유효 범위를 벗어남
        • 컬럼명, 코드, 도메인, 용어 등 명명규칙이나 표준화를 따르지 않는 오류
      • 데이터 활용으로 인해 발생하는 서비스 또는 콘텐츠상의 기능과 UI오류
        • 접속 지연, 부정확한 결과 도출 등
      • 인적, 정책적인 오류
        • 데이터 관리를 위한 규정, 규칙, 정책 등이 정의되있지 않음
        • 업무 수행을 위한 규칙, 절차, 정의서가 마련되어 있지 않음
        • 오류나 장애 발생 시, 대응을 위한 절차가 마련되어 있지 않음
        • 재해, 재난에 대비한 DB 관리 시스템이 마련되 있지 않음
      • 시스템 또는 데이터간 연계의 어려움
  4. 데이터 테스트 방법
    1. 테스트 대상 선정
      • 품질 관리를 위한 중점 대상을 선정하고 선택적이고 집중적인 품질 검증 활동을 위한 전략이 필요하다.
      • 사업, 마케팅, BI, DBA 등 데이터를 다루는 비즈니스 사용자에 의해 1차적으로 선정된다.
      • 요청 조직과 개발 조직 간의 데이터 설계가 진행된다.
      • 품질 담당 조직으로 선정된 대상과 데이터 테이블 문서가 전달되어 품질 검증이 이루어진다.
      • 테스트 대상을 선정하는 기준
        • 제품 또는 서비스 핵심이 되는 데이터베이스를 식별하여 테스트 대상으로 선정한다.
        • 시스템 간 연계되는 데이터, 활용 관점에서 주요 역할을 하는 데이터베이스를 대상으로 선정한다.
        • 데이터 품질 개선 요청 또는 오류가 제기된 데이터로 선정한다.
        • 품질 이슈가 발생할 가능성이 있는 데이터를 예측하여 대상으로 선별한다.
    2. 데이터 품질 기준
      • 데이터의 활용 목적과 활용 조직에 따라 일부의 중요성을 더 강조할 수 있다.
        품질지표 데이터오류 설명
        준비성 데이터 정의 및 관리 미흡 관리되어야 할 데이터 요소를 정의하고 지속적인 품질 관리 활동으로 데이터를 최신화하는 지 확인한다.
        신뢰성 응답 시간 및 결과의 정확도 오류 목표한 응답 시간 안에 정확한 결과를 제공한다.
        완전성 정보 누락 규칙의 오류 업무 규칙에 맞게 데이터가 저장된다.
        유용성 정보 제공의 불충분
        정보의 유옹성 오류
        유저에게 충분하 정보 제공, 유저의 편의성 확보, 정보 이용의 만족도 개선이 지속적으로 제공된다.
        정확성 정보의 정확성 오류 데이터 입력 단계의 오류 측정, 저장된 데이터의 기준 준수 측정, 데이터 최신화 반영 여부를 측정한다.
        일관성 시스템간 불일치
        정보의 일관성 오류
        같은 의미를 갖는 데이터 간의 테이블, 속성 사이 또는 연계 시스템에서 일관된 이름과 형식을 갖도록 표준을 준수한다.
        적시성 정보 연계 지연 데이터 응답 시간과 성능 확보, 수집, 처리, 제공 절차가 체계적인지 확인한다.
        데이터를 적시에 제공 및 활용하는지 확인한다.
        보안성 정보 보안 관리 누락 권한에 따르나 데이터 접근 통제, 개인 정보 데이터 암호화 등 보안 조치를 하는지 측정한다.
    3. 테스트 범위
      • 산출물 검증
        • 산출물에는 데이터 테이블 정의서, 규칙 정의서, 표준 용어 정의서, 코드 표준서 등의 데이터 산출물과 개발 설계서가 포함된다.
        • 자료 리뷰를 통해 문서 오류, 규칙이 미사용 영역, 식별자 비정의 영역, 필수 속성값 누락을 검토한다.
        • 데이터 흐름도와 아키텍처 설계서를 통한 설계 구조상 오류, 연계 시스템과의 영향도를 확인한다.
      • 유효성 검증
        • 테스트를 통해 수집된 뎅이터와 유효성을 검증한다.
        • 설계상 정보와 실제 구현 데이터 간의 정보를 비교하여 상이한 값을 확인한다.
        • end to end 테스트를 수행해 수집된 데이터와 설계상 정보 비교를 통해 데이터 오류를 검출한다.
      • 위를 통해 발견한 오류는 원인 파악 후 수정요청하거나 개선활동을 진행한다.
      • 운영중인 서비스의 데이터 오류를 식별하고 지속적인 수정과 개선을 요청한다.
    4. 테스트 수행 절차
      • 각 목적에 따른 테스트 단계와 테스트에 대한 수행 방안을 정의한다.
      • 계획 단계
        • 데이터 산출물 리뷰를 통해 문서상 문제점과 오류를 발견하고 추가 적용 규칙을 도출한다.
        • 테스트 품질 목표와 품질 기준을 저의하고 테스트 수행 계획을 수립한다.
      • 분석/설계 단계
        • 테스트 대상 데이터, 연계 데이터를 분석하여 테스트 범위와 우선순위를 선정한다.
        • 데이터 테이블 또는 데이터와 규칙 정의서를 활요아여 데이터 검증용 TC를 설계한다.
        • End to end 테스트를 통해 데이터를 수집할 수 있또록 유저 시나리오를 작성한다.
        • 테스트케이스에는 설계된 데이터 테이블 스키마 문서와 실제정보 비교하여 결과를 입력하는 영역과
          수집된 데이터 정보를 추출하여 설계 데이터와 비교분석할 수 있는 입력 영역을 추가한다.
        • 전반적인 데이터 테스트 수행을 위한 데이터 관리시스템 또는 SQL사용을 준비한다.
        • 데이터 관리 시스템에는 Kibana, ETL, Google Data Studio와 같은 데이터 시각화 소프트웨어가 있다.
        • 위 도구 사용이 불가능한 경우, SQL로 DB 저장 정보를 직접 추출하여 사용할 수 있도록 한다.
      • 실행 단계
        • diff(파일 비교 유틸리티) 를 활용해 데이터 변경 사항을 비교하고 변경된 정보를 확인한다.
          ㄴ 변경되지 않아야할 데이터의 변경 오류, 누락 데이터, 입력실수 등의 오류를 도출한다.
        • 데이터 프로파일링 및 정합성 검증은 SQL또는 데이터 관리 시스템을 활용한다.
          ㄴ 실제 제품에서 직접 테스트를 수행해 데이터 관리 시스템으로 데이터 정보를 수집한다.
          ㄴ 추출된 정보와 설계상 메타 데이터를 비교하여 모든 값이 유효범위에 있는지 확인한다.
          ㄴ 불일치하는 데이터를 도출하여 수정을 요출한다.
        • 연계 데이터를 분석한다
          ㄴ 추출, 적재한 실제 데이터에 존재하지 않는 데이터는 오류 데이터로 간주하고 수정요청한다.
        • 오류로 추정되는 데이터는 수정 요청을 진행하고, 개선 필요 데이터는 개선을 요청한다.
        • 테스트 활동을 반복 수행하여 수정 사항을 확인하고 수정으로 인해 발생하는 사이드 이펙트를 관리한다.
      • 완료 단계
        • 테스트 수행 산출물과 결과를 분석하여 최종 품질 상태를 공유하고 잔존 이슈 및 개선 사항에 대한 대응 방안을 권고한다.
        • 데이터 담당자에게 데이터 문서를 최신화할 것을 권고한다.