PHPUnit
1. 개요
PHPUnit은 개발자가 코드의 오류를 조기에 발견하고 코드 회귀를 방지하도록 돕는 PHP용 단위 테스트 프레임워크이다. XUnit 스타일의 어설션을 사용하여 구성 요소의 동작을 검증하며, JUnit XML 및 TestDox 형식을 포함한 다양한 형식으로 테스트 결과를 출력한다. 2017년에는 PHPUnit을 통해 원격 코드 실행이 가능한 취약점이 발견되기도 했다.
이미지 준비중입니다.
| 종류 | 단위 테스트 프레임워크 |
|---|---|
| 개발자 | Sebastian Bergmann |
| 안정화 버전 | 10 |
| 최신 릴리스 버전 | 10 |
| 프로그래밍 언어 | PHP |
| 운영체제 | 크로스 플랫폼 |
| 라이선스 | BSD 3 Clause |
| 웹사이트 | PHPUnit 공식 웹사이트 |
-
유닛 테스트 프레임워크 -
JUnit
JUnit은 자바 환경에서 단위 테스트를 위한 프레임워크로, 반복적인 테스트 실행을 통해 버그 수정에 용이하며, 어노테이션 기반의 간편한 테스트 코드 작성과 IDE 통합을 지원하여 개발 효율성을 높인다. -
유닛 테스트 프레임워크 -
QUnit
QUnit은 존 레식에 의해 개발된 자바스크립트 유닛 테스트 프레임워크로, jQuery의 유닛 테스트 코드로 시작하여 독립적인 프로젝트가 되었으며, 모듈 및 테스트 정의와 표명 메서드를 통해 테스트를 수행한다. -
익스트림 프로그래밍 -
워드 커닝햄
워드 커닝햄은 미국의 컴퓨터 프로그래머로, 최초의 위키 사이트 WikiWikiWeb을 만들고 기술 부채 개념을 창안했으며, 소프트웨어 개발 방법론 발전에 기여했다. -
익스트림 프로그래밍 -
JUnit
JUnit은 자바 환경에서 단위 테스트를 위한 프레임워크로, 반복적인 테스트 실행을 통해 버그 수정에 용이하며, 어노테이션 기반의 간편한 테스트 코드 작성과 IDE 통합을 지원하여 개발 효율성을 높인다. -
공식 웹사이트에 알 수 없는 변수를 사용한 문서 -
브루클린 미술관
브루클린 미술관은 1823년 브루클린 견습생 도서관으로 시작하여 현재 약 50만 점의 소장품을 보유한 뉴욕 브루클린 소재의 미술관으로, 다양한 분야의 예술 작품을 전시하며 특히 아프리카 미술과 여성주의 미술에 대한 기여가 크다. -
공식 웹사이트에 알 수 없는 변수를 사용한 문서 -
광주지방기상청
광주지방기상청은 광주광역시와 전라남도 지역의 기상 예보, 특보, 관측, 기후 정보 제공 등의 업무를 수행하는 기상청 소속 기관으로, 1949년 광주측후소로 설치되어 1992년 광주지방기상청으로 개편되었으며, 기획운영과, 예보과, 관측과, 기후서비스과와 전주기상지청, 목포기상대를 두고 있다.
2. 목적
PHPUnit은 개발자가 새로 커밋한 코드의 실수를 조속히 찾아내고, 코드 기반의 다른 부분에 코드 회귀가 발생하지 않았음을 표명할 수 있도록 돕는 것을 목적으로 한다.
2.1. 어설션(Assertion)
PHPUnit은 개발자가 새로 커밋한 코드에서 발생할 수 있는 오류를 신속하게 찾아내고, 코드의 다른 부분에 코드 회귀가 발생하지 않았음을 확인할 수 있어야 한다는 개념에 기반을 둔다. 다른 단위 테스트 프레임워크들과 마찬가지로, PHPUnit은 어설션을 사용하여 테스트 대상 컴포넌트, 즉 [[유닛 (프로그래밍)|유닛]]의 동작이 예상대로 작동하는지 확인한다.
3. 장점
PHPUnit은 개발자들이 새로 커밋된 코드의 실수를 조속히 찾아내고 코드 기반의 다른 부분에 코드 회귀가 발생하지 않았음을 확인할 수 있도록 돕는다는 개념에 기반을 둔다. 유닛 테스트의 목표는 프로그램의 각 부분을 격리하여 개별 부분이 올바른지 확인하는 것이다. 유닛 테스트는 코드 조각이 충족해야 하는 엄격하고 명시적인 계약처럼 기능하여, 개발 주기 초기에 문제를 발견하는 데 도움을 준다.
다른 유닛 테스트 프레임워크들처럼 PHPUnit은 XUnit의 표명(assertion) 방식을 사용하여 특정 구성 요소가 예측대로 동작하는지 확인할 수 있다. 또한, 테스트 결과를 JUnit XML이나 TestDox 등 다양한 형식으로 출력할 수 있는 유연성을 제공한다.
4. 취약점
2017년 말, PHPUnit을 통해 공격자가 원격 코드 실행을 할 수 있는 취약점이 발견되었다. 이 취약점을 이용하면 공격자는 PHP 코드를 PHPUnit의 특정 파일로 보내 웹 서버에서 해당 코드를 실행시킬 수 있었다.