티스토리 뷰


리그레션 다시 생각해보기 파트 5: 테스팅 미션을 결정하라

 

프로젝트의 리그레션 리스크를 완화하기 위해서는 가장 합리적인 방법(Sensible approach)”을 선택하고 수행해야 한다. 여러 가지 다양한 예방책과 함께 유닛 레벨에서 자동화 테스팅을 수행하고 있는 프로젝트가 있다면, 이 프로젝트에서 테스터들이 수행해야 하는 일은 명백하다.

 

바로 버그를 찾아내는 것이다.

 

하지만 대부분의 프로젝트에서는 이런 상황이 꿈 같은 일이다. 모든 프로젝트에 이 방법이 적합한 것도 아니다. 또한 모든 변경사항에 대해 리뷰가 필요한 것도 아니다. 더구나 발생하는 모든 변경사항에 대해 코드를 리팩토링 하는 것은 비합리적이기까지 하다. 정적 분석은 때로는 성가신 일이 되기도 하고 튜닝에 너무 많은 시간이 걸리기도 한다. 이러한 모든 투자들이 효과를 거두어 그들의 투자가 정당했다는 것을 증명할 정도로 프로젝트가 오랫동안 지속되는 것도 아니다. 어떤 프로젝트는 형상관리 부분에 문제가 생겨 이를 해결하기 위해 상당한 시간을 투자해야 할 때도 있다.

 

합리적이라는 말을 사용하기 위해서는 이러한 모든 상황들, 즉 테스터들이 굳이 신경 쓰지 않아도 되는 부분까지 모두 포함해야 한다. 결국, 프로젝트에 가장 적합한 완화 전략을 결정하는 것은 테스터가 아니라는 말이다. 그것은 프로젝트 매니저가 해야 할 일이다.

 

테스터들에게 이것이 뜻하는 바는?

그들에게는 바로 미션이 주어진다는 것이다.

 

프로젝트의 이해관계자들이 테스팅 미션에 대해 공감하도록 만드는 것은 테스터 업무에 상당한 도움이 된다. 이는 서로가 다른 일을 하는 것으로 기대하고 있다가 반갑지 않은 놀라운 일에 마주치지 않도록 도와준다(“A를 했다구요? 나는 당신이 B를 하고 있다고 생각했는데!”). 또한 이는 테스팅 업무의 방향을 프로젝트가 진행되는 방향과 일치하도록 도와준다.

 

리그레션 테스팅의 미션은 프로젝트 라이프 사이클 안에서 구현된 변경의 범위(Scope), 규모(Scale) 그리고 속성에 따라 결정된다. 또한 프로젝트의 제약사항들과 다른 완화 전략에 의해서도 영향을 받는다.

예를 들어 다음과 같다.   

 

l  프로젝트 A에는 광범위한 리스크 완화 전략이 구현되어 있으며, 여기에는 형상관리와 유닛 레벨의 변경탐지 
   (Change detection)
기능도 포함되어 있다. 프로젝트 매니저와 테스터는 시스템 레벨에서 1차적으로 확인된
   항목들에 대해 버그를 찾아내는 것이 테스팅 미션이라는 것에 합의했다(유닛 레벨에서 광범위한 변경 탐지
   기능이 제공되기 때문이다).

 
l  프로젝트 B는 형상 관리를 효과적으로 수행하고 있지만, 자동화된 유닛 레벨 리그레션 검사를 수행하지 않고
   있다. 프로젝트 매니저와 테스터들은 변경이 발생하고 있는 부분에 대한 확인(confirmation) 테스팅과 버그
   발견이 목적인 테스팅을 고루 수행하는 것이 테스팅 미션이라는 것에 합의했다.

l  프로젝트 C에는 리그레션 완화 전략이 거의 적용되지 않았다. 형상 관리는 신뢰성이 떨어지는 것으로 판명되
   었고 유닛 레벨의 리그레션 검증도 자동화되지 않았다. 프로젝트 매니저와 테스터들은 프로젝트의 어느 단계
   에 어떤 변경 사항이 적용되는지를 고려해 소프트웨어에 대한 광범위한 확인 테스트에 주력하면서 가끔씩 버
   그 발견을 위한 테스트를 수행하는 것이 테스팅 미션이라는 것에 합의했다.

 

리그레션 테스팅의 미션에 대해 논의하는 것은 이해관계자들에게 블랙박스 리그레션 테스팅의 한계를 주지시킬 수 있는 아주 확실한 기회라고 할 수 있다. 프로젝트 매니저가 블랙박스 리그레션 테스팅이 변경사항을 검출하는 데 가장 효과적인 수단은 아니라는 사실과, 버그를 찾는 것이 목적일 때는 이 방법이 심각한 한계를 가지고 있다는 것을 알게 될 수도 있다. 하지만 그렇다고 해도 대부분의 경우 결국은 리스크 완화 전략으로 블랙박스 리그레션 테스팅을 선택하게 될 것이다. 이런 상황에서 테스터들은 그들이 가장 합리적이라고 판단한 일만 수행한다고 하더라도, 담배를 팔면서 건강에 대한 경고 문구도 동시에 제공하는 것과 마찬가지의 상황이라는 것을 인식하고 있어야 한다.[1]  

 

리그레션 문제는 단지 하나의 리그레션 문제에 그치지 않는다. 이는 항상 다양한 다른 리스크 완화 전략과 함께 생각되어야 하며 어떻게 가장 효율적으로 리스크를 완화시킬 수 있을지에 대한 문제인 것이다. 이해관계자들에게 블랙박스 리그레션 테스팅이 가지는 한계점과 상충관계들을 가르쳐 줌으로써, 테스터들은 그들이 좀 더 나은 리스크 완화 전략을 만들 수 있도록 도와줄 수 있다.

 

결국은 프로젝트와 관련된 정황적인 요소(contextual factors)들이 가장 적합한 전략을 결정하는 중요한 요소로 작용하며, 리그레션 테스팅 미션은 이에 따라 정의될 필요가 있는 것이다.

 



[1] 역자 주: 개인적으로는 아무리 합리적인 판단을 해서 리그레션 테스팅을 수행한다고 하더라도 리그레션 자체가 가지는 비합리적인 속성(ex. 대규모의 반복적인 테스팅)을 극복할 수는 없다라는 의미로 해석했다. 결국 원 저자 역시 리그레션의 비합리적인 측면을 분석하기는 했지만 명쾌한 해답을 제시하고 있는 것은 아닌 것 같다. 리그레션이 본질적으로 가지고있는 이러한 비합리적인 측면을 항상 고려하면서 각각의 프로젝트에 최적화된 테스트를 어떻게 수행해야 할지 고민해야 한다.