긴급 시스템에서 TDD가 제대로 작동하지 않는 것을 발견했습니다. 저는 비디오 게임 개발자이며 최근에 TDD를 사용하여 여러 간단한 동작을 사용하여 실체에 대한 사실적인 움직임을 만드는 시스템을 만들었습니다.
예를 들어, 다른 유형의 위험 지역에서 멀어지게하는 행동과 다른 유형의 흥미로운 영역으로 이동하는 데 책임이있는 행동이 있습니다. 각 행동의 결과를 합치면 최종 움직임이 발생합니다.
시스템의 내장은 쉽게 구현되었으며 TDD는 여기서 각 서브 시스템이 담당해야하는 것을 지정하는 데 유용했습니다.
그러나 행동이 어떻게 상호 작용하는지, 더 중요하게는 시간이 지남에 따라 어떻게 상호 작용 하는지를 지정할 때 문제가 발생했습니다. 종종 정답이 없었으며 초기 테스트가 통과되었지만 QA는 시스템이 작동하지 않는 최첨단 사례를 계속 찾을 수있었습니다. 올바른 해결책을 찾기 위해 몇 가지 다른 행동을 반복해야했고 게임에서 작동하기 전에 새로운 동작을 반영하기 위해 매번 테스트를 업데이트하면 테스트 시간과 시간을 다시 포기했을 수 있습니다. 그래서 그 테스트를 삭제했습니다.
나는 아마도 QA 발견 가장자리 케이스를 캡처 한 강력한 테스트를 했어야하지만, 많은 물리학 및 게임 플레이 시스템의 꼭대기에 앉아 그 같은 시스템을 가지고, 때 와 당신이 시간이 지남에 따라 행동 상대하고, 그것은 조금이된다 무슨 일이 일어나고 있는지 정확히 명시하는 악몽.
나는 거의 확실히 내 접근 방식에서 실수를 저질렀 고, 시스템의 장에 대해 말했듯이 TDD는 훌륭하게 작동했으며 심지어 최적화 된 리 팩터를 지원했습니다.