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

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

테스트 시나리오 개념

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

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

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

테스트 환경 구축의 개념

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

테스트 환경 구축시 유의점

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

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

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

테스트 지식 체계 개념

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

테스트 프로세스

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

테스트 문서화

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

키워드 주도 테스팅

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

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

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

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

소프트웨어 테스트의 개념

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

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

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

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

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

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

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

소프트웨어 테스트 산출물

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

소프트웨어테스트 분류

소프트웨어테스트 분류

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

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

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

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

테스트 케이스 개념

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

테스트 케이스 작성 절차

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

테스트 오라클의 개념

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

유형

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

V모델과 테스트 단계

V모델과 테스트 단계

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

  1. 단위 테스트
    • 프로그램의 기본 단위인 모듈(함수, 서브루틴, 컴포넌트)의 기능 수행 여부를 판정하고 내부에 논리적 오류 검출
  2. 통합 테스트
    • 모듈 간의 인터페이스 연계를 검증
    • 모듈 간의 인터페이스 오류를 확인
    • 상호 작용 및 연계 동작 여부 판정하는 방안 파악
  3. 시스템 테스트
    • 시스템 전체가 정상적으로 동작하는지 기능적, 비기능적 명세를 확인
  4. 인수 테스트
    • 사용자가 요구분석 명세서에 명시된 사항을 모두 충족하는지 판정
    • 시스템이 예상대로 동작하고 있는지 점검

인터페이스설계확인 - 핵심정리

인터페이스설계확인

1. 인터페이스 구현 검증

  • 인터페이스 구현 검증 도구, 감시도구
  • 인터페이스 구현 검증에 필요한 설계 산출물
    1. 인터페이스 명세서
    2. 인터페이스 단위 및 통합 테스트 설계서

2. 인터페이스 오류 처리 확인 및 보고서 작성

  • 인터페이스 오류 처리 방법
    1. 사용자 화면에서 오류를 발생
    2. 인터페이스 오류 로그 생성
    3. 인터페이스 관련 테이블에 오류 사항 기록
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

×