소프트웨어 품질 보증 (SQA)은 소프트웨어 품질을 평가하기위한 잘 계획되고 체계적인 접근 방식으로 정의됩니다. 소프트웨어 제품 표준, 프로세스 및 절차에 대한 준수 여부를 확인합니다. SQA에는 표준 및 절차가 설정되고 소프트웨어 개발 수명주기 및 테스트주기 전반에 걸쳐 준수되도록하는 체계적인 프로세스가 포함됩니다.
테스트의 주요 초점은 결함을 조기에 수정하는 것이 비용이 덜 들기 때문에 가능한 한 빨리 시스템의 버그를 식별하는 것입니다. 연구 결과에 따르면 릴리스 후 버그가 발견되면 수정하는 데 더 많은 비용이 들고 최종 사용자의 애플리케이션에 대한 신뢰에도 영향을 미칩니다.
IBM 연구에 따르면 애플리케이션이 출시 된 후 발견 된 결함을 수정하는 것이 100 배 더 비쌉니다.
- 요약하면, 소프트웨어 품질 보증은 다음을 허용하기 때문에 중요합니다.
- 프로젝트가 요구 사항을 충족하는지 확인
- 조기에 결함 예방, 감지 및 수정
- 프로젝트 위험 최소화
- 제품 신뢰성 향상
- 최종 사용자 경험 향상
- 테스트 및 표준 준수
- 릴리스 관리 및 릴리스 제어
- 개발 비용 절감
- 유지 보수 비용 절감
테스트의 이점
- 출시 시간 단축
- 고품질
- 최첨단 테스트 리소스
- 유연한 자원 조달
- 전략적 우선 순위에 집중
SQA 활동은 개발 라이프 사이클의 각 단계에서 이루어집니다. 단계는 요구 사항 수집, 시스템 설계 및 코딩 및 테스트 영역으로 분류되어 최종적으로 릴리스됩니다.
- 검증 – 주어진 개발 단계의 제품이 해당 단계 시작시 부과 된 조건을 충족하는지 확인하기 위해 시스템 또는 구성 요소를 평가하는 프로세스입니다.
- 검증 – 특정 요구 사항을 충족하는지 여부를 결정하기 위해 개발 프로세스 중 또는 마지막에 시스템 또는 구성 요소를 평가하는 프로세스
애플리케이션 개발의 요구 사항 분석, 설계 및 코딩 단계에서 각 출력이 사전 정의 된 종료 기준에 대해 검증 될 수 있도록 각 단계의 출력을 측정, 모니터링 및 관리해야합니다. 최종 응용 프로그램이 코딩 및 통합 단계를 완료하면 원래 응용 프로그램 요구 사항에 대해 유효성을 검사하고 검증 테스트를 통과 한 고위 경영진의 승인을 받아야합니다. 이 애플리케이션 개발의 각 단계에서 품질을 개선하고 경쟁력을 유지하려면 개발 중 노력을 가능한 한 개선해야합니다.
검증, 검증 및 소프트웨어 품질 측정의 차이점
효과적인 검증 노력은 모든 요구 사항이 올바르게 수행되었음을 보여 주어야하며, 이는 제품 배송에 대한 요구 사항을 테스트하여 수행됩니다. 이러한 테스트는 나중에 시스템을 변경하는 경우 동일한 결과를 얻기 위해 다시 실행할 수 있습니다.
검증은 제품이 개발 수명주기 동안 미리 정의 된 이정표에서 지정된 요구 사항을 충족 함을 보여줍니다. 검증은 시스템이 개발 수명주기 완료시 고객의 요구 사항을 충족하는지 확인합니다.
검증은 최종 제품을 평가하여 애플리케이션이 고객의 기대와 요구 사항을 충족하는지 확인하는 프로세스입니다. 실제 제품을 검증하고 테스트하는 동적 메커니즘입니다. 검증 테스트는 블랙 박스 (기능) 테스트, 그레이 박스 테스트, 화이트 박스 (구조) 테스트 등과 같은 방법을 사용합니다.
각 프로세스 또는 모델에서 생성되는 소프트웨어의 품질은 생성 된 결함 수로 설명됩니다. 일반적으로 결함에 대한 가장 일반적인 메트릭은 다음과 같습니다.
- 총 테스트 케이스 수
- 통과 한 테스트 케이스 수
- 실패한 테스트 케이스 수
- 차단 된 테스트 케이스 수
- 발견 된 결함 수
- 허용 된 결함 수
- 거부 된 결함 수
- 지연된 결함 수
- 심각한 결함 수
- 계획된 테스트 시간
- 실제 테스트 시간
- 배송 후 발견 된 버그 수
품질 보증의 다양한 활동은 다음과 같습니다.
- 사양 및 비즈니스 요구 사항에 따라 프로젝트의 품질을 유지합니다.
- 결함 예방 및 기타 결함 예방 기술에 대한 공식적인 방법.
- 결함 감소.
- 검사, 공식 및 비공식 검토 : 프로젝트 시나리오를 실행하지 않고 직접적인 결함 감지 및 제거.
- 실패 관찰 및 버그 제거를위한 프로젝트 테스트.
- 위험 식별.
- 결함 추적 기술 및 방법.
- 소프트웨어 내결함성.
- 결론 및 보고서 유지.
소프트웨어 품질 보증이 매우 중요한 이유
- 사용자 관점 : 소프트웨어 응용 프로그램의 품질 보증은 최종 사용자 관점에서 응용 프로그램을보고 이에 따라 시나리오를 만드는 것이 좋습니다.
- 테스트 단계의 결함 : 예를 들어 고객이 프로덕션에서 문제를 찾기 전에 초기 단계에서 문제를 찾아 수정하는 것이 좋습니다.
- 프로젝트 위험 : 프로젝트 시작시 QA는 사양 단계에서 식별 된 위험을 완화하는 데 중요한 역할을합니다.
- 신뢰성 : 최종 사용자가 기대 한대로 작동하는 애플리케이션을 발견하면 최종 사용자의 신뢰를 높입니다. 부정적인 시나리오의 유예 전체 실패도 최종 사용자의 신뢰를 높이고 애플리케이션을 지능적으로 만듭니다.
- 최종 사용자에게 용이함 : 최종 사용자가 애플리케이션에 대한 기술적 지식 없이도 비즈니스 작업을 수행 할 수 있도록 도와줍니다. 쉽게 이해할 수있는 애플리케이션에는 기존 애플리케이션보다 더 많은 사용자가 있습니다.
- 보안 침해 방지 : 소프트웨어 개발자 가 프로덕션 환경에서 사용자 데이터를 보호하고 테스트 환경에서 데이터 유출을 감지 할 수 있도록 도와줍니다.
- 부하 이해 : 시뮬레이션 하에서 동작하는 응용 프로그램을 이해하고 생산 환경에서 시스템의 실제 부하를 파악하여 문제를 해결하는 데 도움이됩니다.
- 자동화 : 테스트 노력을 줄이고 더 빠르고 저렴한 방식으로 기능을 제공한다는 목표로 소프트웨어를 테스트합니다. 적은 노력으로 더 나은 품질의 소프트웨어를 구축하는 데 도움이됩니다.