혼돈 테스트란?

비정상 상황 테스트는 예기치 않은 오류 또는 중단을 발생시켜 소프트웨어 시스템의 복원력을 테스트하는 데 사용되는 기술입니다. 카오스 테스트는 카오스 엔지니어링이라고도 합니다. 비정상 상황 테스트의 목표는 약점을 식별하고 앱의 복원력을 향상시키는 것입니다.

비정상 상황 테스트는 시스템이 예기치 않은 방식으로 실패한다는 생각에 기반합니다. 기존 테스트 방법은 종종 이러한 예기치 않은 실패 모드를 파악하는 데 부족합니다. 비정상 상황 테스트를 사용하는 경우 서버 충돌, 네트워크 대기 시간 또는 리소스 고갈과 같은 실제 시나리오를 시뮬레이션합니다. 이러한 동작을 시뮬레이션하면 정상적인 테스트 조건에서는 분명하지 않을 수 있는 숨겨진 문제와 약점을 노출하는 데 도움이 됩니다.

다음은 혼돈 테스트에 대해 염두에 두어야 할 몇 가지 주요 사항입니다.

  • 선제적으로 대응하세요. 오류가 발생할 때까지 기다리는 대신, 비정상 상황 테스트는 시스템이 어떻게 반응하는지 확인하기 위해 오류를 사전에 도입합니다. 비정상 상황 테스트를 사용하면 주요 문제가 되기 전에 문제를 식별하고 해결할 수 있습니다.
  • 인사이트를 얻습니다. 혼돈 테스트의 목표는 실패에서 배우는 것입니다. 이를 도입하면 시스템이 스트레스를 받을 때 어떻게 동작하는지에 대한 귀중한 통찰을 얻고 해당 정보를 사용하여 개선할 수 있습니다.
  • 팀 활동을 홍보합니다. 카오스 테스트는 공동으로 수행할 때 가장 효과적입니다. 개발자, 테스터, 운영 및 기타 관련자의 입력을 원합니다. 함께 작업하면 테스트할 가장 중요한 영역을 식별하고 모든 사용자에게 정보를 알릴 수 있습니다.
  • 작게 시작하고 빌드합니다. 비정상 상황 테스트를 처음 시작할 때는 소규모로 시작하여 테스트의 복잡성을 점진적으로 늘리는 것이 좋습니다. 작게 시작하면 신뢰도를 높이고 다양한 조건에서 시스템이 어떻게 동작하는지 더 잘 이해할 수 있습니다.

요약하자면, 비정상 상황 테스트는 앱의 복원력을 향상시키는 데 도움이 되는 강력한 기술입니다. 오류를 사전에 도입하고 학습함으로써 주요 문제가 되기 전에 문제를 식별하고 해결할 수 있습니다.

앱에서 호출하는 API에 대한 카오스 테스팅

카오스 테스팅은 종종 서버, 네트워크 및 컨테이너와 같은 인프라에 중점을 둡니다. 앱이 API에 의존하는 경우 사용자가 알아차리는 오류 중 일부는 이러한 API에서 비롯됩니다. 예를 들어 결제 공급자의 429, GitHub 또는 OpenAI의 500, 또는 80밀리초 대신 8초가 걸리는 응답이 있습니다. 개별 API 응답 수준에서 이러한 종속성에 동일한 비정상 상황 테스트 아이디어를 적용할 수 있습니다.

  • 오류. 임의로 5xx오류를 반환하고 앱이 다시 시도해도 안전한 항목을 다시 시도하며, 나머지 경우에는 유용한 메시지를 표시하는지 확인합니다.
  • 속도 제한 429 헤더와 함께 Retry-After를 반환하고 앱이 다시 호출하기 전에 대기하는지 확인합니다.
  • 대기 시간. 응답을 지연시키고 시간 제한, 로딩 스피너 및 응답이 순서가 잘못되어 도착할 때 어떻게 되는지 확인합니다.
Approach 찾은 내용 놓친 내용
프로덕션을 기다리세요 실제 실패 사용자가 누르기 전까지 모든 것
테스트에서 API를 모의 처리하거나 코딩 에이전트가 모의 개체를 작성하도록 허용 사용자의 오류 분기가 실행되는지 여부 API의 실제 오류 형식, SDK의 재시도 정책 및 실행 중인 앱의 동작 방식 또한 mock에 도달하려면 앱에 테스트 전용 스위치가 필요합니다.
실제 인프라를 중단하세요(예: 서비스 종료 또는 네트워크 트래픽 차단) 시스템이 중단에 대처하는 방법 특정 오류 코드 또는 Retry-After 헤더와 같은 API 수준 실패
앱의 실제 트래픽을 가로채고 API 오류를 삽입합니다. 선택한 빈도로 실제 URL의 오류, 제한 및 대기 시간 인프라 장애. 그러한 경우에는 인프라 카오스 엔지니어링 도구를 사용합니다.

앱에서 사용해 보기

Dev Proxy는 실제 URL을 계속 호출하는 동안 앱에 API 오류를 도입합니다. 코드를 변경하지 않고 모든 유형의 앱과 호환되며 모든 기술 스택에서 작동합니다. 예를 들어 임의 오류로 API에 대한 요청의 절반이 실패하도록 하려면 임의 오류로 내 앱 테스트를 수행하고 느리게 하려면 느린 API 응답 시뮬레이션을 참조하세요. CI 파이프라인에서 동일한 테스트를 실행하려면 CI/CD에서 Dev Proxy 사용을 참조하세요.

다음 단계