단위 테스트가 실행되지 않도록하는 방법이 있지만 실패한 단위 테스트에서 확인하는 값은 무엇입니까?
간단한 예를 사용하겠습니다. 대소 문자 구분. 현재 코드는 대소 문자를 구분합니다. 메소드에 유효한 입력은 "Cat"이며 Animal.Cat의 열거 형을 리턴합니다. 그러나 방법의 원하는 기능은 대소 문자를 구분해서는 안됩니다. 따라서 설명 된 방법이 "cat"을 전달하면 Animal.Cat 대신 Animal.Null과 같은 것을 반환 할 수 있으며 단위 테스트가 실패합니다. 간단한 코드 변경만으로도이 작업을 수행 할 수 있지만보다 복잡한 문제를 해결하는 데 몇 주가 소요될 수 있지만 단위 테스트로 버그를 식별하는 것은 덜 복잡한 작업 일 수 있습니다.
현재 분석중인 응용 프로그램에는 "작동"하는 4 년 코드가 있습니다. 그러나 단위 테스트에 관한 최근의 논의는 코드에서 결함을 발견했습니다. 일부는 명시적인 구현 문서 (예 : 대소 문자 구분) 또는 현재 호출 방식에 따라 버그를 실행하지 않는 코드 만 필요합니다. 그러나 특정 시나리오를 실행하여 버그를보고 유효한 입력을하는 단위 테스트를 만들 수 있습니다.
누군가가 코드를 고칠 수있을 때까지 버그를 일으키는 단위 테스트를 검사하는 가치는 무엇입니까?
이 단위 테스트에 무시, 우선 순위, 범주 등으로 플래그를 지정하여 실행 된 테스트를 기반으로 빌드가 성공적인지 여부를 판별해야합니까? 결국 누군가가 코드를 수정하면 코드를 실행하기 위해 단위 테스트를 작성해야합니다.
한편으로는 식별 된 버그가 수정되지 않았 음을 보여줍니다. 다른 한편으로, 로그에 수백 개의 실패한 단위 테스트가 표시 될 수 있으며, 코드 체크인으로 인한 실패와 실패한 테스트를 찾아내는 것이 어려울 수 있습니다.