Skip to content

5.1 아키텍트와 품질 보증을 위한 작업 #1490

@jongfeel

Description

@jongfeel

5.1 아키텍트와 품질 보증을 위한 작업

5.1.1 품질 보증과 테스트

품질 보증quality assurance(QA)는 시스템이 기대되는 품질 기준을 충족시켜 고객과 사용자의 요구를 만족시키기 위해 수행하는 일련의 활동을 의미합니다.
테스트(소프트웨어 테스트)는 개발한 소프트웨어가 정의된 요구사항에 따라 제대로 동작하는지를 검증하는 행위를 말합니다.

품질 보증은 단순히 테스트 수행만을 의미하지 않습니다.
이는 코드 리뷰를 적절히 수행하고, 코드 품질을 점검할 수 있는 정적 분석 도구 등을 도입하며, 개발 프로세스와 문서를 표준화하는 등 소프트웨어의 품질을 유지하고 개선시키는 데 필요한 다양한 접근 방식을 모두 포괄하는 개념입니다.

5.1.2 시프트 레프트

테스트를 포함한 품질 보증 활동을 보다 이른 시점, 즉 소프트웨어 개발 초기 단계부터 수행하면 결함을 조기에 발견하고 수정할 수 있어 이러한 비용 증가를 막을 수 있습니다.

이러한 접근법을 시프트 레프트라고 부르며, 2000년대 초반에 등장하기 시작했습니다.
QA 엔지니어가 더 이른 단계부터 프로젝트에 참여해야 한다고 강조합니다.

이 방식은 설계나 구현 중간부터 테스트를 함께 수행하는 것을 의미하기도 합니다.

5.1.3 테스트 유형

  • 기능 테스트
  • 성능 테스트
  • 시스템 테스트
  • 사용성 테스트
  • 운영 테스트
  • 보안 테스트
  • 정적 분석
  • 설치 테스트
  • 버전 업그레이드 테스트

5.1.4 테스트 전략

테스트 전략은 소프트웨어를 고객과 사용자의 요구에 부합하는 품질 수준으로 완성하기 위해 어떤 테스트를 언제, 어떻게 수행할 것인지 그리고 프로젝트 자원을 어떻게 배분할지 등을 정하는 전반적인 정책 수립을 말합니다.

테스트 레벨

테스트 레벨은 테스트 대상이 되는 소프트웨어 구성 요소의 세분화 정도나 범위, 또는 개발 작업과 프로세스의 관점에서 테스트를 단계별로 나누는 개념입니다.

예를 들어, 단위 테스트unit testing, 통합 테스트integration testing, 시스템 테스트system testing등으로 나눠볼 수 있습니다.

테스트 유형

테스트 유형이란 테스트의 구체적인 목적과 검증 관점을 기준으로 테스트를 분류 하는 개념입니다.
크게는 기능 테스트와 비기능 테스트로 나눕니다.

테스트 환경과 테스트 데이터

일반적으로 V 모델에서 상단에 위치한 테스트 레벨일수록 테스트 환경과 데이터는 더 복잡합니다.

테스트 자동화 정책

기존 기능이 사양 변경이나 결함 수정 이후에도 퇴행regression없이 정상적으로 동작하는지 검증하는 테스트를 리그레션 테스트regression testing라고 합니다.
이러한 테스트를 수작업으로 반복하면 상당한 공수가 발생하므로 테스트 코드나 스크립트를 미리 준비해 가능한 한 자동으로 실행할 수 있도록 해야 합니다.

Metadata

Metadata

Assignees

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions