2008-08-25 12 views
12

모델 기반 테스트에는 어떤 전략을 사용 했습니까? 모델 기반 테스트 전략

  • 는 통합 테스트를 위해 독점적으로 사용, 또는 다른 지역에 (단위/기능/시스템/사양 검증을) 밖으로 그것을 분기합니까?
  • 집중된 "봉인 된"모델을 만들거나 복잡한 onibus 모델을 시간이 지남에 따라 발전 시키나요?
  • 제품주기에 MBT를 만들 때 투자합니까?
  • MBT를 독점적으로 만드는 기본 테스트 라이브러리에는 어떤 종류가 있습니까?
  • MBT를 더 잘 지원하기 위해 기능 기반 테스트 라이브러리에서 어떤 차이점이 있습니까?

답변

1

우리는 거의 독점적으로 어떤/많은 I & T 및 사용 단위 테스트를하지 않은, 시스템 테스트의 비트와 함께 양념. 그러나 우리의 초점은 단위 테스트에 분명히 있습니다. 나는 우리가 작성/제공하는 API에 대해 매우 엄격합니다. 따라서 가정이 자체적으로 작동하면 함께 작동하고 아직 많이 잘못되지 않았습니다.

우리의 모델은 가능한 한 적은 종속성이 하나의 목적/모듈에 초점을 맞추고있다.

초점은 가능한 한 빨리 (TDD-좀)로 시작하는 것이, 그러나 불행하게도 우리는 항상 그것을 얻을하지 않습니다. 문제는 테스트를 통해 안정성 (전반적 품질 보증)이 향상되는 반면, 외부 (기술 외부)의 사람들은 문제가 발생할 때까지 그 의미와 관련이 없기 때문에 항상 경영진에게 팔아야한다는 것입니다. 우리가 PHP를 사용하기 때문에

, 우리는 단위 테스트에 대한 phpunit을를 사용합니다. 대체로 우리는 다양한 도구를 사용하여 CI를 수행합니다. :)

14

[이것에 대해 읽을 가치가있는 몇 개의 수필이 있습니다. 스택 오버플로가 나보다 더 게시하지 않습니다, 그래서 나는이 답변의 마지막에 링크 된 블로그 게시물, 그들을 집계했습니다.] 조건에 빠른 메모

첫째. 나는 제임스 바흐 (James Bach)의 테스팅 정의를 "평가를 위해 제품에 질문하는 것"으로 사용하는 경향이있다. 모든 테스트는 테스트중인 애플리케이션의/정신/모델에 의존합니다. 모델 기반 테스트라는 용어는 일반적으로 자동화를 통해 탐색 할 수있는 모델 프로그래밍을 설명하는 데 사용됩니다. 예를 들어, 응용 프로그램이 가질 수있는 여러 상태, 해당 상태 간의 다양한 경로 및 해당 상태 간의 전환시 발생해야 할 사항에 대한 특정 어설 션을 지정할 수 있습니다. 그런 다음 스크립트가 상태 모델 내에서 전환의 세미 무작위 순열을 실행하여 잠재적으로 흥미로운 결과를 기록 할 수 있습니다.

여기에는 실제 모델이 있습니다. 유용한 모델을 만들고, 탐색을위한 알고리즘을 작성하고, 흥미로운 오류에 대해 제거 할 수있는 시스템을 로깅합니다. 비용이 합리적이든 아니든간에 과 관련이 있습니다. 대답하고 싶은 질문이 있습니까? 일반적으로 "무엇을 알고 싶습니까? 흥미로운 기술에 대한 사용을 기대하기보다는 어떻게 그것에 대해 가장 잘 배울 수 있습니까?

일부 우수한 테스터 자동화 된 모델 기반 테스트에서 주행 거리를 많이 입수했습니다, 말했다 모든. 자동화 된 대용량 반 무작위 테스트를 통해 가장 잘 살펴볼 수있는 테스트중인 애플리케이션에 대한 중요한 질문이있을 수 있습니다.Harry Robinson (모델 기반 테스트의 주요 이론가이자 지지자 중 한 명)은 모델 기반 테스트 (루비의 Watir 라이브러리로 작성)를 사용하여 Google 운전 방향에서 많은 흥미로운 버그를 발견 한 매우 다채로운 예제를 설명합니다. 1

Robinson은 Bell Labs, Microsoft 및 Google 등의 회사에서 MBT를 성공적으로 사용했으며 여러 유용한 에세이를 보유하고 있습니다. [2]

Ben Simo (또 다른 위대한 테스트 사상가 겸 작가)는 모델 기반 테스트에서 상당한 가치를 지니고 있습니다. [3]

마지막으로 몇 가지주의 사항 : 전략을 잘 활용하려면 강점과 약점을 모두 탐색해야합니다. 이를 위해 제임스 바흐는 모델 기반 테스팅의 한계와 도전 과제에 대한 훌륭한 연설을하고 있습니다. 바흐의이 블로그 게시물은 긴 시간의 이야기 (그리고 관련 슬라이드)에 링크되어 있습니다. [4]

Boris Beizer가 Pesticide Paradox라고 부르는 내용에 대한 참고로 끝낼 것입니다. "버그를 예방하거나 발견하기 위해 사용하는 모든 방법은 이러한 방법이 효과가없는 약한 버그를 남겨 둡니다." 컴퓨터 또는 사람)은 살충제 역설에 특히 취약하며, 같은 스크립트가 실행될 때마다 유용하지 않은 정보를 찾는 경향이 있습니다. 사람들은 때때로 살충제 문제를 해결할 수 있다고 생각하는 모델 기반 테스트를 사용합니다. 어떤 상황에서는 모델 기반의 테스트가 스크립트 된 테스트 세트보다 훨씬 더 많은 버그를 발견 할 수 있지만, 여전히 Pesticide Paradox에 의해 근본적으로 제한된다는 것을 기억해야합니다. 한계를 기억하고 MBT의 문제를 해결하기 시작하면 매우 강력한 테스트 전략이 될 가능성이 있습니다. 위에서 언급 한 모든 논문에

링크는 여기에서 찾을 수 있습니다 : http://testingjeff.wordpress.com/2009/06/03/question-about-model-based-testing/

0

가장 좋은 방법은 모델 기반 테스트 도구 스스로하려고하는 것입니다. 모델 기반 테스팅이 당신의 맥락에서 적용되는지를 아는 가장 좋은 방법입니다. 그리고 어떤 전략이 좋은 것입니까?

나는 (www.all4tec.net)

"MaTeLo은 블랙 박스 기능 및 시스템 테스트를위한 테스트 케이스 생성. 모델 기반 테스트 방법에 따른다, MaTeLo 사용하는 당신에게 All4Tec의"MaTeLo "도구를 조언 테스트를 모델링하기위한 마르코프 체인이 통계 추가 기능을 사용하면 체계적인 방법으로 제품 유효성 검사를 수행 할 수 있습니다. 필요한 인적 자원의 감소, 모델 재사용 증가 및 테스트 전략 관련성의 향상으로 효율성이 달성됩니다 (안정성 목표) MaTeLo는 독립적이고 사용자에게 친숙하며, 테스트 스크립팅에서 실제 테스트 엔지니어링에 이르는 검증 활동에 제공하고 테스트의 진정한 부가 가치에 중점을 둡니다. "

평가판 라이센스를 요청하고 직접 시도 할 수 있습니다. http://www.all4tec.net/wiki/index.php?title=Tutorials

1

해리 로빈슨, MBT 책의 저자와 훌륭한 정보와 백서이 사이트가 구글과 마이크로 소프트에서 예를 들면 그것으로 많은 일 :

당신은 여기에 몇 가지 exemples을 찾을 수 있습니다.

http://www.geocities.com/model_based_testing/