답변:
알고리즘의 내용에 따라 사용되는 데이터 구조 / 유형 / 구성을 식별 할 수 있습니다. 그런 다음, (가능한) 약점을 이해하려고 시도하고 그러한 경우에 실행 계획을 세워보십시오.
예를 들어, 알고리즘은 문자열과 정수를 입력으로 사용하고 문자열의 문자를 정렬합니다.
여기에 우리가 있습니다 :
알려진 특수한 경우가있는 문자열 :
알려진 특별한 경우를 가진 정수 :
다음 경계 경우에 실패 할 수있는 정렬 알고리즘 :
그런 다음,이 모든 경우를 고려하여 겹치는 방식을 이해하려고 긴 목록을 작성하십시오. 전의:
이제 테스트 케이스를 만드십시오 :)
간단한 요약 : 경계 사례를 알고있는 기본 블록에서 알고리즘을 중단 한 다음 다시 조립하여 전역 경계 사례를 만듭니다.
"가장자리 (edge)"는 두 가지 의미를 지니 며, 두 가지 경우 모두에 해당합니다. 에지는 입력의 작은 변화가 출력의 큰 변화를 초래하는 영역이거나 범위의 끝입니다.
알고리즘의 가장 중요한 경우를 식별하기 위해 먼저 입력 도메인을 살펴 봅니다. 그 에지 값은 알고리즘의 에지 사례로 이어질 수 있습니다.
둘째, 출력 도메인을 살펴보고이를 생성 할 수있는 입력 값을 다시 살펴 봅니다. 이는 일반적으로 알고리즘의 문제는 아니지만 주어진 출력 도메인에 걸쳐있는 출력을 생성하도록 설계된 알고리즘에서 문제를 찾는 데 도움이됩니다. 예를 들어 난수 생성기는 모든 의도 된 출력 값을 생성 할 수 있어야합니다.
마지막으로 알고리즘을 검사하여 비슷한 입력 사례가 있지만 다른 결과를 초래하는지 확인합니다. 도메인과 입력 쌍을 모두 포함하므로 이러한 에지 사례를 찾는 것이 가장 어렵습니다.