안티 문화 테스트에서 테스트를 시작하려면 어떻게해야합니까? [닫은]

고백 할 것이 있습니다 : 형식화 된 자동화 된 테스트는 프로그래밍 배경의 일부가 아닙니다. 나는 현재 많은 개발자들 (대부분 개발자들은 한 종류 또는 다른 종류의 개발자들) 과 함께 매우 큰 회사에서 일하고 있으며, 대부분의 사람들도 테스트 *하지 않는 것이 분명하다. (* 정식으로 계속 말하지는 않습니다 . 추론하십시오.)

테스트를 시작하기 위해 조직의 지원을 기다릴 경우 결코 발생하지 않습니다. 경영진에서 테스트를 진행하여 “내부에서 변화”를 시도하면 변경이 발생하기 전에 스팀이 부족합니다. 지금 테스트를 시작해야합니다.

그러나 TDD와 그 ilk를 사용하면 프로덕션 코드와 함께 많은 테스트 코드가 생길 것입니다. 당사의 버전 관리 시스템 (모두 중앙 집중식)은 테스트 코드를 저장하도록 구성되지 않았습니다. 나는 나의 워크 스테이션에 그 모든 것을위한 장소를 찾아야 할 것이다.

문화를 평가하거나 도구를 제공하지 않는 문화권에서 소프트웨어 테스트를 개인적으로 시작할 수 있습니까? 공식 도구 및 조직에 테스트, 프레임 워크 및 자동화를위한 장소가 없을 때 테스트 할 수 있도록 어떤 기술과 도구를 사용합니까?



답변

나는 개인적으로 상당한 성공을 거두었습니다. 성공을위한 핵심 요소 :

  • (가칭) 관리 지원 받기. 자동화 테스트의 장점은 잘 문서화되어 있으며 모든 관리자가 최소한 시도해 보도록 유도해야합니다. 여기에는 VCS 및 빌드 서버에서 지점을 찾는 것이 포함됩니다.
  • 자동화 된 테스트는 자주 자동으로 실행되는 경우에만 전체 가치를 제공하므로 문제에 대해 곧 알 수 있으며 실행을 잊지 않는 사람들에게 의존 할 필요가 없습니다. 최소한 매일 실행하는 빌드 서버가 필요합니다. 이것은 오래된 워크 스테이션 일 수 있습니다. Jenkins는 실행에 거의 작업이 필요하지 않습니다.
  • 예를 들면. 테스트를 작성하고 그들이 제공하는 이점에 대해 이야기하고, 다른 개발자가 도입 한 오류를 발견하면 잠재적으로 훨씬 더 난처한 상황으로부터 보호받는 방법에 대해 이야기합니다.
  • 낮은 매달린 과일을 찾으십시오. 응용 프로그램의 일부는 테스트하기 어렵고 다른 일부는 쉽게 테스트 할 수 있습니다. 일부는 견고하고 다른 일부는 부서지기 쉽습니다. 취성에 대한 테스트 작성, 테스트하기 쉬운 부품은 가장 짧은 시간에 가장 큰 가치를 제공합니다.
  • 재사용 가능한 테스트를 작성할 수 있는지 확인하십시오 (예 : 모든 모듈 (웹 페이지, REST 서비스 등)에는 있지만 종종 잊혀지는 테스트 규칙 또는 기능).

답변

관리 지원이 없으면 물에서 죽었습니다. 경영진은 귀하가 가치있는 일을하고 있지 않다고 주장하며 귀하의 평가에 불이익을받으며 결국 해고 될 것입니다. 경영진이 조기 테스트에 소요되는 비용과 그 비용을 모두 줄일 수있는 방법이 있습니다. 문화를 바꿀 수는 있지만 목을 자르고 있습니다.

나는 무엇을하기 전에 변화를 소개하는 방법에 관한 Machiavelli 왕자 장을 읽는 것이 좋습니다 .


답변

내 경험에 따르면 문화가 안티 테스트라면 합리적으로 소개 할 수 없습니다. 테스트는 시간 낭비로 간주되어 “시간 낭비”또는 “너무 오래 걸리는”책망을 받거나 테스트 가능한 방식으로 작성되지 않은 몇 년 동안 코드가 혼란에 빠졌습니다 (예 : 인터페이스 없음, 모든 것) 긴밀하게 결합 된) 코드를 리팩토링 및 / 또는 다시 작성하는 데 많은 시간을 소비해야하므로 (테스트에 너무 오래 걸리거나 시간을 낭비 할 위험이 있음) 테스트를 처음부터 작성할 수 있습니다. .

기존 항목과 상호 작용해야하는 그린 필드 작업을 수행하거나 (나쁜 영역 주위에 멋진 래퍼 만들기) 문제를 일으키지 않거나 요구하지 않는 소량으로 수행 할 수있는 경우가 있습니다. 개집에 당신을 넣을 수있는 “당신에게 할당되지 않은 작업에 대한 작업”.


답변

자동화 된 테스트로 해결할 수있는 문제 (현재는 인식되지 않을 수 있음)가 충분히있을 때까지는 멀지 않을 것이라고 생각합니다.

정의 된 스크립트에 대해 수동 테스트 문화가 있다면 불완전하거나 부정확 한 결과의 위험과 함께 해당 스크립트를 실행하는 비용이 발생합니다. 이것의 역사 (문서화 또는 “전쟁 이야기”형식)가있을 수 있습니다. 장기적인 비용 절감을 위해 이러한 수동 테스트 중 일부를 자동화 할 파일럿 프로젝트를 제안하십시오.

수동 테스트 기능조차 없다면 자동화 또는 기타 방식의 공식 테스트가 가치가 있다는 것을 비즈니스가 인식하지 않는 것이 좋습니다. 이 경우에는 앞길이 길고 가파르다 고 생각하지만 소프트웨어 품질에 대한 덜 캐주얼 한 접근 방식을 채택함으로써 비즈니스가 이익을 얻을 수 있다는 명확한 데모가 필요할 것입니다. 그렇게 할 수 없다면 상업적으로 아이디어를 어떻게 지원할 수 있는지 알기가 어렵습니다.


답변

한 가지 아이디어는 다른 사람이 작성한 코드에 결함이 있음을 증명하는 테스트를 작성하는 것입니다. 개념을 팔아야한다.


답변