2016년 9월 12일 월요일

품질이나 테스팅에 대한 전문적인 조직 출현 배경

Q. 품질이나 테스팅에 대한 전문적인 조직이 왜 생겨났는지 배경을 말씀해주셨네요. 그렇다면, 해당 인력을 어떻게 투입해야 하는지 말씀해주시죠.

해당 인력을 어느 정도 규모로 투입해야 한다는 것을 정해 놓는 것은 매우 어려운 부분입니다. 개발 프로젝트의 성격과 규모, 형태를 감안해 정해야 하기 때문이죠. 투입되는 인력의 경험이나 지식도 매우 중요한 부분 중에 하나 입니다. 개발 프로젝트에 걸려있는 전체적인 것을 점검해보면서 결정해야 하는 것이지요.


Q. 개발 프로젝트에 따라 다르게 투입하더라도 체크할 수 있는 부분들이 있을 것 같은데요?

맞습니다. 무작정 투입하면 전문 조직이 유지되기 어렵겠지요. 그렇다고 투입 규모를 일정하게 넣을 수도 없고요. 대부분 오랜 경험을 가진 전문가에 의존할 수 밖에 없는데 이것도 전적으로 따르기는 회사의 부담도 생각을 해야겠지요. 그런데, 경험 많은 전문가에 의존하는 방법이 주먹구구식 방법은 아닙니다. 소프트웨어공학에서도 제시하는 공수산정 방식의 중요한 방법 중에 하나 입니다.
방금 말씀드린 것처럼 공수산정을 위해서는 개발 프로젝트의 특성을 잘 파악하는 것도 중요하지만 회사에서 그동안 어떻게 투입했는지 경험치를 축적하는 것이 매우 중요한 포인트입니다. 먼저, 개발 프로젝트의 특성을 파악하는 것부터 하면, 표2와 같이 크게 구분할 수 있는 것부터 정리를 하고, 세부적인 항목으로 구분하면서 정리해 나가도록 해야 합니다. 이 때, 우리 회사와 비슷한 규모나 개발을 하는 다른 회사와 크게 차이가 나지 않도록 되도록 많은 정보를 수집하는 것이 좋습니다.


<표2> SI와 솔루션 개발 프로젝트의 구분



테스트 프로세스에 맞춘 테스트 조직

Q. 다들 테스트 전문화에 대한 필요성은 공감하지만 비용 측면에서 어려움이 있기는 합니다.

비용 적인 문제도 있지만 어느 정도의 기간을 투입하는가 하는 것도 고민거리입니다. 소프트웨어 개발에 필요한 공수 산정은 많은 경험과 연구로 어느 정도 일반화되어 있지만 테스트의 경우는 아직 초기 단계입니다. 대체로 테스팅 프로세스에 맞춰 투입 규모를 산정하는 경우가 많은 것이 사실입니다(그림2).


<그림2> 테스트 프로세스에 맞춘 테스트 조직
출처: 오픈소스컨설팅


그림2는 테스트를 위한 프로세스를 나타내고 있습니다. 프로세스를 바탕으로 테스팅 전문 조직을 구성하여 개발 프로젝트를 지원하게 되는데 테스팅 전문가를 어느 정도 투입할 것인지가 고민거리입니다. 특히, 앞에서 말했던 것처럼 최근에는 테스팅과 함께 품질 전체를 아우르고 있기 때문에 품질에 필요한 의사 결정을 해야 하는 것은 경험이 많은 고직급자, 단순 소프트웨어 오류 테스트는 경험이 적은 저직급자가 하는 경우가 많았습니다. 품질 비용의 경우, 개발 프로젝트에 직접적인 원가가 부가 되는 것은 아니기 때문에 비용에 대한 부담이 있는 것 같습니다. 하지만, 발생된 문제를 해결하기 위한 품질 비용이 경우, 시간이 흐를수록 기하급수적으로 늘어나기 때문에 예방 차원에서 반드시 준비를 해야 합니다(그림3).



소프트웨어 테스트와 품질 관점

Q: 본격적인 이야기 전에 소프트웨어 테스트에 대한 간략한 설명을 부탁 드립니다.
소프트웨어 테스트는 전문가가 아니더라도 누구나 알고 있는 소프트웨어 개발의 한 분야입니다. 보통의 소프트웨어 테스트는 그림1과 같이 만들어 놓은 소프트웨어가 오류가 없는지는 확인하는 것입니다. 하지만, 최근의 소프트웨어 테스트는 소프트웨어가 정상적으로 동작하는 것은 당연한 것이고 해당 소프트웨어가 요구사항을 모두 만족 시키는지 확인하는 것입니다(그림1).


<그림1> 소프트웨어 품질 관점의 변화
출처: IBM - 요구사항에 기반한 테스팅


그림1과 같은 이유로, 수작업으로 주로 이루어지던 테스트가 전문 도구나 기술이 도입되기 시작했고, 이를 운용하는 전문 팀이 구성되기 시작했습니다. 아직 범용적인 테스트 표준화 정도까지는 아니지만 대개의 회사에서는 자체적인 테스트 프로세스나 방법론 정도는 가지게 되었습니다.