2014-03-13 4 views
5

Java에서 퍼지 테스트를위한 유연한 프레임 워크가 있습니까?Java 퍼지 테스트 용 라이브러리

퍼즈 테스트 나 보풀이의 입력에 유효하지 않은 예상치 못한, 또는 임의의 데이터를 제공하는 것을 포함하는 소프트웨어 테스팅 기술, 종종 자동 또는 반자동이며, 다음과 같이

Wikipedia article on Fuzz testing

는 퍼징을 정의 컴퓨터 프로그램. 그런 다음 프로그램은 충돌 또는 내장 코드 어설 션 실패 또는 잠재적 인 메모리 누수 찾기와 같은 예외에 대해 모니터됩니다. 퍼지는 일반적으로 소프트웨어 또는 컴퓨터 시스템의 보안 문제를 테스트하는 데 사용됩니다.

나는 Erlang과 같은 프레임 워크가 있다는 것을 알고 있습니다. 어떤 힌트라도 환영합니다.

+0

가능한 중복 : http://stackoverflow.com/questions/1099124/looking-for-a-java-fuzzing-library-or-fuzzer-tool-with-a-good-api –

+0

은 아마 당신이 줄 하나 시도해보십시오 : https://code.google.com/p/terot/ 또는이 하나 : http://people.csail.mit.edu/akiezun/jfuzz/ – mhafellner

+0

Simliar : http://stackoverflow.com/ 질문/32458/random-data-in-unit-tests. http://pitest.org도 있지만 테스트를 "테스트"하기 위해 실제로 코드를 수정하므로 실제로 원하는 것과 동일하지 않습니다. 난 randomising 데이터에 대한 http://github.com/rickynils/scalacheck 사용하고 꽤 잘 작동합니다. –

답변

1

마치 Java port of Quickcheck 인 것처럼 보입니다.

빠른 검사의 목표는 수동으로 선택한 값을 생성 된 값으로 바꾸는 것입니다. QuickCheck 기반 테스트는 도메인의 법칙을 다루려고 시도하지만, 클래식 테스트는 고유 값의 유효성 만 테스트 할 수 있습니다.

기본적으로 빠른 검사는 데이터 생성기입니다. QuickCheck 러너 메소드는 루프 구현에만 유용합니다. QuickCheck는 모든 종류의 테스트 사례를 테스트해야하는 시나리오에서 도움이 될 수 있으며 모든 다른 테스트 시나리오에 대한 테스트를 작성할 수는 없습니다.

+3

Quickcheck는 실제로 퍼지 테스트의 * 반대 *입니다. 빠른 검사를 사용하면 비즈니스 규칙과 일치하는지 테스트 할 수있는 다양한 입력 범위를 정의 할 수 있습니다. 퍼지 테스팅은 반대 개념입니다. 시스템에서 _ 입력하는 입력을 찾아야합니다. – Marco