관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

[소프트웨어 개발] 4장 어플리케이션 테스트 관리 1 - 애플리케이션 테스트 케이스 설계 1 본문

자격증 공부/정보처리기사 필기

[소프트웨어 개발] 4장 어플리케이션 테스트 관리 1 - 애플리케이션 테스트 케이스 설계 1

huenuri 2024. 7. 31. 13:11

어제 하려고 했던 2과목 4장의 공부를 시작해 본다. 조금 전에 강의를 들었으나 모두 처음 들어보는 용어들이라 낯설고 이해도 잘 되지 않았다. 개념을 노트 필기하듯 정리하다 보면 조금은 이해가 될 것 같다.
빨리 2과목 학습을 마치고 싶다. 1과목과 2과목은 이론적인 부분이 많아서 많이 지루하고 암기할 것도 정말 많다.

하지만 3과목부터는 응용도 들어가고 SQL 등 좀더 재미있는 분야들이 이어진다. 이론적인 것만 학습하다 보니 DB의 SQL도 이젠 재미있게 느껴질 정도이다. 전에는 jQuary와 SQL이 같은 건 줄 알았는데 지난번에 자바스크립트 수업에 이 부분을 배우면서 다르다는 걸 알게 되었다.


오늘은 DB 공부도 해야하니 아침에 최대한 빨리 2과목까지 모든 공부를 마치려고 한다.

시간을 절약하기 위해 이번에는 표로 되어 있는 것 대부분 스캔을 받았다. 사실 스캔을 하면 더 간단하지만 공부하기 싫을 때는 귀찮게 느껴질 때가 있다. 지난 며칠 동안은 사람들이 올렸던 자료들을 그대로 복사해서 붙여 넣었는데 자료가 많지 않아서 해당 학습과 어울리지 않는 것들도 있었다.

 

학습 내용

  1. 테스트 케이스
  2. 테스트 레벨
  3. 테스트 시나리오
  4. 테스트 지식 체계

 

학습 시간

아침 7시 반 ~ 10시 <총 2시간 반 소요>


 

 

 

 

 

 

1. 테스트 케이스

 

테스트 케이스 개념

특정 요구사항에 준수하는지를 확인하기 위해 개발된 입력값, 실행 조건, 예상된 결과의 집합

 

테스트 케이스 작성 절차

테스트 케이스의 정확성, 재사용성, 간결성 보장을 위해 아래의 절차에 따라 작성한다.

 

 

 

 

테스트 케이스 구성요소

이외에도 테스트를 거친 애플리케이션 기능의 성공과 실패를 판단하는 조건을 명확하게 작성해야 한다.

 

 

 

 

테스트 오라클

 

1) 개념

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

 

2) 종류


 

 

 

 

2. 테스트 레벨

 

개념

  • 함께 편성되고 관리되는 테스트 활동의 그룹
  • 프로젝트에서 책임과 연관됨
  • 각각의 테스트 레벨은 서로 독립적

 

종류

  • 소프트웨어 개발 단계에 따라 분류할 수 있고, 이렇게 분류된 것을 테스트 레벨이라고 함

 

1) 단위 테스트(Unit Test)

  • 소프트웨어 설계의 최소 단위인 모듈이나 컴포넌트에 초점을 맞춘 테스트
  • 자료 구조, 인터페이스, 외부적 I/O, 독립적 기초 경로, 오류 처리 경로, 경계 조건 등을 검사
  • 명세 기반 테스트(블랙박스)와 구조 기반 테스트(화이트박스)로 나뉘지만, 주로 구조 기반 테스트 위주로 수행

 

2) 통합 테스트(Integration Test)

  • SW 각 모듈 간의 인터페이스 관련 오류 및 결함을 찾아내기 위한 체계적인 테스트 기법
  • 단위 테스트가 끝난 모듈 또는 컴포넌트 단위의 프로그램이 설계 단계에서 제시한 애플리케이션과 동일한 구조와 기능으로 구현된 것인지를 확인하는 테스트

 

3) 시스템 테스트(System Test)

  • 통합된 단위 시스템의 기능이 시스템에서 정상적으로 수행되는지 검증
  • 컴퓨터 시스템을 완벽하게 검사하기 위한 목적 또는 성능 목표를 가지고 테스트

 

1. 기능적 요구사항 테스트

요구사항 명세서, 비즈니스 절차, 유스케이스 등 명세서 기반의 블랙박스 테스트

2. 비기능적 요구사항 테스트

성능 테스트, 회복 테스트, 보안 테스트, 내부 시스템의 메뉴 구조, 웹 페이지의 내비게이션 등의 구조적 요소에 대한 화이트 박스 테스트

 

 

 

4) 인수 테스트(Acceptance Test)

  • 최종 사용자와 업무의 이해관계자 등이 테스트를 수행함으로써 개발된 제품에 대해 운영 여부를 결정하는 테스트
  • 시스템의 일부 또는 특정한 비기능적인 특성에 대해 인수 테스트를 통해 확인

1. 알파 테스트

선택된 사용자(회사 내의 다른 사용자 또는 실제 사용자)가 개발자 환경에서 통제된 상태로 개발자와 함께 수행하는 인수 테스트

2. 베타 테스트

  • 실제 환경에서 일정 수의 사용자에게 대상 소프트웨어를 사용하게 하고 피드백을 받는 인수 테스트
  • 필드 테스팅이라고 불리며, 개발자 없이 고객의 사용 환경에 SW를 설치하여 검사를 수행하는 인수 테스트

 

 

 

 

3. 테스트 시나리오

 

개념

  • 어플리케이션의 테스트되어야 할 기능 및 특징, 테스트가 필요한 상황을 작성한 문서
  • 테스트 수행 절차를 미리 정함으로써 설계 단계에서 중요시되던 요구사항이나 대안 흐름과 같은 테스트 항목을 빠짐없이 테스트하기 위함

 

작성 시 유의점


 

 

 

 

4. 테스트 지식 체계

 

종류

프로그램 실행 여부, 테스트 상세 기법, 테스트에 대한 시각, 테스트의 목적, 테스트의 종류에 따라 분류할 수 있다.

 

프로그램 실행 여부에 따른 분류

  • 경험 기반 테스트도 블랙박스 테스트에 포함되기도 함

탐색적 테스트(Exploratory)
테스트 스크립트 또는 테스트 케이스를 문서로 작성하지 않고, 경험에 바탕을 두고 탐색적으로 기능을 수행해 보면서 테스트하는 기법

  • 실행 여부에 따라 정적 테스트와 동적 테스트로 나눌 수 있음


 

 

 

테스트 기법에 따른 분류

1) 블랙박스 테스트

  • 프로그램 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트(기능 테스트)
  • 소프트웨어의 특징, 요구사항, 설계 명세서 등에 초점을 맞춰 테스트가 이루어짐
  • 기능 및 동작 위주의 테스트를 진행하기 때문에 내부 구조나 작동 원리를 알지 못해도 가능
  • 명세 테스트라고도 부름

이 부분은 빈출 문제이므로 반드시 암기하기!

동등분할 테스트는 동치분할 · 균등 분할 · 동치 클래스 분해 테스트라고도 부른다. 경계값 분석 테스트는 한계값 테스트라고도 부름

 

 

 

 

 

 

 

 

 

 

 

 

 

2) 화이트박스 테스트

  • 각 응용 프로그램의 내부 구조와 동작을 검사하는 소프트웨어 테스트

  • 코드 분석과 프로그램 구조에 대한 지식을 바탕으로 문제가 발생할 가능성이 있는 모듈 내부를 직접 관찰, 테스트하는 방법
  • 소스 코드의 모든 문장을 한 번 이상 수행함으로써 진행
  • 산출물의 기능별로 적절한 프로그램의 제어 구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로를 점검
  • 구조 기반 · 코드 기반 · 로직 기반 · 글래스(Glass) 박스 테스트라고도 부름

 

화이트박스 테스트 유형을 묻는 문제는 구조 테스트의 유형을 묻는 문제로 용어를 틀리게 해서 출제되기도 함. 구조테스트 유형과 화이트박스 테스트 유형은 동일

구문, 결정, 조건-결정, 변경 조건-결정, 다중 조건 커버리지를 통칭해서 제어 흐름 테스트라고도 함


 

 

 

 

테스트 시작에 따른 분류

 

 

 

 

테스트 목적에 따른 분류

강도 테스트는 성능 테스트의 한 종류

 

 

 

 

소프트웨어 테스트의 원리

파레토 법칙과 결합 집중 원리의 관계가 헷깔릴 수도 있음. 파레토 법칙은 경제 용어로 모든 곳에 80대 20 법칙이 적용되는 현상을 말한다. 파레토 법칙을 테스트 분야에 접목한 것이 결함 집중 원리이다.







기출문제 유형 분석

맞은 문제도 알고 보면 진짜 아는 게 아닐 때가 정말 많았다. 블랙박스 테스트와 화이트박스 테스트는 시험에 자주 출제되는 문제이니 꼭 암기해 두기로 하자!


1. 블랙박스 테스트 유형 찾기


경계값 분석이므로 주 값의 경계에 있는 수를 입력해야 한다.





2. 테스트 레벨의 종류


통합과 단위 테스트는 자주 틀리는 문제이기도 하다. 이 둘의 용어가 많이 헷갈린다. 단위가 가장 작은 레벨로 모듈 자체를, 통합은 모듈 간의 연계성을 테스트하는 것임을 꼭 기억하자!





3. 코드 인스펙션과 화이트 박스 검사 기법 유형


코드 인스펙션은 지금도 많이 낯선 용어이다. 정적 테스트와 동적 테스트의 유형에 대해서 좀더 학습할 필요가 있겠다. 정적 테스트에는 리뷰와 정적분석이 있는데 이 리뷰에 동료 검토, 워크스루, 인스펙션이 등장한다.

화이트 박스 검사 기법도 종류 정도는 숙지하기로 하자.


 

 

 

 

학습을 마치고

강의를 듣고 개념 정리와 문제 풀이까지 모두 마쳤다. 유형들이 많고 암기할 것이 정말 많았지만 문제를 풀다 보니 어떻게 풀어야 할지 조금은 알게 되었다. 여기 나오는 모든 내용을 다 암기하는 건 조금은 어리석은 방법이고, 테스트 케이스의 유형과 예시를 살펴보며 이해를 하면 될 것이다.
공부하다 보니 요령도 조금 생기는 것 같았다.

그럼 바로 이어서 다음 단원 학습을 시작해볼 것이다. 오늘은 여유를 부리며 지체할 시간이 없다.