규제 대상 산업에서의 소프트웨어 테스트 수행

by | Mar 15, 2024

디지털이 도입되고 소프트웨어 기술이 급속하게 성장하는 오늘날, 많은 기술 산업 분야가 규제 대상 산업이 되었다. 그런데 더 많은 기술이 도입됨에 따라 더 많은 소프트웨어가 필요해졌다. 따라서 더 많은 소프트웨어 테스트를 수행해야 하는 것은 당연지사다. 이 글에서는 이 규제 대상 분야에서 수행해야 하는 소프트웨어 테스트의 고유한 속성, 과제, 고려해야 할 사항에 대해 다루고자 한다.

“규제 대상”산업의 정의

특정한 규정, 규제 또는 정부가 내세우는 요건에 따라 소프트웨어를 활용하는 사업체, 기관 또는 조직이다. 요건의 책임과 추적성은 문서화되고 외부 단체의 감사를 받아야 한다.

많은 산업에는 구체적인 지침이 있고, 분야에 따라 세세하게 차이가 있다. 하지만 이 글에서는 중요한 규정 준수 표준 또는 법률의 적용을 받는 산업을 “규제 대상” 산업이라고 한다.

대부분의 경우 이런 관리 표준은, 이 표준이 요구 사항으로 발전하고 검증되는 방식에 대한 깊이, 민첩성, 전반적인 소프트웨어 개발 수명 주기(SDLC)에 영향을 미친다.

아래는 이런 분야 중 일부 예시다:

  • 의료 서비스
  • 제조업
  • 은행/금융
  • 에너지
  • 통신
  • 운송
  • 농업
  • 생명 과학

고유한 요구 사항

이런 환경에서 소프트웨어 품질/테스트 요구 사항을 분석할 때 팀이 직면할 수 있는 일반적인 특성은 다음과 같다:

  • 디지털 개인 정보 보호법(예: HIPAA, 미국 환자의 개인 의료 정보를 보호하는 규정)의 시행
  • 상세한 시스템의 작업의 상세한 감사 기록/로깅
  • 재해 복구 및 전체 데이터 보존 규정(예: HITRUST, 글로벌 개인 정보 보안 프레임워크)의 시행
  • 추적성 및 감사 “준비 완료 상태”에 대한 높은 기준
  • 정부 규정 준수 및/또는 감독(예: 식품의약품안전처, FDA)

이런 일반적인 규제 요건은 테스트 수행을 계획 및 실행하는데 매우 중요하다. 뿐만 아니라 감사 및 추적성 뒷받침을 위해 필수적인 아티팩트의 기록 품질을 확립하는 데에도 매우 중요하다.

테스트 수행의 고려 사항과 계획

많은 테스터들과 그 팀들은 SDLC에서 초기부터 참여할 수 있게 시프트-레프트(Shift-Left) 같은 패러다임을 적극적으로 활용한다. 개발 및 테스트 수행을 통한 초기 요구 사항 계획의 일환으로, 이 규제된 산업 내에서 특별한 고려가 필요하다.

요구 사항과 추적성

  • 수작업과 자동화된 테스트 결과들을 위해 중앙 집중식 테스트 리포지토리를 사용하는 것이 중요하다.
  • 테스트와 요구 사항은 밀착 결합이 되어야 하고 문서화되어야 한다.
  • 제품 소유자들과 이해관계자들은 사용자 승인 테스트 (acceptance testing) 수행 및 데모에 참여해야 한다. 이는 규정을 준수를 확실히 하기 위해서이다.
  • 테스트 관리 플랫폼은 Jira와 같은 요구사항 추적 플랫폼과 완전하게 통합되어야 한다.

그림: TestRail과 Jira의 통합은 규정 준수 규제들과 호환된다. 또한 그 어떤 워크플로에도 통합할 수 있을 만큼 충분히 유연하다. 따라서 기능과 통합 간의 균형을 이룬다.

팀은 요구 사항과 추적성을 정의하고 관리하기 위해 프로세스를 확립해야 한다. 그 후에는 테스트 기록의 품질에 액세스 가능한 것뿐만 아니라 필요한 사람만 액세스할 수 있게 제한하는 것이 중요해진다.

테스트 기록의 정확성과 신뢰성이 중요한 역할을 하게 될 수도 있는 감사 상황에서는 이런 통제된 액세스가 특히 중요하다. 액세스 제어에 대한 이런 접근 방식을 흔히 “최소 권한 원칙”이라고 한다.

그림: TestRail 엔터프라이즈의 역할 기반 액세스 제어를 사용하면, 프로젝트 별로 접근 및 관리 권한을 위임할 수 있다.

테스트 기록 액세스 제어

  • 테스트 관리 기록 액세스를 최소한으로 제한하여, 팀 구성원에게 제공하라.
  • 오직 현재 활동하고 있는 팀 구성원들만이 테스트 기록 액세스할 수 있는지 확인하라.
  • 동료 검토와 승인 문화를 정착시켜라. 그러면 품질과 테스트의 정확도가 높아진다 .

그림: TestRail 엔터프라이즈 팀즈은 테스트 케이스가 조직의 표준을 충족하도록 보장하는 테스트 케이스 승인 절차를 시행할 수 있다.

테스트 케이스와 테스트 실행은 수작업 혹은 TestRail CLI 같은 테스트 자동화 통합을 사용해 생성된다. 그 때문에 이 활동에 대한 지속적인 감사 로깅을 유지하는 것이 중요하다. 규제 대상 산업에서는, 감사 요건과 “샘플링”을 통해 요건에 따라 생성 및 실행된 특정 테스트의 이력과 완성도를 조사해야 할 수 있다.

그림: TestRail 엔터프라이즈의 감사 로깅 시스템은 관리자가 TestRail 인스턴스 내의 다양한 엔티티 변화를 추적하는 데 도움이 된다. 감사 로깅이 활성화된 경우 관리자는 설치된 모든 엔터티를 추적할 수 있다.

감사 이력

중요한 건 테스트 케이스 생성과 실행의 이력 데이터를 볼 수 있는 로그를 유지하는 것이다. 이는 요구 사항 검증 추적성을 위한 감사 준비를 지원한다.

마지막으로, 팀이 소프트웨어의 개발, 테스트 수행, 발표에 집중할 때, 우리가 생성한 아티팩트의 재해 복구 및 데이터 보존에 유념해야 한다.

테스트 중인 특정 시스템의 재해 복구와 동일한 사고 과정에서, 테스트와 릴리스에 대한 기록의 품질은 규정 준수 요건과 감사를 뒷받침하기 위해 유지되어야 한다. 복원 기능이 통합된 중앙 집중화식 테스트 관리 플랫폼이 선호되기는 한다. 이를 달성하기 위해서는 다양한 도구와 절차를 이용할 수 있다.

그림: TestRail 엔터프라이즈의 구성 가능한 백업과 복구 관리 기능을 이용해 관리자는 선호하는 백업 시간 창을 지정할 수 있다. 또 마지막으로 백업이 완료된 시간을 확인하고, 마지막으로 작업된 백업을 복구할 수 있다.

자체 평가와 내부 감사

엔지니어링, 테스트 수행, SDLC 전반의 개선을 반복하는 모든 팀의 경우, 중요한 것은 자체 평가를 수행하기 위한 시간을 갖는 것이다.

규제 준수 환경에서 소프트웨어 테스트 수행과 품질의 맥락에서 자체 평가는 절차의 격차와 결함을 식별하는 데 매우 효과적인 도구가 될 수 있다.

자체 평가/감사 평가 기준

여러분의 자체 평가나 감사 준비 완료 연습에 포함되어야 할 중요한 영역의 예시는 다음과 같다:

  • 모든 테스트를 해당 요구 사항 아티팩트(예: Jira 이슈와 결함)와 연결하는 완전한 추적성 확보
  • 계획되고 진행된 테스트들은 특정 릴리스 이벤트/지정된 릴리스에 연결됨
  • 특정 릴리스나 스프린트의 실패한 테스트는 결함 아티팩트(예: Jira 결함)에 연결됨

자체 평가나 내부 감사가 수행되고 나면, 요구 사항 추적성 개선점이나 더 상세한 재해 복구 문서와 같이 실행 가능한 정보를 수집하도록 한다. 그리하여 팀이 핵심 규정 준수 모범 사례 및 표준에 중점을 두고 SDLC 전반의 개선에 사용할 수 있도록 한다.

요점

규제 대상 산업 내에서 팀을 운영할 때는 SDLC 전반에 걸쳐 고려 사항과 요구 사항이 추가적으로 더 있어야 한다. 조기에 이런 추가적인 요구 사항을 모든 팀 구성원들과 함께 포함시키는 것은 매우 중요하다. 규정 준수와 감사 및 기타 규제 평가에서 전반적인 성공을 보장하기 위해 꼭 필요한 부분이다.

핵심 요점

  • 추적성에 집중하고, 테스트와 요구 사항의 연계성 보장
  • 보안과 액세스 제어 테스트 수행에 더욱 집중
  • 모든 테스트 아티팩트를 백업/데이터 보존을 위해 하나의 리포지토리에 중앙 집중화
  • 재해 복구 유효성 검사의 계획 및 실행

규제 대상 산업에서의 소프트웨어 테스트 수행 고유의 과제와 특성에 대해 더 자세히 알고 싶다면, TestRail 유튜브 채널에서 “규제 대상 산업에서의 테스트 수행(Testing In Regulated Industries) 웨비나를 시청해 보자.

Chris Faraglia는 현재 솔루션 아키텍트이자 TestRail의 TestRail 테스트 수행의 지지자다. Chris는 원자력 발전과 의료 IT 분야에서 엔터프라이즈 소프트웨어 개발, 통합, 테스트 수행으로 15년 이상의 경력을 가지고 있다. 특히 관심을 가지는 분야는 규제 산업 내의 테스트 관리/품질 보증을 비롯하여 테스트 데이터 관리와 자동화 통합 등이며, 그 외에도 매우 다양하다.

(원문: Chris Faraglia | February 5th, 2024 | Software Testing In Regulated Industries)

다른 기고들

소프트웨어 개발사 ELEKS는 어떻게 가시성과 생산성을 높였을까: Jira와 TestRail을 통합한 사례 연구

게스트의 글입니다. (작성자: Ostap Elyashevskyy) QA 절차를 처음부터 구축하거나 기존 QA 절차를 개선하는 경우, 올바른 테스트 관리 도구 선택은 매우 중요하다. 그것은 여러분이 버그를 찾고, 테스트 케이스를 관리하는 것을 도와준다. 또한 궁극적으로는, 소프트웨어 개발 절차를 잘 다듬을 수 있도록 돕는다. 이 글에서 나는 ELEKS의 우리 팀에게 효과적인 테스트 관리 솔루션을 찾은 경험을 공유하고자 한다. 그리고 그 과정에서 평가한 다른 몇 가지 대안들...

애자일 테스트 수행에서의 수락 기준들 (Acceptance Criteria in Agile Testing)

애자일이라는 직조물(tapestry)에서, 수락 기준은 황금색 실과 같다. 이것은 사용자 스토리를 최종 형태로 연결한다. 이 기준은 테스터가 테스트 수행 전략을 수립하는데 도움이 된다. 그리고 기능 및 품질 보증을 검증하는 데에도 중요한 임계 값 역할을 한다. 수락 기준은 제공된 제품이 고객의 기대에 부합할 것이라고 약속한다. 고객에게 필요한 사항을 정확히 정의하여, 발생 가능한 오해를 줄이고, 더욱 명료하게 한다. 이렇게 고객의 기대치에 맞춰 조율하는 것은 고객 만족으로...

테스트 관리를 위한 Jira: 선택, 과제, 그리고 솔루션

여러분의 팀이 소프트웨어 개발 관리를 위해 Jira를 사용하고 있다면, 테스트 수행 및 QA 절차를 Jira와 통합하는 것은 필수적이다. 일반적으로 두 가지 기본 선택권이 있다: Jira를 직접 활용하여 테스트 수행 작업을 모니터링한다. (주로 개발 이슈와 관련된 하위 작업 또는 사용자 정의 이슈 유형을 통해) Jira 기반 테스트 관리 애드-온을 사용한다. (무료일 수도, 유료일 수 있다.) 테스트 관리를 위해 Jira 사용하기 Jira는 애초에 소프트웨어 테스트 수행을...