최고의 프로그래머도 실수를 합니다. 좋은 프로그래머와 나쁜 프로그래머의 차이는 좋은 프로그래머는 테스트를 통해 가능한 한 많은 오류를 찾을 수 있다는 것입니다. 버그 테스트가 빠를수록 버그를 더 빨리 찾을 수 있고 찾아서 수정하는 데 드는 비용도 더 저렴해집니다. 이는 소프트웨어가 출시되기 직전에 소프트웨어를 테스트하는 것이 왜 그렇게 문제가 되는지 설명합니다. 대부분의 버그는 발견되지 않으며, 발견된 버그를 수정하는 것이 너무 높아 버그를 모두 수정할 여유가 없기 때문에 해당 버그만 수정하는 데 우선순위를 두어야 합니다.
PHPUnit을 사용한 테스트는 사용 중인 접근 방식과 완전히 다르지 않습니다. 단지 방법이 다를 뿐입니다. 이 둘의 차이점은 프로그램이 올바르게 작동하는지 확인하는 것이 자동으로 테스트할 수 있는 일련의 코드 조각을 통해 수행된다는 것입니다. 이러한 코드 조각을 단위 테스트라고 합니다. 이 부분에서는 먼저 인쇄된 테스트 코드를 기반으로 자동 테스트를 수행합니다. PHP의 내장 배열인 Array를 테스트한다고 가정해 보겠습니다. 수행해야 할 테스트 중 하나는 sizeof() 함수입니다. sizeof() 함수는 새로 생성된 배열에 대해 0을 반환해야 합니다. 새로운 배열 멤버를 추가하면 sizeof()는 1을 반환해야 합니다. 예제 1은 우리가 테스트하려는 내용을 보여줍니다.
예 1. 배열 및 sizeof()
<?php
테스트
$fixture = 배열( );
// $fixture는 비어 있어야 합니다.
$fixture[] = "요소";
// $fixture에는 배열 멤버가 포함되어야 합니다.
?>
가장 간단한 테스트 방법은 배열 멤버를 추가하기 전과 후에 sizeof()의 연산 결과를 출력하는 것입니다. 0과 1이 반환되면 Array와 sizeof()가 정상적으로 작동하고 있다는 의미입니다.
예 2. print 문을 사용하여 Array 및 sizeof()<?php
테스트
$fixture = 배열( );
print sizeof($fixture) . "n";
$fixture[] = "요소";
sizeof($fixture)를 인쇄합니다. "n";
?>
0
1
이제 수동 해석이 필요한 테스트 프로그램을 자동 실행으로 전환합니다. 예제 3에서는 기대값과 실제값을 비교하고 같으면 ok를 인쇄합니다. 일부 결과가 좋지 않다고 판단되면 문제가 있음을 알 수 있습니다.
예제 3. Array와 sizeof()의 예상값과 실제값 비교
<?php
$fixture = 배열( );
print sizeof($fixture) == 0 ? "확인n" : "확인되지 않음n";
$fixture[] = "요소";
print sizeof($fixture) == 1 ? "okn" : "좋지 않음n";
?>
좋아요
좋습니다.
이제 새 요소를 도입합니다. 예상 값이 실제 값과 다르면 예외가 발생합니다. 이렇게 하면 출력이 더 간단해집니다. 테스트가 성공하면 아무 작업도 수행되지 않으며, 처리되지 않은 예외가 있으면 뭔가 잘못되었음을 알 수 있습니다.
예제 4. 어설션 함수를 사용하여 Array 및 sizeof() 테스트
<?php
$fixture = 배열( );
주장True(sizeof($fixture) = = 0);
$fixture[] = "요소";
주장True(sizeof($fixture) = = 1);
function 주장True($condition) {
if (!$조건) {
throw new Exception("어설션이 실패했습니다.");
}
}
?>
이제 테스트는 완전히 자동화되었습니다. 첫 번째 버전과 달리 이 버전은 테스트를 완전히 자동화합니다.
자동화된 테스트를 사용하는 목적은 실수를 가능한 한 적게 하는 것입니다. 코드가 아직 완벽하지 않더라도 좋은 자동화 테스트를 통해 오류가 크게 줄어들 수 있다는 것을 알게 될 것입니다. 자동화된 테스트를 통해 코드가 공정하다는 확신을 얻을 수 있습니다. 이러한 자신감을 가지고 디자인에 있어서 과감한 도약을 할 수 있고, 팀과 더 나은 파트너 관계를 맺을 수 있으며, 귀하와 고객 간의 관계를 개선할 수 있으며, 귀하의 노력으로 인해 시스템이 더 좋아졌다는 것을 증명할 수 있기 때문에 매일 평화롭게 잠들 수 있습니다.