Working/Quality Assurance

[QA] 소프트웨어 QA란 무엇인가?

도돔 2024. 7. 9. 16:34

이번에 QA 업무를 하게 되었는데, 그 과정 속에서 간략하게 학습한 내용을 정리해보고자 한다!

 


  우선 QA란 무엇일까? QA는 "Quality Assurance"의 줄임말로 단어 자체는 “품질 보증”을 뜻한다. 소프트웨어 측면에서의 QA란 코드의 품질을 보장하는 것을 뜻한다고 생각하면 될 것 같다.

 

  그렇다면 왜 코드의 품질을 신경써야할까? 가장 간단하게 말하면 개발의 효율성을 향상시키고 운영 및 관리의 측면에서도 많은 시간과 비용을 절약할 수 있게 해주기 때문일 것이다.

 

  가장 먼저 QA가 요구사항에 대해 꼼꼼히 분석하고 해당 요구들을 만족하는지 세세하게 테스트 케이스를 작성하고 확인하게 되면 고객과 실무자인 개발자 사이에서의 간극을 좁히는데 많은 기여를 할 수 있을 것이다. 개발 과정에서도 코드 품질에 대한 기준과 가이드가 주어지게 된다면 개발자들도 해당 형식에 맞춰서 개발을 하면 되니 좀 더 편리하고 개발에 소요되는 시간도 줄어들 수 있을 것이다. 만약 개발을 다 마치고 배포까지 진행하였는데 중대한 오류가 발견된다면 해당 내용을 다시 수정하고 반영하는 과정 속에서도 많은 시간과 비용이 소요될 것이다. 그렇기 때문에 배포 이전 최대한 많은 문제점을 발견하고 수정해야하는데 QA를 통해 미리 오류 수정을 하게 된다면 발생할 수 있는 유지보수 비용을 절감할 수 있다.

 

  그렇기 때문에 개발 과정에서의 QA의 중요성은 무시할 수 없다. 그렇다면 QA가 하는 활동에 대해서 간략하게 설명하자면 아래와 같다.

 

QA의 주요 활동

 

QA가 수행하는 활동들은 주로 아래와 같다.

  • 요구사항 분석: 소프트웨어의 요구사항을 명확하게 분석하고 이해
  • 설계 검토: 설계 문서를 검토하여 요구사항 충족, 기능 완성도, 구조적 문제점 등을 확인
  • 코드 검토: 코드를 검토하여 문법 오류, 코드 구조 문제, 보안 취약점 등을 식별
  • 테스트 계획 수립: 테스트 대상, 범위, 방법, 일정 등을 정하는 테스트 계획을 수립
  • 테스트 케이스 설계: 요구사항을 기반으로 테스트 케이스를 설계
  • 테스트 실행: 테스트 케이스를 실행하여 소프트웨어 기능 및 성능을 검증하고 결과를 기록
  • 결함 보고 및 관리: 발견된 결함을 보고하고 해결될 때까지 관리

 

QA 테스트의 종류

 

QA가 진행하는 다양한 테스트의 유형은 아래와 같다.

  • 수동 테스트: 테스터가 직접 소프트웨어를 실행하고 테스트 케이스를 수행하는 테스트
  • 자동 테스트: 자동화 도구를 사용하여 테스트 케이스를 실행하는 테스트
  • 기능 테스트: 소프트웨어가 제품 요구사항을 충족하는지 확인하는 테스트
  • 성능 테스트: 소프트웨어의 속도, 응답 시간, 처리 능력 등을 평가하는 테스트
  • 보안 테스트: 소프트웨어 시스템의 취약점을 식별하고 악용으로부터 보호하는 테스트
  • 사용성 테스트: 사용자가 소프트웨어를 얼마나 쉽게 사용하고 이해할 수 있는지 평가하는 테스트
  • 통합 테스트: 서로 다른 소프트웨어 모듈들이 함께 작동하는지 확인하는 테스트
  • 시스템 테스트: 전체 소프트웨어 시스템이 요구사항을 충족하는지 확인하는 테스트

 

이런 식으로 QA는 소프트웨어 개발 과정에 어느 한 프로세스 만이 아니라, 전체 프로세스 속에 녹아들어있다. 그 중에서, 내가 수행하게 될 정적 분석에 대한 내용을 다음 글에서 소개하도록 하겠다.

 

 

728x90
반응형

'Working > Quality Assurance' 카테고리의 다른 글

[QA] 정적 코드 분석(Static Code Analysis)  (0) 2024.07.10