동적 테스트란 무엇입니까? 유형, 기술 및 예
⚡ 스마트 요약
동적 테스트는 애플리케이션을 실행하고 실제 입력값을 사용하여 실행 중인 코드가 어떻게 동작하는지 관찰함으로써, 아무리 많은 문서 검토를 하더라도 드러낼 수 없는 기능, 성능 및 안정성을 검증할 수 있도록 합니다.
동적 테스트란 무엇입니까?
동적 테스트 동적 테스트는 소프트웨어 코드의 동적 동작을 테스트하는 소프트웨어 테스트 방법입니다. 동적 테스트의 주요 목적은 상수가 아닌 변수와 같은 동적 변수를 사용하여 소프트웨어 동작을 검사하고 소프트웨어 실행 환경의 취약점을 찾는 것입니다. 동적 동작을 테스트하려면 코드를 실행해야 합니다.
테스트는 검증 및 검증테스트를 완료하려면 검증과 유효성 검사(Verification, Variation, Validation) 두 가지 모두 필요합니다. 검증은 정적 테스트를 통해 수행되며, 요구사항, 설계 문서 및 코드를 실행하지 않고 검토합니다. 유효성 검사는 동적 테스트를 통해 수행되며, 빌드를 실행하고 애플리케이션의 실제 동작과 설계 의도된 동작을 비교합니다.
아래 표는 두 가지를 한눈에 구분할 수 있도록 해줍니다.
| 아래 | 정적 테스트(검증) | 동적 테스트(검증) |
| Code 처형 된 | 아니 | 가능 |
| 일반적인 활동 | Rev뷰, 워크스루, 점검, 정적 분석 | 모든 테스트 레벨에 걸친 테스트 케이스 실행 |
| 질문에 대한 답변 | 우리는 제품을 올바르게 만들고 있는가? | 우리는 올바른 제품을 만들고 있는가? |
| 발견 된 결함 | 모호한 요구사항, 코딩 표준 위반, 사용되지 않는 코드 | 잘못된 출력, 메모리 누수, 타이밍 오류, 통합 오류 |
| 시작 | 유물이 존재하는 즉시 | 실행 가능한 빌드가 존재하게 되면 |
| 수리 비용의 상대적 비율 | 결함을 더 일찍 발견할 수 있기 때문에 비용이 더 낮습니다. | 결함이 나중에 드러나기 때문에 더 높습니다. |
동적 테스트 예
간단한 예시를 통해 동적 테스트가 실제로 어떻게 작동하는지 보여줍니다.
로그인 페이지를 테스트 중이라고 가정해 보겠습니다. 이 페이지에는 사용자 이름과 비밀번호라는 두 개의 입력란이 있으며, 사용자 이름은 영숫자만 사용할 수 있습니다.
사용자가 사용자 이름을 "로 입력할 때Guru사용자가 "99"를 입력하면 시스템이 이를 수락합니다.Guru"99@123"을 입력하면 애플리케이션에서 오류 메시지가 발생합니다. 이 결과는 코드가 사용자 입력에 따라 동적으로 동작함을 보여줍니다.
따라서 동적 테스트란 실제 시스템을 사용하여 입력을 제공하고 애플리케이션의 실제 동작을 예상 동작과 비교하는 것을 의미합니다. 즉, 오류를 찾을 목적으로 시스템을 사용하는 것입니다.
따라서 동적 테스트는 최종 사용자가 다양한 환경에서 소프트웨어를 사용하는 것처럼 소프트웨어 애플리케이션을 검증하여 올바른 소프트웨어를 구축하는 과정입니다.
동적 테스트는 무엇을 합니까?
동적 테스트의 주요 목적은 소프트웨어가 설치 중 및 설치 후에도 제대로 작동하는지 확인하여 주요 결함 없이 안정적인 애플리케이션을 제공하는 것입니다. 완전히 오류가 없는 소프트웨어는 없으며, 테스트는 결함의 존재는 보여줄 수 있지만 결함이 없다는 것을 보장할 수는 없습니다.
이 예시에서 볼 수 있듯이 동적 테스트는 소프트웨어 전반의 일관성을 보장합니다.
은행 애플리케이션에는 내 계좌, 자금 이체 등 여러 화면이 있습니다. Bill 결제. 모두 금액 입력란을 포함하고 있습니다.
내 계정 필드에 금액이 25,000으로 표시되고, 자금 이체에도 25,000달러가 표시된다고 가정해 보겠습니다. Bill 결제 화면에는 25000달러로 표시됩니다. 금액 자체는 같지만 표시 방식이 달라 소프트웨어의 일관성이 떨어집니다.
일관성은 기능에만 국한되지 않습니다. 성능, 사용성, 호환성과 같은 표준도 포함하므로 동적 테스트가 매우 중요합니다.
동적 테스트의 유형
동적 테스트는 두 가지 범주로 분류됩니다.
- 백 Box 지원
- 검정 Box 지원
아래 다이어그램은 두 가지 범주를 그 아래에 있는 테스트 수준과 연관시켜 보여줍니다.
각 유형과 그 용도는 아래에 설명되어 있습니다.
백 Box 지원 — 테스터가 시스템의 내부 구조와 설계를 알고 있는 상태에서 수행하는 소프트웨어 테스트 방법입니다. 주요 목적은 코드에 기반하여 시스템의 성능을 검증하는 것입니다. 주로 개발자 또는 프로그래밍 지식을 갖춘 화이트 박스 테스터가 수행합니다.
검정 Box 지원 — 테스터가 시스템의 내부 구조, 코드 및 설계를 알지 못하는 상태에서 수행하는 테스트 방법입니다. 주요 목적은 테스트 대상 시스템의 기능을 검증하는 것입니다. 이 유형의 테스트는 전체 테스트 스위트를 실행해야 하며, 주로 테스터가 수행하고 프로그래밍 지식이 필요하지 않습니다.
블랙박스 테스트는 다시 두 가지 유형으로 분류됩니다.
- 기능 테스트
- 비기능 테스트
기능 테스트
기능 테스트 개발된 모든 기능이 기능 사양과 일치하는지 확인하기 위해 수행됩니다. 이는 기능 테스트를 실행함으로써 이루어집니다. 테스트 케이스 QA 팀에서 작성한 테스트입니다. 이 단계에서는 시스템에 입력을 제공하고, 출력을 검증하고, 실제 결과와 예상 결과를 비교하여 시스템을 테스트합니다.
기능 테스트에는 여러 단계가 있으며, 그중 가장 중요한 네 가지는 다음과 같습니다.
- 단위 테스트 — 유닛은 작고 테스트 가능한 코드 조각입니다. 유닛 테스트는 소프트웨어의 개별 유닛에 대해 수행되며 개발자가 수행합니다.
- 통합 테스팅 — 개별 테스트 단위를 결합한 후 단위 테스트가 완료된 후에 수행됩니다. 개발자 또는 테스터가 수행할 수 있습니다.
- 시스템 테스트 — 시스템이 요구사항대로 작동하는지 확인하기 위해 수행됩니다. 일반적으로 시스템 개발이 완료되고 빌드가 QA 팀에 배포된 후 테스터가 수행합니다.
- 수락 테스트 — 시스템이 비즈니스 요구 사항을 충족하고 사용 또는 배포 준비가 되었는지 확인하기 위해 수행됩니다. 일반적으로 최종 사용자가 수행합니다.
비기능 테스트
비기능 테스트 비기능 테스트는 시스템의 기능적 측면이 아닌 메모리 누수, 성능, 안정성과 같은 비기능적 속성에 초점을 맞추는 테스트 기법입니다. 비기능 테스트는 모든 테스트 단계에서 수행됩니다.
비기능 테스트 기법에는 여러 가지가 있지만, 그중 가장 중요한 다섯 가지는 다음과 같습니다.
- 성능 시험 — 원하는 네트워크 부하 조건에서 시스템의 응답 시간이 요구 사항에 따라 정상적인지 확인합니다.
- 복구 테스트 — 시스템이 충돌 및 하드웨어 오류로부터 얼마나 잘 복구되는지 검증합니다.
- 호환성 테스트 — 시스템이 다양한 환경에서 어떻게 작동하는지 검증합니다.
- 보안 테스트 — 애플리케이션의 안정성을 검증하여 승인된 사용자와 역할만 시스템에 접근할 수 있도록 합니다.
- 사용성 테스트 — 최종 사용자가 시스템을 얼마나 쉽게 사용할 수 있는지, 그리고 시스템에 얼마나 만족하는지를 검증합니다.
동적 테스트 기술
유형이 정해졌으니, 다음 질문은 동적 테스트 사이클이 실제로 어떻게 실행되는가입니다.
동적 테스트 기법 STLC 동적 테스트는 테스트 요구사항 분석, 테스트 계획 수립, 테스트 케이스 설계 및 구현, 테스트 환경 설정, 테스트 케이스 실행, 버그 보고, 그리고 최종적으로 테스트 종료와 같은 작업들로 구성됩니다. 동적 테스트의 모든 작업은 이전 작업의 완료에 따라 진행됩니다.
STLC(테스트 수명 주기 관리) 내에서 실제 동적 테스트 프로세스는 테스트 케이스 설계부터 시작됩니다. 아래 다이어그램은 일련의 활동을 보여주며, 각 활동은 다이어그램 뒤에 설명되어 있습니다.
이 과정에 들어가기 전에 동적 테스트를 위해 따라야 할 전략을 합의해야 합니다.
테스트 전략은 주로 가용 자원과 기간에 초점을 맞춰야 합니다. 이 두 가지 요소를 기반으로 테스트 목표, 테스트 범위, 테스트 단계 또는 주기, 환경 유형, 예상되는 문제점 또는 어려움, 그리고 위험 요소를 모두 문서화해야 합니다.
전략이 수립되고 경영진의 승인을 받으면 실제 테스트 케이스 설계 프로세스가 시작됩니다.
테스트 설계 및 구현
이 단계에서 팀은 다음 사항을 파악합니다.
- 테스트할 기능
- 이러한 특징들로부터 도출된 테스트 조건
- 테스트 조건에서 도출된 커버리지 항목
- 커버리지 항목에서 파생된 테스트 케이스
블랙 박스 테스트 설계 기법 동등 분할, 경계값 분석과 같은 것들 의사결정표 테스트 상태 전환 테스트 테스트 조건을 구체적인 실행 가능한 사례 집합으로 바꿔주는 요소입니다.
테스트 환경 설정
The 테스트 환경 테스트 환경은 항상 실제 운영 환경과 유사해야 합니다. 이 단계에서는 빌드를 설치하고 테스트 머신을 관리 및 구성합니다.
테스트 실행
이 단계에서는 테스트 케이스가 수동으로 또는 자동화된 방식으로 실제로 실행됩니다. 자동화그리고 실제 결과는 예상 결과와 비교하여 기록됩니다.
버그 신고가 캡처되었습니다.
실행 결과 예상 결과와 실제 결과가 일치하지 않으면 해당 테스트 케이스는 실패로 표시하고 버그를 기록해야 합니다. 결함 관리 프로세스.
동적 테스트의 장점
- 동적 테스트는 정적 분석으로는 전혀 포착할 수 없는, 너무 어렵거나 복잡해서 발견하기 힘든 결함을 밝혀냅니다.
- 이 소프트웨어는 처음부터 끝까지 실행되므로 제품과 프로젝트 모두의 품질이 향상됩니다.
- 동적 테스트는 실행 중인 시스템에서 보안 위협을 탐지하는 데 필수적인 수단입니다.
- 메모리 누수, 타이밍 문제, 통합 오류와 같은 런타임 오류는 오직 여기에서만 발생하며 다른 곳에서는 발생하지 않습니다.
동적 테스트의 단점
- 동적 테스트는 애플리케이션이나 코드를 실행하는 데 많은 리소스가 필요하기 때문에 시간이 많이 소요됩니다.
- 이는 소프트웨어 개발 초기 단계에서부터 고려되지 않아 프로젝트 비용을 증가시키고, 후반 단계에서 발생하는 문제를 해결하는 데 더 많은 비용이 소요되기 때문입니다.
- 실제 운영 환경과 유사한 환경 및 현실적인 테스트 데이터는 필수 조건이며, 이를 구축하고 유지하는 데에는 노력이 필요합니다.


