'
본문 바로가기
study/Insight

[QA Basics] 소프트웨어 품질 개념

by meowdule 2025. 9. 4.

 

1. 소프트웨어 품질의 정의

 

소프트웨어 품질(Software Quality)은
“소프트웨어가 사용자의 요구와 명세를 얼마나 잘 충족하는가”를 의미합니다.


즉, 단순히 오류가 없다는 것만으로는 충분하지 않고,
사용 목적에 적합해야 한다는 점이 핵심입니다.


📌 품질의 두 가지 관점

  1. 제품 품질 (Product Quality)
    •   소프트웨어 자체의 완성도
    •   기능이 정확히 동작하는지, 성능이 충분한지, 보안상 취약점이 없는지
  2. 프로세스 품질 (Process Quality)
    •   소프트웨어가 만들어지는 과정의 건전성
    •   요구사항 관리, 개발 절차 준수, 리뷰와 검증 활동의 체계성


📌 “버그 없음”과 “품질 있음”의 차이

  • 버그가 없다고 해서 품질이 높다고 단정할 수는 없음
  • 예시:
    • 오류는 없지만 사용성이 떨어지는 앱 → 품질 낮음
    • 성능이 불안정해 실제 사용자 환경에서는 만족도 하락 → 품질 부족
  • 품질 = 단순 무결점이 아니라, 사용자 기대를 충족하는 전체적 가치

 

소프트웨어 품질은
“정확히 동작하는가”를 넘어, “사용자와 목적에 맞게 잘 만들어졌는가”를 평가하는 개념이다.

 

 

 

 

 

2. 품질 특성 (ISO/IEC 25010)


📌 ISO/IEC 25010 주요 특성 8가지


품질 특성 설명 예시
기능 적합성
(Functional
Suitability)
요구된 기능을 올바르게 제공하는 정도 계산 앱이
정확히 합계/평균을 구하는가
성능 효율성
(Performance
Efficiency)
자원(시간, 메모리 등)을 효율적으로 사용하는 정도 앱이 1초 내에
검색 결과를 보여주는가
호환성
(Compatibility)
다른 시스템과 함께 잘 동작하는가 크로스 브라우저 지원,
API 연동
사용성
(Usability)
사용자가 쉽게 배우고 쓸 수 있는가 직관적인 UI, 접근성 준수
신뢰성
(Reliability)
안정적으로 동작하고 오류 발생 시 복구 가능한가 서버 다운 시 자동 복구,
장애율 낮음
보안성
(Security)
정보 보호와 접근 제어가 잘 되어 있는가 로그인 보안, 데이터 암호화
유지보수성
(Maintainability)
변경·수정·확장이 쉬운가 모듈화된 코드, 문서화
이식성
(Portability)
다른 환경으로 옮겨도 잘 동작하는가 모바일/데스크톱
크로스 플랫폼 지원

 

품질은 단순히 “버그 없음”이 아니라,
기능·성능·호환성·사용성·신뢰성·보안성·유지보수성·이식성까지 폭넓게 평가해야 한다.

 

 

 

3. 제품 리스크와 프로젝트 리스크

 

소프트웨어 개발에서 리스크(Risk)는 실패 가능성을 의미합니다.
QA는 크게 제품 리스크프로젝트 리스크를 구분해 관리합니다.

 

1) 제품 리스크 (Product Risk)

  • 제품 자체의 품질 문제에서 발생하는 위험
  • 소프트웨어가 요구사항을 충족하지 못하거나, 사용 환경에서 문제를 일으킬 가능성
  • 예시:
    • 기능 결함 (주요 기능이 잘못 동작)
    • 성능 저하 (응답 시간 지연, 서버 과부하)
    • 보안 취약점 (데이터 유출, 권한 관리 실패)
    • 사용자 불편 (UI/UX 문제, 접근성 부족)

 

2) 프로젝트 리스크 (Project Risk)

  • 개발 과정과 관리상의 문제에서 발생하는 위험
  • 일정, 인력, 자원 등 프로젝트 수행 자체가 흔들릴 가능성
  • 예시:
    • 일정 지연 (요구사항 변경, 인력 부족)
    • 커뮤니케이션 실패 (개발자-기획자 간 불일치)
    • 예산 초과 (재작업, 추가 개발 비용 발생)
    • 기술적 제약 (환경/툴 부적합, 기술 부재)

 


📌 QA의 역할

  • 제품 리스크: 테스트 설계·실행, 품질 지표 관리로 결함 조기 발견
  • 프로젝트 리스크: 리뷰·회의 참여, 산출물 검증으로 일정/품질 균형 유지

 

 

 

 

4. 품질 보증 활동과 품질 비용


📌 품질 보증(QA) vs 품질 통제(QC)

  • 품질 보증(QA, Quality Assurance)
    : 예방 활동 중심 → 요구사항 검토, 리뷰, 표준화, 프로세스 개선
  • 품질 통제(QC, Quality Control)
    : 검출 활동 중심 → 테스트 실행, 산출물 검사, 결함 리포트
QA는 “사전에 막는 역할”, QC는 “사후에 발견하는 역할”이라고 볼 수 있습니다.

 


📌 품질 비용 (Cost of Quality, CoQ)

품질을 확보하기 위해 소요되는 총 비용을 뜻하며, 4가지로 나뉩니다.

  1. 예방 비용 (Prevention Cost)
    •   오류가 발생하지 않도록 미리 쓰는 비용
    •   예: 요구사항 리뷰, 교육, 프로세스 개선
  2. 평가 비용 (Appraisal Cost)
    •   품질을 확인하기 위한 검사 비용
    •   예: 테스트 실행, 코드 리뷰, 품질 감사
  3. 내부 실패 비용 (Internal Failure Cost)
    •   개발 단계에서 발견된 결함 수정 비용
    •   예: 단위 테스트에서 발견된 버그 수정
  4. 외부 실패 비용 (External Failure Cost)
    •   출시 후 사용자 환경에서 발견된 결함 비용
    •   예: 긴급 패치, 클레임 대응, 브랜드 신뢰도 하락

 

 

  • 소프트웨어 결함은 늦게 발견될수록 비용이 기하급수적으로 증가
  • QA가 초기 단계부터 개입할수록,
    예방 비용 ↑   →   외부 실패 비용 ↓   →   전체 비용 절감

 

 

 

QA는 “초기 예방 활동”을 통해 전체 품질 비용을 줄이고,
장기적으로는 조직의 경쟁력을 높이는 핵심 역할을 한다.

 

 

 

 

 

 

마무리
다음 게시글에서는 테스트 원칙에 대해 알아보겠습니다.