소프트웨어 품질 보증이란?

소프트웨어 품질은 외부 특성과 내부 특성을 통해 평가합니다. 외부 품질은 실제 운영 조건에서 소프트웨어가 얼마나 잘 작동하고 사용자에게 얼마나 유용한지를 뜻합니다. 내부 품질은 동작을 뒷받침하는 코드의 품질입니다. 사용자는 주로 외부 동작을 경험하지만, 그 품질을 유지하려면 이해하기 쉽고 잘 작성된 코드가 필요합니다.

External and Internal Software QualityTest External Quality(Visible)ReliabilityEfficiencyMaintenanceCostReview Internal Quality (Invisible)ComplexityProgramStructureFlexibilityReadabilityReusabilityTestabilityCodingPractices
전체 크기 도표 열기

소프트웨어 품질

소프트웨어 품질 보증이란?

소프트웨어 품질을 평가하는 두 가지 주요 접근법이 있습니다.

  1. 결함 관리 접근법
  2. 품질 속성 접근법
고객의 요구사항을 충족하지 못하는 모든 사항은 결함으로 볼 수 있습니다. 요구사항을 잘못 이해하면 설계 오류가 생길 수 있습니다. 기능 로직의 문제, 잘못된 코드, 부적절한 데이터 처리도 결함을 일으킬 수 있습니다. 결함 관리에서는 결함을 추적하고 심각도별로 분류한 다음 건수를 기록합니다. 팀은 부여된 심각도에 따라 조치합니다. 관리도는 개발 프로세스의 능력을 측정하는 데 도움이 됩니다.

Defect Management ApproachMetricsDevelopmentProcessQAProcessQA1. RiskAnalysis2. DefectDetection3. AnalysisSoftwareDevelopmentAssign Severityand PrioritySoftwareDevelopmentConductImpactAnalysisfor HighPriorityDefect Management Approach
전체 크기 도표 열기

결함 관리 접근법


이전 소프트웨어 제품 품질 모델인 ISO/IEC 9126-1은 품질 속성을 여섯 가지 특성으로 분류합니다.

Quality Attribute ApproachFunctionalitySuitabilityAccuracyInteroperabilityComplianceSecurityReliabilityMaturityRecoverabilityUsabilityUnderstandabilityLearnabilityEfficiencyTime Behavior(Time Taken)Resource UtilizationMaintainabilityAnalyzabilityChangeabilityStabilityTestabilityPortabilityAdaptabilityInstallabilityConformanceReplaceability
전체 크기 도표 열기

품질 속성 접근법

1. 기능성 소프트웨어가 제공하는 주요 기능 전체입니다.

  • 적합성. 소프트웨어 기능이 목적에 적합합니까?
  • 정확성. 기능이 올바르게 구현되었습니까?
  • 상호운용성. 소프트웨어는 다른 시스템 구성요소와 어떻게 상호작용합니까?
  • 준수성. 소프트웨어가 적용되는 법률과 지침을 준수합니까?
  • 보안성. 소프트웨어가 데이터 트랜잭션을 안전하게 처리할 수 있습니까?
2. 신뢰성 정해진 조건에서 일정 기간 소프트웨어가 작동하는 능력입니다. 구성요소의 장애를 견디는 능력도 포함합니다.
  • 성숙성. 소프트웨어 장애가 얼마나 자주 발생합니까?
  • 복구성. 장애가 발생한 후 시스템이 정상 동작을 얼마나 잘 회복할 수 있습니까?
3. 사용성 특정 기능을 얼마나 쉽게 사용할 수 있는지를 나타냅니다.
  • 이해성. 사용자가 기능을 얼마나 쉽게 이해할 수 있습니까?
  • 학습성. 경험 수준이 다른 사용자가 기능을 익히는 데 얼마나 많은 노력이 필요합니까?
4. 효율성 일반적으로 개발에 사용한 아키텍처와 코딩 방식에 영향을 받습니다.

5. 유지보수성 지원 용이성이라고도 합니다. 코드의 가독성과 복잡성에 크게 좌우되며 결함을 찾아 수정하는 능력과 관련이 있습니다.
  • 분석성. 장애의 주요 원인을 얼마나 쉽게 파악할 수 있습니까?
  • 변경성. 코드를 변경해 결함을 제거하는 데 얼마나 많은 노력이 필요합니까?
  • 안정성. 변경 후에도 시스템 동작이 얼마나 안정적입니까?
  • 시험성. 시스템을 테스트하는 데 얼마나 많은 노력이 필요합니까?
6. 이식성 시스템이 환경의 변화에 적응하는 능력입니다.
  • 적응성. 시스템이 명세 변경에 얼마나 쉽게 적응할 수 있습니까?
  • 설치성. 시스템을 얼마나 쉽게 설치할 수 있습니까?
  • 준수성. 기능성의 준수성에 해당합니다.
  • 대체성. 주어진 환경에서 시스템 구성요소를 얼마나 쉽게 대체할 수 있습니까?

소프트웨어 품질 비용 테스트에는 시간, 비용, 노력이 듭니다. 소프트웨어 품질 비용을 분석하면 그 투자에 따른 수익률(ROI)을 이해하는 데 도움이 됩니다.

Cost of Software QualityCost ofSoftwareQualityPreventionCostsTestabilityAutomation Testing(Unit and Integration)ContinuousIntegrationAppraisal CostsQA Test PlansUATManual TestingInternal FailureCostsOperationalDowntimeExternal FailureCostsFinancial LossesLoss of Business
전체 크기 도표 열기

소프트웨어 품질 비용

품질 비용에는 적합 비용과 부적합 비용이 포함됩니다. 적합 비용은 다음과 같이 나뉩니다.
  1. 예방 비용. 팀 교육, 코드 리뷰와 같은 품질 보증 활동을 올바르게 수행하는 데 드는 비용입니다.
  2. 평가 비용. 테스트 케이스 작성과 실행을 비롯해 테스트를 계획하고 수행하는 데 드는 비용입니다.
부적합 비용은 다음과 같은 실패에서 발생합니다.
  1. 내부 실패 비용. 초기 내부 테스트에서 실패가 발생하면 드는 비용입니다. 단위 또는 구성요소 테스트에서 발견된 결함을 개발자가 수정하는 데 드는 노력도 포함합니다.
  2. 외부 실패 비용. 테스트 담당자가 놓친 결함을 고객이 발견하면 드는 비용입니다. 고객이 불만을 느끼거나 소프트웨어 장애를 상위 대응 단계로 올리는 경우 특히 내부 실패 비용보다 훨씬 커집니다.
소프트웨어 장애 비용 여러 요인이 소프트웨어 장애에 영향을 미칠 수 있습니다.
  1. 변화에 대응하기 어려워짐. 소프트웨어가 오래되면서 기존 코드를 재검토하지 않고 기능을 추가하면 규모가 커지고 유지보수가 어려워질 수 있습니다. 시간이 지날수록 변경해야 할 부분을 찾기 어려워집니다.
  2. 소프트웨어, 작업 부하 또는 데이터가 변하면 성능이 저하될 수 있습니다. 예를 들어 메모리 누수는 동작 중 메모리 사용량을 늘릴 수 있습니다. 소프트웨어를 수정할지, 업그레이드할지, 교체할지 정하기 전에 문제를 측정하고 원인을 조사합니다.
  3. 수정으로 인해 회귀 문제가 발생할 수 있습니다. 다른 구성요소가 변경된 코드에 의존하는 경우 특히 그렇습니다. 수정이 원래 문제를 해결했는지 확인하고 영향을 받는 동작을 테스트합니다. 결과, 유지보수 비용, 사업 영향을 고려해 다음 조치를 결정합니다.
소프트웨어 테스트와 품질 보증 IT 업계에서는 소프트웨어 품질 보증과 테스트를 혼동하기 쉽습니다. 두 활동 모두 높은 품질의 소프트웨어를 목표로 하므로 테스트 담당자를 품질 보증 전문가라고 부르기도 합니다.
품질 보증은 고객의 품질 요구사항을 충족하고 소프트웨어 개발 생명주기 절차를 따르는 데 필요한 프로세스를 개발하고 실행합니다. 문제를 사전에 예방하는 활동으로, 다음에 중점을 둡니다.
  1. 결함 예방
  2. 프로세스
  3. 프로세스의 지속적인 개선
소프트웨어 테스트는 소프트웨어를 면밀히 검토해 결함과 오류를 찾습니다. 고객 요구사항에서 벗어나 수정해야 할 부분을 확인합니다. 테스트는 제품 중심의 품질 관리 활동입니다. 테스트는 결함을 찾아내며, 결함 수정은 디버깅의 역할입니다.

품질 보증과 품질 관리 품질 보증과 품질 관리는 밀접한 관련이 있으며 역할이 다릅니다. 품질 보증은 프로세스를 통한 예방에 집중합니다. 품질 관리는 제품의 품질 문제를 발견하고 해결하는 활동에 집중합니다.
테스트는 품질 관리의 일부입니다. 품질 보증과 품질 관리는 모두 전반적인 품질 경영에 기여합니다. 품질 보증은 팀이 고객 요구사항을 충족하도록 프로세스를 수립하고 개선합니다.

Quality Management, Assurance and ControlQuality ManagementQuality AssuranceQuality Control
전체 크기 도표 열기

품질 보증과 품질 관리

품질 관리에는 제품 특성을 확인하고 통제하며, 개발이 정해진 요구사항을 충족하는지 확인하는 활동이 포함됩니다. 그중 가장 중요한 활동은 제품 검사와 테스트입니다.

품질 관리 팀은 회사의 품질 기준을 충족하지 못하는 제품이나 서비스를 찾아냅니다. 문제가 확인되면 해결될 때까지 생산을 중단할 수 있습니다.

감사와 인스펙션의 중요성

감사는 조직이 소프트웨어 테스트를 수행하는 방식을 체계적으로 살펴봅니다. 감사 담당자는 문서화된 프로세스를 검토하고 조직이나 팀이 정해진 기준을 준수하는지 확인합니다.

인스펙션은 요구사항, 설계, 코드와 같은 작업 산출물에 대한 공식 리뷰입니다. 작성자가 아닌 검토자가 결함과 합의된 기준에서 벗어난 부분을 찾습니다. 일반적인 인스펙션에는 다음과 같은 활동이 포함됩니다.

  1. 계획
  2. 개요 설명과 개별 준비
  3. 인스펙션 회의
  4. 수정 작업
  5. 후속 확인




무료 온라인 교육을 통해 소프트웨어 테스트 인증 시험에 합격할 수 있음을 보장합니다!

  1. 01

    온라인 등록

    공인 인증을 선택하고 등록을 완료하세요.

  2. 02

    접속 코드 받기

    개인 시험 접속 코드가 이메일로 즉시 발송됩니다.

  3. 03

    준비하고 시험 응시하기

    무료 교육으로 학습하고 온라인에서 객관식 50문항에 답하세요.

  4. 04

    평생 유효한 인증 취득

    전 세계에서 유효한 인증서와 검증 가능한 디지털 배지를 받으세요.

Accredited Software Test Manager Certification™ 인증서 견본
인증 신청하기

무료 프리미엄 온라인 교육

Software Testing Revealed 제2판을 준비했습니다.

모든 주요 산업 분야에서 활동하는 저명한 기업 및 팀 리더, 소프트웨어 테스트 코치, 멘토, 전문가 및 권위자와 함께 교육을 만들었습니다. International Software Test Institute™를 방문하는 누구나 이용할 수 있습니다. 다음 두 항목에서 자료를 확인할 수 있습니다. 무료 소프트웨어 테스트 도서 및 무료 프리미엄 소프트웨어 테스트 교육 두 항목 모두 상단 메뉴에 있습니다.

이 자료는 저작권으로 보호되는 International Software Test Institute™의 지식재산입니다. 저희의 전문 지식을 공유하면 소프트웨어 테스트 전문가를 돕고 이 분야의 발전에 기여할 수 있기에 모두에게 무료로 공개합니다.

인증 시험은 객관식입니다. 온라인 교육으로 시험에 합격하고 소프트웨어 테스트 인증을 받는 데 필요한 지식을 쌓으세요.

무료 프리미엄 온라인 교육을 통해 소프트웨어 테스트 인증 시험에 합격할 수 있음을 보장합니다!