TIL - 순열 생성 및 API 레벨 테스트

오늘 나는 배웠다...

API 레벨 테스트를 위한 순열 및 패턴 생성 방법!

순열 생성



새로운 프로그래밍 문제를 해결하려고 시도하는 동안 배열의 모든 순열을 생성하는 것과 관련이 있음을 인식했습니다. 세대 순서에서 순열을 놓쳐서 완벽하게 풀지는 못했지만, 깊이 파고들어 패턴을 내재화했습니다.

이 방법에는 Divide and Conquer, Swaping 및 Backtracking이 포함됩니다.

즉, 이 방법은 지금까지 본 적이 없는 요소를 가지고 있는 요소로 교체하여 배열의 모든 순열을 생성하는 것입니다.

분할 및 정복 부분은 배열의 길이를 0 -> i의 접두사와 i -> end의 접미사라는 두 부분으로 나누는 것에서 비롯됩니다. 접미사는 기본적으로 접두사 부분이 완료된 것으로 간주하여 원래의 작은 하위 문제가 되므로 분할 및 정복이 됩니다.

스와핑은 [1, 2, 3]의 배열이 순서가 잘못된 유효한 순열[2, 1, 3]을 가지므로 다른 순열을 생성하기 위해 접두사와 접미사의 요소를 교환하는 데 사용됩니다. 스와핑은 순서가 맞지 않게 만듭니다.

역추적은 첫 번째 인덱스를 두 번째 인덱스로 바꿀 수 있기 때문에 스왑 후 이전 상태로 돌아가는 것입니다. 하지만 첫 번째 인덱스를 세 번째 인덱스와 바꿀 수도 있도록 해당 프로세스를 되돌리고 싶습니다.

기본 사례는 접두사가 전체 배열이 되었음을 의미하므로 현재 인덱스가 배열의 길이와 동일한 경우입니다. 이는 순열 생성 경로를 완료했음을 나타냅니다.


Leetcode 이미지에서 순열을 생성하는 간단한 예

의사 코드는 다음과 같습니다.

def outerFunction():
    initialize vars needed

    helperFunction()

def helperFunction(array, start_index):
    if (start_index == len(array)):
        Do base case work here
        return;

    for (i = start_index; i < len(array); i++):
        swap(start_index, i)
        helperFunction(array, start_index + 1)
        swap(start_index, i)

    return;

API 레벨 테스트 패턴



또한 생산성 추적기에 대한 API 레벨 테스트 패턴도 조사했습니다. API를 테스트해야 하는 경우(상태 코드, 응답 본문, 응답 헤더 등)와 API 수준 테스트에서 모의할 내용 등 많은 정보를 배웠습니다.

제 경우에는 엔드투엔드에서 API 레벨 테스트를 자동화하려고 하므로 일반적으로 외부 라이브러리/API를 포함하여 테스트하려는 항목 이외의 항목만 조롱해야 한다는 것을 배웠습니다.

또한 API 구현에 따라 보안 그룹, 인증, 헤더, 쿠키에 대해 서로 다른 테스트 사례를 처리해야 합니다.

또한 사람들이 API를 개발하는 데 사용하는 일반적인 패턴이 실제 API 백엔드와 모의 API를 조합하는 것임을 알게 되었습니다. real-api 백엔드는 일단 API가 구현되면 유지/활용되는 반면 모의 백엔드는 새로운 기능을 위한 것이고 프런트엔드 작업자를 차단하지 않도록 신속하게 만들어집니다.

이 패러다임은 가능한 한 아무것도 하지 않고 보내는 시간을 줄입니다.

좋은 웹페이지 즐겨찾기