QA 관련 용어 정리해보기

유닛 테스트 vs 통합 테스트

  • 유닛 테스트:
    단위 테스트라고도 불리며 전체 코드 중 가장 작은 부분을 테스트 하는 것을 의미
    하나의 모듈을 기준으로 독립적으로 진행되며 하나의 기능, 또는 메서드로 볼 수 있음

좋은 단위 테스트
좋고 깨끗한 테스트 코드는 FIRST라는 5가지 규칙을 따릅니다.

  • Fast: 테스트는 빠르게 동작하여 자주 돌릴 수 있어야 한다.

  • Independent: 각각의 테스트는 독립적이며 서로 의존해서는 안된다.

  • Repeatable: 어느 환경에서도 반복 가능해야 한다.

  • Self-Validating: 테스트는 성공 또는 실패로 bool 값으로 결과를 내어 자체적으로 검증되어야 한다.

  • Timely: 테스트는 적시에 즉, 테스트하려는 실제 코드를 구현하기 직전에 구현해야 한다.
    (참고 블로그)

  • 통합 테스트:
    각각 시스템들이 어떻게 서로 상호작용하고 제대로 작동하는지 테스트하는 것으로, 유닛 테스트 간의 호환성을 확인하는 테스트로 볼 수 있음

  • (그럼 기능테스트는?)
    E2E 테스트, 브라우저 테스트라고 불리는데 어떤 어플리케이션이 제대로 동작하는지 완전한 기능을 테스트하는 것을 의미
    -> 시스템을 구동하는 모든 구성 요소가 필요

(참고 2E2 테스트)
"e2e test는 End To End test의 약자이다. 말 그대로 Endpoint, 즉 사용자가 실제 프로그램을 사용하는 상황을 테스트하는 것이다. 그래서 소프트웨어의 내부 구조 보다는 비즈니스 쪽에 초점을 두어 실제 시나리오대로 잘 동작하는지 테스트 하는 것이다.
그래서 Acceptance test(인수테스트)와 같은 의미로 사용되며, 이 또한 소프트웨어 인수를 위해 사용자 시나리오대로 테스트를 해보는 의미로 직결된다."
참고 블로그

통합테스트와 기능테스트 간의 차이가 있나?

  • 일단 내가 알고 있는 통합테스트의 개념이 기능테스트였다. 즉 사용자 입장에서 전체적인 종단 간 기능을 확인하는 것을 "기능 테스트"라고 하고 통합 테스트는 유닛 테스트의 확장 개념이었다.(유닛 테스트나 통합 테스트는 소프트웨어 코드 상에서, 기능 테스트는 QA가 사용자 입장에서..)

리그레션 테스트

참고 블로그

  • 회귀 테스트: 회귀 버그를 찾는 모든 소프트웨어 테스트 방식
  • 회귀 버그: 이전에 제대로 작동하던 소프트웨어 기능에 문제가 생기는 것을 말함
    즉 새로 Feature가 추가 되었을 때 기존에 잘 되던게 버그가 생기면 회귀 버그가 생긴다고 볼 수 있음
    이걸 전수 검수하며 찾아내는게 회귀 테스트로 이해하면 될 듯
  • 그래서 매 버젼마다 이뤄지며 매 버젼마다 별개로 수행한다.
  1. Retest All
  • 기존에 가지고 있던 모든 회귀 테스트 및 데이터들을 다시 이용하여 테스트를 진행합니다.
    테스트 커버리지는 향상될 수 있겠으나 테스트에 시간이 많이 걸립니다.
    좀 더 자세히 설명하자면, 개발단계에서의 Unit Test / Integration Test의 경우라면 시간이 많이 걸리지 않을 수도 있으나 그 이후 System Test, Acceptance Test에서, 사람이 직접 진행하는 Manual Test의 경우 시간이 많이 걸릴 것 입니다.
  1. Selective
  • 신규 기능을 검토하여 영향이 있을 것 같은 기존 기능들을 선택적으로 추려내어 테스트를 진행합니다.
    테스트 수행 범위가 최소화되어 시간과 코스트를 절약할 수 있으나, 테스트 커버리지가 부족하여 프로덕트에 결함이 존재할 확률이 높아집니다. 또한 선택범위 검토가 잘못될 확률도 있습니다.
  1. Priority
  • 프로덕트의 핵심 기능을 위주로 우선순위를 책정하여 테스트를 수행합니다.
    중요도/위험도에 따라 테스트를 수행하며 전체 테스트케이스 재수행보다 코스트가 절감하게 됩니다.
    그러나 이 역시 우선순위가 잘못 검토되었을 시 결함이 존재할 확률이 높아집니다.

앞으로 업무 간 적용할 점

  • 일단 통합 테스트라는 말 대신 나는 기능 테스트를 했다고 해야겠다. -> 통합 테스트는 개발 단에서 진행하는 것(코드로) -> E2E 테스트였던거로.
  • 리그레션 테스트를 진행했다고 볼 수 있다. 앞으로 이거 했다고 해야겠다.
profile
커피 내리고 향 맡는거 좋아해요. 이것 저것 공부합니다.

0개의 댓글