티스토리 뷰

유지보수에는 여러 범주가 있으며, 이는 환경 변화에 적응하거나 성능 또는 유지보수성을 개선하거나 결함을 수정하는 것일 수 있다(ISO/IEC 14764). 유지보수는 계획된 릴리스/배포와 비계획적 릴리스/배포(핫픽스)를 포함할 수 있다. 변경 사항이 시스템의 다른 영역에 미칠 잠재적 결과를 기반으로 변경 여부를 결정하기 위해, 변경이 이루어지기 전에 영향 분석을 수행할 수 있다. 운영 중인 시스템에 대한 변경 사항 테스트는 변경 구현의 성공 여부를 평가하고, 변경되지 않은 시스템 부분(대개 시스템의 대부분)에서 발생할 수 있는 회귀를 확인하는 것을 포함한다.

QA종사자라면 현업에서 가장 빈번하게, 그리고 기본적으로 수행하게 될 업무 중 하나이다.

 

유지보수 테스트


1. 유지보수 테스트의 범위

유지보수 테스트의 범위는 일반적으로 다음 요소에 따라 결정된다.

  • 변경 사항의 리스크 정도
  • 기존 시스템의 규모
  • 변경 사항의 규모

1-1. 유지보수와 유지보수 테스트의 트리거

유지보수와 유지보수 테스트의 트리거는 다음과 같이 분류할 수 있다.

  • 수정: 계획된 기능 향상(릴리스 기반), 수정 변경 또는 핫픽스와 같은 경우.
  • 업그레이드 또는 마이그레이션: 한 플랫폼에서 다른 플랫폼으로의 환경 전환과 같이, 새 환경과 변경된 소프트웨어와 관련된 테스트, 또는 다른 애플리케이션의 데이터를 유지보수 대상 시스템으로 마이그레이션할 때 데이터 변환 테스트가 요구되는 경우.
  • 폐기: 애플리케이션이 수명을 다했을 때. 시스템이 폐기될 때는 데이터 보관이 요구될 경우 데이터를 보관하는 테스트가 필요할 수 있다. 데이터 보관 기간 중 특정 데이터가 필요할 경우, 보관 후 복구 및 검색 절차를 테스트하는 것도 요구될 수 있다.

1-2. 해외 유명 기업에서의 유지보수 테스트 사례

1-2-1. 마이크로소프트 보안 패치

준비 과정

  • 패치의 변경 사항을 문서화하고, 영향을 받을 수 있는 시스템 목록을 작성한다.
  • 다양한 하드웨어 및 소프트웨어 조합에서 테스트할 수 있도록 테스트 환경을 설정한다.

테스트 실행

  • 패치를 적용한 후 시스템의 기능 테스트 및 보안 취약점을 점검한다.
  • 자동화된 테스트 스크립트를 사용하여 반복적인 테스트를 수행한다.

결과 공유

  • 테스트 결과를 팀 회의에서 발표하고, 문제 발생 시 즉각적인 피드백을 제공한다.
  • 패치의 성공적인 적용 여부를 문서화하여 배포한다.

후속 조치

  • 사용자 커뮤니티에서의 피드백을 모니터링하고, 필요 시 추가 패치를 배포한다.
  • 보안 문제가 발생할 경우 긴급 대응 팀을 구성한다.

1-2-2. 애플 iOS 업데이트

준비 과정

  • 업데이트의 변경 사항을 문서화하고, 영향을 받을 수 있는 기기 목록을 작성한다.
  • 다양한 기기에서 테스트 환경을 설정한다.

테스트 실행

  • 업데이트를 적용한 후, 다양한 기능을 테스트하여 성능 및 안정성을 확인한다.
  • 사용자 인터페이스(UI) 및 사용자 경험(UX) 테스트를 포함한다.

결과 공유

  • 내부 팀과의 회의를 통해 테스트 결과를 공유하고, 문제 발생 시 즉각적인 피드백을 제공한다.
  • 사용자 피드백을 수집하여 업데이트에 반영한다.

후속 조치

  • 업데이트 후 사용자 커뮤니티에서의 피드백을 모니터링하고, 필요 시 추가 패치를 배포한다.
  • 지속적인 성능 모니터링을 통해 문제를 조기에 발견하고 해결한다. 

1-3. 유지보수 테스트 미흡으로 인한 재앙적 사례

1-3-1. 테라노스

사건 개요

테라노스는 혈액 검사 기술을 개발하는 스타트업으로, 유지보수 테스트가 부족하여 제품 신뢰성을 잃었다. 이로 인해 잘못된 검사 결과가 나오고 환자들에게 심각한 건강 문제가 초래됐다.

 

재정적 손실

  • 테라노스는 9억 달러 이상의 투자금을 잃었으며, 2018년에 파산했다.

신체적 피해

  • 잘못된 검사 결과로 인해 환자들이 잘못된 치료를 받거나 필요한 치료를 받지 못하는 상황이 발생했다.

후속 결과

  • CEO 엘리자베스 홈즈는 잘못된 정보를 제공한 혐의로 기소됐고, 2022년 11월에 11년 3개월의 징역형을 선고받았다.
  • 이 사건은 실리콘밸리에서 큰 주목을 받았으며, 투자자들에게 8억 달러의 손해배상 청구가 있었다.

1-3-2. 보잉 737 맥스

사건 개요

보잉 737 맥스 항공기는 소프트웨어 결함으로 인해 두 차례의 치명적인 사고가 발생했다. 유지보수 테스트가 제대로 이루어지지 않아 결함이 발견되지 않았다.

 

재정적 손실

  • 보잉은 이 사건으로 200억 달러 이상의 손실을 입었고, 항공기 생산이 중단됐다.

신체적 피해

  • 두 사고로 인해 346명이 사망했다.

1-3-3. 마이크로소프트 윈도우 비스타

사건 개요

윈도우 비스타는 출시 후 여러 성능 문제와 보안 취약점이 발견됐다. 유지보수 테스트가 부족하여 이러한 문제가 발생했다.

재정적 손실

  • 비스타의 실패로 인해 마이크로소프트는 수십억 달러의 손실을 입고 사용자 신뢰를 잃었다.

신체적 피해

  • 보안 취약점으로 인해 해킹과 데이터 유출 사건이 발생했고, 사용자 데이터가 위험에 처했다.

후속 결과

  • 마이크로소프트는 비스타 출시 후 성능 저하와 호환성 문제로 사용자 불만을 받았다.
  • 문제를 해결하기 위해 2009년에 윈도우 7을 출시했고, 이는 비스타의 문제를 상당 부분 개선했다.

1-4. 유지보수 테스트의 중요성

위 사례들은 유지보수 테스트의 부족이 재정적 손실, 신체적 피해, 기업 이미지 손상으로 이어질 수 있음을 보여준다. 유지보수 테스트는 소프트웨어의 신뢰성과 안전성을 보장하기 위한 필수적인 과정이다.