CSTS_FL-3 테스팅 방법 (7문제)

violet·2024년 5월 22일

CSTS_FL

목록 보기
3/11

6. 테스트 방법 개요


6-1. 테스트 분류 개요

  • 테스트 분류

    • 현실적인 상황을 고려하여 실제 적용할 수 있는 대표적인 테스트 수행 방법


7. 재테스팅 및 리그레션 테스팅


7-1. 재테스팅

  • 재테스팅

    • 초기에 특정한 결함을 검출한 테스트 케이스를 이용하여 테스팅을 다시 수행
      • 개발자가 결함을 제거하기 위해서 코드를 수정하고 나면
        실제로 해당 결함이 제거되었는지 확인 필요


7-2. 리그레션 테스팅

  • 리그레션 테스팅

    • 변경 후에 수행되는 테스트
    • 변경된 사항이 의도하지 않게 결함을 만들지는 않았는지,
      시스템이 기존의 요구사항을 충족하는지 검증하기 위하여 수행
  • 소프트웨어 유지보수 활동 비율
  • 유지보수 단계 소프트웨어 변경 활동

    • 기능 보강

      • 기능을 추가하거나 성능을 개선
    • 적응

      • 새로운 운영환경에 적응시키기 위해
        소프트웨어를 변경
    • 결함 수정

      • 사용 도중에 발견된 결함 수정
    • 예방

      • 더 나은 유지보수를 위해 기존 시스템에 대한 문서를 준비
      • 유지보수하기 용이한 새로운 시스템 구조로 변경


  • 리그레션 테스트 방식

    • Retest-All 방식

      • 기존에 개발된 모든 테스트 케이스를 사용
        • 복잡한 테스트 절차를 요구하지 않지만
          많은 시간과 자원이 필요
    • 선택적 리그레션 테스트

      • 기존의 테스트 케이스 중에서 일부만 선정
        • 변경된 프로그램이 다른 결과를
          출력할 가능성이 있는 테스트 케이스를 식별
    • 테스트 최소화

      • 중복 테스트 케이스 제거
    • 테스트 우선순위화 방식

      • 테스트 케이스에 우선순위를 두어 높은 테스트 케이스만을 활용

        • 가능한 한 빨리 많은 결함을 검출할 수 있도록 실행 순서를 결정

      • APFD 사용

        • 리그레션 테스트 케이스의 우선순위를 결정

        • 효과성을 평가하기 위한 척도

        • 테스트 케이스 실행 비율 대비 검출된 결함의 비율을 측정

        • APFD가 높다는 것은
          더 적은 수의 테스트케이스로 많은 결함을 빠르게 검출할 수 있다는 의미

        • APFD를 계산하는 공식

          • n: 테스트 케이스의 수
          • m : 결함의 수
          • Tf : 결함 i를 검출하는 테스트 케이스의 위치



8. 소프트웨어 생명 주기 모델과 테스팅


8-1. 순차적 모델과 테스팅

  • 폭포수 모델(Waterfall Model)

    • 가장 오래된 전통적인 모형

    • 전 작업이 완료되어야지만 다음 단계로 넘어감

    • 개발 중심 모델

    • 구사항 분석 ▶ 계 ▶ 현 ▶ 스팅 ▶ 지보수 (요설구테유)

      • 요구사항 분석

        • 주요 산출물 : 요구사항 명세서
        • 요구사항을 수집하고 문제를 이해 및 분석하여 이를 명세화
      • 설계

        • 전체적인 아키텍처를 설계
        • 인터페이스를 결정
      • 구현

      • 테스팅

      • 유지보수

  • V-모델

    • (Verification & Validation = 검증과 확인)
    • 개발테스트가 동등하게 취급
    • 개발이 시작됨과 동시에 테스트 시작
    • 각 개발 단계에서 발생하는 결함을 검출하기 위한 테스트 레벨을 명시적으로 나타냄.
      • Ex.) 요구사항을 수집하는 동안 인수 테스트 계획 수립
    • 각 개발 단계의 산출물로 테스트에 필요한 정보 획득



8-2. 진화적 모델과 테스팅

  • 진화적 모델

    • 요구사항이 명확하지 않은 경우에 적용

    • 이터레이션(Ineration)과 점진적(Incremental) 개발 원칙
      => 구사항 분석 ▶계 ▶ 현 ▶ 스팅 반복

      • 비슷한 모델 : 나선형 모델
    1. 시스템의 구성요소 중 핵심 부분을 개발
    2. 각 구성요소와 추가 요구사항을 여러 이터레이션으로 구성
    3. 결과물이 고객에게 전달되어 평가
    4. 소프트웨어가 개선

  • 나선형 모델 (Spiral Model)

    • 개발 위험을 최소화하기 위해
      점진적으로 완벽한 시스템으로 개발



8-3. 애자일 모델과 테스팅

  • 애자일 방법론

    • 절차보다 사람이 중심
    • 변화에 유연하고 신속하게 적응
    • 효율적으로 개발
    • 신속 적응적 경량 개발방법론
  • 애자일 방법론이 추구하는 가치

    • 사람 및 상호 의사 교환이 프로세스나 도구보다 우선
    • 동작하는 소프트웨어가 문서보다 우선
    • 고객과의 협력이 계약 협상보다 우선
    • 변화에 반응하는 것이 계획보다 우선
  • 애자일 방법론 유형

    1. XP
    2. Lean (린)
    3. SCRUM (스크럼)
    • XP(eXtreme Programming)

      의사소통 개선즉각적 피드백으로 소프트웨어 품질을 높이기 위한 방법론
      1~3주의 반복 개발주기, 5가지 가치12가지 기본원리

      • 5가지 가치

        • 순성
        • 사소통
        • 드백
      • 12가지 기본원리

        • 짝 프로그래밍 (Pair Programming)

          • 개발자 둘이서 짝으로 코딩
        • 지속적인 통합 (CI; Continuous Integration)

          • 매일 여러 번씩 S/W 통합하고 빌드
            • 1일 1회가 아님
        • 테스트 기반 개발 (TDD; Test Driven Develop)

          • 작성해야 하는 프로그램에 대한 테스트를 먼저 수행
            • 이 테스트를 통과할 수 있도록 실제 프로그램의 코드를 작성
        • 리펙토링 (Refactoring)

          • 기능을 바꾸지 않으면서 시스템 재구성
          • 리팩토링 이후 리그레션 테스트 수행
        • 메타포어(Metaphor)

          • 이해를 돕기위해 메타포를 사용해서 팀원이 구조와 작동방식을 쉽게 이해하도록 함
        • 소규모 릴리즈

        • 지속적 협력

        • 집단 코드 소유권

        • 코딩표준

        • 일정한 작업속도

        • 40시간근무

        • 공통 개발환경



9. 모델기반 테스팅


9-1. 모델기반 테스팅

  • 테스트 절차를 수행할 수 있는 정보가 자동으로 추출될 수 있을 정도로
    정형화되고 상세한 모델을 기반으로 테스트 계획을 수립하고
    테스트 케이스, 테스트 절차, 테스트 입력 및 예상 결과 등을 결정

  • 장애가 발생하였을 때 큰 비용이 유발되는 자동차, 의료 분야와 같은
    안전 필수 소프트웨어를 대상으로 수행

  • 의사결정표 , UML 상태 다이어그램 , UML 액티비티 다이어그램과
    같은 정형적 표현법을 이용하여
    동작에 대한 상세한 모델링을 할수 있다.

  • 장점

    • 테스트 계획에서 테스트 종료까지
      대부분의 활동 자동화 가능

    • 다양한 유형의 문제를 이른 시점에 식별하는 방법

      • 개발 단계 산출물 결함 검출가능
  • 단점

    • 모델 구축 비용 추가
profile
기억저장소

0개의 댓글