맨위로가기

PHPUnit

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

PHPUnit은 개발자가 코드의 오류를 조기에 발견하고 코드 회귀를 방지하도록 돕는 PHP용 단위 테스트 프레임워크이다. XUnit 스타일의 어설션을 사용하여 구성 요소의 동작을 검증하며, JUnit XML 및 TestDox 형식을 포함한 다양한 형식으로 테스트 결과를 출력한다. 2017년에는 PHPUnit을 통해 원격 코드 실행이 가능한 취약점이 발견되기도 했다.

더 읽어볼만한 페이지

  • 유닛 테스트 프레임워크 - JUnit
    JUnit은 자바 환경에서 단위 테스트를 위한 프레임워크로, 반복적인 테스트 실행을 통해 버그 수정에 용이하며, 어노테이션 기반의 간편한 테스트 코드 작성과 IDE 통합을 지원하여 개발 효율성을 높인다.
  • 유닛 테스트 프레임워크 - QUnit
    QUnit은 존 레식에 의해 개발된 자바스크립트 유닛 테스트 프레임워크로, jQuery의 유닛 테스트 코드로 시작하여 독립적인 프로젝트가 되었으며, 모듈 및 테스트 정의와 표명 메서드를 통해 테스트를 수행한다.
  • 익스트림 프로그래밍 - 워드 커닝햄
    워드 커닝햄은 미국의 컴퓨터 프로그래머로, 최초의 위키 사이트 WikiWikiWeb을 만들고 기술 부채 개념을 창안했으며, 소프트웨어 개발 방법론 발전에 기여했다.
  • 익스트림 프로그래밍 - JUnit
    JUnit은 자바 환경에서 단위 테스트를 위한 프레임워크로, 반복적인 테스트 실행을 통해 버그 수정에 용이하며, 어노테이션 기반의 간편한 테스트 코드 작성과 IDE 통합을 지원하여 개발 효율성을 높인다.
  • BSD 라이선스 소프트웨어 - V8 (자바스크립트 엔진)
    V8은 구글이 개발한 오픈 소스 자바스크립트 엔진으로, 자바스크립트 코드 실행 속도 향상을 위해 여러 컴파일러를 거쳐 크롬, 노드.js 등에서 활용된다.
  • BSD 라이선스 소프트웨어 - VP9
    VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다.
PHPUnit - [IT 관련 정보]에 관한 문서
기본 정보
PHPUnit 로고
PHPUnit 로고
종류단위 테스트 프레임워크
개발자Sebastian Bergmann
안정화 버전10
최신 릴리스 버전10
프로그래밍 언어PHP
운영체제크로스 플랫폼
라이선스BSD 3 Clause
웹사이트PHPUnit 공식 웹사이트

2. 목적

PHPUnit은 개발자가 새로 커밋한 코드의 실수를 조속히 찾아내고, 코드 기반의 다른 부분에 코드 회귀가 발생하지 않았음을 표명할 수 있도록 돕는 것을 목적으로 한다.[10][3]

2. 1. 어설션(Assertion)

PHPUnit은 개발자가 새로 커밋한 코드에서 발생할 수 있는 오류를 신속하게 찾아내고, 코드의 다른 부분에 코드 회귀가 발생하지 않았음을 확인할 수 있어야 한다는 개념에 기반을 둔다. 다른 단위 테스트 프레임워크들과 마찬가지로, PHPUnit은 어설션을 사용하여 테스트 대상 컴포넌트, 즉 유닛의 동작이 예상대로 작동하는지 확인한다.[10][3]

3. 장점

PHPUnit은 개발자들이 새로 커밋된 코드의 실수를 조속히 찾아내고 코드 기반의 다른 부분에 코드 회귀가 발생하지 않았음을 확인할 수 있도록 돕는다는 개념에 기반을 둔다. 유닛 테스트의 목표는 프로그램의 각 부분을 격리하여 개별 부분이 올바른지 확인하는 것이다. 유닛 테스트는 코드 조각이 충족해야 하는 엄격하고 명시적인 계약처럼 기능하여, 개발 주기 초기에 문제를 발견하는 데 도움을 준다.

다른 유닛 테스트 프레임워크들처럼 PHPUnit은 XUnit표명(assertion) 방식을 사용하여 특정 구성 요소가 예측대로 동작하는지 확인할 수 있다.[10] 또한, 테스트 결과를 JUnit XML이나 TestDox 등 다양한 형식으로 출력할 수 있는 유연성을 제공한다.

4. 취약점

2017년 말, PHPUnit을 통해 공격자가 원격 코드 실행을 할 수 있는 취약점이 발견되었다. 이 취약점을 이용하면 공격자는 PHP 코드를 PHPUnit의 특정 파일로 보내 웹 서버에서 해당 코드를 실행시킬 수 있었다.[4]

참조

[1] 웹사이트 PHP: Revision 63330 http://svn.php.net/v[...]
[2] 웹사이트 Releases · sebastianbergmann/phpunit https://github.com/s[...]
[3] 문서 Assertion (computing)
[4] 웹사이트 PHPUnit: A Security Risk? https://thephp.cc/ne[...] 2020-10-20
[5] 웹사이트 PHP: Revision 63330 http://svn.php.net/v[...] 2020-06-17
[6] 웹사이트 Releases · sebastianbergmann/phpunit https://github.com/s[...] 2020-06-17
[7] 문서 表明
[8] 웹인용 PHPUnit-1.0.0 Released http://sebastian-ber[...] 2018-02-04
[9] URL https://github.com/s[...]
[10] 문서 표명



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com