이야기에서, 나는 당신이 스스로 코딩하고 있다고 추론합니다.
일반적으로 BDD의 목적은 특히 비즈니스와 개발자 간의 대화를 가능하게하여 팀이 공통의 이해에 도달 할 수 있도록하는 것입니다. 또한 시나리오를 놓친 시점을 확인할 수 있기 때문에 테스터도 포함시키고 싶습니다.
이 작업을 직접 수행하는 경우 고무 오리를 잡고 오리에게 적용되는 동작을 설명하십시오. 작동 방식에 대한 예를 제공하십시오. 그것들이 당신의 시나리오가 될 것입니다.
우선, 이러한 시나리오를 자동화 하지 않는 것이 좋습니다 . 원한다면 적어 둘 수 있습니다. 오리와 공유 한 비즈니스 성과는 적절한 수준으로 표현해야한다는 점을 기억하십시오. 이제 앱의 작동 방식에 대한 아이디어가 있어야하며 시나리오를 수동으로 실행할 수 있습니다. 아직 작동하지 않는 모든 것을 버그처럼 취급하고 싶습니다 . 나는 한 때로 자동화로 시작하지만 시스템의 작동, 내가 도구에 익숙 해요 방법을 잘 알고 있고, 경우에만 UI 잘 이해된다. 그럼에도 불구하고 코드를 작성할 때 종종 약간의 재 작업이 필요합니다.
낮은 수준에서 오리에게 각 수업이 어떻게 진행될 것인지 알려주십시오. 몇 가지 예를 제공하십시오. 고무 오리는 기술 언어를 완벽하게 이해할 수 있습니다. 이제 단위 테스트, 일명 단위 테스트가 있습니다. 적색-녹색 리 팩터 사이클이 여기서 발생합니다. (클래스의 책임에 대해 생각하고 비즈니스 중심 언어로 표현하고 있기 때문에 더 이상 리팩토링 할 필요가 없으며 어쨌든 꽤 아름다운 방식으로 빠지는 경향이 있습니다. 지금이 작업을 한 적이 있습니다. 그래도 괜찮습니다.)
리팩토링하지 마십시오. 우리는 여전히 우리가 모르는 것을 항상 알기 때문에 코드에 대한 피드백을 얻고 싶습니다 . 완벽은 당신의 적입니다. 충분히 잘 만들고 읽을 수있게 한 다음 계속 진행하십시오. 추가 변경을 위해 완벽한 것을 만들어야하는 경우 추가 변경시 수행하십시오.
비즈니스 이해 관계자로부터 시나리오에 대한 피드백을받을 기회가 있지만, 귀하와 함께 있지 않은 경우, 시나리오를 작성하자마자 자동화하기 전에 시나리오를 보낼 수 있습니다. 단어를 동작과 연관시킬 수 있도록 UI 모형도 보내려고 할 수 있습니다. 이것으로 코딩보다 앞서 나가지 마십시오. 이미 수행 한 작업이 잘못되었다는 가정하에 작업하고, 방법을 찾으려면 피드백을 받아야합니다.
마지막 힌트로 일반적으로 사용자 관점에서 스토리를 표현하지 마십시오 (시나리오, 예, 스토리는 아님). 그들은 사용자 이야기가 아닙니다. 아마 다음과 같은 것을 읽을 것입니다 :
In order to attract people to my website
As @thom
I want users to easily convert months and days to days.
어쨌든 당신이 찾고있는 더 높은 수준의 목표가 있습니다. 또한 필요한 기능을 도출하는 데 도움이됩니다. 그것에 행운을 빕니다.