2009-05-05 2 views
1

내 응용 프로그램의 API 부분에 대한 BDD 영감 된 단위 테스트를 구성하고 있습니다.일반 API에 대한 BDD 시나리오에 대한 제안 사항?

  • 일반 사용 (네, 알아요, BDD는 도메인과 정장 이야기에 대해 있어야하는데,하지만 난 오히려 첫번째 보이지 뭔가 BDD를 시도 것). 개발자는 일반적인 매개 변수 값을 사용하여 API 메소드를 사용합니다.

  • 익스트림 사용. 개발자는 비정상적으로 크거나 작은 매개 변수를 사용하는 API를 호출합니다. 예 : zip() 메서드에 2GB 파일이 전달됩니다.

  • API 남용. 개발자는 미친 매개 변수를 사용하여 API를 호출? - 무슨 미친 프로그래머, 오른쪽 정수 매개 변수에 날짜를 전달할 것 - 매개 변수 등 해킹

  • 악성 잊어 있습니다. 개발자 은 이 의도하는 API에 신경 쓰지 않고 대신 임의의 코드를 실행하는 방법을 찾고 있습니다. 테스트에는 을 어디에서나 실행할 수 있는지 알아보기 위해 JavaScript, SQL 이 포함됩니다.

다른 시나리오를 고려해야합니까?

답변

1

물론 더 많은 시나리오를 고려해야합니다. 사실상 무한대의 시나리오 풀이 있습니다. 그것은 정말로 극단적으로 끝이없는 질문입니다.

악의적 인 해킹 시나리오에 관해서는 버퍼 오버 플로우에 대한 명백한 부분을 신경 쓰고 확인 된 보안 취약점에 대한 테스트를 계속해야하므로 실수로 다시 열지 않아야합니다. 그리고 언제든지 확인 된 취약점을 확인하고 비슷한 프로그래밍 기법과 패턴을 사용하는 코드의 모든 부분을 찾아내어 사전 테스트/수정합니다. 그러나 많은 경우에 퍼징을하면 더 나은 결과를 얻을 수 있습니다. 자동화 된 테스트는 보안 문제를 처리하는 중요한 부분이지만 도구 상자의 기본 도구가 될 수는 없습니다.

다른 고려 사항은 데이터와 관련이 있습니다. 예를 들어 날짜를 파싱 할 때 2/29/2009 또는 9/31/2009와 같은 항목을 처리해야합니다. 가능하다면, 1900 년 1 월 1 일과 2038 년 12 월 31 일을 처리하려고 시도하십시오 (귀하의 도서관에서 귀하를 허용하지 않을 수도 있음).

당신이 할 수있는 한 가지 일은 만들고있는 모든 라이브러리 호출에 대한 문서를 확인하고, 어떤 조건 하에서 어떤 예외가 던져 졌는지 알아 내고, 의도적으로 그 예외를 트리거 할 입력을 찾으려 고 시도한 다음 라이브러리 코드의 경우 문서화 된 예외 사항을 처리하는지 확인하는 테스트가 있습니다.

코드 커버리지 도구 및 코드 변이는 이전에 다루지 않은 시나리오를 식별하는 데 도움이 될 수 있습니다.

관련 문제