본문 바로가기

인쇄 산업/플렉소/포장 인쇄

자동화 테스팅은 어떻게, 또 왜 해야 할까요? (2)

 
Dwight Ivany

Software QA Tester, Vancouver, Canada 

 

(파트 1과 이어집니다)


쉽게 고쳐질 수 있는 것이긴 하지만 쉴라의 단점 중 하나는 읽는 능력입니다. Using Character recognition (OCR)은 사용자의 인터페이스를 조정해서 글씨를 읽을 수 있습니다. Tesseract 나 python Imagin Library (PIL) 등의 도구를 사용하는 것으로는 스크린을 읽을 수 있습니다. 이 기술은 사람들이 클릭하기, 보관하기, 저장하기 등 통합에 완벽한지 확인하는 테스트를 할 수 있게 해줍니다. 이런 테스트 없이는 UI에서는 가능하지 않은 기능을 가진 소프트웨어를 제작할 수 있습니다.


브루스가 패턴 인식에는 여전히 더 낫긴하지만, 쉴라에게 PIL의 이미지 대조 도구나 아무 Tiff-Diff 도구 등을 사용해서 스크린 속의 패턴을 찾는 법을 가르치는 것은 가능합니다. 쉴라는 수백만개의 작은 픽셀 하나하나를 찾아 보고 약간의 작은 색을 탐색하는 것에 능합니다. Kodak Proofing Software로 우리는 잘됐거나 잘 안됐을지 모르는 뜨거운 폴더 작업물의 수백 수 억개의 픽셀들과 비교해가며 정확하게 해냅니다.



위에서 말한 바대로 자동화된 테스팅의 가장 큰 장점 중 하나는 시스템을 복제할 수 있는 능력입니다. 가상 머신을 사용해서 몇 개의 예가 됐든 복제될 수 있고 이 점은 아주 유사한 조건으로 수백가지의 변형을 시도할 때 아주 적절하죠. 뿐만 아니라 많은 컴퓨터를 사용해서 테스트를 작동할 수 있게 해주는 가상 농장을 제공하는 회사들도 있습니다. 테스트가 시작되면, 하나의 컴퓨터가 하룻밤 내내 해야할 작업을 100대의 가상 농장을 작동해 몇 분 안에 해낼 수도 있습니다. 이 점이 바로 개발자들이 코드 변화 후에 즉각적인 피드백을 받을 수 있게 해주는 이유입니다. 또한 이 것이 상대적으로 밤 내내 하는 작업이나 느린 테스트 순환에 비해 상대적으로 코드를 잘 읽어낼 수 있게 합니다,



아마도 쉐익스피어의 전작업을 만들어내기 위해서는 원숭이 한 그룹 정도를 더 필요해야 할지도 모르겠네요. 어쩌면 위대한 개츠비를 랜덤 컴비네이션을 사용해서  쓰기 위해 그룹을 만들 수도 있습니다. 하지만 가상 머신은 지루할 틈 없이 1024 코멘데이션 테스트를 마칠 수 있습니다. 같은 원숭이 그룹이거나 원숭이보다 약간 더 떨어지는 인간이 이런 지루한 작업을 완료하기 직전에 망쳐버리죠. 

 


자동화된 테스팅을 설정하기 위해서는 프레임워크를 실행해야 합니다. 완벽한 선택은 Python입니다. Python은 열린 소스고 멀티 플랫폼이자 다양하게 서포트되고 테스팅하는 데 있어서 아주 엄청난 자료들이 있습니다. Python은 사용자 인터페이스를 가동하기 위해서 사용될 수도 있기 때문에 로봇이 딱히 해야 할 것이 없습니다. Autolt는 윈도우에서만 사용 가능하기는 하지만, Perl과 Autolt 역시 자동화 테스팅의 프레임워크로 사용될 수 있습니다. 특히 인터페이스를 테스트할 때는 그다지 중요하지만 어쨌든 두 가지 역시 코드 개발을 위한 APT를 만드는 개발자들을 많이 가지고 있습니다.

자동화 테스팅에 있어서 가장 중요한 도전은 하드웨어와 상호작용하는 것입니다. 만약 당신이 하드웨어 피드백을 즉각적으로 요구하는 시스템 테스팅하기를 바란다면 이건 문제점이 될 수 있습니다. 이런 이유로 차선책이 필요합니다. 예를 들어, Kodak Proofing Software에서는 프린트 컬러 쉬프트 오버타임 때문에 같은 측정 데이터를 매시간마다 제공해주는 분광 광도계 챠트를 읽는 것은 불가능합니다. 또한 가상 머신은 움직이는 종이에는 아무 소용이 없습니다. 그렇기 때문에 우리는 미리 준비된 데이터를 사용하고 XML을 사용하여 이것을 제공해주는 Python을 이용하기로 결정했습니다. 우리는 아직도 사람들이 부가적으로 진행되는 자동화 테스트에서 즉각적으로 실제 색상을 측정하게끔 합니다. 그래서 사람이 있어야만 하는 이유가 적어도 한가지는 있는 것입니다.