트위터에서 @onsooyoung 님이 QA가 무엇을 말하는지.. 그리고 결론적으로 테스터와 QA의 큰 차이가 무엇인지에 대해 물어보셨다..
내가 이전에 썼던 글이 그다지 친철하지 못했던 것 같아 반성해 본다.. 혹시나 했지만 역시나 글을 쓴다는 건 무척 어려운것 같다.
특히 나에게는 당연한 것을 다른 사람에게 전달할 때는 더 어려운 것 같다.
먼저 QA에 대해서 잠깐 말해보도록 하겠습니다.
QA 는 Quality Assuranced의 약자를 말합니다. 우리 나라 말로 하자면 품질 보증이라고 할 수 있습니다.
QA는 QM(Quality management)의 한 단계입니다.
QM은 QC(Quality control), QA, QI(Quality improvement)의 3가지 주요 단계로 구성됩니다.
자세한 것은 위키피디아와 같은 내용을 참조하시고, 여기서는 간략하게 결론부터 말하자면..
테스트는 QC에 훨씬 가깝습니다.
품질 공학에서 말하는 곳마다 조금씩 틀리지만 제품의 품질을 관리하는 것은 3단계를 걸칩니다.
먼저 품질 매트릭을 정의하고 측정하고 수집하고 통계를 내는 QC 단계를 거칩니다.
QC 단계를 지나면 수집된 데이터를 통해 생산되는 제품에 대해 일정 품질을 보장할 수 있는 QA 단계에 이릅니다.
그리고 그 다음은 그런 품질을 더 나은 품질로 개선하는 QI 단계로 갑니다.
소프트웨어의 품질에 대해서는 ISO/IEC 25000 표준(ISO/IEC 9126의 최신 버전)을 참고하시면 됩니다.
ISO/IEC 25000을 참고한다면 QA가 하는 일이라 하면 기능성 뿐만 아니라, 이식성, 유지 보수성, 보안성, 상호운용성, 사용성 등 품질에 대한 매트릭이 측정 가능해야 하며 그런 측정 활동을 통해 제품에 일정 수준의 품질을 보장할 수 있어야 합니다.
하지만 국내에서 QA 조직을 보면 대부분의 경우 기능성, 성능, 보안성 등 특정 영역에 치중되어 있고, 측정하는 부분도 제대로 된 매트릭을 수집해서 측정하고 보장할 정도의 수준에 도달한 곳도 손에 꼽을 정도입니다.
즉 이 얘기를 다른 말로 바꾼다면 QC도 제대로 못하면서 겉멋만 들어서 QA라는 말도 안되는 조직을 만들어서 운영하고 있다는 얘기가 됩니다.
테스트는 이전 글에서 얘기한 것처럼 저런 품질 특성 보다는 제품의 완전성(즉, 정상 동작 유무)에 더 치중합니다. 테스트는 제품의 기획 부터 유지보수 단계까지 모든 단계에 걸쳐 결함을 발견하여 제거하고 고객이 결함을 발견할 확률을 낮추고 현장에서 제품이 안정적으로 동작하도록 하는 활동을 합니다.
얼추 보면 매우 비슷하지만 분명 두 활동은 차이가 있습니다.
테스트는 QC에서 행하는 많은 활동과 유사한 활동을 합니다. 하지만 두 활동은 같은 매트릭을 설정하고 측정한다고 해도 결론적으로 그 데이터를 통해 얻고자 하는 목적이 전혀 틀립니다.
QA는 품질 매트릭과 측정 방법을 통해 제품의 품질을 보장하는 것이 목적이라면 테스팅은 개발 전 과정에서 결함을 제거하고 고객이 제품을 어려움 없이 사용하도록 하는 것이 목적입니다.
내가 이전에 썼던 글이 그다지 친철하지 못했던 것 같아 반성해 본다.. 혹시나 했지만 역시나 글을 쓴다는 건 무척 어려운것 같다.
특히 나에게는 당연한 것을 다른 사람에게 전달할 때는 더 어려운 것 같다.
먼저 QA에 대해서 잠깐 말해보도록 하겠습니다.
QA 는 Quality Assuranced의 약자를 말합니다. 우리 나라 말로 하자면 품질 보증이라고 할 수 있습니다.
QA는 QM(Quality management)의 한 단계입니다.
QM은 QC(Quality control), QA, QI(Quality improvement)의 3가지 주요 단계로 구성됩니다.
자세한 것은 위키피디아와 같은 내용을 참조하시고, 여기서는 간략하게 결론부터 말하자면..
테스트는 QC에 훨씬 가깝습니다.
품질 공학에서 말하는 곳마다 조금씩 틀리지만 제품의 품질을 관리하는 것은 3단계를 걸칩니다.
먼저 품질 매트릭을 정의하고 측정하고 수집하고 통계를 내는 QC 단계를 거칩니다.
QC 단계를 지나면 수집된 데이터를 통해 생산되는 제품에 대해 일정 품질을 보장할 수 있는 QA 단계에 이릅니다.
그리고 그 다음은 그런 품질을 더 나은 품질로 개선하는 QI 단계로 갑니다.
소프트웨어의 품질에 대해서는 ISO/IEC 25000 표준(ISO/IEC 9126의 최신 버전)을 참고하시면 됩니다.
ISO/IEC 25000을 참고한다면 QA가 하는 일이라 하면 기능성 뿐만 아니라, 이식성, 유지 보수성, 보안성, 상호운용성, 사용성 등 품질에 대한 매트릭이 측정 가능해야 하며 그런 측정 활동을 통해 제품에 일정 수준의 품질을 보장할 수 있어야 합니다.
하지만 국내에서 QA 조직을 보면 대부분의 경우 기능성, 성능, 보안성 등 특정 영역에 치중되어 있고, 측정하는 부분도 제대로 된 매트릭을 수집해서 측정하고 보장할 정도의 수준에 도달한 곳도 손에 꼽을 정도입니다.
즉 이 얘기를 다른 말로 바꾼다면 QC도 제대로 못하면서 겉멋만 들어서 QA라는 말도 안되는 조직을 만들어서 운영하고 있다는 얘기가 됩니다.
테스트는 이전 글에서 얘기한 것처럼 저런 품질 특성 보다는 제품의 완전성(즉, 정상 동작 유무)에 더 치중합니다. 테스트는 제품의 기획 부터 유지보수 단계까지 모든 단계에 걸쳐 결함을 발견하여 제거하고 고객이 결함을 발견할 확률을 낮추고 현장에서 제품이 안정적으로 동작하도록 하는 활동을 합니다.
얼추 보면 매우 비슷하지만 분명 두 활동은 차이가 있습니다.
테스트는 QC에서 행하는 많은 활동과 유사한 활동을 합니다. 하지만 두 활동은 같은 매트릭을 설정하고 측정한다고 해도 결론적으로 그 데이터를 통해 얻고자 하는 목적이 전혀 틀립니다.
QA는 품질 매트릭과 측정 방법을 통해 제품의 품질을 보장하는 것이 목적이라면 테스팅은 개발 전 과정에서 결함을 제거하고 고객이 제품을 어려움 없이 사용하도록 하는 것이 목적입니다.
마지막에 정리한 것을 읽으니 "테스터는 프로젝트의 전조등이다"라는 말이 생각나네요. ^^;
답글삭제