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&V | Verification(정적 리뷰·분석), 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 | 성능 테스트 도구 | 웹 애플리케이션 부하 및 성능 테스트 | 오픈소스, 다양한 프로토콜 지원 |
Apiary | API 설계 및 테스트 도구 | API 문서화 및 모의 서버 제공 | API 설계 초기 단계부터 품질 확보 |
Parasoft C/C++test | 정적 분석 도구 | C/C++ 코드의 정적 및 동적 분석 | 안전성 표준 준수 지원, 다양한 분석 기법 제공 |
Jtest | 정적 분석 도구 | Java 코드의 정적 분석 및 유닛 테스트 자동 생성 | AI 기반 코드 수정 제안, IDE 통합 |
BrowserStack Test Management | 테스트 관리 도구 | 테스트 케이스 및 실행 결과 관리 | 다양한 브라우저 및 디바이스에서의 테스트 지원 |
aqua cloud | 테스트 관리 도구 | AI 기반 테스트 관리 및 자동화 | 요구사항 추적, 실시간 보고서 제공 |