복구 테스트란 무엇입니까? 예를 들어

⚡ 스마트 요약

복구 테스트는 시스템을 정상 작동 상태였던 시점으로 복원하고 오류 발생 직전까지의 트랜잭션을 재처리하여 소프트웨어가 충돌, 네트워크 끊김 또는 하드웨어 오류 후에도 정상적으로 작동을 재개할 수 있는지 확인하는 테스트입니다.

  • 🔁 이것이 증명하는 것: Opera재난 발생 후에도 백업 파일이 존재한다는 사실만으로는 충분하지 않습니다.
  • 🧩 위치: 훈련된 테스터가 보안 백업 데이터를 대상으로 실행하는 비기능적 기법입니다.
  • ⏱️ 복구 시간 요인: 재시작 지점, 데이터 용량, 그리고 복구팀의 기술과 도구.
  • 🔄 프로세스 형태: 정상 운영, 재난, 운영 중단, 복구, 그리고 정상 상태로의 재건.
  • 💾 전략적 선택: 단일 또는 다중 백업, 한 사이트 또는 여러 사이트, 온라인 또는 오프라인, 자동 또는 수동 백업.
  • 복원 후: 원본 폴더와 파일 수를 비교하고, 여러 유형의 파일을 열고, 시스템 유틸리티를 사용하여 디렉터리를 비교합니다.

소프트웨어 테스트에서 복구 테스트란 무엇이며, 예시는 무엇인가요?

회복 테스트란 무엇인가요?

복구 테스트 복구 테스트는 소프트웨어 또는 하드웨어 충돌, 네트워크 오류와 같은 장애 발생 후 소프트웨어가 복구될 수 있는 능력을 검증하는 소프트웨어 테스트 기법입니다. 복구 테스트의 목적은 재해 또는 무결성 손실 후에도 소프트웨어 작업이 지속될 수 있는지 여부를 확인하는 것입니다. 복구 테스트는 소프트웨어를 무결성이 유지되었던 시점으로 되돌리고, 장애 발생 시점까지의 트랜잭션을 다시 처리하는 방식으로 진행됩니다.

소프트웨어 엔지니어링에서 복구 가능성 테스트는 일종의 테스트 유형입니다. 비기능 테스트 — 이는 확장성이나 보안과 같이 특정 기능이나 사용자 동작과 관련되지 않은 측면을 다룹니다. 전문 테스터가 테스트를 수행하며, 사전에 충분한 백업 데이터를 안전한 장소에 보관합니다.

복구 테스트 예

두 가지 시나리오를 통해 이 기법의 가장 간단한 형태를 보여줍니다. 각 시나리오에서는 의도적으로 오류를 발생시킨 후, 애플리케이션이 다시 작동하는 모습을 관찰합니다.

  • 네트워크 중단: 애플리케이션이 네트워크에서 데이터를 수신하는 동안 연결 케이블을 뽑습니다. 잠시 후 케이블을 다시 연결하고 연결이 끊어졌던 지점부터 애플리케이션이 데이터를 계속 수신할 수 있는지 분석합니다.
  • 세션 복원: 브라우저에 특정 개수의 세션이 열려 있는 상태에서 시스템을 재시작하고, 브라우저가 모든 세션을 복구하는지 확인하십시오.

아래 그림은 같은 개념을 시각적으로 표현한 것입니다.

시스템 장애 발생 후 정상 작동 상태로 복구되는 과정을 보여주는 복구 테스트 개념.

복구에 소요되는 시간은 다음에 따라 달라집니다.

  • 재시작 지점 수
  • 애플리케이션이 보유한 데이터 용량
  • 회복 활동을 수행하는 사람들의 훈련 및 기술, 그리고 회복에 사용할 수 있는 도구

여러 오류가 발생했을 경우, 복구 테스트는 한꺼번에 모두 수행하기보다는 구조화된 방식으로, 즉 한 부분씩 순차적으로 수행해야 합니다.

복구 프로세스의 수명주기

테스트 케이스를 설계하기 전에 복구 테스트가 어디에 개입하는지 파악하는 것이 도움이 됩니다. 복구 프로세스의 수명 주기는 다섯 단계로 구성됩니다.

  1. 정상 작동
  2. 재해발생
  3. 작업 중단 및 실패
  4. 복구 프로세스를 통한 재해 정리
  5. 모든 프로세스와 정보를 재구성하여 전체 시스템을 정상 작동 상태로 되돌립니다.

아래 흐름도는 다섯 단계를 순서대로 보여줍니다.

정상 운영, 재해, 중단, 복구 및 재건을 포괄하는 복구 프로세스 흐름도의 생명주기

이제 이 다섯 단계를 자세히 살펴보겠습니다.

  1. 정상 작동. 공통의 목표를 달성하기 위해 통합된 하드웨어, 소프트웨어 및 펌웨어 시스템은 정해진 기간 내에 중단 없이 설계된 작업을 수행합니다.
  2. 재난 발생. 소프트웨어 오작동, 입력 오류로 인한 오작동, 하드웨어 고장으로 인한 충돌, 화재, 도난 또는 파업으로 인한 손상 등 다양한 원인으로 인해 서비스 중단이 발생할 수 있습니다.
  3. 혼란과 실패. 이는 가장 고통스러운 단계로, 사업 손실, 관계 악화, 기회 상실, 노동 시간 낭비, 그리고 필연적으로 금전적 손실과 기업 이미지 손실로 이어집니다. 재해 복구 계획은 이러한 단계의 피해를 최소화하는 데 도움이 됩니다.
  4. 재난 복구. 백업 계획과 위험 완화 프로세스가 이미 마련되어 있다면 복구에 드는 시간과 노력을 크게 줄일 수 있습니다. 각자의 역할이 사전에 정의된 전담팀은 책임 소재를 명확히 하고 장기간의 업무 중단을 방지합니다.
  5. 재건. 이 과정은 모든 폴더와 구성 파일을 재구축하기 위해 여러 차례의 작업 세션을 필요로 할 수 있습니다. 올바른 복구를 위해서는 적절한 문서화와 명확하게 정의된 재구축 프로세스가 필수적입니다.

복원 전략

복구팀은 운영을 정상화하기 위해 중요한 코드와 데이터를 복구하는 자체 전략을 가지고 있어야 합니다. 이 전략은 각 조직이 관리하는 시스템의 중요도에 따라 고유하며, 중요 시스템의 경우 다음과 같은 몇 가지 선택 사항으로 귀결됩니다.

  1. 단일 백업 또는 여러 백업
  2. 여러 백업을 한 곳에 저장하거나, 여러 곳에 저장할 수 있습니다.
  3. 온라인 백업 또는 오프라인 백업
  4. 백업은 정책에 따라 자동으로 실행되거나 수동으로 실행될 수 있습니다.
  5. 독립적인 복원팀 또는 작업을 수행하는 개발팀

각 선택에는 비용 요소가 있으며, 여러 백업을 사용할 경우 더 많은 물리적 자원을 소비하거나 별도의 팀이 필요할 수 있습니다. 의존성 또한 중요합니다. 기업은 단일 공급업체에 보관하는 코드와 데이터를 통해 취약점에 노출될 수 있으며, 대규모 백업은 이러한 위험을 더욱 가중시킵니다. AWS 정전 사태로 인해 유명 소비자 서비스들이 동시에 중단되는 경우가 반복적으로 발생했습니다. 이러한 상황에서는 독립적인 복구 능력이 매우 중요합니다.

복구 테스트 수행 방법

전략이 정해졌으니, 다음 질문은 테스트 자체를 어떻게 설정할 것인가입니다. 복구 테스트를 수행할 때 다음 사항들을 고려해야 합니다.

  • 실제 배포 환경과 최대한 유사한 테스트 환경을 구축하십시오. 인터페이스, 프로토콜, 펌웨어, 하드웨어 및 소프트웨어는 프로덕션 환경과 동일해야 합니다.
  • 철저한 테스트는 시간과 비용이 많이 소요될 수 있지만, 동일한 구성으로 완벽한 점검을 수행하는 것은 여전히 ​​중요합니다.
  • 가능하다면, 특히 백업을 생성한 컴퓨터와 다른 컴퓨터에 복원하는 경우, 최종적으로 복원할 하드웨어에서 테스트하십시오.
  • 일부 백업 시스템에서는 하드 드라이브의 크기가 백업을 가져온 드라이브의 크기와 정확히 동일할 것으로 예상합니다.
  • 노후화 관리: 드라이브 기술은 빠르게 발전하므로 오래된 드라이브는 새 드라이브와 호환되지 않을 수 있습니다. 복원을 통해 가상 머신 가상화 소프트웨어는 디스크 크기를 포함하여 기존 하드웨어를 모방할 수 있으므로 도움이 됩니다.
  • 온라인 백업 시스템도 테스트 대상에서 예외는 아닙니다. 대부분의 제공업체는 내결함성 스토리지를 통해 미디어 문제로부터 사용자를 보호하므로 오류가 발생하더라도 늦게 드러납니다.
  • 온라인 백업 시스템은 매우 안정적이지만, 복원 과정에서 복구, 보안 또는 암호화에 문제가 없는지 확인하기 위해 테스트를 거쳐야 합니다.

회복 훈련은 경기 전반에 걸쳐 진행되기 때문에 이러한 훈련은 보통 다른 훈련과 함께 계획됩니다. 시스템 테스트 단위 수준이 아니라.

복원 후 테스트 절차

데이터 복원은 절반의 과정일 뿐입니다. 복원된 데이터가 실제로 사용 가능한지 검증해야 합니다. 대부분의 대기업은 독립적인 감사 기관에 의뢰하여 정기적으로 복구 훈련을 실시합니다. 포괄적인 재해 복구 계획을 수립하고 테스트하는 데에는 상당한 비용이 소요되므로, 소규모 조직은 백업 및 오프사이트 저장소에 의존하는 경우가 많습니다.

폴더와 파일 복원이 완료되면 다음 검사를 통해 복원이 제대로 되었는지 확인합니다.

  • 손상된 문서 폴더의 이름을 변경하여 복원된 사본과 혼동되지 않도록 하십시오.
  • 복원된 폴더의 파일 수를 세고, 그 수를 원래 폴더의 파일 수와 비교하십시오.
  • 평소에 사용하는 애플리케이션으로 몇 개의 파일을 열고, 데이터가 평소처럼 탐색 및 업데이트되는지 확인하십시오.
  • 사진, 파일 등 다양한 유형의 파일을 여러 개 엽니다. MP3크고 작은 여러 문서들이 있습니다.
  • 대부분의 파일 및 디렉터리 비교 유틸리티를 사용하십시오. 운영체제 제공하십시오.

자주 묻는 질문

장애 조치 테스트는 트래픽이 대기 노드로 원활하게 전환되는지 확인합니다. 복구 테스트는 한 단계 더 나아가 원래 서비스, 해당 데이터 및 진행 중인 트랜잭션이 올바른 상태로 복원되는지 확인합니다.

RTO는 서비스를 복구하는 데 허용되는 시간이고, RPO는 허용 가능한 데이터 손실률입니다. 복구 테스트는 이 두 가지를 모두 측정합니다. RTO를 측정하기 위해 복구 시간을 측정하고, RPO를 측정하기 위해 복구된 데이터를 마지막으로 정상 작동했던 상태와 비교합니다.

세 가지 유형이 반복적으로 나타납니다. 사이트 전체 장애에 대한 재해 복구, 손상된 데이터 저장소에 대한 데이터베이스 복구, 그리고 구성 또는 종속성 오류에 대한 환경 복구입니다. 각 유형은 서로 다른 장애 발생 트리거를 제외하고는 동일한 수명 주기를 따릅니다.

머신러닝 모델은 장애 이력 및 종속성 깊이를 기준으로 서비스 순위를 매기므로 가장 위험한 복구 경로가 먼저 실행됩니다. 복구 로그에 대한 이상 탐지 기능은 완료되었지만 불완전한 데이터를 생성한 실행도 표시합니다.

GitHub 부조종사 오류 주입 도우미, 복구 스크립트 및 복구 후 검증을 신속하게 작성할 수 있습니다. 테스터는 어떤 오류를 강제로 발생시킬지, 그리고 올바르게 복구된 상태가 어떤 모습일지를 여전히 결정해야 하는데, 이는 모두 비즈니스 규칙을 따라야 하기 때문입니다.

연례 훈련은 일반적이며, 중요 시스템의 경우 분기별 훈련이 실시됩니다. 백업 도구, 스토리지 플랫폼 또는 아키텍처에 변경 사항이 발생하면 새로운 훈련을 실행해야 합니다. 테스트되지 않은 변경 사항은 이전 결과를 자동으로 무효화하기 때문입니다.

이는 실제 실패를 초래하므로 다음과 겹칩니다. 파괴적인 테스트하지만 목표는 파괴가 아니라 복구입니다. 실제 운영 데이터가 아닌 격리된 테스트 환경에서 실행하십시오.

주입된 오류, 시작 및 종료 시간, 측정된 RTO 및 RPO, 수동 개입이 필요했던 단계, 복원된 데이터에서 발견된 모든 불일치를 기록하십시오. 시정 조치와 재시험 날짜를 추가하십시오.

이 게시물을 요약하면 다음과 같습니다.