2012-09-05 2 views
0

최근 행동 주도 개발 (BDD)에 대해 배웠습니다. CRUD 웹 응용 프로그램에 좋은 점이 있습니다.HTML5 캔버스 및 BDD - 오이

오이와 같은 BDD 도구는 게임에 적합하며 특히 HTML5 캔버스 게임에 적합합니까?

HTML5 캔버스 게임을위한 다른 BDD 도구가 있습니까? 아니면 BDD는 CRUD 응용 프로그램에만 있습니까?

+0

BDD 란 무엇입니까? 그것을위한 링크가 있습니까? – Jarrod

+0

BDD는 행동 주도 개발입니다. http://en.wikipedia.org/wiki/Behavior-driven_development – 18bytes

답변

1

질문은 : JavaScript로 캔버스 기반 게임과 상호 작용할 수있는 방법을 생각할 수 있습니까?

실제로 JS 콘솔을 열고 거기에서 게임과 상호 작용할 수 있습니까? 올바른 좌표에서 클릭을 할 수 있고, 키를 누를 수 있으며 가장 중요한 것은 게임에서 출력되는 내용에 대한 단언을 할 수 있습니까?

대답이 '예'라면 자바 스크립트로 게임을 자동화 할 수 있으며 Cucumber 나 Cucumber.js를 꼭 사용해야합니다.

대답이 '아니오'이고 위에서 설명한 것과 비슷한 방식으로 캔버스 내용을 자동화하는 방법을 찾을 수 없다면 자동화 도구가 그 일을 할 수없는 것 같습니다.

BDD는 "CRUD"응용 프로그램과 전혀 관련이 없습니다. 그것은 동작을으로 기술하고 이러한 동작을 설명하는 예제를 자동화하는 것입니다. 따라서 거의 모든 유형의 응용 프로그램에서 BDD 방식을 사용할 수 있습니다.

응용 프로그램을 자동화하는 방법을 찾지 않아도 응용 프로그램의 (예상되는) 동작을 문서화하기위한 시나리오를 작성할 수 있습니다. 자동화 단계는 일반적인 믿음과는 달리 의무 사항은 아닙니다.

2

저는 최근에 BDD 및 게임 개발을 실험 해 왔습니다. 하지만 C#으로 .NET & XNA Framework를 구축하고 있습니다. Visual Studio를 IDE로 사용하고 SpecFlow 및 NUnit을 사용하여 테스트하고 있습니다.

SpecFlow는 BDD/Gherkin 도구입니다. 우리는 게임에 관해 이야기하고 일부 요구 사항을 풀어주고 Gherkin에서 문서화하고 거기에서부터 나아갑니다. 열쇠는 게임을 테스트 할 수 있도록 디자인하는 것입니다.

우리는 XNA가 필요로하는 모든 "게임 루프"구현에서 게임 엔진을 추출하여로드하고 필요한 모든 종속성을 주입 할 수 있도록했습니다. 그런 다음 엔진에서 테스트를 실행 한 후 코드가 올바르게 작동하는지 확인하기 위해 코드에 대한 어설 션을 수행합니다.

우리는 초기에 그래픽/드로잉/사운드/등이 테스트의 범위를 벗어나기로 결정했습니다 ... 최종 제품에서 깨진 경우 매우 분명합니다. 우리가 구축 한 테스트 스위트는 게임 자체의 메커니즘이 의도 한대로 작동한다는 확신을줍니다 (즉 올바른 위치에있는 게임 오브젝트 A는 발사체 C와 충돌 할 때 게임 오브젝트 B가 죽는가 등). 기타.).

지금까지 꽤 좋은 경험이었습니다.

+0

흥미로운 점은 heavy-JS 웹 앱에도 적용한 전략이었습니다. 이는 게임이나 비동기 UI 앱과 같이 자동화가 어려운 프로젝트에서 수용 테스트를 실행 가능하게 만들 수있는 절충안입니다. 물론 이것은 사례 별 결정입니다. – jbpros

+1

확실하게 사례 별.게임의 경우 시간이 많이 걸리는 과정에서 시간을 투자하는 것이 가치가 있는지를 빨리 확인하기 위해 짧은 프로토 타입 반복을 먼저 갖는 것이 게임의 경우 확실히 중요하다고 생각합니다. 사실 나는 테스트 구동 게임 개발이라는 개념에 100 % 팔리지는 않았습니다 ... 확실한 업그레이드/꾸러미/패치 등이없는 "원 샷"출시에 대해서는 확실합니다. 특히 인디 게임 개발자에게 적합합니다. 그러나이 개념은 작동하며 불가능한 주장으로 움츠러 들지 않으면 서 게임의 "엔진"을 테스트 할 수 있습니다. – SaxonMatt