TDD에서 BDD로 이동하려면 어떤 조치를 취 하시겠습니까?
-
19-08-2019 - |
문제
개발 프로세스를 시험 중심 개발에서 행동 중심의 개발 어떤 길을 택하거나 추천 하시겠습니까?
당신이 직면 할 수있는 가능한 도전은 무엇입니까? 패러다임이 바뀌면서 개발 과정을 옮기는 것은 큰 일이 될 것입니다.
이 변화를 순조롭게 수행하는 데 실질적인 경험이 있었던 사람이 있습니까 (흠 ... 매끄럽지 않을 수도 있습니다)?
아니면이 변화를 시도하는 사람이 있습니까?
나는 이것이 각각에 적용되지 않을 수 있음을 이해합니다. 그러나 누군가가 이것을 향해 나아가 야한다면 논리적 단계는 무엇입니까?
다음 게시물에서 BDD에 대한 기본 정보 만 있습니다.TDD와 BDD의 1 차 차이
내가 찾고있는 주요 요점은 다음과 같습니다.
- 어떤 종류의 개발자 교육이 필요합니까?
- SDLC 프로세스에 중대한 변화가 있습니까?
- 권장하는 BDD 도구는 무엇입니까 (.NET)?
- 좋은 BDD 리소스 (.NET)
미리 감사드립니다.
편집하다:
.NET 용 BDD 프레임 워크와 관련 하여이 게시물을 발견했습니다..NET 용 대부분의 성숙 BDD 프레임 워크
해결책
내가 BDD를보기 시작했을 때 나는 모든 프레임 워크를 조사하고 (.NET의 경우) 아무도 사용하지 않았다. 주된 이유는 커뮤니티가 구문과 모범 사례에 정착하지 않은 것 같아서 블로그 게시물 Ben Scheirman. BDD는 툴링에 관한 것이 아니라 테스트를 깨끗하고 이해할 수있게하기 때문에 Nunit과 같은 일반적인 도구로 완전히 가능하기 때문에 이것은 정말 잘 작동했습니다.
내 기존 장치 테스트와 비교할 때 새로운 스타일은 훨씬 더 읽기 쉬우 며 이름 지정과 행동에 훨씬 더 집중합니다. 우리는 메소드 이름을 인쇄하는 것과 그리 멀지 않고 시스템에 대해 비즈니스 사람들과 토론합니다.
Scott Bellware의 추가 읽기 : 행동 중심의 개발
시험 시험 :
public class WhenAddingLineItemToEmptyOrder : BDDBase
{
Order order;
[SetUp]
public void Arrange()
{
order = new Order();
}
public void Act() // called by BDDBase
{
LintItem item = new LineItem();
item.Quantity = 1;
item.Price = 10;
order.AddLineItem(item);
}
[Test]
public void TotalPriceShouldBeUpdated()
{
Assert.AreEqual(10, order.TotalPrice);
}
[Test]
public void OrderCanBeCheckedOut()
{
Assert.IsTrue(order.CanBeCheckedOut)
}
}
다른 팁
내가 이해하는 한 ... BDD는 TDD를 보는 새로운 방법입니다. 그것은 새로운 기술보다 정신적 변화입니다.
내가 말하는 것은 기술적으로 단위 테스트 도구를 사용하여 BDD를 수행 할 수 있다는 것입니다.
행동 중심 개발은 회사가 더 나은 커뮤니케이션 방법을 찾기 위해 개발자의 핵심 역량을 재평가하고, 관리 비전의 인터리빙을 증가시켜 기본적으로 새로운 수준에서 효율적으로 가치를 창출 할 수 있도록하는 현대적인 애자일 도구입니다. 당신의 본질적인 시장 위치.
테스트 중심 개발의 사고 방식 전환은 심층 워크 플로 분석, 최첨단 애자일 방법론을 통한 지속적인 피드백 및 기본 행동 시나리오 전이 매트릭스에주의를 기울이는 패러다임 전환을 구현합니다.
당신은 듣고 싶을 수도 있습니다 Hanselminutes Show # 146- 테스트 중심 개발은 디자인입니다 - TDD의 마지막 단어.
Scott Bellware가 말하는 가장 흥미로운 점 : "테스트 중심 개발은 설계입니다"
그를 위해 "켜기"한 책 : Microsoft® .NET의 테스트 중심 개발 (.NET 개발자의 경우 컨텍스트를 위해 팟 캐스트를 듣습니다)