소프트웨어 테스트는 주어진 입력과 예상 출력 간의 차이를 탐지하기 위해 소프트웨어 항목을 평가하는 프로세스이다. 테스트는 제품의 품질을 평가한다. 소프트웨어 테스팅은 개발 프로세스 중에 수행되어야하는 프로세스. 즉, 소프트웨어 테스팅은 검증 및 검증 프로세스이다.
TDD (Test-Driven Development)는 테스트 및 리팩토링을 수행하기에 충분한 프로덕션 코드를 작성하기 전에 테스트를 작성하는 것. 즉, 기능 코드를 작성하기 전에 요구 사항이나 디자인을 생각하는 한 가지 방법.
- 실패하는 테스트 작성 - (사용자) 요구 사항, 스토리를 이해하고 기대하는 것에 대한 테스트를 작성한다. (테스트가 처음에 실패하므로 'Red'가 된다.)
- 실패한 테스트가 통과하도록 만든다 - 기존의 테스트가 모두 통과하는지 확인하면서 실패한 테스트가 통과하기 위한 코드를 작성한다.
- 작성한 코드를 리팩터링 - 만약에 현재 기능을 제공하기 전에 (사용자나 동료가 이해할 수 있도록)코드를 정리할 시간이 있다면 (사용자나 동료가 이해할 수 있도록) 더 간단하게 작성한다.
test('This is what a failing test looks like!', function(assert) {
var result = [1,2,3].indexOf(1); // this should be 0
assert.equal(result, -1); // we *expect* this to fail
});
- Description - 보통 QUnit의 test () 메소드의 첫 번째 매개 변수
- Computation - 함수 / 메소드 실행 (테스트 해결을 위해 작성하는 메소드 실행)
- Assertion - 계산 결과가 예상 한 결과인지 확인