작성한 소프트웨어를 테스트 하는 것은 조기에 문제를 식별하고 최소의 비용으로 해결하기 위한 중요한 프로세스입니다.

 

하지만 PHP 로 개발할 경우 단위 테스트(unit test)나 기능 테스트(function test)는 어려워서 별도로 하지 못했고 웹 브라우저를 통해 웹 사이트의 메뉴별 기능을 직접 테스트 하는 경우가 많았습니다.

잘 실행되면 상관없지만 에러가 발생할 경우 어느 단계에서 발생한 문제인지 원인을 찾고 해결하는데 많은 시간을 쏟아야 했습니다.

 

예를 들어 쇼핑몰에서 사용자의 구매 목록을 표시해 주는 기능을 테스트할 경우 다음과 같은 프로세스에서 출력된 화면이 이상하다고 가정해 보겠습니다.

이 경우 화면 출력 기능이 이상일수도 있지만 그전 프로세스에서 문제가 발생한 게 화면 출력 단계로 전이되었을 수 있습니다. 단위 테스트가 작성되어 있지 않다면 매번 브라우저로 연결하여 위 단계를 수행하면서 테스트를 진행해야 합니다.

 

각 단계별로 분리하여 단위 테스트를 할수 있다면 각각의 개별 프로세스를 분리하여 테스트를 하면 원인을 좁힐 수 있고 이를 통해 조기에 조치가 가능해 질 것입니다.

 

PHP 세계에도 PHPUnit 이라는 훌륭한 단위 테스트 프레임워크가 존재하지만 이를 설치하고 테스트 케이스를 만들고 테스트 하는 것은 익숙한 개발자가 아니면 힘들었습니다.

 

라라벨은 PHPUnit 과 유기적으로 통합되어 있으며 단위 테스트를 할 수 있도록 편리한 기능과 템플릿을 제공하고 있으므로 손쉽게 단위 테스트를 만들고 실행할 수 있게 도와줍니다.

 

테스팅 프로세스가 잘 정착되면 코드가 변경되어 형상 관리에 커밋될 때마다 자동으로 단위 테스트를 실행하고 검증되었을 경우 다른 환경에 배포하는 등 개발과 변경 업무를 자동화할 수 있는 기반이 됩니다.

 

이제부터는 라라벨 프레임워크를 사용하기 위한 환경 구성에 대해서 알아 보겠습니다.