모든 것을 테스트해야합니까? 작성하도록 강요 합니다.

Ruby on Rails 에서 첫 번째 실제 프로젝트를 시작하고 TDD 테스트 를 작성하도록 강요 합니다. 테스트를 작성하는 데 실제 이점은 보이지 않지만 매우 중요해 보이므로 시도해 보겠습니다.

정적 페이지를 포함하여 내 응용 프로그램의 모든 부분 을 테스트해야 합니까?



답변

TDD는 테스트에 관한 것이 아니라 디자인에 관한 것입니다. 테스트를 작성하면 클래스의 작동 방식과 필요한 인터페이스에 대해 생각해야합니다. 테스트는 나중에 쉽게 리팩토링 할 수있게 해주는 즐거운 부작용입니다.

따라서이를 염두에두고 정적 페이지의 동작은 무엇이며 인터페이스는 무엇입니까?

나의 첫 반응은 “없음”과 “없음”입니다.


답변

항상 비용-이익 분석입니다. 기능 비용이 얼마입니까? 비용이 높으면 잘 테스트하십시오. 비용이 낮 으면 가볍게 테스트하거나 전혀 테스트하지 마십시오.

시장 출시 시간도 고려해야합니다. 완전히 작동하는 기능을 늦게 제공하는 것보다 대부분 작동하는 기능을 제공하는 것이 좋습니다.

일반적인 IMO에서 이러한 질문에 대답하는 것은 거의 불가능합니다.

일부 기능이 원래 실현 한 것보다 더 중요한 경우 테스트 기능을 유지하는 것이 더 중요하다고 생각합니다.


답변

나는 “예”라고 말할 것입니다. 가장 간단한 기능과 코드까지 테스트 한 경우 새 코드를 추가해도 내부 코드가 작동하지 않을 것이라는 확신을 가질 수 있습니다. 마찬가지로, 발생하는 모든 버그에 대해 테스트를 수행하면 회귀가 다시 발생하지 않습니다.


답변

예, 모든 것을 테스트해야합니다 …

모든 것에 대해 자동 테스트를 작성할 필요는 없습니다. 정적 페이지의 경우 Selenium http://seleniumhq.org/ 를 사용하여 내용이 올바른지 확인하십시오.

내 경험상 테스트 사례를 작성하는 것이 불가능한 일부 프론트 엔드 항목이지만 실제로 Mark 1 안구를 사용하여 테스트하려고합니다.


답변

테스트는 코딩만큼 중요합니다. “무언가 잘못 될 수 있다면”이라는 말을 들어야합니다. INMO, 품질 향상을 위해 사용되는 수많은 소프트웨어 엔지니어링 기술 중에서 테스팅은 문제를 조기에 발견하는 데 가장 유용한 기술입니다.

모든 팀을 테스트 할 수는 없지만 (특히 소규모 팀과 대규모 시스템에서) 테스트를 건너 뛰는 것은 아닙니다. 테스트 가치가 있습니까? Wiki-SoftwareTesting의 “오류 조기 발견”섹션을 참조하십시오 .


답변

그런 식으로 작성된 경우 TDD 테스트는 실제 사양이 될 수도 있습니다. 테스트 방법의 이름은 비즈니스 사용자에게 적합해야합니다.


답변

다른 사람들이 언급했듯이 Ruby on Rails 테스트에서는 다른 언어보다 훨씬 중요합니다. 이것은 컴파일러가 없기 때문입니다.

Delphi , C ++, VB.NET 등과 같은 언어 는 컴파일 된 언어이며, 컴파일러는 메소드 호출에서 오타와 같은 많은 실수를 선택합니다. Ruby on Rails에서는 특정 코드 줄이 실행되거나 시각적 경고를 표시하는 IDE를 사용하는 경우 코드에 오타 나 실수가 있는지 여부 만 알 수 있습니다.

모든 한 줄의 코드가 중요하기 때문에 (그렇지 않은 경우) 작성하는 모든 방법을 테스트해야합니다. 기본 TBDD 도구를 따를 때 들리는 것보다 훨씬 간단합니다.

나는 어떻게 시험 하는가 에 대한 Ryan Bates의 Rails Cast 가 저에게 매우 귀중하다는 것을 알았고 올바르게 완료되면 TBDD의 단순성을 실제로 강조했습니다.