Anzeige
Anzeige

Más contenido relacionado

Anzeige

DDC 발표자료

  1. 버그 분류 체계 + 테스트 방법 APP 개발팀 박경일
  2. 목차 1. 버그 분류 체계 1-1. 요구사항 및 기능 버그 1-2. 구조적 버그 1-3. 데이터 버그 1-4. 코딩 버그 1-5. 인터페이스, 통합, 시스템 버그 1-6. 테스트 및 테스트 설계 버그 2. 테스트 방법 2-1. 동등 분할 테스트 2-2. 경계값 분석 테스트 2-3. 상태 전이 분석 테스트 3. 예외적인 버그 4. 참고 자료
  3. 1. 버그 분류 체계
  4. 1-1. 요구사항 및 기능 버그 (Requirements and Feature Bugs) 요구사항과 명세(Requirements and Specifications) - 불완전하거나, 모호하거나, 자기모순적 - 잘못된 이해 or 이해 불가능 기능 버그(Feature Bugs) - 잘못되거나, 누락, 불필요 - 필수적이지 않은 기능(free한)은 변수가 될 수있음(긍정 or 부정) 기능 상호작용(Feature Interaction) - 기능간 그룹을 만들어 동작 - 그룹내 개별 기능은 정상이지만 상호작용시 예측 불가
  5. 1-2. 구조적 버그 (Structural Bugs) 제어 및 시퀀스 버그(Control and Sequence Bugs) - 빠트린 경로, 도달 불가능한 코드, 루프의 부적절한 사용, 프로세 스 미싱, 프로세스 중복, 불필요한 프로세스, GOTO의 부적절한 사 용, switch의 잘못된 사용…. - 언어선택, 코드 스타일로 부분적으로 예방 가능 프로세싱 버그(Processing Bugs) - 산술적, 수학적, 알고리즘 선택 등을 포함 로직 버그(Logic Bugs) - 케이스의 부적절한 사용, 잘못된 부정, 조건 조합의 오류 - 제어 및 시퀀스 버그 + 프로세싱 버그 초기화 버그(Initialization Bugs) - 부적절한, 불필요한(성능 영향) 초기화 데이터 흐름 버그와 아노말리(Data-Flow Bugs and Anomalies) - 데이터 선언, 초기화 타이밍 - 데이터 변경 후 저장 누락 - 대부분 실행을 해야 발견
  6. 1-3. 데이터 버그 (Data Bugs) 동적 vs 정적(Dynamic Versus Static) - 데이터의 생명 주기가 다름 정보 인자 제어(Information, Parameter, and Control) - 데이터는 세가지 역할을 복합적으로 수행 - 역할에 따른 적절한 검증이 필요 컨텐츠 구조 속성(Contents, Structure, and Attributes) - 데이터 명세의 구성
  7. 1-4. 코딩 버그 (Coding Bugs) 소스 언어 변환기 - 어셈블러, 컴파일러, 인터프리터 에서 일부 감지 - 오타…
  8. 1-5. 인터페이스, 통합, 시스템 버그 (Interface, Integration, and System Bugs) 외부 인터페이스(External Interfaces) - 유저와 머신이 의사소통하는데 사용되는 수단, 변경이 힘듬 내부 인터페이스(Internal Interfaces) - 원칙적으로 외부 인터페이스와 동일하지만 더 통제적, 타협이 가능 하드웨어 아키텍쳐(Hardware Architecture) - 실제 디바이스와 시뮬레이터 사이의 간극 운영체제(Operating System) - 운영체제에 대한 잘못된 이해 or 운영체제 자체의 문제 소프트웨어 아키텍쳐(Software Architecture) - 대부분 부하(load)에 의존, 루틴에는 문제가 없음 제어 및 시퀀스 버그(Control and Sequence Bugs) 리소스 관리 문제(Resource Management Problems) - 메모리, 디스크 등
  9. 1-5. 인터페이스, 통합, 시스템 버그 (Interface, Integration, and System Bugs) 통합 버그(Integration Bugs) - 잘 동작하는 컴포넌트 간 통합관련 버그 시스템 버그(System Bugs) - 특정 컴포넌트들의 단순 상호작용 문제가 아닌 규모가 큰 버그 *위 버그들은 빈도가 높지 않으나 뒤늦게 발견되고 수정이 힘듬
  10. 1-6. 테스트와 테스트 설계버그 (Test and Test Design Bugs) - 테스터라고 버그에 면역이 있는게 아님 - 테스트 자체도 버그를 가질 수 있다.
  11. 2. 테스트 방법
  12. 2-1. 동등 분할 테스트 (Equivalence Partitioning) - 입/출력값 영역을 유한개의 상호 독립적인 집합으로 나누 어 수학적인 등가 집합을 만든 후, 각 등가집합의 원소 중 대푯값을 선택해 테스트를 진행 <예시>
  13. 2-2. 경계값 분석 테스트 (Boundary Analysis) - 입/출력값 영역을 유한개의 상호 독립적인 집합으로 나누 어 수학적인 등가 집합을 만든 후, 각 등가집합의 원소 중 최댓값과 최소값을 그 영역의 경계값으로 삼아 테스트를 진행 <예시>
  14. 2-3. 상태전이 분석 테스트 (State Transition Analysis) - 시스템의 현재 상황과 이전의 이력을 반영하는 상태 및 그 변화에 따라 다르게 동작함을 다이어그램을 통해 표현할 수 있다. 그 다이어그램을 통해 상태 사이의 관계, 상태간 의 전이, 상태를 변화 시키는 이벤트, 입력값, 상태 변화로 유발되는 동작 등을 파악 <예시>
  15. 3. 예외적인 버그 하이젠버그(Heisenbug) 보흐버그(Bohrbug) 만델버그(Mandelbug) 슈뢰딩버그(Schrodinbug) 달 주기 버그(Phase of the Moon bug)
  16. 4. 참고자료 Testing IT : An Off-the-Shelf Software Testing Process by John Watkins Software Testing Technques by Boris Bizer ISTQB: www.istqb.org ISO: www.iso.org 소프트웨어 테스팅 노트: grapevine9700.tistory.com
  17. -끝-
Anzeige