본문 바로가기

2020 소프트웨어 품질 보증 모범 사례와 QA와 테스터의 범례

하이지스 발행일 : 2020-06-29

원본내용  : 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 산업의 표준을 준수해야 합니다.

 

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

 

댓글