2016년 8월 2일 화요일

Shift left testing의 네가지 타입

전통적인 테스팅과 Shift-Left Testing의 차이

전통적인 소프트웨어 개발 라이프 사이클인 폭포수 모델은 요구사항, 아키텍처, 설계, 구현 후 테스팅을 수행하고, 전통적인 V모델(그림1) 측면에서 보면, 단위 테스팅, 통합 테스팅, 그리고 시스템 테스팅을 수행한다.

요즘에는 바로 시스템 테스팅을 시작한다. 단위 테스팅과 통합 테스팅을 하기 위해 많은 시간을 소비하지 않는다. 왜냐하면, 프로젝트의 거의 끝에서 시스템 테스팅을 수행하면, 어떤 문제를 찾아도 인도일 이전에 고칠 시간이 충분하지 못하다.



TDD(Test Driven Development)로 인한 솔루션 개발 효율화

소프트웨어가 제대로 만들어졌는지 확인하기 위해서는 테스트가 반드시 필요하기 때문에 아주 오래 전부터 효율적인 테스트를 위해 많은 노력이 이루어지고 있다. 테스트를 위해 SI(System Integration) 프로젝트에서는 다양한 테스트 프로세스가 만들어져 있고, 최근에는 TDD(Test Driven Development)와 테스트 자동화가 많은 주목을 받으면서 테스트의 중요성이 더 강조되고 있다. 이번 회에서는 전문 테스팅 연구실을 운영하면서 현장 업체에 전문 테스터를 지원하고 있는 국제대학교의 김성철 교수를 만나 자세한 사항을 들어본다.


Q: 본격적인 이야기 전에 소프트웨어 개발에서 테스트가 필요한 이유에 대해 간략히 말씀해 주시죠.

소프트웨어 테스트는 별다른 설명이 필요가 없을 정도로 개발자라면 누구나 알고 있을 겁니다. 하지만, 테스트가 소프트웨어 개발에 어떠한 영향을 미치는지는 크게 고민하지 않는 경우가 많습니다. 왜냐하면, 예전부터 테스트는 소프트웨어에 오류가 있는지 확인하는 것이라고 생각하는 사람이 많기 때문입니다. 틀린 얘기는 아닙니다만, 이 것은 테스트의 아주 일부에 해당하는 말입니다. 소프트웨어에 오류가 있는지 확인하는 것을 단위 테스트라고 말하지요. 초창기의 소프트웨어는 단위 테스트만으로도 충분했습니다. 소프트웨어 규모가 커지면서 전체적인 소프트웨어의 동작에 이상이 없는지를 확인하는 통합 테스트가 생겼고, SI 프로젝트가 나타나면서 사용자 요구사항을 충족하는지 인수 테스트가 생겼습니다. 누가, 언제, 어떤 테스트를 하냐에 따라 테스트의 목적이 달라지는 것이지요. 그림1이 목적에 따른 테스트 종류를 나타낸 것입니다.



빅데이터 사례 연구 - 아키텍처

데이터의 수가 이제 감당할 수 없을 만큼으로 늘어나고 있다. 불과 얼마 전만 하더라도 관계형 데이터베이스(Relation Database)를 통해 정형화된 데이터만 관리했지만 이제는 비정형 데이터가 주를 이루고 있다. 이미 분석이 완료되어 필요한 분류로 저장하는 정형화 데이터와는 다르게 비정형 데이터는 수집될 때 내포하고 있는 인사이트를 찾아내는 것이 관건이다. 이번 회에서는 빅데이터를 효율적으로 분석할 수 있는 아키텍처에 대해 사례를 살펴보며 알아보기로 한다. 성공적인 빅데이터 아키텍처 구성을 살펴보면서 빅데이터의 이해도를 높이길 기대한다.

사례 연구 전 확인 사항

빅데이터 아키텍처의 역할 구성

데이터를 수집해서 바로 활용하기는 어렵다. 수집된 데이터에서 불필요한 데이터를 걸러내면서 기준에 맞춰 정제 작업을 하게 된다. 그리고, 분석을 통해 필요한 정보를 얻게 된다(그림1).