2012-08-22 2 views
1

나는 오이/specflow와 같은 BDD을 통해 언제 테스트해야하는지 이해하려고하며 언제 gui을 직접 테스트해야합니까?BDD 방식 또는 Gui Test로 테스트해야합니까?

예를 들어, "AdminHelp"단추는 관리자 만 볼 수 있습니다. "

이 관리 버튼은 특정 페이지에 있습니다. 나는 시나리오, 즉 (A BDD 방식으로 테스트해야 :

  1. 의 관리 로그 그런 다음 그는

또는

는 단위 테스트를 작성하는 AdminHelp 버튼을보고 그 current_user를 관리자로 설정하고 템플릿에 의해 렌더링 된 HTML에 AdminHelp 버튼이 포함되는지 여부를 테스트합니다.

감사합니다.

답변

3

Specflow는 자동화 도구이지만 Selenium이나 Microsoft UI Automation보다 높은 수준에서 작동합니다. 일반적으로 사용자가 응용 프로그램을 사용하는 시나리오를 설명 할 때이를 사용합니다. 예 :

Given Andy Admin is an administrator 
When he logs in 
Then he should be taken to the admin home page. 

Given Andy Admin is on the admin home page 
When he wants help 
Then he should be directed to the admin manual. 

여기에 아무 곳에서나 관리자 도움말 버튼을 언급하지 않았습니다. Andy는 비서에게 도움을 청할 수있었습니다. 시스템이 제공하는 기능면에서 을 선언적으로 단계로 설명합니다. 이것은 BDD의 스타일입니다.

Specflow는 Given, When 및 Then 구를 코드 단계에 매핑합니다. 코드에서 자동화 툴을 사용하여 실제로 버튼을 클릭 할 수 있습니다. 그러나 비즈니스가 시스템의 기능을 설명하는 데 사용하는 것과 동일한 언어를 사용하는 것이 훨씬 더 유지 보수가 가능합니다. UI가 변경되면 15 단계가 아닌 1 단계 만 변경하면됩니다.

또한 시나리오에서 상위 수준 언어를 사용하면 비즈니스를 계속 유지하는 경향이 있습니다. 즉, 해당 시나리오에 대해 대화와 함께 대화를 갖는 것이 훨씬 쉽습니다. 대화는 BDD의 핵심이며 자동화 부분을 수행하는 방법에 대해 걱정하기 전에 시작하는 것이 좋습니다.

관련 문제