문제

LINQ2SQL을 매우 좋아하기 때문에 LINQ에서 SQL을 DATALAYER로 SQL로 사용하여 간단한 웹 앱을 작성하고 있습니다. 나는 최근에 DDD와 TDD에 대해 조금 읽고 있었고 그것을 샷을주고 싶었습니다.

가장 먼저 Linq2SQL과 DDD가 너무 크게 가지 않기 때문에 저를 놀라게합니다. 내 다른 문제는 테스트를 찾는 것입니다. 실제로 좋은 테스트를 정의하기가 매우 어렵다는 것을 알았으므로 질문하고 싶었습니다. 좋은 테스트 사례를 발견하는 가장 좋은 기술은 무엇입니까?

도움이 되었습니까?

해결책

시험 사례 발견은 과학보다 예술에 가깝습니다. 그러나 간단한 지침에는 다음이 포함됩니다.

  • 연약한 것으로 알고있는 코드 / 약한 / 부러 질 가능성이 높습니다.
  • 사용자 시나리오 (사용자가 수행 할 작업)를 따르고 코드를 터치하는 방법을 확인하십시오 (종종 디버깅, 다른 시간 프로파일 링 및 다른 경우에는 시나리오에 대한 생각을 의미합니다). 사용자에 의해 이들은 테스트를 작성하는 데 가장 우선 순위입니다.
  • 자신의 개발 과정에서 테스트를 시작하여 찾은 버그가 발생했습니다. 동일한 동작으로 코드가 다시 회귀되지 않도록 테스트를 작성하십시오.

테스트 케이스를 작성하는 방법에 대한 몇 권의 책이 있지만 문서화 된 테스트 케이스가 필요한 대규모 조직에서 작업하지 않는 한 가장 좋은 방법은 마음에 들지 않는 코드의 모든 부분을 생각하는 것입니다 (Aren Aren 'T'Pure ") 및 해당 모듈을 철저히 테스트 할 수 있는지 확인하십시오.

다른 팁

글쎄, TDD의 표준 해석에 따르면 테스트는 운전하다 당신의 개발. 따라서 본질적으로 테스트로 시작합니다. 실패하고 테스트가 통과 될 때까지 코드를 작성합니다. 그래서 그것은 당신의 요구 사항에 의해 주도되지만, 당신은 그것들을 수집하는 것을 진행합니다. 앱/기능이 무엇을 해야하는지 결정하고 테스트를 작성한 다음 통과 할 때까지 코드를 작성하십시오. 물론, 다른 많은 기술이 있지만 이것은 TDD 세계에서 일반적으로 생각되는 것에 대한 간단한 진술 일뿐입니다.

생각한다. 코드를 읽으십시오. 스스로 질문하십시오 : 예를 들어이 포인터가 여기서 널리 잡힐 수 없습니까? 초기화 전에이 방법이 호출되면 어떻게됩니까?

가정하지 마십시오 와 같은 "이 파일은 항상 거기에있을 것입니다". 테스트.

가장자리 케이스, 경계, 음수 값, 오버플로에 대해 생각하십시오 ...

버그는 종종 클러스터로 그룹화됩니다. 당신이 찾을 때 둘러보십시오. 또한 다른 위치에서 동일한 종류의 버그를 찾으십시오.

테스트의 실제 목표 : 버그 찾기에 마음을 설정하십시오.

프로그램이 실패 할 수있는 것을 상상하는 데 창의적입니다.

테스트는 버그를 찾아야하며 프로그램이 정상인지 확인하지 않아야합니다.

나는 정기적으로 타사 API에 대한 테스트를 작성합니다. 그렇게하면 API가 업데이트 될 때, 내가 깨뜨릴 것인지 아닌지 알고 있습니다.

나는 이것이 유용한 기술이라고 생각합니다.

계약 및 부울 쿼리를 사용하여 자동 테스트 생성의 품질을 향상시킵니다.


참조 : Lisa (Ling) Liu, Bertrand Meyer 및 Bernd Schoeller, 계약 및 부울 쿼리를 사용하여 자동 테스트 생성의 품질을 향상시킵니다., 절차에서 탭 : 테스트 및 증명, ETH 취리히, 2007 년 2 월 5-6 일, eds. Yuri Gurevich와 Bertrand Meyer, 컴퓨터 과학 강의 노트, Springer-Verlag, 2007.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top