소프트웨어 테스팅

진경천·2024년 11월 26일
  • 소프트웨어의 품질, 성능, 신뢰성을 평가하는 과정
  • 프로그램 실행을 통해 오류를 발견하고 수정하는 과정
  • 예상 결과와 실제 결과를 비교 및 검증

테스팅의 목표

  • 결함 발견
    • 소프트웨어의 버그와 오류 식별
    • 예상치 못한 동작이나 출력 찾기
    • 시스템 충돌이나 성능 저하 원인 파악
    • 보안 취약점 발견
  • 품질 보증
    • 요구사항 충족 여부 확인
    • 사용자 기대치 만족 검증
    • 신뢰성과 안정성 보장
    • 성능 및 호율성 평가
    • 사용성 및 접근성 검증

FIRST 원칙

Fast: 테스트는 지속적이고 빠른 피드백을 줄 수있어야 함
Independent: 테스트는 서로 독립적이어야함
Repeatable: 어떤 환경에서도 테스트는 반복 가능해야함
Self-validation: 테스트는 스스로 검증 가능 해야함
Timely: 적절한 시기에 테스트를 작성해야함

테스팅의 유형

단위 테스트

  • 개별 코드 단위(함수, 메서드, 클래스 등) 검증
  • 격리된 환경에서의 실행
  • 개발자가 직접 테스트 코드 작성 및 실행
  • 회귀 테스트 기반으로 작성

통합 테스트

  • 여러 단위를 조합하여 상호작용 검증
  • 모듈 간 인터페이스 테스트
  • 데이터 흐름 확인
  • 종속성 관리 검증
  • 외부 시스템과의 통합 테스트

시스템 테스트(End-To-End)

  • 전체 시스템의 end-to-end 기능 검증
  • 비기능적 요구사항 텍스트 (성능, 보안, 사용성 등)
  • 실제 운영 환경과 유사한 조건에서 실행
  • 사용자 시나리오 기반 테스트
  • 스트레스 테스트 및 부하 테스트

인수 테스트

  • 고객 또는 최종 사용자 관점에서의 테스트
  • 비즈니스 요구사항 충족 여부 확인
  • 사용자 스토리 기반 테스트
  • 알파 테스트 및 베타 테스트 포함
  • 계약상 명시된 인수 기준 검증

Google Test Automation Conference에서 제안된 테스팅 기법으로, 전체 테스트 비중을 위 피라미드 그림과 같이 두는 것을 권장한다.

End-To-End: 10%
Inregration: 20%
Unit: 70%

테스트 프로세스

  1. 계획
    • 테스트 목표 설정
    • 테스트 전략 수립
    • 리소스 할당
    • 일정 수립
  2. 설계
    • 테스트 케이스 작성
    • 테스트 데이터 준비
    • 테스트 스크립트 개발
    • 테스트 환경 구성
  3. 실행
    • 테스트 수행
    • 결과 기록
    • 결함 추적 및 관리
    • 재테스트 및 회귀 테스트
  4. 평가
    • 테스트 결과 분석
    • 테스트 커버리지 평가
    • 품질 메트릭스 산출
    • 개선 사항 도출
profile
어중이떠중이

0개의 댓글