맨위로가기

블랙박스 검사

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

블랙박스 검사는 소프트웨어의 내부 구조나 코드에 대한 지식 없이, 소프트웨어의 기능이 요구 사항을 충족하는지 테스트하는 방법이다. 테스트 케이스를 통해 주어진 입력에 대한 예상 출력을 확인하며, 애플리케이션의 기능, 즉 '무엇'을 하는지에 집중한다. 다양한 테스트 설계 기법과 테스트 커버리지를 통해 소프트웨어의 품질을 평가하며, 프로그래밍 지식이 없어도 테스트를 수행할 수 있다는 장점이 있다. 또한, 모의 침투 테스트에서 화이트 해커가 시스템에 대한 사전 지식 없이 수행하는 검사를 의미하기도 한다.

더 읽어볼만한 페이지

  • 하드웨어 테스트 - JTAG
    JTAG는 집적 회로의 테스트와 디버깅을 위해 개발된 IEEE 1149.1 표준 인터페이스로, 칩 내부 조사, 제어, 임베디드 시스템 디버깅, 펌웨어 프로그래밍 등에 활용된다.
  • 하드웨어 테스트 - 환경 스트레스 스크리닝
    환경 스트레스 스크리닝(ESS)은 제품의 작동 수명 동안 겪을 물리적 환경 조건을 인위적으로 조성하여 제품 신뢰성을 사전에 검증하고 초기 불량률을 감소시켜 품질을 향상시키는 시험 과정이다.
  • 소프트웨어 테스트 - 보안 취약점
    보안 취약점은 시스템의 설계, 구현, 운영, 관리상 결함이나 약점으로, 위협에 의해 악용되어 시스템 보안 정책을 위반할 수 있는 요소이며, ISO 27005, IETF RFC 4949, NIST SP 800-30, ENISA 등 다양한 기관에서 정의하고 있다.
  • 소프트웨어 테스트 - A/B 테스트
    A/B 테스트는 두 가지 이상의 대안을 비교하여 더 나은 성과를 판단하는 방법으로, 웹사이트, 애플리케이션 등 다양한 분야에서 사용자 인터페이스 등을 테스트하며 통계적 가설 검정을 기반으로 한다.
블랙박스 검사
개요
유형블랙 박스 시스템
종류소프트웨어 테스트 방법
시스템
시스템 종류블랙 박스, 오라클 머신
방법 및 기술
관련 기술블랙 박스 테스팅, 블랙박싱
관련 기술
관련 기술피드 포워드 (제어)
난독화
패턴 인식
화이트 박스 (소프트웨어 공학)
화이트 박스 테스팅
그레이 박스 테스팅
시스템 식별
기본 원리
기본 원리사전 정보
제어 시스템
개방 시스템
운영 연구
열역학적 시스템

2. 테스트 절차

명세 기반 테스트는 적용 가능한 요구 사항에 따라 소프트웨어의 기능을 테스트하는 것을 목표로 한다.[2] 이러한 수준의 테스트는 일반적으로 철저한 테스트 케이스가 테스터에게 제공되어야 하며, 테스터는 주어진 입력에 대해 출력 값(또는 동작)이 테스트 케이스에 지정된 예상 값과 "같거나 같지 않음"을 간단히 확인할 수 있다.

어떤 입력이 특정 출력을 생성하는 블랙 박스 모델의 예


애플리케이션 코드, 내부 구조 및 일반적인 프로그래밍 지식은 필요하지 않다.[3] 테스터는 소프트웨어가 "무엇"을 해야 하는지 알고 있지만, "어떻게" 하는지는 모른다. 예를 들어 테스터는 특정 입력이 특정 불변 출력을 반환한다는 것을 알고 있지만, 소프트웨어가 처음에 "어떻게" 출력을 생성하는지는 알지 못한다.[4]

테스터는 애플리케이션의 코드, 내부 구조 및 프로그래밍에 대한 일반적인 지식이 필요하지 않다.[13] 테스터는 소프트웨어가 ''무엇을'' 해야 ''하는지''는 알지만, 그것이 ''어떻게'' 수행되는지는 모른다. 예를 들어, 테스터는 특정 입력이 특정 불변의 출력을 반환한다는 것을 인식하지만, 소프트웨어가 처음에 출력을 생성하는 ''방법''은 인식하지 못한다.[14]

2. 1. 테스트 케이스

테스트 케이스는 애플리케이션이 수행해야 하는 기능인 요구사항 및 사양을 기반으로 구축된다. 테스트 케이스는 일반적으로 사양, 요구 사항 및 설계 매개변수를 포함하여 소프트웨어에 대한 외부 설명에서 파생된다. 사용되는 테스트는 본질적으로 주로 "기능적"이지만, "비기능적" 테스트도 사용할 수 있다. 테스트 설계자는 유효 및 무효 입력을 모두 선택하고, 종종 테스트 오라클 또는 양호한 것으로 알려진 이전 결과의 도움을 받아 테스트 대상의 내부 구조에 대한 지식 없이 올바른 출력을 결정한다.

2. 2. 테스트 설계 기법

의사 결정 표 테스트, 전 쌍 테스트, 동등 분할, 경계값 분석, 원인-결과 그래프, 오류 추측, 상태 전이 테스트, 유스 케이스 테스트, 사용자 스토리 테스트, 도메인 분석 및 구문 테스트는 전형적인 블랙박스 테스트 설계 기법이다.[5][6][15] 조합 기법도 블랙박스 테스트 설계 기법에 포함된다.

3. 테스트 커버리지

'''테스트 커버리지'''는 시스템 또는 애플리케이션의 소프트웨어 요구 사항 중 블랙 박스 테스트를 통해 테스트되는 비율을 의미한다.[7] 이는 프로그램의 내부 작동 방식을 조사하고 테스트 슈트가 실행될 때 컴퓨터 프로그램소스 코드가 실행되는 정도를 측정하는 코드 커버리지와 대조된다.[8] 테스트 커버리지를 측정하면 결함을 신속하게 감지하고 제거하고, 보다 포괄적인 테스트 슈트를 만들고, 주어진 요구 사항과 관련이 없는 테스트를 제거할 수 있다.[8][9]

4. 효과

블랙박스 검사는 정확한 기능을 보장하는 데 필요할 수 있지만, 복잡하거나 위험한 상황을 방지하기에는 불충분하다.[10] 블랙박스 기법의 장점은 프로그래밍 지식이 필요하지 않다는 것이다. 프로그래머가 어떤 편향을 가지고 있든, 테스터는 다른 관점을 가질 수 있으며 기능의 다른 영역을 강조할 수 있다. 반면, 블랙박스 테스트는 "손전등 없이 어두운 미로를 걷는 것과 같다"고 한다.[11] 소스 코드를 검사하지 않기 때문에, 테스터가 단 하나의 테스트 케이스로 검사할 수 있는 것을 확인하기 위해 많은 테스트 케이스를 작성하거나 프로그램의 일부를 테스트하지 않고 남겨두는 상황이 발생한다.

5. 해킹

모의 침투 테스트에서 블랙 박스 검사는 화이트 해커가 공격 대상 시스템에 대한 지식 없이 수행하는 검사를 의미한다. 블랙 박스 침투 검사의 목표는 외부 해킹 또는 사이버 전쟁 공격을 모방하는 것이다.

참조

[1] 서적 Testing and Quality Assurance for Component-based Software https://books.google[...] Artech House
[2] 학위논문 The Theory and Practice of Specification Based Software Testing http://www.cs.le.ac.[...] Department of Computer Science, [[University of Sheffield]] 2018-01-02
[3] 서적 Software Testing https://books.google[...] Tata McGraw-Hill Education
[4] 서적 Software Testing https://archive.org/[...] Sams Publishing
[5] 서적 Practical Test Design: Selection of Traditional and Automated Test Design Techniques
[6] 서적 Pragmatic Software Testing: Becoming an Effective and Efficient Test Professional https://books.google[...] John Wiley & Sons
[7] 기술 보고서 IEEE Standard Glossary of Software Engineering Terminology 1990
[8] 웹사이트 Code Coverage vs Test Coverage https://www.browsers[...] 2024-04-13
[9] 웹사이트 Top 8 Test Coverage Techniques in Software Testing https://www.accelq.c[...] 2023-12-16
[10] 학술지 Risk and Requirements-Based Testing http://www.satisfice[...] 1999-06
[11] 서적 How to Become a Software Tester Roman Savenkov Consulting
[12] 서적 Testing and Quality Assurance for Component-based Software https://books.google[...] Artech House
[13] 서적 Software Testing https://books.google[...] Tata McGraw-Hill Education
[14] 서적 Software Testing https://archive.org/[...] Sams Publishing
[15] 서적 Practical Test Design: Selection of Traditional and Automated Test Design Techniques
[16] 서적 Software Testing



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com