최근 수정 시각 : 2025-05-09 06:54:29

소프트웨어 품질






SWEBOK(소프트웨어 공학 지식 체계)
{{{#!wiki style="margin:0 -10px -5px; min-height:calc(1.5em + 5px); word-break: keep-all"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin:-5px -1px -11px"
<colbgcolor=#009000><colcolor=#FFF> 개발 생애주기 Software Requirements, Software Architecture, Software Design, Software Construction, Software Testing, Software Engineering Operations, Software Maintenance
지원·관리 Software Configuration Management, Software Engineering Management, Software Engineering Process, Software Engineering Models & Methods, Software Quality, Software Security
전문성·경제성 Software Engineering Professional Practice, Software Engineering Economics
기초 Computing Foundations, Mathematical Foundations, Engineering Foundations
}}}}}}}}} ||


소프트웨어 품질(Software Quality)

1. 개요


구분주요 내용목적
SQA 계획 수립프로젝트별 SQA Plan 작성·관리품질 활동을 체계화
표준·절차 관리사내·국제 표준(ISO 9000, IEEE 730 등) 준수 여부 점검일관성 확보
프로세스 감사 & 리뷰Internal/External Audit, 기술 리뷰, Walk-through프로세스 오류 사전 제거
교육·훈련팀 교육, 표준·도구 사용 교육역량 강화·오류 예방
형상/변경 관리 감시형상 관리(버전, 빌드, 배포) 정책 준수 확인산출물 무결성
품질 메트릭 & 보고결함밀도, 커버리지, 공수 등 측정·대시보드의사결정 근거
위험·안전·보안 관리Risk Register 관리, 안전성·보안성 검사장애·사고 예방
프로세스 개선(CPI)CMMI·SPICE 기반 GAP 분석·개선 활동지속적 품질 향상
Quality Control (QC)검사·통계적 QC, 결함 추적, 테스트 전략 총괄제품 레벨 결함 탐지
V&VVerification(정적 리뷰·분석), Validation(동적 테스트·사용자 수용)요구사항 적합성 증명

2. 기본 개념

3. 소프트웨어 품질 관리 프로세스(Software Quality Management Process)

4. 소프트웨어 품질 보증 프로세스(Software Quality Assurance Process)

5. 소프트웨어 품질 도구(Software Quality Tools)


소프트웨어 품질 도구는 품질 보증 및 향상 활동을 자동화·효율화하여 소프트웨어의 신뢰성과 유지보수성을 높이기 위한 도구이다. 품질 계획 수립, 품질 측정, 결함 관리, 리뷰 자동화 등 다양한 활동을 지원한다.
도구 유형설명
정적 분석 도구코드를 실행하지 않고 구문 및 의미 분석을 수행하며, 리뷰 자동화·결함 탐지·모델 검토 등 다양한 품질 활동을 지원한다.
리뷰/검토 지원 도구코드나 문서 리뷰 프로세스를 자동화·분산 처리하며, 결함 등록 및 추적 기능을 제공한다.
안전 분석 도구FMEA, FTA 등 위험 기반 분석을 자동화하여 안전성과 신뢰성 확보에 기여한다.
결함 추적 도구테스트 중 발견된 이상(anomaly)을 기록, 분석, 해결하고 상태를 추적하는 워크플로우 관리 기능 포함
품질 데이터 분석 도구품질 메트릭(결함 밀도, 제거율 등)을 수집 및 시각화하여 품질 추세와 예측 정보 제공
형상/버전 관리 도구Git 등과 같은 버전 관리 시스템은 브랜칭과 변경 기록을 통해 개발 이력을 명확히 하고 코드 품질을 간접 보장한다.
DevOps 관련 도구CI/CD, 자동화 테스트, 온디맨드 테스트 환경 구성 등은 품질 확보와 지속적 개선을 가능케 한다.

이러한 도구들은 단순한 체크리스트에서부터 고도화된 시각화·통계 분석까지 다양한 형태로 제공되며, 품질 관리의 자동화 및 정량화를 가능하게 한다

5.1. 상용 도구

실제 환경에서는 여러 도구들을 복합적으로 조합하여 사용하는 것이 일반적이다. 또한 기술 변화와 환경 변화에 민감하게 반응하기 때문에, 일부 도구는 1~2년 내에 활용이 어려워질 정도로 급격히 대체되거나 기능이 단종되기도 한다.
도구명유형주요 기능특징
SonarQube정적 분석 도구코드 품질 및 보안 취약점 분석20개 이상의 언어 지원, CI/CD 통합 가능
Qodana정적 분석 도구JetBrains IDE 기반 코드 검사JetBrains IDE와 통합, CI 파이프라인 지원
CodeSonar정적 분석 도구C/C++/Java 코드의 결함 및 보안 분석100개 이상의 컴파일러 지원, 전체 프로그램 분석
CppDepend정적 분석 도구C/C++ 코드의 구조 및 의존성 시각화LINQ 기반 규칙 정의, 다양한 코드 메트릭 제공
TestRail테스트 관리 도구테스트 케이스 관리 및 실행 추적중앙 집중식 테스트 관리, 다양한 DevOps 도구와 통합
TestLodge테스트 관리 도구테스트 계획 수립 및 결과 보고간단한 UI, Asana 등과의 통합 지원
Tricentis Tosca테스트 자동화 도구모델 기반 테스트 자동화코드리스 테스트 설계, 다양한 기술 스택 지원
JMeter성능 테스트 도구웹 애플리케이션 부하 및 성능 테스트오픈소스, 다양한 프로토콜 지원
ApiaryAPI 설계 및 테스트 도구API 문서화 및 모의 서버 제공API 설계 초기 단계부터 품질 확보
Parasoft C/C++test정적 분석 도구C/C++ 코드의 정적 및 동적 분석안전성 표준 준수 지원, 다양한 분석 기법 제공
Jtest정적 분석 도구Java 코드의 정적 분석 및 유닛 테스트 자동 생성AI 기반 코드 수정 제안, IDE 통합
BrowserStack Test Management테스트 관리 도구테스트 케이스 및 실행 결과 관리다양한 브라우저 및 디바이스에서의 테스트 지원
aqua cloud테스트 관리 도구AI 기반 테스트 관리 및 자동화요구사항 추적, 실시간 보고서 제공