ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 블랙박스 테스트 VS 화이트박스 테스트 + 페이징
    정보처리기사/개념 2024. 5. 19. 20:33

    ▤ 목차

       

       

       

      블랙박스 테스트(Black Box Test)

      ⌨ 개념

      소프트웨어가 수행할 특정 기능을 알기 위해 각 기능이 완전히 작동되는 것을 입증하는 기능적 테스트(Function Testing)를 말한다.

      사용자의 요구사항 명세를 보며 테스트하고 주로 구현된 기능을 테스트한다.

      내부 동작 확인 안하고 진행하는 테스트이다.

       

      💻 종류(비오원동경)

      비교 검사 (Comparison Testing)

      • 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법이다.
      • 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법

       

      오류 예측 검사 (Error Guessing)

      • 확인자의 감각이나 과거의 경험으로 테스트하는 기법이다.
      • 다른 블랙 박스 테스트 기법으로 찾아낼 수 없는 오류를 찾아내는 보충 검사 기법이다.( 데이터 확인 검사)

       

      원인-효과 그래프 검사 (Cause-Effect Graphing Testing)

      • 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법이다.

       

      동치 분할 검사 (Equivalence Partitioning Testing)

      • 입력 자료에 초점을 맞춰 테스트 케이스를 만들고 검사하는 기법이다.
      • 동등 분할 기법이라고도 한다.

       

      경계값 분석 (Boundary Value Analysis)

      • 입력 자료에만 치중한 동치 분할 기법을 보완하기 위한 기법이다.
      • 입력 조건의 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하는 기법이다.

       


       

       

       

      화이트박스 테스트(White Box Test)

      ⌨ 개념

      • 소프트웨어 내부 구조와 동작을 분석하여 테스트를 수행하는 방법을 말한다.
      • 논리적인 경로, 조건 분기, 루프 등을 검증하여 프로그램의 완전성과 정확성을 확인한다.
      • 주로 소프트웨어 개발자나 테스트 엔지니어가 수행한다. 
      • 구조적 테스트(Structural Testing)이라고 불린다.

       

      💻 기법 종류

      • 경로 분석(Path Testing) : 실행가능한 경로 식별 / 명령문, 결정, 조건 커버리지와 같은 서브 기준을 사용하여 테스트의 완전성을 평가한다.
      • 조건/ 결정 테스트(Decision Testing) : 조건문을 테스트하는 기법 / 참과 거짓의 모든 조합에 대해 테스트 케이스를 작성한다. 논리적 오류와 잘못된 조건을 찾아내고, 테스트 커버리지를 향상시킨다. 
      • 루프 테스트(Loop Testing) : 반복문 테스트를 한다. 종료 조건, 반복 횟수, 반복동안 발생 가능한 오류 등을 고려한 테이스 케이스를 설계한다. 

       

       

       

      👏 문제

      반복조건은 화이트 박스 기법이다.

       

       

       


       

       

       

      ✔ 페이징

      페이징은 컴퓨터 시스템에서 메모리를 관리하는 기법 중 하나이다.

      가상 메모리를 물리적인 메모리로 매핑하는 과정을 나타낸다.

       

      🔶개념

      • 페이징은 프로그램이 실행될 때 필요한 페이지들을 물리적인 메모리에 적재하는 과정을 말한다.
      • 가상 메모리를 일정한 크기의 페이지로 분할하고 물리 메모리에도 동일한 크기의 페이지 프레임을 할당하여 사용한다.
      • 페이징을 프로세스의 논리적 주소 공간을 페이지로 나눠 물리 메모리의 프레임에 매핑하는 방식으로 동작한다.
      • 페이징 기법을 통해 물리적 메모리는 연속적으로 할당되어 존재할 필요가 없다.
      • 비연속적 메모리를 연속적 메모리처럼 만들 수 있다.

       

      🔶 페이지 테이블 (page Table)

      • 페이지 테이블은 가상 메모리의 페이지와 물리 메모리의 프레임 간의 매핑 정보를 저장하는 자료구조이다.
      • 각각의 프로세스마다 별도의 페이지 테이블이 존재하며 가상 주소를 물리 주소로 변환하는데 사용된다.
      • 페이지 테이블은 일반적으로 배열이나 트리 구조로 구현된다.
      • 주소 변환을 위해 사용된다.

       

       

      🔶 페이지 교체 알고리즘 (Page Replacement Algorithm)

      • 페이징 기법을 사용할때, 물리 메모리에 공간이 부족할 경우 페이지 교체가 필요하다.
      • 페이지 교체 알고리즘은 어떤 페이지를 교체할지 결정하는 방법을 의미한다.
      • 대표적인 페이지 교체 알고리즘으로는 FIFO, LRU(Least Recently Used), LFU(Least Frequently Used)등이 있다.

       

      🔸페이징 크기에 따른 장단점

        페이징 크기가 작아질 경우 페이징 크기가 커질 경우
      장점 - 내부 단편화가 감소
      -페이지 교체 오버헤드 감 
      - 페이지 테이블크기 감소
      - 외부 단편화 감소 
      단점 - 페이지 테이블 크기 증가
      : 페이지 테이블은 페이지당 하나의 항목을 가진다.
      즉, 메모리 사용량이 증가할 수 있다.
      - 외부 단편화 증가
      : 작은 페이지 크기는
      외부 단편화를 더 많이 발생시킬 수 있다. 
      - 내부 단편화 증가
      -페이지 교체 오버헤드 증가
      : 큰 페이지 크기를 사용하면 페이지 교체할때
      입출력이 더 많이 발생할 수 있다.
      - 페이지 교체 시간 증가

       

       

       

      🔶 장단점

      장점
      - 프로세스를 동적으로 메모리에 할당하여 메모리 활용도를 향상시킨다.
      - 외부 단편화를 해결하고 다중 프로그래밍 환경에서 메모리 공유를 가능하게 한다.

      단점
      - 페이지 테이블의 관리가 필요하다.
      - 페이지 부재가 발생할 경우 추가적인 오버헤드가 발생한다.
      - 페이지 교체 알고리즘의 선택에 따라 성능이 달라질 수 있다.

       

       

       

       

    Designed by Tistory.