Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 4기
- TiL
- Java
- 모션비트
- 크래프톤정글
- 나만무
- 알고리즘
- 오블완
- 리액트
- 티스토리챌린지
- defee
- 핀토스
- CSS
- 소켓
- HTML
- 사이드프로젝트
- 시스템콜
- Vue.js
- 자바
- 코드트리
- Flutter
- 백준
- 큐
- userprog
- corou
- JavaScript
- 크래프톤 정글
- 자바스크립트
- pintos
- 스택
Archives
- Today
- Total
미새문지
24.11.03 소프트웨어 품질 관리 본문
728x90
소프트웨어 품질 관리는 소프트웨어 제품이 사용자의 요구 사항과 기대에 부합하고, 결함 없이 안정적으로 동작하도록 보장하기 위한 계획, 통제, 보증 활동을 포함한 프로세스이다.
소프트웨어 개발 과정의 모든 단계에서 이루어지고 개발 프로세스와 최종 제품의 품질을 모두 관리하는 것이 목표이기 때문에, 이러한 소프트웨어 품질 관리의 목표는 고품질의 소프트웨어를 통해 사용자 만족을 얻고, 유지보수 비용을 절감하거나 시장에서 경쟁력을 유지하는 것이다.
소프트웨어 품질 관리의 중요성
소프트웨어 품질 관리는 최종 제품이 사용자가 기대하는 수준의 품질을 유지하고, 비용 효율적으로 개발될 수 있도록 하는 중요한 프로세스이기 때문에 정확한 관리가 필요하다.
- 사용자 만족도: 고품질의 소프트웨어는 사용자 만족도를 높이고, 충성도를 증대시킬 수 있다.
- 유지보수 비용 절감: 품질 관리가 잘 이루어진 소프트웨어는 결함이 적어 유지보수에 드는 비용이 감소한다.
- 신뢰성과 브랜드 이미지 개선: 품질이 높은 제품은 사용자로부터 신뢰를 얻으며, 기업의 브랜드 이미지에도 긍정적인 영향을 줄 수 있다.
- 법적 문제 방지: 품질 관리가 잘된 소프트웨어는 보안과 규정 준수를 충족해 법적 문제를 예방할 수 있다.
주요 구성 요소
품질 계획 (Quality Planning, QP)
- 소프트웨어의 품질 목표를 설정하고, 이를 달성하기 위한 절차와 자원을 계획하는 단계이며, 목표가 설정되면 이를 달성하기 위한 기준과 방법을 정하고 품질 목표가 프로젝트 전반에 일관성 있게 적용되도록 한다.
- 주요 활동: 요구사항 정의, 품질 목표 설정, 자원 배분 및 기준 등을 수립
- 목표: 품질 요구사항을 구체적으로 정의하고, 요구사항을 개발자가 준수할 수 있도록 체계적인 계획을 수립
품질 보증 (Quality Assurance, QA)
- 소프트웨어가 계획된 대로 개발되고 있는지를 확인하며, 전체 개발 프로세스를 개선하는 활동하는데, 이는 개발이 올바르게 이루어지는지 검토하고, 문제를 사전에 예방하기 위해 프로세스 중심으로 이루어지는 단계이다.
- 주요 활동: 프로세스 리뷰, 감사를 통한 문제 예방, 품질 표준 준수 여부를 검토
- 목표: 개발 과정에서 발생할 수 있는 문제를 최소화하여 일관성 있는 품질 수준을 유지
품질 통제 (Quality Control, QC)
- 품질 통제는 소프트웨어 제품의 품질을 점검하고 결함을 발견하여 수정하는 단계이다. 코드나 문서같은 산출물을 중심으로 이루어지며, 테스트와 코드 리뷰 등을 통해 최종 제품의 품질을 검증하게 된다.
- 주요 활동: 각종 테스트(단위, 통합, 시스템, 인수), 코드 리뷰, 결함 추적 및 수정
- 목표: 최종 제품의 결함을 줄이고, 사용자의 요구를 충족하는 고품질의 소프트웨어 제공
표준 모델
소프트웨어 품질 관리에서 표준 모델은 품질을 관리하고 평가하는 데 있어 일관된 기준과 체계를 제공하며, 소프트웨어가 사용자와 시장의 요구에 맞는 고품질을 유지할 수 있도록 품질 특성, 평가 지표, 프로세스 등을 체계적으로 관리하고 개선하는 데 도움을 준다.
대표적인 품질 관리 표준 모델
- ISO/IEC 9126: 소프트웨어 품질 평가의 초기 표준 모델, 기능성, 신뢰성 등 6가지 품질 특성 정의
- ISO/IEC 25010: ISO/IEC 9126을 기반으로 개선된 최신 표준, 보안성과 호환성을 포함한 8가지 품질 특성 정의
- CMMI: 소프트웨어 개발 프로세스의 성숙도 평가 모델, 프로세스를 5단계로 구분하여 개선 목표 제공
- SPICE (ISO/IEC 15504): 소프트웨어 프로세스 성숙도 평가와 개선을 위한 표준, CMMI와 유사한 5단계 성숙도 모델을 채택
품질 특성
현재 최신 표준 모델인 ISO/IEC 25010 기준으로 기존 모델보다 품질 특성을 확장하고 개선해서 특성이 세분화되었다.
- 기능 적합성 (Functional Suitability) : 소프트웨어가 사용자 요구를 충족하는 기능을 제공하는지를 평가한다.
- 성능 효율성 (Performance Efficiency) : 소프트웨어가 자원(시간, 메모리 등)을 얼마나 효율적으로 사용하는지를 평가한다.
- 호환성 (Compatibility) : 소프트웨어가 다른 시스템, 환경과 호환되고 상호작용할 수 있는지를 평가한다.
- 사용성 (Usability) : 사용자가 소프트웨어를 이해하고 학습하여 쉽게 사용할 수 있는지를 평가한다.
- 신뢰성 (Reliability) : 소프트웨어가 오류 없이 안정적으로 동작할 수 있는지를 평가한다.
- 보안성 (Security) : 시스템과 데이터가 적절히 보호되고 있는지를 평가하며, 보안이 중요한 소프트웨어 품질 특성이다.
- 유지보수성 (Maintainability) : 소프트웨어가 수정, 보완, 개선하기 쉬운지를 평가한다.
- 이식성 (Portability) : 소프트웨어가 다양한 환경이나 플랫폼에서 얼마나 쉽게 전환될 수 있는지를 평가한다.
주요 기법
소프트웨어 테스트
- 단위 테스트: 개별 모듈을 테스트하여 각각의 기능이 올바르게 작동하는지 확인한다.
- 통합 테스트: 모듈들이 서로 결합될 때 의도한 대로 작동하는지 검증한다.
- 시스템 테스트: 전체 시스템이 사용자 요구사항을 충족하는지 확인한다.
- 인수 테스트: 최종 사용자 환경에서 요구사항에 맞게 작동하는지 검증한다.
버전 관리와 형상 관리
- Git, SVN 등의 형상 관리 도구를 사용하여 코드와 문서의 버전을 관리하고 변경 사항을 추적한다.
- 협업 환경에서 코드 품질을 유지하고 일관성을 유지할 수 있다.
정적 분석 도구 사용
- Lint, SonarQube와 같은 도구를 사용해 코드 내 잠재적인 오류를 자동으로 탐지하고 품질을 높여준다.
- 정적 분석은 코드 실행 없이 소스 코드를 분석해 결함을 찾고, 코드 품질을 보장하는 데 도움을 준다.
품질 메트릭스
- 특정 품질 특성을 수치화하여 측정하고, 이를 통해 소프트웨어의 품질을 정량적으로 평가한다.
- 예시로 코드 복잡도, 결함 밀도, 테스트 커버리지, 사용자 만족도 등이 있다.
728x90
'개발 TIL' 카테고리의 다른 글
flutter AppBar, BottomBar 구현 (1) | 2024.11.21 |
---|---|
flutter 프로젝트 시작 (0) | 2024.11.20 |
24.10.31 flutter navigator (3) | 2024.10.31 |
24.10.29 flutter 위젯 배치 (1) | 2024.10.30 |
24.10.27 flutter 사용 (1) | 2024.10.27 |