내 경력에서 반복되는 주제는 새로운 개발자가 팀에 합류하고 기존 장치 및 통합 테스트 스위트에 대한 내재 된 불신을 빠르게하는 것입니다.
인터뷰 중에 경영진은 "단위 테스트를 강력하게 지원"하고 공개적으로 장려한다고 말합니다. 그들은하지만 테스트 자체에 대한 모든 것은 명백한 잘못입니다. 통합 테스트 범위는 100 %이지만 반복 가능한 단위 테스트 범위는 10 % 미만일 때 100 % 범위를 차지한다는 사실과 같습니다. 내가 찾은 다른 문제들 :
단위 테스트와 통합 테스트는 명확하지 않습니다. 단위 및 통합 테스트는 동일한 클래스에서 함께 혼합됩니다.
특정 환경 데이터베이스의 매우 구체적인 동적 데이터에 대한 명시 적 종속성이없는 통합 테스트
비 트랜잭션 통합 테스트, 기본적으로 자체 정리 후 귀찮게하거나하지 않을 수있는 테스트, 때로는 테스트를 반복 가능하게하기 위해 수동 데이터베이스 "스크러빙"이 필요합니다.
조롱 할 필요가 없으며, 응용 프로그램 코드는 조롱이 가능하도록 대대적 인 점검이 필요합니다. 다시 말해, 테스트를 염두에두고 디자인하지 마십시오.
테스트 이름을 빠르게보고 어떤 테스트가 수행되는지 대략적으로 결정하는 명확한 명명 규칙이 없습니다.
이것은 모든 테스트가 쓸모 없거나 나쁘다는 것을 의미하지는 않습니다. 많은 테스트가 꽤 좋고 유지 가치가 있지만 때로는 금을 패닝하는 것처럼 느껴집니다. 블랙 박스 테스트 사례를 위해 데이터베이스를 망쳐 놓는 것을 두려워했기 때문에 테스트를 의도적으로 피하는 것이 좋습니다.
이것은 본질적으로 개인적으로 작성하거나 검토하지 않은 단위 및 통합 테스트에 대한 고유의 불신 을 주었다 . 어떤 수준에서 테스트 스위트의 품질에 대한 믿음이 없다면 팀이나 프로젝트에 아무런 가치가 없습니다.
이 상황에서 자신을 찾으면 어떻게해야합니까? 가장 좋은 공격 계획은 이와 같은 것을 다루는 것이라고 생각합니까?
릴리스 전체에 걸쳐 엄청난 노력으로 모든 테스트를 리팩터링해야합니까? 이 레거시 프로젝트에 하루 단위의 견고한 단위 테스트 적용 범위가 있다는 아이디어를 포기해야합니까?