본문 바로가기
Certificate/QA방법론

The House of Software Quality

by 코드네임피터 2023. 7. 6.
반응형

소프트웨어 품질의 집

오늘날, 산업에서 소프트웨어의 비중이 커지면서 핵심 기술을 확보하는 것만큼이나 소프트웨어를 잘 만드는 것도 중요한 문제가 되고 있습니다.
소프트웨어 문제로 인명과 금전적 피해로 연결되는 사건 사고가 발생하고 있으며, 이러한 사고 사례를 비춰볼 때 이제는 소프트웨어 품질 관리가 산업에서 필수로 자리잡고 있습니다.

그리고 기업에서는 발생 가능한 손해를 줄이고 효율을 향상하는 방안으로 기업 문화의 개선이나 조직의 성숙도에 대한 측면의 연구도 계속하여 진행 중입니다. CMMi나 TMMi 형태의 성숙도 모델과 Agile이나 Lean이라는 형태의 문화로 확산되고 있으며 조직 지향하는 방향을 설정하고 지속적인 움직임을 보이고 있습니다.

그럼 이 모든 것에 중심에 있는 소프트웨어 품질은 어떻게 구성해야 할 지 생각해볼까요?

들어가기 전에

(개인적인 생각이지만) 소프트웨어 품질과 같이 광역적이고 다양한 모델을 제시하는 표준, 절차, 가이드, 권고 등은 없을 것으로 생각합니다.

그만큼 많은 구성원과 의사소통해야 하고 공감해야 하고 서로 중지를 모아 결국에는 프로젝트 성공으로 견인하는 것이 품질 조직의 목표라고 봅니다.
프로젝트의 성공은 바로 고객이 요구하는 품질을 적시에 제공하는 것이며, 이는 바로 구성원의 하고잡이가 큰 요인이라고 봅니다.

다니엘 갈린, ’소프트웨어 품질의 집’

소프트웨어 품질의 집(The House of Quality)이란?

소프트웨어 공학 전문가인 다니엘 갈린(Daniel Galin)은 그의 저서 Software Quality Assurance(2004)에서 소프트웨어 품질의 집 개념을 소개하였습니다.
이 책에서는 소프트웨어 품질 계획의 개념과 사례에 대한 내용을 전하고 있으며, 그 중 모든 개념을 소프트웨어 품질 달성을 위해 연결해야 한다는 내용에 기인하였습니다.
소프트웨어 품질 보증 계획은 크게 참고, 품질 기반, 품질 문화 등으로 나누고 그 안에는 세세한 활동들이 정의 되어 있습니다.(번역된 부분이라 다소 어색함이 있을 수 있습니다.)

[참고 영역]

  • 표준 및 모델 : ISO나 IEEE에서는 소프트웨어 품질 유관 표준이 다수 존재
  • 품질 모델: ISO/IEC 25000, 품질 특성을 내부와 외부, 사용 품질로 구분하여 정의
  • 결함 분류: 일반적으로 기능과 비기능으로 구분(도메인에 따라 조금은 달라질 수 있음)
  • 무결성 수준: 소프트웨어 복잡성, 중요도, 위험, 안전 수준, 성능 수준, 안정성에 대한 가이드

[품질 기반]

  • 형상관리: 테스트 대상 형상을 관리에 따른 위험 제거
  • 검토: 다양한 형태의 검토 존재, 동료 검토, 인스펙션, 워크 스루 등
  • 감사: 정의된 기간에 프로세스 준수 및 활동을 수행했는지 확인
  • 검증 및 확인: 요구사항이 올바르게 반영되었는지? 올바른 요구사항이 반영었는지?
  • 추적성: 제기된 이슈는 시작부터 종료될 때까지 관리되어야 함
  • 정책, 절차, 프로세스: 방법론 측면에서의 기본적인 활동을 정의하고 관리
  • 측정: 테스트 활동을 통해 확인할 수 있는 정량적 측정 방법, 커버리지 등
  • 공급자 관리: 3rd Party 협력업체를 비롯한 구성 도구 전반을 의미함

[품질 문화]

  • 품질 비용: 프로세스나 프로덕트의 개선 노력에 대한 비용
  • (품질)코드 윤리: 윤리적 관점의 관리는 시스템의 효율성의 인과에 영향을 끼침
  • 품질 요구: 품질에 대한 기본적인 요구사항
  • 프로젝트 5가지 고려사항: 기능, 품질, 비용, 기간, 조직에 영향을 받음
  • 품질 관리 시스템: 요구사항에서부터 배포됨을 전반적으로 관리할 수 있는 시스템 통칭
  • 사업 모델: 사업에서 요구하는 모델에 따라 품질의 목표가 달라질 수 있음
  • 체크리스트: 기본적인 체크리스트는 작성 관리되어야 함
  • 위험 관리: 위험 식별에서 관리 계획을 통해 해결하는 일련의 절차

앞으로 우리가 지어야 할 집은?

사업 관점과 다양한 이해관계자와의 논의하다보면, QA나 테스트 활동이 뒷전으로 밀리기 쉽상입니다. 품질이라는 부분은 포기하고서는 비즈니스에 성공할 수 없다는 점을 다시 한번 되새겨야 하겠습니다.
소프트웨어 품질의 집을 함께 짓는 QA로서 구성원과 프로덕트, 프로세스에 긍정적인 효과를 제공하고 선순환할 수 있도록 노력하겠습니다.

이글을 맺으며 하고 싶은 말은?

“소프트웨어 개발에 있어 품질 활동은 선택이 아닌 필수입니다. “

반응형

댓글