반응형

지금까지는 테스터와 QA의 업무에 대해 다루었다

이제부터는 테스트를 어떻게 계획하고 요구사항을 어떻게 분석하고 테스트를 수행하는데 있어 어떤식으로 문서를 작성해야하는지 정리하려고 한다

소프트웨어 테스팅은 소프트웨어의 결함이 있는지를 발견하는 행동이지만 소프트웨어의 결함이 없다는 것을 증명하는 사실이 아니다.

QA의 업무 중 일부는 테스트 계획 설계부터 테스트 수행단계까지의 일련의 보고서와 문서의 작성이 50%를 차지한다.


우선 테스트 일정을 산출하기에 앞에서 테스트의 과정을 알고 가야한다.

테스트의 과정은 테스트 설계 > 테스트 분석 > 테스트 디자인 >테스트 설계 > 테스트 수행 순으로 테스트기 이루어지며 

테스트가 완료가 되면 시점을 QA Sign-off라고 한다 .

테스트의 단계는 5단계이지만 테스트 수행에 구현을 같이 포함시켰다

신입 주니어의 QA 엔지니어 중에서 테스트 결과서나 테스트 계획서를 작성해보지 않은 경험이 있을 수 도 있을 수도 있다.

테스트를 수행하기 전, 테스트 케이스를 작성하기 전에 반드시 시행해야 하는 단계가 테스트 일정 산출과 테스트 분석 단계이다.

또한 입사 사전 과제로 테스트 계획서 또는 테스트 결과보고서가 과제로 수행이 되는 경우가 많다.

테스트 산출과 계획이어야말고 QA에 있어 가장 큰 업무이다.

필자의 경우 2년의 경험이 있는 1인QA  프리렌서이지만.  용역보고서 및 테스트를 혼자 진행하면서 보고서까지 고객사에 제출한 경험을 토대로 QA의 업무에 있어 과정을 다시 정리해보려고 한다. 

우선 테스트 계획서는 테스트 목적과 테스트에 필요한 리소스(단말,인력)과 테스트에 소요예상되는 리스크를 모두 담아야 한다.

테스트를 왜 하는지 , 이 테스트가 통과되려면 어떤 기준으로 하는지, 테스트는 누가 할 것인지 , 테스트 문서는 어떻게 관리하였는지

테스트 리스크는 어떻게 관리 할 것인지에 대해서 최대한 상세하게 다르는 문서로 단순한 테스트 케이스 작성보다 고도화된 문서이므로

메뉴얼적인 테스터들이 이 문서를 작성할 일은 어쩌다가 있다.

테스트 계획 설계는  테스트 숙련도 평가 모델 TMMi(Test Maturity Model Integration)을 기반으로 작성하였다.

 

TMMi의 5단계 

Level1 초기(Initial)
  • 테스팅이 정의되지 않음
  • 테스팅과 디버깅을 한 부분으로 인식
  • 테스트는 조직원의 능력과 자신감에 의존
 
Level2 관리(Managed)
  • 테스트와 디버깅이 구분
  • 결함 발견 활동의 집중
  • 테스트가 SDLC에서 하나의 독립된 단계로 정의
  • 테스트 정책을 문서화하거나 정책의 일부분으로 정의
  • 전략·접근법 근거하여 테스팅 고 있다는 것을 증명
  • 테스트 정책과 전략
  • 테스트 계획
  • 테스트 모니터링 및 제어
  • 테스트 설계 및 수행
  • 테스트 환경
Level3 정의(Defined)
  • 테스팅이 개발생명주기와 통합되는 단계
  • 별도의 테스트 전담조직 보유
  • 조직차원에서 테스팅을 내재화
  • 테스트 조직
  • 테스트교육/훈련 프로그램
  • 테스트 수명주기와 통합
  • 비기능 테스팅
  • 동료 검토
Level4 관리&측정(Management & Measurement)
  • 동료 검토 활동 수행
  • 요구사항 분석 단계부터 예방적 테스팅
  • 테스트를 관리하고 측정하는 단계
  • 메트릭을 이용한 테스트 수치화, 정량화
  • 테스트 측정
  • 소프트웨어 품질 평가
  • 발전된 동료 검토
Level5 최적화(Optimization)
  • 결함 예방과 품질제어 활동에 초점
  • 테스트 프로세스가 정의·관리되며, 비용과 효과 모니터링
  • 테스트 프로세스가 지속적으로 개선·조정
  • 활동이 통계적 방법과 다양한 평가 기준에 의해 측정
  • 결함 예방
  • 테스트 프로세스 최적화
  • 품질제어

 


본 테스트 계획서는 필자(지스)가  신입 저연차 QA엔지니어에게 역량을 키워주고 발전시키기 위해 테스트 계획서를 작성가이드를 공유하기 위해 공유하는 것으로 외부 공유 시 사전문의 부탁드립니다. 

지스의 동의 없이 배포 또는 복사, 배포를 금지하며, 공부목적 이외 사용시 반드시 사전 문의 하시기 바랍니다.

 테스트 계획서는 먼저 업체명(프로젝트명) / 문서명 / 담당자를 구별하고 문서를 시작한다.

1) 목적

테스트 계획서에 대한 목적과 작성 이유에 대해서 서술한다. (임의로 만든 내용) 

즉 이 문서가 왜 쓰인지 어디에서 쓰이는 지 가이드 하는 프로젝트 공수 산정에 있어 문서 표준을 정립하는 것이다.

만약 QA프로세스가 없다면 문서 양식과 프로세스 부터 체계화해야 하므로 문서부터 만들어 나가야한다.

 

예시)

1. 개요

 1) 목적

당사 지스케어의 쇼핑몰의 상품관리에 있어 타사 온라인 이커머스 플렛품 쿠팡,스마트스토어,옥션,11번가의 플렛품에 동시에 등록하여 판매팀과 CS팀의 효율적인 업무를 위해 당사 몰과 타사몰의 서비스를 연동하는데 있음

당사 몰의 경우는 스마트스토어가 아닌 자체적인 마켓을 구축되어있어 별도로 플렛품화가 필료함 

2) 범위

이번 프로젝트 테스트이 범위가 어디까지 적용되는지를 적는다

예) 앱이면 앱 웹이면 페이지명 컴포넌트별로 나눈다.

2-1 대상

본 문서는 전사 프로젝트에서 공용으로 쓰일 수 있도록 단일화하는 목적으로 제작하였다.

21.1 테스트 대상 서비스

자사몰(지스케어몰)과 타사몰(무좀사)와 연동자사몰과 무좀사와의 쇼핑물의 상품 데이터 동시에 상품이 등록되는 서비스로 모바일과 웹 환경에서 오류없이 api 연동이 되어야한다.

2.2 테스트 항목

 - 모바일 환경과  PC브라우저 환경에서 원할한 연동되는 지를 확인한다

 - 요구사항과 기획서에 명시된 기능되로 각 상품별 카테고리가 동일하게 연동되었는지 확인 

-각 브라우저,OS환경 별 호환성 테스트  

- 타사 몰의 api 서버문제로 당사의 api와 연동되지 않았을 경우의 비기능 테스트 당시의 상품과 타사몰간의 상품데이터를 통합으로 연동하는데 있어 제외하는 조건은 아래와 같다 

- 스토어 몰에 상품이 등록되어 있지 않은 경우  -

타사몰의 데이터를 가져오는 중 해당 몰의 카테고리가 자사몰에 있지 않은 경우     ( 해당 기능의 경우 개발,기획 회의를 거쳐 구현가능한지 확인 필요) 

2.3  전제조건

두개의 연동 몰 사이에 api가 정상적으로 연결되어야 함

등록된 상품이 한 개 이상 있어야함

테스트 시작 전 연동에 필요한 api서버와 환경이 준비되어 있어야 함

타사몰과 사전에 협의가 있어야함

테스트 시작조건은 테스트 완료일까지 조건이 되어하며 준비되지 않을 시 QA일정을 조율해야 한다.

 

 

 

 

 

 

320x100
반응형

QA활동에 대해서


소프트웨어 QA라고 하면 대부분 생각하는 것이 테스트라고 생각을 하는 경향이 있다 

QA엔지니어라고 하면서 실상은 테스트 엔지니어에 불과한 현실이다.

QA팀이라고 생각하면 대부분 테스트를 하는 부서라고 생각을 한다. 맞을 수 도 틀릴 수 도 있다. 통싱 적으로 개발팀에서 자체 개발 테스트를 하지 않고 QA팀에서 테스트를 진행하고 QA팀에서 테스트가 정상적으로 진행되었다면 QA Off라고도 한다 QA 하면 검증을 하는 업무라고 많이들 이야기를 한다. 반복적인 테스트와 부화적인 스트레스 테스트를 진행하여 통과가 되어야 QA라고 하는데 이건 잘 보면 QC활동이다

QA에 대한 교육이나 컨퍼런스를 찾아보면 QA에 대한 교육은 없고 테스팅에 대한 이론과 교육만 존재한다.

ISO 29119 표준 어디에도 QA= TEST라는말은 없다. 대체 이 오해는 왜 생긴 것 일까?

ISO 29119 1장부터3장까지에는 QA 테스트라는말은없다

QA는 예방활동이다.

QA에 활동에 테스트가 포함되긴 하지만 절대로 QA=TEST가 되서는 안 된다.

기능에 대한 오류가 발생했을 때는 QA제대로 했어? 가 아니라 테스트 제대로 했어?로 말해야 한다 

QA는 리스트 발생에 대한 인자에 대한 예방하는 활동이므로 QA기간이라고 하면

테스트를 포함하여 요구사항 파악하고 테스트를 계획하고 테스트를 수행하고 리포트를 하고

배포까지의 일련의 과정을 QA기간이라고 해야 한다.

단순하게 테스트 기간을 QA기간으로 생각하고 있는지 다시 한번 생각해봐야 한다.

QA는 테스트에 대한 환경, 일정관리 , 이슈에 대한 관리 , 테스트 수행, 테스트 결과보고, 배포까지의 과정을 다루는

큰 툴을 다루고 있고 단순한 테스트업무를 하지않는다.

다시말해 테스트는 QA라고하면 안된다.

테스트는 테스터의 영역이다

테스터나 테스터 엔지니어는 주어진 테스트를 수행하고 이슈를 생성하고보고하는데 그치거나 테스트 일정관리까만 관여하는게 통상적이다. 이건 QA가 아니라 QC의 영역이고 Test Engieneer이다.

다시한번말하지만 QA는 테스트야라고 한 단어로 끝내는게 아니다.

 


테스트를 잘하면 품질이 좋아질까? 

테스트에는 수 많은 테스트 기법과 방법과 방법론들이 존재한다.

테스트는 고객관점 사용자 관점에서 바라보고 테스트를진행하고

QA활동은 고객관점 테스트와 요구사항기반으로 개발이되었지까지의 확인을 하는 과정이다.

단순하게 이슈를 많이 찾아서 리포팅한다고 해서 그에 대한 테스트 커버리지가 확보된다고 할 수 없다.

소프트웨어 테스팅 활동은 소프트웨어의 결함을 찾아내는 활동으로 품질을 보증하는 활동이 아니다.소프트웨어 개발과 소프트웨어 테스팅에서 가장 먼저 시행되는 과정은 요구사항 파악이다.요구사항과 기획의도를 파악하고 기획서문서를 기반으로 되었는지 테스트를 하고 테스트를하면서 리포팅을 하고 결과에 따라 위험인자와 이슈원인과 방지안을 찾는게 QA이다.단순한 테스팅은 Test Engieneer의 영역이지 QA의 영역에서 거리가 있다.그래서 요구사항 기반으로 개발이되었는지 부터 분석하는게 QA의 업무이기도 하다. 물론 프로세스가 에자일기반으로 돌아간다면 설계단계부터 기획 테스트를 돌면서 스프린트로 돌아가기때문에 다른 이야기지만. 그건 나중에 다루도록 하고 

정말 1부터 100까지 모든 일련의 과정을 문서화시키는 곳은 거이 없을 것 이겠지만

테스터도 동일하게 역량에 따라 요구사항명세서에 기재된 기능에 따라 테스트케이스를 역으로 설계하고

이 기능이 만족하는지 테스트 케이스를 명세기반으로 설계를 할 수 있다.

QA는 테스트에 대한 전반적인 일정일 관리하고 테스트에 소요되는 리스크를 분석하고

이뤄진 테스트에 대해서 중요한이슈인지에 대해 판별을 내리는 과정이고

단순한 테스트의 활동은 QA로 분류해서는 안된다.

많은 기업들이 QA를 Test로 오해하고 있고 이게 대중화가 되면서 QA가 테스트가 되버린 거짓말같은 세상이 되었다.

내가 QA라면 과연 테스트만 위주로 사고를 생각했는지를 생각하면 된다.

테스트검증위주의 사고에서 벗어나야한다.


테스트의 설계 

 

명세기반 테스트케이스를 작성할때 요구사항 명세서를 참고하기도 한다.

 

요구사항에 적힌 내용을 기반으로 테스트케이스를 설계를 한다.

명세기반으로 테스트케이스를 작성할 수 도 있지만 스토리보드(기획문서)를 기반으로 한 테스트케이스를 작성 할 수도있다 

테스트케이스를 작성을 하고 테스트를 수행하고 리포트를 작성한

 

자, 그러면 테스터도 Testcase를 작성하는데 QA는 안하냐고?

QA도 Testcase를 쓰는경우도 있다.

단지 QA는 테스트 중심의 사고가 아니라 품질, 이슈에 대한 프로세스에 중심되어야한다. 

QA는 테스트의효율성도 따져야하지만, QC를 수행하는 인력관리를 포함하며

품질의 목표에 달성하는 지, 이슈에 대한 우선순위 산정을 해야한다. 

리스크 분석과 이슈 분석을 해서 좋은 결과를 생각해야 한다 

더 좋은 테스터가 되기 위해서는 테스트를 어떻게 효율적인가를 생각해야하고

더 좋은 QA는 이슈를 찾는 것보다는 이슈를 어떻게 관리할 것인가를생각해야한다.

 

 

 

320x100
반응형

 

기존 포스팅 : https://jislog.net/13?category=854150 

테스터와 QA에 대한 차이는 기존에 정리를 했었는데 간단하게 다시 정리를 하려고 한다.

 

SQA(Sofrware Quality Assurance)의 개요

사전에 기획된 요구사항과 개발완료된 SW 제품과의 일치성 확인작업과 검증 중 발생한 이슈로 인해 생길 수 있는 비용적 문제를 산출하고 제품에 대한 안정성과 요구사항에 대해 만족하는지 품질을 보증하는 과정을 의미한다.

 

단순하게 테스트 위주의 검증 업무는 QA( Quality Assurance) 가 아니라 QC(Quaulity Control)에 해당하고

QA안에 테스트가 포함되어 있을 뿐, QA=테스트야 라고 절대로 오인해서는 안된다.

 

자 그러면 보증은 무엇일까?

 

보증이란 (ISO9001 표준에 따름)

보증은 조직 경영진에 의해 제공되며 결과에 대한 확신을 얻는 제품에 대해 긍정적인 선언을하는 것을 의미합니다. 제품이 기대나 요청에 따라 결함없이 작동 할 것이라는 보증을 의미한다.

 

QC는 Quaulity Control, Quaulity Check로 많이 불리는데

품질관리로 직역을 하는데 말그대로 제품에 대한 품질을 관리하는 것으로써 계획된 대로 제품이 개발이 되었는지 확인를 하고

기능은 정상적으로 동작을 하는지, 동작을 하지 않는다면 이 기능이 동작하지 않습니다 라고 보고를 하는 작업을 Test를 진행하고 리포팅하는 업무까지가 QC다 사실 QC는 하드웨어 생산 공정에서 많이 쓰이고 SW에서는 Test또는 검증(Inspect)라고 한다.

성적서 또는 명세서, 기획서에 맞쳐서 개발이 되었는지 체크리스트, 테스트를 검수를 진행을 한다.

 

QA와 QC는 소프트웨어를 포함하여 많은 분야에서 쓰고 있으므로 소프트웨어 QA와 의료기기 QA 제약 QA를 같은 용어로 보면 안된다

각각의 분야의 업무가 다르고 표준도 다르다.

 

SQA는 소프트웨어에서 기반한 품질 보증 업무이다 소프트웨어 QA인데 의료기기 품질 인허가를 한다면 그것은 의료기기 QA에 가깝다고 할 수 있다.

 

QA도 QC업무를 진행하는 경우가 많기 때문에 Test Engineer를 QA Engineer로 오해 하는 경우가 생긴다.

한마디로 간단하게 정의를 내리면 간단하다

Test Engineer (QC) 는 결함발견을 중점

QA Engineer는 결함발견 후 사후 관리에 있어 재발되지 않도록 방안을 생각하고 제품에 대한 품질을 관리한다.

 

 

 

TE(Test Engineer)와 QA(Quality Assurance)의 차이에 대해서

우리나라에선 TE(Test Engineer)와 언제부턴가 QA의 업무가 동급이거나 같은 분류로 인식이 되고 있다. 지금은 많이 바뀌는 추세라고 하지만... 잠깐 여기서 QA는 소프트웨어직군의 품질 보증 Qual

jislog.net

 

TE(Test Engineer)와 QA(Quality Assurance)의 차이에 대해서

우리나라에선 TE(Test Engineer)와 언제부턴가 QA의 업무가 동급이거나 같은 분류로 인식이 되고 있다. 지금은 많이 바뀌는 추세라고 하지만... 잠깐 여기서 QA는 소프트웨어직군의 품질 보증 Qual

jislog.net

 

많은 회사들이 QA팀과 테스트팀을 동일하게 분류를 하지만 QA팀은 검증중심의 테스트 업무 보다는 발견되는 이슈에 대해서

앞으로 어떻게 할 것인가를 생각하는 목표로 업무를 진행해야 합니다.

 

Sw 제품 Product에 보증과 최종 출시까지의 플로는 대략 이렇게 된다.

QA조직이 존재하고 별도로 테스트를 의뢰하는 QC팀이 외부 또는 내부에 있다는 전재하.

 

QC(품질관리) 테스팀에서 요구사항 명세서 또는 기획서를 기반으로 명세 기반 테스트 시나리오를 작성하고

일정을 산출하고 요구사항 기반으로 개발이 되었는지 테스트를 진행한다.

테스트 중 결함을 발견하고 결함을 보고하고 테스트 결과서를 작성하면 테스트팀의 사이클을 끝나고 다음 차수 스프린트로 넘어 가게 된다

QA팀은 내부에 있는 테스트팀또는 외주업체(아웃소싱)업체로 3차 테스트를 의뢰하여 테스트를 진행하고 리포팅을 받는다.

테스트 리포트에 발견된 보고서를 기반으로 자체적으로 재현테스트를 진행하고 이슈에 대한 우선순위를 선별하고

다음 차수에는 어떻게 해결할건지 내부적인 회의를 진행한다.

 

현재 sw qa공고에서 qa라고 소개하고 있는 테스트업체가 많이 있다.

단순히 테스트만 진행하는 업무는 qa가 아니다.

 

그럼 외주업무를 하는 테스트엔지니어 테스터의 업무의 범위는 어디까지일까?

 

테스트 플랜을작성하고 관리하는 업무는 테스트 엔지니어도 할 수 있다.

테스트 결과서 보고서 역시 테스트엔지니어 테스터가 작성한다.

 

품질 보증을 위한 다양한 테스트를 수행을 한다고 써있지만 검증업무이다.

 

 

테스트 일정관리.리소스 관리, 품질기준 확립, 형상관리의 업무가 빠져있다.

또 다른 테스트업체의 공고

제품이 명세서 파악 요구사항을 파악하여 테스트를 설계하여 테스트가 끝날떄까지의 보고서 결함을 관리하는 업무이다.

여기서 품질에 대한 기준점, 재발방지, 이슈 우선 순위에 대한 기준 정립에 대한 내용이 없다

아니 할 수 가 없다.

 

테스트 업체는 테스트 위주로 업무를 할뿐 이슈에 대해서 재발이 되지 않도록 개발팀과 소통하거나 대응이 불가능하다

3자테스트를 진행하기때문에 테스터와 개발자가 직접 컨텍이 불가능하며 기준은 테스트를 요청한 고객사에서 기준을 정하기때문에

테스터는 qa가 아니라 qc에 가까운 것이다.

기능에 대한 결함 인자가 왜 발생했는지 어떻게 하면 발생하지 않을지 리소스를 제안 할 수가 없다

이게 qa와 qc의 가장 큰 차이이다

품질 보증인 qa안에 테스트가 들어가므로 qa도 검증업무를 당연히도 진행 할 수 있다. qa는 테스트 이후의 위험인자를 파악하고 기준을 정할 수 있지만 단순히 테스트를 진행하는 검증위주의 테스트엔지니어는 qa로 볼 수 없는 것이다

제품에 대한 관리를 qa라고 하는 것도 테스터는 관여를 할 수 없다.

내가 하는 업무가 검증업무인데 qa라고 생각하고 있다면 다시 한번 고민을 해야한다.

나는 테스트 케이스를 만들고 검증이 외에 이슈에 대한 기준을 세워본적이 있는지

발견된 이슈가 개발팀과 소통해서 재발되지 않도록 소통을 해본적이 있는다면 qa업무를 진행을 한것이다.

 

이것은 한국의 외주 테스트 업체와 자체적인 제품있는 자사의 업무 차이이기도 하다.

그렇다고 테스트 엔지니어가 필요 없다는건 아니다 소프트웨어 테스트의 표준은 테스트를 내부가 아닌 외보조직에 두는것을

기준으로 하고 있기때문에 반드시 외부 테스트가 필요하다.

하지만 단순한 테스트는 qa가 아니라는 점이다

 

 

320x100
반응형

원본내용  : https://www.deviqa.com/blog/20-software-quality-assurance-best-practices-for-2019/

 

=========================================================================

 

소프트웨어 품질 보증 QA 은 광범위한 범위이며 전체 프로세스는 소프트웨어, 응용 프로그램 또는 프로그램 개발의 전체 수명 주기에 걸쳐 발전해 왔습니다. 

다음은 품질 보증 테스터가 적용되어야 하는 2020년의 모범 사례 중 몇가지입니다

 

내용이 좀 길지만 다들 업무하면서 업무에 맞게 벤치마킹하여 QA, 테스트 활동에 도움이 되었으면

좋겠으며 QA = Test야! 라는 편견이 조금은 꺠지길 기대합니다. (사실 저도 처음엔..)

 

 

 

 

1. 품질 보증에는 위험인자 관리가 포함된다. 

 

대부분의 사람들은 QA가 테스트의 동의어(같은영역)라고 생각하지만 사실 품질 보증(QA) 은 훨씬 더 광범위한 범위입니다.

다른 프로세스 및 활동뿐만 아니라 위험 관리도 제품의 품질을 보장하는 부분으로 간주되어야 합니다.  

적절한 품질 보증의 구성 요소 중 하나이다. 요약하자면 다음과 같습니다.

양호한 리스크 관리에는 품질 보증 활동을 조직하기 위한 소프트웨어 개발의 실질적인 개선이 활동이 포함됩니다.

 

데이터표 분석표인데 매니징 영역이 제일 크게 기여하고 있습니다.

 

 

2. 모든 SDLC(소프트웨어 생명주기)를 커버할 수 있어야 한다.

소프트웨어 품질 보증은 소프트웨어 개발의 전체 수명 주기와 전체 자기 개발 프로세스에 걸쳐 적용되어야 하는 개념입니다.

 

 

3. 품질 개선에 집중해야 합니다

QA 테스트는 제품의 최종 결과물의 품질을 최적화하기 위해 소프트웨어 개발 프로세스를 개선하는 데 초점을 맞춰야 합니다. 

품질 보증 프로세스의 목적은 소프트웨어 개발로 나타는 사용되는 프로세스와 활동이 최종 제품의 높은 품질을 유지하도록 설계되었다는 

고위 경영진급들과 기타 회사의 이해 관계자들의 신뢰를 얻을 수 있도록 보장하는 것입니다.

 

 

 

4. 지속적인 모니터링

여기에는 프로세스의 지속적인 모니터링 및 합의된 표준과 절차가 개발 프로세스 전체에 걸쳐 준수되고 있는지 확인하는 작업이 포함합니다.

 

 

 

5. 방해 받지 않는 품질 보증 절차

또한, 소프트웨어 QA는 SW 설계 공정이 올바르게 작동할 수 있도록 공정 보증 팀에 약간의 자유와 권한이 부여되어야 합니다. 

이를 통해 신뢰할 수 있고 고품질의 제품을 일관되게 제공할 수 있다면 회사의 평판에도 긍정적인 영향을 미치게 됩니다.

 

6. 효과적인 방법론 적용

 

효율적인 QA테스트에 있어 방법론을 사용할경우 QA테스트를 통해 소프트웨어가 요구 사항 및 표준을 준수하도록 보장하므로 전체 라이프 사이클의 비용이 절감될 수 있습니다.

이는 생명에 중요한 제품의 개발에 있어 기본적인 조건입니다.

(대표적으로 에자일 개발 방법론 폭포후 모델 V모델..등등)

 

7. 유지 보수 비용 절감

적절한 QA를 통해 이후 소프트웨어 수정이 덜 필요하기 때문에 소프트웨어의 유지 보수 비용도 절감됩니다. 물론 소프트웨어의 릴리스 및 구현 후에만 발견되는 오류 수정 및 수정은 비용이 많이 들고 회사의 평판에 영향을 줄 수 있습니다. 

따라서 QA절차에서 소프트웨어가 출시되기 전에 오류를 식별함으로써 전체 라이프 사이클 비용을 전반적으로 절감하는 것이 중요합니다.

 

8. 전체 조직 문화의 전환

품질 보증 및 테스트 프로세스는 제품의 전체 수명 주기를 소비해야 하며, 생산 또는 유지 보수 프로세스의 모든 단계를 QA에서 다루어야 합니다. 

품질 보증의 개념은 소프트웨어를 한번에 테스트하여 버그를 보고한 다음 버그를 수정하는 것이 아니라, 

처음부터 품질 제품을 만들고 품질 제품을 테스트하여 QA가 작동하고 실제 프로세스가 개선되도록 하는 것입니다. 

전체 조직 문화를 혁신해야 하며 QA가 지속적으로 노력하고 있습니다.

 

9. 두가지 기본 원칙을 따릅니다.

어떤 제품을 개발 중이든 품질 보증에는 두가지 원칙이 따릅니다. 이들은 "목적에 적합하다"와 "한번에 제대로"입니다.

 

10. 목적에 맞게 맞춤 적용

"목적에 맞다"는 제품이 해야 할 일을 하고 의도된 목적에 적합하다는 것을 의미한다.

 

11. 한번에 제대로 연습하기

"한번에 제대로"는 모든 오류를 제거해야 함을 의미합니다. 기본적으로, 여러분의 제품은 장기간에 걸쳐 신뢰할 수 있게 올바르게 작동해야 하기 때문에 이러한 두가지 목표를 달성할 수 있는 많은 방법과기술이 있습니다.

 

12. 요구 사항을 간결하게 공식화한다.

 

품질 보증은  명확한 요구 사항부터 시작합니다. 요구 사항을 기록하고, 분할하고, 우선 순위를 지정하고, 관리하는 방식이 최종 제품의 품질에 크게 영향을 미칩니다. 이는 요구 사항이 간결하고 이해하기 쉬운 방식으로 표현되어야 한다는 것을 의미하며, 개발자가 요구되는 사항을 이해할 수 있고 생명주기에 따라  진행됨에 따라 더 많은 기능이 필요하기 때문에 개발자에게 도움이 되는 과정입니다.

 

13. 성숙한 프로세스 사용

제품 개발에 사용할 올바른 프로세스를 정의하고 이러한 고정 프로세스와 편차 없이 계획대로 사용하는 것이 중요합니다.

 

14. 업계 표준 준수

또한 개발 팀이 의료, 자동차 또는 항전, 임베디드 시스템 개발 또는 철도 소프트웨어 개발 및 기타 안전에 중요한 영역과 같은 산업 분야의 표준을 준수하는 데 도움이 되도록 설계된 클래스만 사용했다는 사실을 입증하는 것이 중요해 지고 있습니다. 그런 다음 소프트웨어 제품을 테스트하고 QA팀이 제품의 주요 기능을 철저히 테스트해야 합니다. 

 

15. 제품 출시 후 QA의 운영

 

테스트가 완료되면 QA팀의 일정이 끝난게 아닙니다 단 하나의 버그 없이 출시되는 소프트웨어가 거의 없기 때문입니다. 따라서 사용자 규칙과 사용자는 발견한 버그를 제출할 수 있어야 하며 운영 팀이나 QA 및 개발 팀은 모든 문제를 해결하기 위해 이러한 버그를 함께 해결하고 운영해합니다.

관련 기사: 테스트를 중지해야 하는 경우

 

16. 개발 팀과의 긴밀한 협업

 

"DevOps 데브옵스"라는 용어가 있습니다 이는  민첩한 환경에서 개발 및 운영 팀의 긴밀한 협업을 의미합니다.

(위키백과 참고 ) 

팀이 어떤 방법을 사용하든 간에 협업은 모든 버그를 적시에 해결하는 데 도움이 되므로 중요합니다.

 

17. 최종 사용자 유저의 사용 환경과 방식을 고려해야 합니다

 

테스트는 품질 보증의 핵심 요소 중 하나이므로 Unit 테스트 및 우수한 개발 사례를 통해 제품을 올바르게 구축할 수 있습니다. 

QA 및  테스트도 설계가 기획되로 정상적으로 되었는지 확인합니다.

이는 시험관이 최종 사용자에게 좀 더 초점을 맞춘다는 것을 의미합니다

 

18. 100% 버그가 없는 제품은 불가능합니다!

 

앞서 언급했듯이, 어떤 소프트웨어도 완전한 오류가 없을 수는 없다는 없습니다. 테스팅의 원칙에도 나와있듯이

즉, 버그가 없으면 아무것도 실행되지 않으며 QA의 목표는 모든 버그를 완벽하게 테스트하고 모든 버그를 수정하는 것이 아니라 코딩 개발작업과 함께 활동하여 최악의 버그가 발생하지 않도록 하고 의도된 목적에 맞는 작동 가능한 제품만 출시하는 것입니다.

 

즉 이 제품이 잘만들어졌나 아니면 잘못만들어졌냐를 보증하는 것.

 

결함이 나오지않는다고 완벽한 소프트웨어라고 할 수 없습니다.

출처: 버그 프리 소프트웨어 같은 것이 있나요? 기사 

 

19. 블랙 박스 테스트 & 화이트 박스 테스트

품질 보증 QA에서는 블랙 박스 테스트는 기능이 계획대로 작동하는지 확인을 하는 과정이며

화이트 박스 테스트라고 하는 테스팅은 소프트웨어 코드를 올바르게 동작하는지 철저히 검토 하는 과정입니다

화이트 박스 테스트는 내부 구현과 무관하게 소프트웨어의 기능성을 검사하는 블랙 박스로 취급되는 블랙 박스 테스트와는

 반대로 프로그램의 내부 구조와 작동을 테스트한다. 또한 회색 박스 테스트도 있는데, 

이는 소프트웨어의 테스터가 이러한 알고리즘에 기초한 내부 데이터 구조 및 설계 테스트에 대한 지식을 가지고 있지만 

사용자 또는 블랙 박스 레벨에서 이러한 테스트를 실행하는 두 종류의 혼합물이다.

 

20. 소프트웨어 개발을 위한 가장 적합한 방법론 확인

또한 소프트웨어 개발에 사용되는 방법에 따라 품질을 개선의 목표에 달성할 수 있습니다. 

예를 들어 스크럼(scrum)에서는 이후의 모든 반복을 테스트합니다. 

소프트웨어의 각 부분을 개별적으로 테스트한 다음 반복 크기에 따라 전체 제품을 통합한 후에 테스트합니다. 

연못에 대해서는 모델링을 할 때 모든 것이 마지막에 테스트됩니다.

 

결론:

 

좋은 품질 보증  QA Testing 과정은 일반적인 다른 모든 프로세스와 별도로 특히 위험 인자 관리 프로세스를 

그 안에 포함하고 별도로 관리해야 합니다

소프트웨어 출시 전후에 지속적인 모니터링을 통해 비용을 절감하는 것을 목표로 하면서 비용절감의 최우선으로 이행되어야 합니다.

소프트웨어의 전반적인 품질을 개선하는 것이 초점이 되어야 한다. 

품질 보증 테스트를 수행하는 동안, 검사자는 최종 사용자의 관점에서 제품을 검토하는 것과 

더불어 모든 기본 원칙을 기반으로 SW 산업의 표준을 준수해야 합니다.

 

이상 논문같은 긴 번역문을 읽어주셔서 감사드립니다.

 

320x100
반응형

우리나라에선 TE(Test Engineer)와 언제부턴가 QA의 업무가 동급이거나 같은 분류로 인식이 되고 있다.

지금은 많이 바뀌는 추세라고 하지만...


잠깐 여기서 QA는 소프트웨어직군의 품질 보증 Quality Assurance QA를 의미한다

하드웨어의 QC,QA는 다르게 구분되므로 유의하길 바라며 

SW QA는 H/W QA에서 있다가 넘어온지 얼마 안된것으로 알고 있다

SW Q/A에서 말하는 품질관리,보증은 비슷하지만 

하드웨어 품질부분에선 ISO 13485, ISO 9001을 다르는 경우가있는데 
소프트웨어 품질부분은 29119 소프트웨어 테스트 품질 29119를 다룬다
그냥 근데 다 똑같은 국제표준 품질인데 분야가 다른것이다

소프트웨어 표준, 보안 표준, 의료기기 제조 표준 등  

각 각의 품질표준 지표가 존재한다..


여기서 29119란 소프트웨어 테스트를 위한 5가지 국제 표준

2007년에 처음 개발되어 2013년에 출시된  표준은 "모든 소프트웨어 개발 수명 주기 내에서

사용할 수 있는 시험을 위한
 어휘, 프로세스, 문서, 기술 및 프로세스 평가 모델을 정의한다. (출처 : 위키백과)
소프트웨어 개발 과정에 필요한 프로세스 과정과 모델을 정의한 표준이라고 보면 된다

그러니까 QA라고 다 QA가 아니고 , TE는 제조업계로 보면 QC라고 보면되고

TE는 QA가 아닌 QA안에 속한

테스트를 하는 엔지니어다 영역이 다른 것이다

 

테스트영역, 품질관리 영역.

 

대략, 간단하게 정리를 하자면

 

1. Tester가 테스트를 한다 -> 이슈를 보고한다 ->

이슈가 고쳐지는지 얼마만큼의 개선이 됬는지 여기까지가 테스터의 몫이다 

여기까지는 이렇게 하는건 테스터에 불과하다 

 

테스트에는 단위테스트, 정적테스트, 커버리지 등 여러가지의 방법론이 존재하는데

자동화테스트 등 방법론적으로 접근하여 테스트를 주도하여 테스트를 설계하고 테스트를 하는게 

테스트엔지니어다.

Test Leader가 존재하듯이 PL이 존재한다 Project Leder

테스트전반적인 인력,과정을 관리하는 리더, 프로젝트를 총괄하여 담당하는 책임자 

 

아웃소싱업체의 경우 이런 방법론적인 화이트박스 테스트, 블랙박스테스트

이런거 무시하고 그냥 노동공장처럼 Pass, Fail, N/T, N/A,

여기까지는 이렇게 하는건 테스터에 업무에 불과하지만

누구의 머리에서 나온건지는 알 수없으나 테스트를 QA 테스트엔지니어라고 칭한다

후..;;

 

 

요즘 인력이 없다는 자동화 테스트 엔지니어등 여러가지도..많습니다.

 

그러니까 테스터는 단순 테스트를 진행하고

테스트 엔지니어는 여러 방법론적으로 테스트를 진행하고 

그 방법을 기반으로 잡지못한 이슈를 잡는게 테스트엔지니어라고 

개인적으로 결론은 내봅니다...ㅎㅎ

 

 

 

2. 이제 앞으로 다음버전이나 여기서 어떻게 해야

이 버그가 나오지 않게 끔 개발자와 기획단 또는 퍼블리셔와

상의하거나 상위부서와 고객사에 소통하여 품질개선 프로세스,

형상관리(간략하게 전반적인 관리과정)을 진행하한다.

여기부터 QA의 영역이므로 단순 테스트 업무 이외에도 품질 개선 참여해야한다

그러므로 QA는 품질개선,향상이 주업무지만 상황이 여의치 않을경우 테스트도 한다.

이게 바로 테스터와의 차이지만

 

또한 테스트가 단순 테스트만 하는 노무적인 과정은 절대 아니다

테스트는 개발과정 중 반드시 거쳐햐하는 과정이며 이 과정 역시 아무나 할 수 있는 영역은 아니다

단순 기능기반 동작테스트라고 할지라도 프로젝트에 관련이 없으면 참여할 수도 없거니와

테스트역시 전문적인 영역이다 자동화테스트도 불필요한 인력의 TC수행을 줄이기 위해 도입되고 있다.

 

 

SW QA = SQA라고 구분되어지는데 현재 대한민국의 SQA의

인식이 테스터(Tester)로 인식이 되어지는 경우가 많다고 한다 

이유는...?!!



이것의 시초는 QA의 인력난이 시작되고 Tester를 양성해서

 좋은 지식을 알려줘서 QA를 양성하자! 라고 시작된 

테스트아웃소싱이 넘쳐나기 시작됬다고 한다.
취지는 좋았으나... 지금의 QA업계의 진입장벽을 낮추었고,

 또한 처우까지 낮아져버린 병목현상이 발생

SW QA의 시작이 된지는 10년이 되가지만 STEN의 권** 대표님이 

이현주(전)님과 같은 분들도 굉장히많은 노력을 하셨지만...

TMI는 여기까지 정리를 하도록 하겠고 

현재 구인공고를 보거나, 실제 고객사나 기업들은 QA를
 단순 Tester로 인식하는 경우가 많다.
저도 테스트 엔지니어(아웃소싱)업체에서 시작했습니다만 
뭐...
잘못된 예로 

공고를 살펴봅시다.

 

 

아니... QA면 QA지

QATE는 대체 어디서 나온 말이인가

QA+ TE 

그럼 QA도 하고 테스트 엔지니어라는건데

이러면 만능 다 할줄알아야되는건가...?

 

 

 

, QA라면 공고에 품질개선에 관련 업무가 있어야하는데

왜 검증이 들어있는것이고

테스트케이스 설계는 왜 ...;;

테스트엔지니어 공고잖아요

QA라는 말은 빼셔야죠

 

우리나라의 현실이 이렇다

 

QA는 테스트도 할줄 알아야하고 TestCase도 작성할 줄 알아야하고 버그리포팅도 할줄 알아야하고

더 나아가 품질지표관리도 할 줄 알면 좋겠다 

 

TestCase작성은 QA도 할 수 있는 영역이지만 테스트 엔지니어의 영역

 

QA는 말그대로 품질지표,품질개선의 활동을 해야하는데...크흠 

 

 

다른 아웃소싱의 공고를 보겠습니다.

 

 

 

SW QA/ TE 채용

이렇게 보면 QA도 뽑고 TE도 뽑을거야

라고 보이는데

 

 

 

 

직무에는 QA의 직무는 찾아볼수가 없습니다

QA의 정상적인 공고는 자동화스크립트 , 또는 BTS협업도구 사용자라던가 

테스트경험자가 우대사항인데 ...

어쨰서 테스트만 하는데 QA/TE라니

 

 

기업체의 공고를 까내리는 의도는 아니지만 QA와 TE를 구분을 하시고

공고를 내야 하는데..

 

 

이러니 테스트로 들어가선 아웃소싱에선 TE가 QA라는 인식이 생길 수 밖에 없다고 생각이 드는 부분..

 

아웃소싱 인사담당자는 QA와 테스트 엔지니어 부터 공부를 했으면 좋겠다

 

ISTQB를 따면 뭐할까 저런거부터가 인식이 바껴야한다. 

 

 

==

 

다른 기업(중소기업)의 공고를 보겠습니다

 

 

 

QA엔지니어를 모집합니다!!!

 

 

 

 

물론 QA도 테스트를 업무로 할 수 있는데

이게 주가 되면 테스터거나 테스트 엔지니어인데...;;;

 

테스트엔지니어 = 테스트 + 테스트 방법을 통한 기능테스트 + 테스트 설계 등 테스트 과정 까지

 

 

 

그럼 잘못된 예를 보여줬으니 맞는 QA직무가 어떤것인지 집어드리겠습니다.

 

 

 

QA엔지니어 경력직을 채용합니다.

 

 

 

 

 

자 여기는 우리가 쓰는 간편송금앱 토스의 공고입니다

 

이제 차이를 알 수 있습니다. 테스트도 하지만 품질관리와 프로세스구축이나

전반적인 과정을 참여하는게 QA..이라고 

 

생각됩니다.

 

애자일이야 개발방법론적인것이니...일단 패스를 하고 지라 컨플리언스 갓허브 슬랙등은 업무협엽툴이므로

개발자, 기획자와 소통을 해본것을 물어보는 것입니다. 

 


Tester : 간단하게 스마트폰앱 카카오톡이 새로운 버전이 업데이트가 있다. 그전에 출시전에 미리 쓰면서 사용자관점에서 버그를 찾아 개발자에게
전달하고 그 문제 이슈가 해결되는 과정까지 거기까지 Test Engineer가 할 일이다 
TC(Test Case)를 수행하며 테스트하면서 OK,FAIL,NA,NT 과정은 테스터

 

테스팅은 전문적인 과정이며 제품출시 전 반드시 걸쳐가야할 과정이며 누구나 참여할 수 있는 과정은 절대 아니다.

동적테스트, 정확성테스트 , 자동화 테스트 등 반드시 테스트를 걸치는과정이다

 

내가 말하는건 QA와 테스트는 다른 직무일 차이일뿐 같은 것으로 분류되서는 안된다라는 것.

 

 

QA(Quality Assurance)에 있어서 QA의 몫은 제품에 대해 유의미한 결과를 통해서 상품화하는것이다

성공적인 테스팅과 QA가 완전히 접목이 되었을때 릴리즈 배포가 이후 유저가 앱이나 소프트웨어를 사용할 때

불편함을 느끼지않고 만족할 수 있도록 하는 것 이것이 QA의 취지와 목적이라고 생각한다.

 

테스트를 통해 이슈를 잡고 이슈를 개발자와 소통하고 개선하고 Test활동 후에 다음 버전에 개선사항을 QA와 논의를 하고 배포일정에 대해서 협의가 되고 배포가 되면 Tester, QA, 개발자 기획자의 한 결과물이 합쳐서

완제품이 완성된다!

 


그러므로 QA(품질보증) 제품 생산과 관련된 모든 분야에 존재한다. 
제조업에서는 품질관리라는 명칭으로 사용했지만  QA 명칭 자체는 제약업계(연구소포함)  IT업계를 통해 많이 알려졌다.
하지만 QA의 인식이 현재는 테스터라는데는 다 공고에서만 봐도 이유가 있다

이게 다 아웃소싱업체의 파국임...;;;

 

오늘의 결론 QA엔지니어와 테스트 엔지니어의 업무는 너무나 다르다. 

 

QA와 테스트를 하나로 보지말고 테스터는 테스트만의 매력이 있으며 QA는 QA단의 매력이 있다.

 

 

비평받습니다! 

 

본 글의 취지는 테스트 엔지니어 또는 테스트가 잘못된 아웃소싱 기업의 공고 , 인식으로 인해 테스트행위를 QA라고 말하는 행위와 테스트에 대한 과정이 아무런 의미없다고 생각하는 인식을 바로잡고 현재 기업들의 공고의 문제점을 바로알리기 위한 목적에 있으며 단순 비판의 취지는 1%도 없습니다.

320x100

+ Recent posts