애플리케이션테스트케이스설계 - 핵심정리

애플리케이션테스트케이스설계

1. 알고리즘

  • 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것
  • 정렬
    • 선택 정렬
    • 삽입 정렬
    • 버블 정렬
  • 그래프
    • 깊이우선탐색 DFS
    • 너비우선탐색 BFS
  • 탐색
    • 선형 탐색
    • 이진 탐색

2. 애플리케이션 성능 개선

  • 소스코드 최적화는 읽기 쉽고 변경 및 추가가 쉬운 클린 코드를 작성하는 것
  • 클린코드의 작성원칙과 소스코드 최적화 기법
  • 소스코드 품질분석 도구의 이해
  • 정적분석
    • Pmd
    • cppcheck
    • SonarQube
    • Checkstyle
  • 동적분석
    • Avalanche
    • valgrind

애플리케이션테스트케이스설계 - 애플리케이션 성능 개선

애플리케이션테스트케이스설계

소스코드 최적화 이해

  • 읽기 쉽고 변경 및 추가가 쉬운 클린 코드를 작성하는 것으로, 소스 코드 품질을 위해 기본적으로 지킬 원칙과 기준을 정의

나쁜 코드

  • 다른 개발자가 로직을 이해하기 어렵게 작성된 코드
  • 대표적인 사례로 처리 로직의제어가 정제되지 않고 서로 얽혀 잇는 스파게티 코드, 변수나 메소드에 대한 이름 정의를 알 수 없는 코드, 동일한 처리 로직이 중복되게 작성된 코드
  • 문제점
    • 스파게티 코드의 경우 잦은 오류가 발생할 가능성이 있음
    • 소스 코드 이해가 안 되어 계속 덧 붙이기 할 경우 코드 복잡도 증가

클린 코드 Clean

  • 잘 작성되어 가독성이 높고 단순하며 의존성을 줄이고, 종복을 최소하하여 깔끔하게 잘 정리된 코드
  • 효과성
    • 중복 코드 제거로 애플리케이션의 설계 개선
    • 가독성이 높으므로 애플리케이션의 기능에 대해 쉽게 이해 가능
    • 버그를 찾기 쉬워지며, 프로그래밍 속도가 빨라짐

클린 코드 작성 원칙

  • 가독성
    • 이해하기 쉬운 용어
    • 들여쓰기 기능
  • 단순성
    • 한번에 한 가지 처리 수행
    • 클래스 / 메소드 / 함수를 최소 단위로 분리
  • 의존성
    • 영향도를 최소화
    • 코드의 변경이 다른 부분에 영향이 없게 작성
  • 중복성
    • 중복된 코드를 제거
    • 공통된 코드를 제거
  • 추상화
    • 클래스 / 메소드 / 함수에 대해 동일한 수준으로 추상화
    • 상세 내용은 하위 클래스 / 메소드 / 함수에서 구현

소스코드 최적화 기법

  1. 클래스 분할 배치 기법
    • 클래스는 하나의 역할, 책임만 수행할 수 있도록 응집도를 높이고 크기를 작게 작성
  2. 느슨한 결합 기법
    • 클래스의 자료구조, 메소드를 추상화 할 수 있는 인터페이스 클래스를 이용하여 클래스 간의 의존성을 최소화
  3. 코딩 형식 기법
    • 줄바꿈으로 개념을 구분하고 종속함수를 사용
    • 호출하는 함수를 먼저 배치하고 호출되는 함수는 나중에 배치
    • 변수 선언 위치를 지역 변수는 각 함수 맨 처음에 위치
  4. 주석문 사용을 습관화

소스코드 품질분석 도구의 개념

  • 소스 코드에 대한 코딩 스타일, 설정된 코딩 표준, 코드의 복잡도, 코드 내에 존재하는 메모리 누수 현황, 스레드의 결함 등을 발견하기 위하여 사용하는 분석 도구
  • 정적 분석 도구
  • 동적 분석 도구

애플리케이션테스트케이스설계 - 알고리즘

애플리케이션테스트케이스설계

  • 정렬
    • 선택 정렬
    • 삽입 정렬
    • 버블 정렬
  • 그래프
    • 깊이우선탐색 DFS
    • 너비우선탐색 BFS
  • 탐색
    • 선형 탐색
    • 이진 탐색

Github Repository
Notion 개념정리

애플리케이션테스트케이스설계 - 핵심정리

애플리케이션테스트케이스설계

1. 애플리케이션 통합 테스트 수행

  • 통합 테스트에 대한 개념 이해, 통합 테스트 수행 방법
  • 테스트 자동화 도구와 개념 유형

2. 애플리케이션 테스트 결과 분석

  • 소프트웨어 결함관련 용어, 테스트 완료 조건
  • 테스트 결함 관리 개념과 결함 관리 도구

애플리케이션테스트케이스설계 - 애플리케이션 테스트 결과 분석

애플리케이션테스트케이스설계

소프트웨어 결함

  • 용어
  1. 에러 Error / 오류
    • 결함 Defect 의 원인
    • 사람에 의해 생성된 실수
  2. 결함 / 결점 / 버그 Bug
    • 에러 또는 오류가 원인
    • 소프트웨어 제품에 포함되어 있는 결함
    • 제거하지 않을 시 제품 실패 또는 문제가 발생
  3. 실패 / 문제
    • 소프트웨어 제품에 포함된 결함이 실행 될 때 발생

테스트 완료 조건

  • 단위 테스트, 통합 테스트, 시스템 테스트, 인수 테스트 등 각 단계별 테스트를 언제 어떤 상황에서 종료할 것인지 결정
  • 완료 조건은 일정, 비용, 조직등에 제약이 있으므로 최적의 완료조건을 계획

테스트 결함 관리

  • 각 단계별 테스트 수행 후 발생한 결함의 재발 방지를 위해, 유사 결함 발견시 처리 시간 단축을 위해 결함을 추적하고 관리하는 활동

결함 추적 관리 활동

결함 추적 관리 활동

결함 관리 도구 유형

  • 오픈소스
    • Bugzilla
    • Trac
    • Mantis
  • 상용도구
    • QC
    • Clear Quest
    • JIRA

결함 관리 도구 도입 시 고려사항

  • 웹 클라이언트 지원을 하는지 확인이 필요
  • 윈도우, 유닉스 환경 등 이기종 플랫폼의 웹 서버를 지원하는지 확인
  • 프로세스 및 워크플로우 변경이 가능 해야함
  • 결함 간에 연관 관계 정보를 제공
  • 결함 등록 및 상태 변경 시 담당자에게 이벤트 통보 기능 필요
  • 각종 레포트, 차트, 쿼리 구성 및 저장이 가능
  • 결함 상태 변경에 대한 추적 기능
  • 다국어 지원이 가능
  • 다중 프로젝트 지원이 가능

애플리케이션테스트케이스설계 - 애플리케이션 통합 테스트 수행

애플리케이션테스트케이스설계

  • 개발자 통합 테스트 계획에 따라 통합 모듈 및 인터페이스가 요구 사항을 충족하는지에 대한 테스트를 수행
  • 개발자 통합 테스트 수행 결과 발견된 결함에 대한 추이 분석을 통하여 잔존 결함을 추정
  • 테스트의 충분석 여부를 검증하고 발견된 결함에 대한 개선 조치사항을 작성

통합 테스트의 개념

  • 소프트웨어 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법

통합 테스트 수행 방법의 분류

  • 일반적으로 점증적인 방법과 비점증적인 방식으로 나뉨
  • 비점증적 방법
    • 모든 컴포넌트를 사전에 통합하여 전체 프로그램을 한꺼번에 테스트
  • 점증적 방법
    • 상향식 통합
    • 하향식 통합

하향식 통합 Top Down

  • 메인 제어 모듈로부터 아래 방향으로 제어의 경로를 따라 이동하면서 하향식으로 통합하면서 테스트를 진행
  • 메인 제어 모듈은 작성된 프로그램을 사용하고, 아직 작성되지 않은 하위 제어 모듈 및 모든 하위 컴포넌트를 대신하여 더미 모듈인 스텁을 개발
  • 깊이 우선 방식 또는 너비 우선 방식에 따라 하위 모듈인 스텁이 한 번에 하나씩 실제 모듈로 대체
    하향식 통합

상향식 통합 Bottom Up

  • 애플리케이션 구조에서 최하위 레벨의 모듈 또는 컴포넌트로부터 위쪽 방향으로 제어의 경로를 따라 이동하면서 구축과 테스트 시작
  • 최하위 레벨의 모듈 또는 컴포넌트들이 하위 모듈의 기능을 수행하는 클러스터로 결합
  • 상위의 모듈에서 데이터의 입력과 출력을 확인하기 위한 더미 모듈 인 드라이버를 작성
  • 각 통합된 클러스터 단위를 테스트
  • 테스트가 완료되면 각 클러스터들은 프로그램의 위쪽으로 결합되며, 드라이버는 실제 모듈 또는 컴포넌트로 대체
    상향식 통합

회귀 테스팅 Regression Testing

  • 통합 테스트 과정에서 오류를 제거하거나 수정한 프로그램이 새로운 형태의 오작동이나 오류를 일으킬 수 있음
  • 회귀 테스트는 모듈이나 컴포넌트의 변화로 인해 의도하지 않은 오류가 생기지 않았음을 보증하기 위해 반복 테스트하는 것
  • 회귀 테스트 케이스 선정 방법
    • 모든 애플리케이션의 기능을 수행할 테스트 케이스의 대표적인 샘플을 도출
    • 변경에 의한 영향도가 가장 높은 애플리케이션 기능에 집중한 추가적인 테스트 케이스를 도출
    • 실제 수정이 발생한 모듈 또는 컴포넌트에서부터 시행하는 테스트 케이스를 도출

테스트 자동화의 개념

  • 테스트 도구를 활용하여 반복적인 테스트 작업을 스크립트 형태로 구현
  • 테스트 시간 단축과 인력 투입 비용을 최소하
  • 운영중인 시스템의 모니터링 또는 UI가 없는 서비스의 경우에도 정밀한 테스트 수행

테스트 자동화의 장점과 단점

  • 장점
    • 반복되는 테스트 데이터 재입력 작업의 자동화
    • 사용자 요구 기능의 일관성 검증에 유리
    • 테스트 결과 값에 대한 객관적인 평가 기준 제공
    • 테스트 결과의 통계 작업과 그래프 등 다양한 표시 형태 제공
    • UI가 없는 서비스의 경우에도 정밀한 테스트 가능
  • 단점
    • 도구 도입 후 도구 사용 방법에 대한 교육 및 학습이 필요
    • 도구를 프로세스 단계별로 적용하기 위한 시간, 비용, 노력이 필요
    • 사용 도구의 경우 고가, 유지 관리 비용이 높아 추가 투자 필요

정적 분석 도구 Static Analysis Tools

  • 프로그램을 실제로 실행해 보지 않고 분석하는 방법
  • 대부분의 경우 소스 코드에 대한 코딩 표준, 코딩 스타일, 코드 복잡도 및 남은 결함을 발견하기 위해 사용
  • 테스트를 수행하는 사람이 작성된 소스 코드에 대한 이해를 기반한 자동화된 도구 활용한 분석 수행

테스트 실행 도구 Test Execution Tools

  • 테스트를 위해 작성된 스크립트를 실행
  • 데이터 주도 접근
    • 테스트 데이터를 스프레드 시트에 저장하고, 이 데이터를 읽고 실행할 수 있도록 함
    • 다양한 테스트 데이터를 이용하여 동일한 테스트 케이스르 반복 실행
    • 스크립트 언어에 익숙하지 않은 테스터도 미리 작성된 스크립트에 테스트 데이터만 추가하여 쉽게 테스트를 수행
  • 키워드 주도 접근 방식
    • 스프레드시트에 테스트를 수행할 동작을 나타내는 키워드와 테스트 데이터를 저장
    • 키워드를 이용하여 테스트 수행 동작을 정의
    • 테스트 대상 애플리케이션의 특성에 맞추어 키워드에 대해 테일러링을 수행

성능 테스트 도구 Performance Test Tools

  • 애플리케이션의 처리량, 응답 시간, 경과 시간, 자원 사용률에 대해 가상의 사용자를 생성하고 테스트를 수행함으로써 성능 목표를 달성하였는지를 확인하는 도구

테스트 통제 도구 Test Control Tools

  • 테스트 계획 및 관리를 위한 테스트 관리 도구
  • 테스트 수행에 필요한 데이터와 도구를 관리하는 형상 관리 도구
  • 테스트에서 발생한 결함에 대해 관리하거나 협업을 지원하기 위한 결함 추적/관리 도구
  • 조직의 요구사항에 최적화된 형태의 정보를 생성, 관리하기 위하여 <u트스프레드시트 등 다른 도구들과 연계하여 사용

테스트 장치 Test Harness

  • 애플리케이션 컴포넌트 및 모듈을 테스트하는 환경의 일부분으로, 테스트를 지원하기 위한 코드와 데이터를 말하며, 단위 또는 모듈 테스트에 사용하기 위해 코드 개발자가 작성
  • 구성요소
    • 테스트 드라이버
      • 상향식 테스트에 필요
    • 테스트 스텁
      • 하향식 테스트에 필요
    • 테스트 슈트
      • 대상 모듈, 테스트 케이스 집합
    • 테스트 케이스
      • 입력 값, 실행조건, 기대 결과
    • 테스트 스크립트
      • 자동화된 스크립트 실행 절차
    • 목 Mock 오브젝트
      • 행위를 조건부로 사전에 입력

테스트 자동화 도구

자동화도구

소프트웨어 테스트 관리 지원 도구

  • 실행된 테스트와 테스트 활동 관리를 지원하며 테스트 실행 도구나 결함 추적 도구, 요구사항 관리 도구와의 인터페이스 역할
  • 결함이 발견, 분배, 수정, 확인, 종료되는 결함의 생명주기 관리
  • 테스트 진행 상황에 대한 리포트 생성, 발견된 결함의 정량적인 분석을 지원
  • 오픈 소스
    • 결함관리
      • Mantis, Bugzilla
    • 테스트 케이스 관리 도구
      • Testlink
    • 형상 관리 도구
      • CVS, SVN, Git, Bazar
    • 커뮤니케이션 도구
      • MediaWiki, Dokuwiki
    • 통합프로젝트 지원 도구
      • Trac, nForge, Gforge
  • 상용 소스
    • 버그 추적
      • JIRA, TPMS, Test Director
    • 형상 관리
      • Visual Sourcesafe, IBM, Clear Case
    • 커뮤니케이션
      • Confluence

소프트웨어 정적 분석 지원 도구

  • 리뷰 프로세스에 관한 정보를 저장, 리뷰 코멘트를 저장
  • 정적 분석 도구는 동적 테스트를 하기 전에 결함을 발견할 수 있도록 지원
  • 코딩 표준을 지킬 것을 강제하고 구조와 의존 관계를 분석
  • 소스 코드의 복잡도를 측정
  • 오픈소스
    • PMD
    • Valgrind
    • Find Bugs
    • CPPCheck
    • Corbetrua
  • 상용 소스
    • Coverity
    • IBM Rtional Software
    • PloySpace

소프트웨어 테스트 실행 및 로깅 지원 도구

  • 스크립트 언어의 도움으로 저장된 입력 값과 예상 결과를 이용하여 테스트를 실행하고 결과와 비교
  • 테스트 대상이 실행되는 환경을 시뮬레이션, 테스트 Harness 도구
  • 오픈 소스
    • 테스트 프레임워크
      • xUnit, TestNG, FIT
      • Jmock, Easymock, Googlemock
    • 지속적인 통합
      • CruiseControl, hudson, jenkinson
    • 빌드자동화
      • Ant, Maven, Make
    • 실행자동화
      • STAF/STAX, Selenium
  • 상용 소스
    • WinRunner
    • Jtest
    • CodeScroll

소프트웨어 성능 및 모니터링 도구

  • 소프트웨어가 실행도중에만 발생하는 시간 의존성과 메모리 누수와 같은 결함 발견에 활용
  • 소프트웨어 성능/부하/스트레스를 테슽
  • 특정 시스템 리소스의 사용량을 지속적으로 분석하고 확인
  • 오픈 소스
    • Jmeter
    • OpenSTA
    • allomon
  • 상용 소스
    • E-load
    • LoadRunner
    • Webload
    • Robot

애플리케이션테스트케이스설계 - 핵심정리

애플리케이션테스트케이스설계

1. 애플리케이션 테스트 케이스 작성

  • 테스트에 대한 기본 개념 및 테스트의 기법을 파악하고 테스트 케이스 작성 기법
  • 소프트웨어 테스트 기법 분류에서는 소프트웨어 내부 구조 참조 여부에 따른 분류, 테스트 설계의 근원에 따른 분류
  • 테스트 케이스 작성 방법

2. 애플리케이션 테스트 시나리오 작성

  • 테스트 시나리오 개념 및 작성시 유의사항
  • 테스트 환경구축의 개념 및 유의사항
  • 소프트웨어 테스트 관련 국제표준에 의한 테스트 지식 체계

애플리케이션테스트케이스설계 - 애플리케이션테스트시나리오작성

애플리케이션테스트케이스설계

테스트 시나리오 개념

  • 테스트 수행을 위한 여러 테스트 케이스의 집합
  • 테스트 케이스의 동작 순서를 기술한 문서이며 테스트를 위한 절차를 명세한 문서

테스트 시나리오 작성시 유의사항

  • 테스트 항목을 하나의 시나리오에 모두 작성하지 않고, 시스템별, 모듈별, 항목별 테스트 시나리오를 분리하여 작성
  • 고객의 요구사항과 설계 문서 등을 토대로 작성
  • 테스트 항목
    • 식별자 번호
    • 순서 번호
    • 테스트 데이터
    • 테스트 케이스
    • 예상 결과
    • 확인

테스트 환경 구축의 개념

  • 개발된 응용 소프트웨어가 실제 운영 시스템에서 정상적으로 작동하는지 테스트 할 수 있또록 하기 위하여 실제 운영 시스템과 동일 또는 유사한 사양의 하드웨어, 소프트웨어, 네트워크 등의 시설을 구축하는 활동

테스트 환경 구축시 유의점

  1. 테스트 환경의 분리
    • 개발을 위한 환경과 테스를 위한 환경이 물리적으로 분리되는 것이 좋음
  2. 가상 머신 기반의 서버나 클라우드 환경의 이용
    • 별도의 테스트가 어려울시 가상머신 서버나 클라우드 환경을 이용하여 일시적 테스트하는 것도 좋음
  3. 네트워크 분할과 공유디스크 관리
    • 물리적 환경 분리가 불가능하면 VLAN과 같은 소프트웨어를 이용하여 논리적으로 분할
  4. 연동 시스템의 테스트 환경
    • 다른 시스텤과 연동을 위한 시스템의 경우 연동 시스템에 대한 테스트 환경이 별도 구성

소프퉤어 테스트 관련 국제표준

  • IS0/IEC 29119
    테스트 지식 체계 IS0 29119

테스트 지식 체계 개념

  • 전체 시리즈에 대한 가이드를 제공해 주는 부분
  • 소프트웨어 테스팅 개념
  • 조직과 프로젝트 관점에서의 소프트웨어 테스팅
  • 소프트웨어 생명 주기 모델에서의 일반적인 테스팅 프로세스
  • 위험 기반 테스팅
  • 테스트 서브 프로세스

테스트 프로세스

  • 조직, 테스트 관리, 동적 테스트의 3가지 수준의 다계층 프로세스 모델을 설명
  • 다계층 프로세스 모델
  • 조직의 테스트 프로세스
  • 테스트 관리 프로세스
  • 동적 테스트 프로세스

테스트 문서화

  • 테스트 프로세스 단계별 산출문의 견본제시 및 작성방법 설명
  • 조직의 테스트 프로세스 문서
  • 테스트 관리 프로세스 문서
  • 동적 테스트 프로세스 문서

키워드 주도 테스팅

  • 사전 정의된 키워드의 모음으로 테스트 케이스를 만드는 것
  • 테스트 단계에서 자연어 대신 키워드를 사용함으로써 테스트 케이스는 이해하기 쉽고 유지보수가 용이

애플리케이션테스트케이스설계 - 애플리케이션테스트케이스작성

애플리케이션테스트케이스설계

  • 개발하고자 하는 응용 소프트웨어의 특성을 반영한 테스트 방식, 대상과 범위를 결정하여 테스트 케이스를 작성
  • 테스트 방식, 대상과 범위가 적용된 시나리오를 정의
  • 테스트 데이터, 테스트 시작 및 종료 조건 등을 준비

소프트웨어 테스트의 개념

  • 구현된 응용 애플리케이션이나 시스템이 사용자가 요구하는 기능의 동작과 성능, 사용성, 안정성 등을 만족하는지 확인하기 위하여 소프트웨어의 결함을 찾아내는 행동

소프트웨어 테스트의 필요성

  • 오류 발견 관점
    • 프로그램에 잠재된 오류를 발견하고 이를 수정하여 올바른 프로그램을 개발하는 활동
  • 오류 예방 관점
    • 프로그램 실행 전에 코드 리뷰, 동료 검토, 인스펙션 등을 통해 오류를 사전에 발견하는 예방 차원의 활동
  • 품질 향상 관점
    • 사용자의 요구사항 및 기대 수준을 만족하도록 반복적인 테스트를 거쳐 제품의 신뢰도를 향상하는 품질보증활동

소프트웨어 테스트의 기본 원칙

  • 테스팅은 결함이 존재함을 밝히는 활동
  • 완벽한 테스팅은 불가능
  • 개발 초기에 시작
  • 결함 집중
  • 살충제 패러독스
    • 주기적으로 테스트 케이스를 리뷰하고 개선
  • 테스팅은 정황에 의존식
    • 테스트 대상에 따라 테스트를 다르게 수행
  • 오류-부재의 궤변
    • 사용자 요구사항을 만족하지 못하는 결함을 찾고 수정하는 것은 무의미

소프트웨어 테스트의 프로세스

  • 테스트 프로세스 유형은 테스트 계획 수립 단계와 수행 단계, 결과 보고 단계에 따라 테스트 프로세스 유형이 다름
    테스트 프로세스

소프트웨어 테스트 산출물

  • 테스트 계획서
    • 목적과 범위 정의
    • 대상 시스템 구조 파악
    • 테스트 수행 절차
    • 테스트 일정
    • 조직의 역할 및 책임 정의
    • 종료 조건 정의
  • 테스트 케이스
    • 설계 산출물
    • 명세서
      • 입력값
      • 실행 조건
      • 기대 결과
  • 테스트 시나리오
    • 테스트 케이스의 집합
    • 절차를 명세한 문서
  • 테스트 결과서
    • 테스트 프로세스를 리뷰
    • 테스트 결과물 평가하고 리포팅하는 문서

소프트웨어테스트 분류

소프트웨어테스트 분류

정적 테스트 : 프로그램 실행 없이 테스트

  • 코드를 실행하지 않고 여러 참가자가 모여 소프트웨어 개발 중에 생성되는 모든 명세나 코드를 검토
  • 정적 테스트
    • 기술적 검토기법
      • 개별 검토
      • 동료 검토
      • 검토 회의
    • 관리적 검토기법
      • 검사
      • 감사

동적 테스트 : 테스트 데이터를 이용해 프로그램 실행 테스트

  • 명세 기반 테스트(블랙박스 테스트)
    • 코드를 열어 오류를 찾지 않고 입력값에 대한 예상값을 정해 놓고 그대로 결과가 나오는지 확인
    • 방법
      • 신택스
      • 동등분할
      • 경계값분석
      • 원인-결과 그래프
      • 의사결정 테이블
      • 페어와이즈
  • 구조 기반 테스트(화이트박스 테스트)
    • 프로그램을 보면서 내부 논리 흐름에 따라 테스트 케이스를 작성하고 확인
    • 방법
      • 구문 기반
      • 결정 기반
      • 조건 기반
      • 조건결정 기반
      • 변경조건 결정 기반
      • 멀티 조건 기반 커버리지 테스트

테스트 케이스 개념

  • 명세 기반 테스트 설계 산출물
  • 특정한 요구사항을 준수하는지 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과로 구성된 테스트 항목의 명세서

테스트 케이스 작성 절차

  1. 테스트 계획 검토 및 자료 확보
    • 시스템 요구사항
    • 기능 명세서 검토
  2. 위험평가 및 우선순위 결정
    • 상대적 중요성과 테스트의 초점 결정
  3. 테스트 요구사항 정의
    • 시스템 요구사항
    • 테스트 대상 재검토
    • 테스트 할 특성, 조건, 기능
  4. 테스트 구조 설계 및 테스트 방법 결정
    • 테스트 절차, 장비, 도구, 문서화 방법
  5. 테스트 케이스 정의
    • 테스트 케이스
      • 입력 값
      • 실행 조건
      • 예상 결과
  6. 테스트 케이스 타당성 확인 및 유지보수
    • 유용성 검토

테스트 오라클의 개념

  • 테스트의 결과가 참인지 거짓인지를 판단하기 위해서 사전에 정의된 참 값을 입력하여 비교하는 기법

유형

  • 참 오라클
    • 모든 입력 값에 대하여 기대하는 결과를 생성
  • 샘플링 오라클
    • 특정한 몇 개의 입력 값에 대해서
  • 휴리스틱 오라클
    • 특정 입력 값에 대해 올바른 결과를 제공하고 나머지 값들에 대해 추정으로 처리
  • 일관성 검사
    • 애플리케이션 변경이 있을 때, 수행 전과 후의 결과 값이 동일한지 확인

V모델과 테스트 단계

V모델과 테스트 단계

테스트 단계별 기능 검증 사항

  1. 단위 테스트
    • 프로그램의 기본 단위인 모듈(함수, 서브루틴, 컴포넌트)의 기능 수행 여부를 판정하고 내부에 논리적 오류 검출
  2. 통합 테스트
    • 모듈 간의 인터페이스 연계를 검증
    • 모듈 간의 인터페이스 오류를 확인
    • 상호 작용 및 연계 동작 여부 판정하는 방안 파악
  3. 시스템 테스트
    • 시스템 전체가 정상적으로 동작하는지 기능적, 비기능적 명세를 확인
  4. 인수 테스트
    • 사용자가 요구분석 명세서에 명시된 사항을 모두 충족하는지 판정
    • 시스템이 예상대로 동작하고 있는지 점검
API API오용 Anaconda Beacon Bluetooth CRUD분석 Camera ChatBot DB관련신기술 DB관리기능 DB서버 DB표준화 ER다이어그램 ER모델 ETL Flask HW관련신기술 IDE도구 IP IoT Machine_Translation NLP배경 ORM프레임워크 Package Recurrent Neural Network SDLC SW개발방법론 SW개발방법론선정 SW개발보안정책 SW개발표준 SW관련신기술 Sequence_Tagging ShellScript TCP_UDP Vector WordCloud c 자료형 class embedding konlpy python python 자료형 가설검증 개발환경구축 객체지향프로그래밍언어 관계데이터베이스모델 관계데이터언어 국제표준제품품질특성 네트워크7계층 네트워크관련신기술 네트워크장비 네트워크침해공격용어 논리데이터모델개요 논리데이터모델품질검증 논리적데이터모델링 논문 단위모듈구현 단위모듈테스트 데이터검증 데이터모델개념 데이터베이스무결성 데이터베이스백업 데이터베이스암호화 데이터베이스용량설계 데이터베이스이중화구성 데이터베이스정규화 데이터분석 데이터분석 - 순열 - 조합 데이터분석 - 정규분포 데이터분석 - 통계기초 데이터사이언스개념 데이터입출력 데이터전환수행계획 데이터정제 데이터조작프로시저작성 데이터조작프로시저최적화 데이터조작프로시저테스트 데이터지역화 데이터타입 데이터표준확인 데이터품질분석 라이브러리 로그분석 메모리관리 모델화 몬테카를로 물리데이터모델설계 물리데이터모델품질기준 물리데이터저장소구성 물리요소조사분석 반정규화 배치프로그램 변수 보안기능 보안솔루션 보안아키텍처 보안취약성식별 분산데이터베이스 분산분석 비용산정모델 빌드자동화도구 사용자정의함수 상관분석 서버개발프레임워크 서버인증 서버장비운영 서버접근통제 서비스공격유형 선언형언어 세션통제 소스코드인스펙션 소프트스킬 소프트웨어개발프레임워크 소프트웨어버전관리도구 소프트웨어연계테스트 슈퍼디엠지 스크립트언어 시스템카탈로그와뷰 암호알고리즘 애플리케이션모니터링도구 애플리케이션배포도구 애플리케이션성능개선 애플리케이션테스트결과분석 애플리케이션테스트시나리오작성 애플리케이션테스트케이스작성 애플리케이션통합테스트수행 애플리케이션패키징 연산자 예외처리 오답노트 오류데이터측정 오류처리 오류처리확인및보고서작성 요구공학방법론 운영체제 웹서버 이벤트 인터넷구성의개념 인터페이스구현검증 인터페이스기능확인 인터페이스보안 입력데이터검증및표현 자료구조 자연어처리 재사용 절차적프로그래밍언어 정보보안침해공격용어 정보처리기사 제품소프트웨어매뉴얼작성 집계성DCL작성 체크리스트 초기데이터구축 취약점분석 칼럼속성 캡슐화 코드오류 클러스터링 키종류 테일러링기준 트랜잭션인터페이스 트리거 파일처리기술 파티셔닝 패키지 포트포워딩 프로세스스케줄링 프로토타입 한국어임베딩 핵심정리 현업도구 형상관리도구 환경변수 회귀분석
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×