2016년 8월 2일 화요일

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

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


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

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



댓글 없음 :

댓글 쓰기