데이터 테스트 (Data Quality Test)
데이터란 컴퓨터가 처리할 수 있는 변수, 문자, 숫자, 영상 등의 형태로 된 자료로 연구나 실험, 조사로 얻은 사실을 나타내는 수치값으로 의미를 갖지 않은 원소의 상태를 의미합니다. 데이터 그 자체는 실용적인 가치가 없습니다. 소프트웨어에서 규정하는 형태와 규칙으로 데이터를 구조화하여 수집하고, 수집된 데이터는 가공 및 분석과정을 거치며, 분석된 결과를 이용해 조사 대상의 목적과 주제에 대한 이론을 세우는 기초로 사용할 수 있고 유용한 정보를 얻을 수 있습니다.
성격유형검사(MBTI)를 예시로 살펴보겠습니다. 검사 질문지의 각 답변은 데이터의 자료가 됩니다. 수십개의 자료는 그 자체가 정보가 될 수 없습니다. 의미있는 정보를 얻기위해 해당 자료를 처리하고 분석하여 ‘INTP는 호기심이 많고, ESFP는 분위기 메이커이다' 와 같은 정보를 도출해낼 수 있습니다.
수집된 데이터가 얼마나 실용적일지, 얼마나 가치가 있을지는 데이터 자체의 질과 자료의 분석방법 그리고 데이터 분석 전문가의 실력에 따라 결과가 달라질 수 있습니다.
IT업계에서 데이터를 수집하고 분석하는 목적은 사용자 또는 집단의 특성과 유형, 행동을 분석하여 마케팅, 사업, 기술 등에서 유용한 인사이트를 얻기위한 용도로 사용하기 위한 목적과 분석된 자료를 통한 행동의 인과관계를 확인함으로써 발생된 현상의 원인을 규명하기 위한 목적 그리고 분석 정보를 바탕으로 앞으로 발생될 수 있는 미래를 예측하여 합리적인 의사결정을 하기 위함입니다.
정형 데이터Structured data, 반정형 데이터Semi-Structured data, 비정형 데이터Unstructured data로 분류된다.
정형 데이터 : 정해진 구조에 따라 저장된 데이터로, 데이터베이스의 열과 행으로 표시되는 테이블의 규칙에 맞게 데이터 요소가 저장된다. 테이블로 생성된 데이터를 저장하는 장소와 스키마가 분리되어있다.
반정형 데이터 : 절반의 정형구조를 가지고 있는 데이터(일부 구조화된 데이터+데이터안에 구조에 대한 정보(스키마)가 함께 존재). 정형과 비정형 데이터의 중간에 위치. 정형 데이터와 같이 테이블 형태로 구조화 되어 있지 않으나 스키마 및 메타데이터 특성을 함께 가지고 있다. 데이터 정보를 파악하는 파싱 과정이 필요하고 HTML, XML, JSON 파일 형태로 저장된다.
비정형 데이터 : 정의된 구조나 규칙, 데이터 모델 없이 저장된 데이터로 값의 의미를 파악하기 힘든 데이터를 말한다. 비디오, 이미지, 오디오, 텍스트가 많은 문장 또는 글, Word 등 문서와 같은 데이터가 포함된다.
IT업계에서의 데이터는 ‘4차 산업 혁명시대의 석유'라고 불릴만큼 그 가치가 높은 미래 자원으로 인정받고 있습니다. 석유는 정제를 거쳐 휘발유, 경유 등 다양한 용도로 분류될 수 있고 유용성으로 인해 여러 산업에서 기초 원료로 사용됩니다. 데이터도 이와 같습니다. IT기술의 발전으로 대용량의 데이터를 축적 및 가공/분석처리하게 되었고 빅데이터, 인공지능(AI), 사물인터넷(IoT), BI(Business Intelligence) 등에서 다양하게 활용되고 있습니다. 데이터의 사용으로 새로운 기술 및 제품 개발, 다양한 분야로의 발전, 해결이 필요한 문제에 대한 솔루션 제공, 효율적인 업무 전략 수립 등이 가능해지게 되었습니다.
IT업계에서 데이터를 활용하여 창출해내고 있는 가치를 몇가지 살펴보면
빅데이터를 활용하여 ①고객의 나이와 성별, 관심을 분석하여 연관 상품을 추천함으로 고객의 제품 이용시간을 단축하고 쇼핑 경험을 개선 ②고객만족도를 분석하여 신제품의 개발 방향을 정하거나 출시 시기를 예측 ③내비게이션 어플리케이션 이용자들의 이동 경로와 속도 데이터를 분석하여 막히는 길과 소요시간 예측 ④모바일 게임의 다운로드, 구매건 수 요인, 유저의 게임 행동 등의 데이터를 분석하여 유저의 취향과 성향에 맞춤화된 콘텐츠 제공 / 매출을 견인할 수 있는 게임 상품 개발 / 유저의 이탈이 발생되는 원인을 분석하여 솔루션을 제공하고 있으며,
AI를 활용하여 ①사용자의 패턴과 실력을 학습하여 게임 진행과 결말을 사용자 맞춤형으로 환경 제공 ②사용자를 대신하여 AI가 게임 내 캐릭터를 움직이고 안내 기능을 수행 ③얼굴 인식을 통한 휴대전화 잠금해제, 로그인 또는 송금시 2차 인증 확인과 같은 보안 프로그램에 사용 ④AI 이미지 검색으로 결과물을 빠르게 찾을 수 있는 기능을 제공하며 광범위한 작업을 수행할 수 있게되었습니다.
QA의 검증 범위에 데이터가 포함된 역사는 그리 길지 않습니다. 빅데이터가 본격적으로 활용되던 시기 이전의 데이터 테스트는 검증 대상에 대한 변수, 문자, 숫자의 형태로된 자료들이 규칙에 따라 DB에 잘 저장되는지, 수집된 데이터상 잘못된 정보가 포함되지 않았는지 확인하는 수준이었고 데이터 자체의 정합성이나 가공 후 분석된 정보의 오류는 데이터 전문 분석가에 의해 품질이 검증되었습니다.
‘4차 산업 혁명 시대'가 열리고 빅데이터와 AI가 본격적으로 업계에 등장하고 활용됨으로써 데이터의 품질에 대한 검증의 중요성과 필요성이 커짐으로 인해 테스팅업계에서도 데이터 품질 테스팅을 도입하고 전문성을 갖추기 위해 다양한 노력과 연구가 시도되고 있습니다.
데이터 품질이란, 데이터가 의도한 목적에 따라 정확하게 기록 및 사용되고 최신의 데이터로 유지되고 향상되며 다양한 비즈니스 용도로 상호 연계가 가능하다면 좋은 데이터 품질을 갖추고 있다는 것을 의미합니다.
데이터의 품질을 관리하지 못해 품질저하가 발생되면 이는 곧 정보의 품질 저하로 연결되고 이로인한 매출의 감소와 비즈니스 전략, 의사 결정에 오류가 발생될 수 있습니다. 이런 상황이 발생되지 않도록 데이터의 품질을 확보하고 유지하려면 품질 목표 및 기준 설정, 검증 방법 도입, 개선 등 체계적인 품질 관리 활동이 필요합니다.
데이터 품질 관리는 데이터 계획 및 구축 단계에서부터 검증 및 관리 활동이 시작되어야 합니다. 주요 품질 이슈는 계획 단계에서부터 존재하며 운영 및 활용 단계에서 이슈를 수정하고 개선하는 작업이 뒤늦게 이뤄질수록 불필요한 추가 비용, 시간, 인적자원이 과도하게 발생하게 됩니다. 품질 관리의 효율성과 품질확보를 위해 생명주기 각 단계에 걸쳐 적용되는 검증 활동을 체계화하고 적용해야 합니다.
데이터의 품질을 결정하는 3가지 요인은
1) 데이터의 완전성 : 데이터를 저장하는 DB의 구조가 얼마나 잘 설계되었는지
2) 데이터의 정확성 : 설계 및 규칙에 맞게 데이터값이 잘 저장되는지
3) 데이터의 일관성 : 데이터의 표준 준수, 비즈니스 활용성, 서비스/콘텐츠 내 사용성
에 의해 결정됩니다.
데이터의 품질 오류란 데이터베이스 설계구조의 오류, 데이터값의 부정확함/중복 등의 오류, 데이터 표준 준수의 미흡성, 데이터 활용으로 인해 발생되는 서비스 또는 콘텐츠상의 기능/UI 오류(접속지연, 부정확한 결과 도출 등), 시스템 또는 데이터간 연계의 어려움 등이 해당됩니다.
◻︎ 테스트 목표
데이터의 품질을 확보하여 사용자에게 정확한 정보와 유용한 가치를 제공하고 품질 검증 활동을 수행하여 데이터 품질 수준 향상을 목표로 한다.
데이터가 정의된 규칙에 따라 표준화되고 저장되며 활용상 오류가 없는지 검증한다.
데이터 검증 결과를 분석하여 개선사항을 도출한다.
◻︎ 테스트 대상 선정
서비스나 제품에서 제공하는 전체 데이터를 테스트 대상으로 선정하는 것은 투입 비용/업무 효율/기대 효과 어느 측면에서도 바람직하지 못합니다. 품질 관리를 위한 중점 대상을 선정하고 해당 데이터를 대상으로 선택적이고 집중적인 품질 검증 활동으로 시스템의 전반적인 데이터 품질 수준을 향상하고 가시적인 성과를 도출해내기위한 전략이 필요합니다.
일반적으로 기업 내 데이터 테스트를 위한 대상은 사업/마케팅/BI/DBA 등 데이터를 다루고 활용하는 조직에 의해 1차적으로 선정되고 요청조직과 개발조직간에 데이터 설계가 진행됩니다. 이 후 품질담당 조직으로 선정된 대상과 데이터 테이블 문서가 전달되고 품질 검증 활동이 수행됩니다.
기업 내 데이터 관리 프로세스가 정착된 조직이라면 품질 담당 조직에서 테스트 대상을 선정할 필요는 없습니다. 다만 기업 내 데이터가 한번도 품질 검증을 진행한 이력이 없거나 신제품의 개발로 해당 제품의 데이터 전체에 대한 검증 작업이 필요한 경우라면 아래 선정기준을 참고해보시기 바랍니다.
1) 제품 또는 서비스 핵심이 되는 데이터베이스를 식별하여 대상으로 선정한다.
2) 시스템 간에 연계되는 데이터, 활용 관점에서 중요한 역할을 하는 데이터베이스를 대상으로 선정한다.
3) 품질 이슈가 발생될 가능성이 있는 데이터를 예측하여 대상으로 선별한다.
◻︎ 테스트 범위
데이터 테이블 정의서, 규칙 정의서, 표준 용어 정의서, 코드 표준서 등 데이터 산출물 리뷰
- 문서상 오류 또는 정의된 규칙이 사용되지 않은 영역, 식별자가 정의되지 않은 영역, 필수 속성값 누락 등 검토
설계 구조상 오류, 연계 시스템과 영향도 확인
설계상 정보와 실제 구현된 데이터 간 정보를 비교하여 유효하지않거나 상이한 값 확인
- 제품내에서 사용자 테스트를 수행하여 데이터를 수집하고, 수집된 데이터와 설계상 정보를 비교하여
데이터 오류를 검출
운영중인 서비스의 데이터 오류를 수집 및 식별하여 수정 요청 및 개선활동 진행
◻︎ 테스트 수행 절차
[1] 계획 단계
데이터 산출물 리뷰를 통한 문서상 문제점 및 오류 수정/개선 요청 또는 추가 적용 규칙 도출
[2] 분석/설계 단계
① 테스트케이스 또는 시나리오 작성
테스트 대상 데이터, 연계 데이터를 분석하여 선정된 테스트 범위에 맞게
(1) 데이터 테이블 또는 대상 데이터와 규칙정의서를 활용하여 데이터 검증용 TC 설계
(2) 웹 또는 앱 상 기능/비기능 테스트 케이스 또는 시나리오 설계
[데이터 검증용 TC 예시]
데이터 검증용 TC는 설계된 데이터 테이블 스키마 문서를 바탕으로 실제 데이터 정보와 비교하여 결과를 입력하는 영역과 수집된 데이터 정보를 추출하여 설계 데이터와 비교 분석 할 수 있는 입력영역을 추가하여 사용할 수 있도록 설계합니다.
② 테스트 도구 준비
(1) 데이터 변경 정보 확인을 위한 diff(파일 비교 유틸리티) 준비
(2) 데이터 관리 시스템Database Management Systems 또는 SQL 사용 준비
- Kibana, ETL, Google Data Studio등과 같은 데이터 시각화 소프트웨어 준비 또는 기업 내 데이터
정보 처리를 위한 별개 프로그램 활용
- 데이터 관리 시스템 사용이 불가할 경우 SQL 로 데이터베이스에 저장된 정보 추출, 변환 등 처리를
위한 언어 사용 준비
(3) 사용자 테스트를 위한 웹/앱 용 테스트 기기 및 환경 준비
[3] 실행 단계
① 데이터 프로파일링 및 정합성 검증 (SQL 또는 데이터 매니지먼트 시스템 활용)
소프트웨어에서 직접 테스트 대상 범위의 기능/비기능 테스트를 수행하여 데이터 관리 시스템으로 실제
DB 정보(테이블명, 컬럼명, 속성, 자료형 등)를 수집 및 적재하고 추출된 정보와 설계상 메타데이터를
비교하여 컬럼내 필수값, 누락값 (null,공백,숫자0), 문자열 등 규칙, 중복값 등이 유효한 범위내에 있는지
측정하고 불일치 하는 데이터를 도출하여 수정 요청한다.
② 연계 데이터 분석
추출/적재된 데이터내에 존재하지 않는 데이터가 있는 경우 오류 데이터로 측정하여 수정 요청한다.
③ 결함보고 및 처리결과 관리
(1) 오류로 추정되는 데이터는 실제 오류인지 예외 데이터인지 개발/데이터 설계 담당자와 확인 후 수정요
청 진행
(2) 오류로 판정되진 않았으나 개선이 필요한 데이터에 대한 처리요청
[4] 완료 단계
테스트 수행 결과 및 산출물 점검 후 품질 검증 결과를 분석하여 최종 품질 상태 공유 및 품질 개선 방안 권고