이 답변을 쓰는 시점에서 나는 그것이 테스트가 아니라 문서에 관한 것임을 깨달았습니다. 먼저 애자일 선언문을 읽어야합니다 .
[우리는] 종합 문서보다 작동 소프트웨어 를 소중하게 생각 합니다
따라서 사양을 실행 가능하게 만들어야합니다 (예 : 완전 자동화 된 테스트 세트로 작성).
스토리를 기반으로 스펙을 작성하는 것이 좋은 생각입니까?
네, 임호입니다. 이를 "행동 주도 개발"또는 "예제 별 사양"이라고합니다. 루비에는 큰 도움이되는 도구 오이 가 있습니다.
문제는 이야기가 너무 많기 때문에 이야기와 관련된 시스템의 어느 부분에 대해서도 명확하지 않다는 것입니다.
왜 명확하게하고 싶습니까? 정말로 "테스트 / 코드"추적 매트릭스가 필요합니까? 테스트를 스펙으로 작성하면 테스트가 요구 사항이되기 때문에 별도의 "요구 사항 / 테스트"추적 성이 필요하지 않다는 장점이 있습니다. 통합 테스트를 위해 소프트웨어를 별도의 부분이 아닌 전체로 취급해야합니다.
사양 테스트에 포함되지 않은 시스템의 일부인 "데드 (dead)"모듈이 있는지 확인하려면 적용 범위 도구가 필요할 수 있습니다. 그러나이 특정 코드가 어떤 사양에 해당하는지는 신경 쓰지 않아야합니다. 특정 사양에서 시스템의 어느 부분이 이에 해당하는지 알아야합니다. 사양의 중복에 대해 걱정하지 않아도됩니다. 그리고 코드에 DRY 원칙을 적용 하면 동일한 코드를 실행하는 수십 가지 사양이 있습니다.
개발자 당시에는 작동하며 모든 스프린트는 개발자가 수행해야 할 작업과 변경 사항을 간략하게 설명합니다. 그러나이 스토리 목록을 유지하고 테스트를 위해 화면에서 하나의 기능이 여러 위치에 문서화되어있을 수 있기 때문에 실제로 버그를 추적하고 일반적으로 사양을 유지하기 시작합니다. 이야기로 나습니다.
중요한 모듈을 한 번만 변경하면 수백 건의 통합 테스트가 중단되는 것은 드문 일이 아닙니다. 그것이 단위 테스트가 시작되는 곳입니다.
특정 테스트가 높은 수준의 요구 사항을 충족하는지 또는 미묘한 세부 사항을 다루는 지 알 수 있도록 테스트를 구성해야합니다. 후자의 경우이 테스트를 통합 테스트 스위트와 분리해야합니다. 단위 테스트의 목적은 버그를 지역화하는 것입니다. 따라서 버그를 도입하면 한 번의 테스트 실패 만 발생합니다.
이야기를 잘못 작성 했습니까?
"고객", "어시스턴트"또는 기능 / 화면 / 워크 플로 ( "구매", "환불") 등 사용자별로 스토리를 에픽으로 구성하면된다고 생각합니다.
또한 사양 테스트는 단위 테스트를 대체하지 않습니다. 더 읽어보기