what is software quality assurance
소프트웨어 품질 보증이란 무엇입니까?
소프트웨어 품질 보증 (SQA) 모든 소프트웨어 엔지니어링 프로세스, 방법, 활동 및 작업 항목이 모니터링되고 정의 된 표준을 준수하도록 보장하는 프로세스입니다. 이러한 정의 된 표준은 ISO 9000, CMMI 모델, ISO15504 등과 같은 하나 또는 조합 일 수 있습니다.
SQA는 요구 사항 정의부터 코딩, 출시까지 모든 소프트웨어 개발 프로세스를 통합합니다. 주요 목표는 품질을 보장하는 것입니다.
학습 내용 :
소프트웨어 품질 보증 계획
SQAP로 축약되는 소프트웨어 품질 보증 계획은 제품 또는 서비스가 SRS (소프트웨어 요구 사항 사양)에 정의 된 요구 사항과 일치하는지 확인하는 데 사용되는 절차, 기술 및 도구로 구성됩니다.
이 계획은 팀의 SQA 책임을 식별하고 검토 및 감사해야하는 영역을 나열합니다. 또한 SQA 작업 제품을 식별합니다.
SQA 계획 문서는 다음 섹션으로 구성됩니다.
- 목적 섹션
- 참조 섹션
- 소프트웨어 구성 관리 섹션
- 문제보고 및 시정 조치 섹션
- 도구, 기술 및 방법론 섹션
- 코드 제어 섹션
- 기록 : 수집, 유지 및 보존 섹션
- 테스트 방법
SQA 활동
다음은 SQA 활동 목록입니다.
# 1) SQA 관리 계획 만들기 :
가장 중요한 활동은 프로젝트에서 SQA가 어떻게 수행 될 것인지에 대한 적절한 계획을 세우는 것입니다.
따라야 할 SQA 접근 방식과 함께 수행 할 엔지니어링 활동은 무엇이며 팀에 적합한 인재 조합이 있는지 확인하는 것도 포함됩니다.
# 2) 체크 포인트 설정 :
SQA 팀은 각 체크 포인트 / 프로젝트 단계에서 프로젝트 활동의 품질을 평가하는 다른 체크 포인트를 설정합니다. 이를 통해 정기적 인 품질 검사와 일정에 따라 작업 할 수 있습니다.
# 3) 소프트웨어 엔지니어링 기술 적용 :
일부 소프트웨어 엔지니어링 기술을 적용하면 소프트웨어 설계자가 고품질 사양을 달성하는 데 도움이됩니다. 정보 수집을 위해 디자이너는 인터뷰 및 FAST (Functional Analysis System Technique)와 같은 기술을 사용할 수 있습니다.
나중에 수집 된 정보를 기반으로 소프트웨어 설계자는 WBS (작업 분할 구조), SLOC (코드 소스 라인) 및 FP (기능적 포인트) 추정과 같은 기술을 사용하여 프로젝트 추정을 준비 할 수 있습니다.
# 4) 공식적인 기술 검토 실행 :
프로토 타입의 품질과 디자인을 평가하기 위해 FTR이 수행됩니다.
이 과정에서 소프트웨어의 실제 품질 요구 사항과 프로토 타입의 디자인 품질에 대해 논의하기 위해 기술 직원과 회의가 진행됩니다. 이 활동은 SDLC의 초기 단계에서 오류를 감지하는 데 도움이되고 이후 단계에서 재 작업 노력을 줄여줍니다.
# 5) 다중 테스트 전략 :
다중 테스트 전략이란 단일 테스트 접근 방식에 의존해서는 안되며, 소프트웨어 제품이 모든 각도에서 잘 테스트되어 더 나은 품질을 보장 할 수 있도록 여러 유형의 테스트를 수행해야 함을 의미합니다.
# 6) 프로세스 준수 강화 :
이 활동은 소프트웨어 개발 프로세스 동안 프로세스 준수의 필요성을 주장합니다. 개발 프로세스는 정의 된 절차를 따라야합니다.
b + 트리 대 b 트리
이 활동은 아래에서 자세히 설명하는 두 가지 하위 활동의 혼합입니다.
(i) 제품 평가 :
이 활동은 소프트웨어 제품이 프로젝트 관리 계획에서 발견 된 요구 사항을 충족하는지 확인합니다. 프로젝트에 대해 설정된 표준을 올바르게 따르도록합니다.
(ii) 프로세스 모니터링 :
이 활동은 소프트웨어 개발 중에 올바른 단계를 수행했는지 확인합니다. 이는 실제로 수행 된 단계를 문서화 된 단계와 일치시킴으로써 수행됩니다.
# 7) 변경 제어 :
이 활동에서는 수동 절차와 자동화 된 도구를 혼합하여 변경 제어 메커니즘을 사용합니다.
변경 요청의 유효성을 검사하고 변경의 특성을 평가하고 변경 효과를 제어함으로써 개발 및 유지 관리 단계에서 소프트웨어 품질이 유지되도록합니다.
# 8) 변경 영향 측정 :
QA 팀에서 결함을보고하면 관련 팀이 결함을 수정합니다.
그런 다음 QA 팀은이 결함 수정으로 인한 변경의 영향을 확인해야합니다. 변경으로 결함이 수정되었는지 여부뿐만 아니라 변경이 전체 프로젝트와 호환되는지 테스트해야합니다.
이를 위해 관리자와 개발자가 SDLC의 시작부터 끝까지 활동 및 제안 된 변경 사항을 관찰하고 필요할 때마다 시정 조치를 시작할 수있는 소프트웨어 품질 메트릭을 사용합니다.
# 9) SQA 감사 수행 :
SQA 감사는 전체 실제 SDLC 프로세스를 검사 한 다음 확립 된 프로세스와 비교합니다.
또한 상태 보고서에서 팀이보고 한 내용이 실제로 수행되었는지 여부도 확인합니다. 이 활동은 비준수 문제도 노출합니다.
# 10) 기록 및 보고서 유지 :
SQA와 관련된 필요한 문서를 보관하고 필요한 SQA 정보를 이해 관계자와 공유하는 것이 중요합니다. 테스트 결과, 감사 결과, 검토 보고서, 변경 요청 문서 등은 나중에 참조 할 수 있도록 보관해야합니다.
# 11) 좋은 관계 관리 :
사실 QA와 개발팀 간의 조화를 유지하는 것이 매우 중요합니다.
테스터와 개발자가 서로 우월하다고 느끼는 경우가 많습니다. 이는 전체 프로젝트 품질에 영향을 미칠 수 있으므로 피해야합니다.
소프트웨어 품질 보증 표준
일반적으로 SQA는 하나 이상의 표준에 대한 준수를 요구할 수 있습니다.
가장 널리 사용되는 표준 중 일부는 다음과 같습니다.
ISO 9000 : 이 표준은 조직이 제품 또는 서비스가 고객의 요구에 부합하는지 확인하는 데 도움이되는 7 가지 품질 관리 원칙을 기반으로합니다.
ISO 9000의 7 가지 원칙이 아래 이미지에 나와 있습니다.
CMMI 수준 : CMMI는 능력 성숙도 모델 통합 . 이 모델은 소프트웨어 엔지니어링에서 시작되었습니다. 프로젝트, 부서 또는 전체 조직 전체에서 프로세스 개선을 지시하는 데 사용할 수 있습니다.
5 CMMI 레벨과 그 특성은 아래 이미지에 설명되어 있습니다.
평가 유형에 따라 조직이 평가되고 성숙도 등급 (1-5)이 부여됩니다.
테스트 성숙도 모델 통합 (TMMi) : CMMi를 기반으로하는이 모델은 소프트웨어 품질 관리 및 테스트의 성숙도 수준에 중점을 둡니다.
5 TMMi 레벨은 아래 이미지에 묘사되어 있습니다.
소프트웨어 엔지니어링의 알파 및 베타 테스트
조직이 더 높은 성숙도 수준으로 이동함에 따라 결함이 적은 고품질 제품을 생산할 수있는 더 높은 역량을 달성하고 비즈니스 요구 사항을 거의 충족합니다.
소프트웨어 품질 보증의 요소
참조를 위해 아래에 나열된 SQA의 10 가지 필수 요소가 있습니다.
- 소프트웨어 엔지니어링 표준
- 기술 검토 및 감사
- 품질 관리를위한 소프트웨어 테스트
- 오류 수집 및 분석
- 변경 관리
- 교육 프로그램
- 공급 업체 관리
- 보안 관리
- 안전
- 위기 관리
SQA 기법
SQA에는 몇 가지 기술이 있습니다. 감사는 널리 채택되는 주요 기술입니다. 그러나 다른 몇 가지 중요한 기술도 있습니다.
다양한 SQA 기술에는 다음이 포함됩니다.
- 감사 : 감사에는 작업 산출물 및 관련 정보를 검사하여 일련의 표준 프로세스를 따랐는지 여부를 결정합니다.
- 검토 : 내부 및 외부 이해 관계자가 소프트웨어 제품을 검토하여 의견과 승인을 구하는 회의입니다.
- 코드 검사 : 버그를 찾고 이후 단계에서 결함 증가를 방지하기 위해 정적 테스트를 수행하는 가장 공식적인 검토 유형입니다. 훈련 된 중재자 / 동료가 수행하며 규칙, 체크리스트, 진입 및 퇴장 기준을 기반으로합니다. 검토자는 코드 작성자가 아니어야합니다.
- 설계 검사 : 설계 검사는 소프트웨어 설계의 아래 영역을 검사하는 체크리스트를 사용하여 수행됩니다.
- 일반 요구 사항 및 디자인
- 기능 및 인터페이스 사양
- 규약
- 요구 사항 추적 성
- 구조 및 인터페이스
- 논리
- 공연
- 오류 처리 및 복구
- 테스트 가능성, 확장 성
- 결합 및 응집
- 시뮬레이션: 시뮬레이션은 연구중인 시스템의 동작을 가상으로 조사하기 위해 실제 상황을 모델링하는 도구입니다.
- 기능 테스트 : 시스템이 수행하는 방식을 고려하지 않고 시스템이 수행하는 작업을 확인하는 QA 기술입니다. 이 유형의 블랙 박스 테스트 주로 시스템 사양 또는 기능 테스트에 중점을 둡니다.
- 표준화: 표준화는 품질 보증에서 중요한 역할을합니다. 모호성과 추측을 줄여 품질을 보장합니다.
- 정적 분석 : 실제로 프로그램을 실행하지 않고 자동화 된 도구에 의해 수행되는 소프트웨어 분석입니다. 이 기술은 의료, 핵 및 항공 소프트웨어의 품질 보증에 많이 사용됩니다. 소프트웨어 메트릭 및 리버스 엔지니어링은 몇 가지 인기있는 정적 분석 형식입니다.
- 연습 : 소프트웨어 워크 스루 또는 코드 워크 스루는 개발자가 개발 팀 구성원이 제품을 살펴보고 쿼리를 제기하고 대안을 제안하고 가능한 오류, 표준 위반 또는 기타 문제에 대한 의견을 제시하도록 안내하는 일종의 피어 리뷰입니다.
- 경로 테스트 : 이것은 화이트 박스 테스트 기술 여기서는 각 독립 경로를 한 번 이상 실행하여 전체 분기 범위를 보장합니다.
- 스트레스 테스트 : 이러한 유형의 테스트는 정상 조건을 넘어서는 과부하 상태에서 시스템을 테스트하여 시스템이 얼마나 강력한 지 확인하기 위해 수행됩니다.
- 식스 시그마: Six Sigma는 거의 완벽한 제품 또는 서비스를 목표로하는 품질 보증 접근 방식입니다. 그것은 소프트웨어를 포함한 많은 분야에서 널리 적용됩니다. 식스 시그마의 주요 목표는 생산 된 소프트웨어가 99.76 % 결함이 없도록 프로세스 개선입니다.
결론
SQA는 소프트웨어 라이프 사이클 전반에 걸쳐 사용되는 포괄적 인 활동입니다.
소프트웨어 품질 보증은 소프트웨어 제품 또는 서비스가 시장에서 성공하고 고객의 기대에 부응하기 위해 매우 중요합니다.
제공 가능한 소프트웨어의 품질이 우수하고 비즈니스 요구 사항과 밀접하게 일치하도록하기 위해 따라야하는 다양한 활동, 표준 및 기술이 있습니다.
이 유익한 기사를 통해 Software Quality Assurance의 개념에 대한 명확한 아이디어를 얻었기를 바랍니다 !!
추천 도서
- 소프트웨어 테스트 및 품질 보증 인증-2 부
- 품질 속성은 무엇입니까?
- 가짜 품질의 신 대 진정한 인간-소프트웨어 품질에 대한 책임은 누구입니까?
- 품질 보증과 품질 관리의 차이점 (QA vs QC)
- 완벽한 소프트웨어 테스트 이력서 가이드 (소프트웨어 테스터 이력서 샘플 포함)
- Poka-Yoke (실수 방지) 기술을 사용하여 소프트웨어 품질을 향상시키는 방법
- 테스트의 상호 이해 : 고품질 소프트웨어를 제공하기위한 핵심
- 소프트웨어 테스팅 QA 어시스턴트 작업