2009-02-28 11 views
22

xUnit 스타일 통합 테스트 대신 Fit/FitNesse를 사용하는 이유는 무엇입니까? 정말 이상하고 매우 불분명 한 문법을 ​​가지고 있습니다.왜 Fit/FitNesse인가?

정말로 제품 소유자가 테스트를 작성하는 것입니까? 그들은하지 않을 것이다! 그들에게는 너무 복잡합니다. 그렇다면 왜 Fit/FitNesse를 착용해야합니까?

업데이트 그래서 비즈니스 규칙 테스트에만 적합합니다.

답변

19

요점은 비 프로그래머, 종종 비즈니스 응용 프로그램의 유망 사용자와 같은 완전히 기술적이지 않은 사람들조차도 응용 프로그램에서해야 할 일에 대해 테스트 한 다음에 테스트하는 것입니다. 테스트 작업을 수행하는 것은 확실히 너무 복잡하기는하지만 예를 들어 다음과 같이 채워진 샘플 데이터 테이블을 논의 할 수 있어야합니다. 워드. 그리고 대단히 중요한 점은 기존 사양과는 달리 자동화 된 테스트를 통해 응용 프로그램을 업데이트해야하기 때문입니다.

James Shore가 제공 한 Introduction To FitFit Workflow을 참조하고 필요한 경우 나머지 문서에 대한 링크를 따르십시오.


업데이트 :는 비즈니스 규칙에 의해 무엇을 의미하는지에 따라 달라집니다? ;-) 어떤 사람들은 매우 좁게 (비즈니스 규칙 엔진 등), 다른 사람들을 매우 광범위하게 이해할 것입니다.

내가보기에 Fit은 최종 사용자 또는 도메인 전문가 (일부 도메인에서)가 이해할 수있는 문서에 풍부하고 사실적인 예가있는 비즈니스 (도메인과 같은) 사용 사례를 작성할 수있게 해주는 도구입니다. 확인하고 토론하십시오. 동시에 이러한 예제는 기계 판독이 가능한 형식이므로 자동화 된 테스트를 수행하는 데 사용할 수 있습니다. 사용자가 직접 문서를 작성하거나 다시 작성하지 않아도됩니다. 대신 그것은 양측 모두에서 응용 프로그램이 무엇을 할 것인지에 대한 이해의 증가를 반영하는 호출 및 토론의 산물입니다. 진행률이 높을수록 사례가 더 풍부 해지고 모서리 사례가 해결됩니다.

어떻게해야 응용 프로그램이 중요할까요? 이것은 기능적 사양의 한 형태입니다. 그렇기 때문에 이것은 모듈에 의해 다소 광범위하고 실제로 조직되지 않고 오히려 사용 시나리오입니다.

예제에서 나온 테스트는 비즈니스 측면에서 중요한 측면에서 응용 프로그램의 외부 동작을 테스트합니다. 예, 비즈니스 규칙이라고 부를 수 있습니다. 그러나 디에고 얀치 (Diego Jancic)의 신용 점수 표본을 조금 비틀어 보도록하겠습니다. 적합 문서의 일부가 1) 속성과 그 점수를 나열한 다음 2) 클라이언트 데이터를 제공하고 결과를 확인한 다음 실제 비즈니스 규칙 인 점수 표 (속성 및 점수) 또는 응용 프로그램 논리가 각 클라이언트의 점수 계산 (채점표 기준)? 그리고 어떤 테스트를 받았습니까?

Fit/FitNesse 테스트는 수락 테스트에 더 적합합니다. 다른 테스트 (클라이언트, 사용자, 도메인 전문가 등과의 협력에 신경 쓰지 않고 테스트 자동화를 원한다면)는보다 전통적인 방식으로 작성하고 유지하는 것이 더 쉬울 것입니다. xUnit은 단위 테스트와 API 테스트에 유용합니다. 각 웹 프레임 워크에는 수정 - 빌드 - 테스트 - 배포주기에 통합 된 웹 응용 프로그램/서비스 테스트 용 도구가 있어야합니다 (예 : 장고는 작은 테스트 클라이언트를 가지고 있습니다. 당신은 많은 것을 선택했습니다.

그리고 관심있는 특정 도메인에서 더 나은 테스트 (말장난)를 위해 항상 자신 만의 도구를 작성할 수 있습니다.


하나 더 일반적인 생각, 그것은 당신의 테스트를 인코딩 (항상!) 종종 더 나은, "비즈니스 규칙"그냥 아무것도에 대한 몇 가지 간단한 해석되고 잘 정의 된 데이터의 일부 형태, 코드의 일반적인 조각. 그런 다음 문서를 생성하고, 새로운 테스트 프레임 워크로 마이그레이션하고, 새로운 환경/프로그래밍 언어로 응용 프로그램을 포팅하고, 일부 외부 규칙 또는 기타 시스템과의 일치 여부를 확인하는 데 사용합니다 (상상력 만 사용하면됩니다). 그러한 정보를 코드에서 추출하는 것이 훨씬 더 어렵습니다. 간단한 하드 코딩 된 단위 테스트 또는 비즈니스 규칙.

맞춤은 테스트 케이스를 데이터로 저장합니다. 매우 특정한 형식으로, 그것이 어떻게 사용되도록 의도 되었는가? 도메인 별 테스트는 간단한 CSV, JSON 또는 YAML과 같은 다양한 형식을 사용할 수 있습니다 (저는 XML 팬이 아닙니다).


나는이 (너무 오래) 업데이트를 작성되면서

, 나는 article by Gojko Adzic을 보았다. Fit/FitNesse에서 사람들이 IMVHO가 목적을 단순히 상실한 프로그래밍 언어처럼 테스트하는 방법에 대해 흥미 롭습니다.

4

아이디어는 당신 (프로그래머)이 엑셀 시트와 같이 이해하기 쉬운 형식을 정의한다는 것입니다. 그런 다음 제품 소유자는 비즈니스에 참여하지 않는 사람들이 이해하기 어려운 정보를 입력하고 PO가 예상대로 Fit을 실행하는 것으로 코드가 작동하는지 확인합니다. xUnit에서 사용되는 방식은 이해하기 쉽거나 간단한 정보를 입력하기 위해 프로그래머에게 사용될 수 있습니다. xUnit 테스트에 여러 필드가있는 이상한 예제를 많이 입력해야하는 경우 읽기가 어려워 질 것입니다.

나이, 결혼/단일, 금액, 임금, 활동 등을 기준으로 고객에게 대출을할지 여부를 결정해야하는 경우를 상상해보십시오. 프로그래머는 글을 쓸 수 없습니다 정보; 리스크 관리자는 xUnit 테스트를 작성할 수 없습니다.

1

회귀 및 버그 테스트에서 중복을 줄이는 데 도움이됩니다. 테스트 케이스의 관리 가능한 저장소를 구축하십시오. 그것의 한 번 빌드하고 영원히 사용하십시오.