컴퓨터, 소프트웨어
테스트 소프트웨어의 방법과 그들을 비교합니다. 테스트 "블랙 박스"시험 방법 "화이트 박스"의 방법
테스트 소프트웨어 (SW) 해결해야 할 코드 격차, 결점과 오류를 식별합니다. 또한 분석의 도움으로 소프트웨어의 기능과 정확성을 평가하는 과정으로 정의 할 수 있습니다. 통합 및 소프트웨어 애플리케이션의 테스트의 기본 방법과 품질 사양, 디자인, 코딩, 신뢰성 평가, 검증 및 검증을 테스트하는 것입니다 확인합니다.
방법
소프트웨어 테스트의 주요 목적 -주의 깊게 통제 된 조건 하에서 체계적인 디버깅 응용 프로그램을 통해 소프트웨어 시스템의 품질 확인은 완전성과 정확성뿐만 아니라 숨겨진 오류의 검출을 확인합니다.
검증 방법 (시험) 프로그램들은 정적 및 동적으로 분할 될 수있다.
전자는 비공식적, 모니터링 및 기술 검토, 검사, 단계 분석, 감사에 의해 단계뿐만 아니라, 정적 데이터 흐름 분석 및 관리를 포함한다.
동적 기술은 다음과 같습니다 :
- 화이트 박스 테스트. 이 프로그램의 내부 논리와 구조의 자세한 연구이다. 이 소스 코드의 지식이 필요하다.
- 블랙 박스 테스트. 이 기술은 응용 프로그램의 내부 작업에 대한 지식을 필요로하지 않습니다. 우리는 시스템의 기본적인 측면,하지에 관련 또는 내부 논리 구조의 몇 가지와 관련을 고려한다.
- 회색 상자 방법. 그것은 이전의 두 방법을 결합합니다. 애플리케이션의 내부 기능의 제한된 지식 디버깅 시스템의 기본적인 형태의 기술과 결합된다.
투명 테스트
화이트 박스 방법을 사용하여 테스트 스크립트는 절차 적 설계의 구조를 제어 할 수 있습니다. 이 기술은 소프트웨어의 내부 동작의 일부를 분석하여 불량한 관리 코드 시스템으로 구현 오류를 공개 할 수 있습니다. 이 시험 방법은 통합, 모듈 및 시스템 수준에 적용 할 수있다. 테스터는 소스 코드에 액세스 할 수 있으며 부적절하게 작동하는 장치 발견하는 데 사용해야합니다.
화이트 박스로 프로그램을 테스트하는 것은 다음과 같은 장점이 있습니다 :
- 그것은 불필요한 선을 제거하여 숨겨진 코드에서 오류를 감지 할 수 있습니다;
- 부작용의 사용;
- 최대 범위는 테스트 스크립트를 작성하여 얻을 수있다.
단점 :
- 디버거 숙련을 요구하는 고비용의 공정;
- 가능한 모든 숨겨진 오류의 철저한 검사가 매우 복잡하기 때문에 많은 도로는 미개척 남아있다;
- 코드의 일부는 눈에 띄지 전달됩니다.
화이트 박스 테스트는 때때로 투명 또는 오픈 소스 코드를 기반으로 상자, 구조, 논리 테스트, 논리 구조를 테스트하여 불린다.
주요 품종 :
1) 유량 제어 테스트 - 적은 더욱 복잡한 더 간단한 방법을 선호 구조적 전략 프로그램 제어 흐름 모델을 사용하고;
2) 또한, 분기 결합 용액을 포함하는 각각의 제어 연산자의) (참 또는 거짓을 각 옵션을 디버깅하기위한 연구되고;
3) 실행 경로의 기본 세트를 분리하는 논리적 복잡성 측정 절차 프로젝트를 수립 할 수 있도록 테스터 메인 패스의 시험;
상기 광고에 대한 정보를 계산하고, 프로그램 변수를 사용하여 통계 연구의 유동 제어 방법 - 4) 상기 데이터 스트림을 검사
5) 시험의주기 - 완전 순환 과정의 올바른 작동에 초점을 맞추었다.
행동 디버깅
블랙 박스 테스트는 "블랙 박스"로 소프트웨어를 취급 - 프로그램의 내부 동작에 대한 정보를 계산하고, 시스템의 기본적인 측면을 확인하지 않습니다. 이 경우, 테스터는 소스 코드에 액세스하지 않고 시스템 구조를 알 필요가있다.
이 방법의 장점 :
- 큰 코드 세그먼트 효율성;
- 인식 테스터의 용이성;
- 사용자 관점 명확 현상 시각 (프로그래머 테스터 서로 독립적)로부터 분리된다;
- 테스트의보다 신속한 생성.
테스트 소프트웨어 블랙 박스 방법은 다음과 같은 단점이 있습니다 :
- 실제로 한정된 따르면 결과 테스트 케이스의 선택 번호를 수행;
- 테스트 스크립트를 개발하기 어려운 명확한 사양의 부족;
- 낮은 효율.
이 기술에 대한 다른 이름 - 행동, 불투명, 기능 테스트 및 밀폐 된 상자의 디버깅 방법.
이 범주에는 다음과 같은 소프트웨어 테스팅 기술을 포함 할 수있다 :
1) 입력 된 소프트웨어 모듈 데이터를 별도의 부분들로 세분화 될 때 테스트 데이터 세트를 줄일 수있는 파티션에 상당;
2) 경계 값 분석 경계 또는 극한 한계 값의 검증에 집중 - 최소, 최대, 및 에러의 전형적인 값;
3) 퍼징 - 에러 또는 자동 또는 반자동 모드 poluiskazhennyh 손상된 데이터를 입력함으로써 검색을 구현하기 위해 사용;
4) 인과 카운트 - 그래프의 생성시 및 동작과 그 이유의 관계를 판정 기반 기술 : OR 논리 논리 AND 신원, 부정 - 네 주인공 인과 관계를 나타내는;
5) 직교 배열 검증 철저한 연구의 수를 초과하는 비교적 작은 입력 영역 문제인가;
6) 모든 쌍 시험 - 시험 값의 세트가 입력 파라미터의 각 쌍의 모든 가능한 조합을 포함하는 바이너리 기술을;
7) 디버깅 상태 전이 - 시스템의 상태를 검사뿐만 아니라를 탐색하는데 유용한 기법 GUI의 사용자.
블랙 박스 테스트 : 예
블랙 박스 기술은 소프트웨어 인터페이스 또는 시스템의 사양, 문서, 및 설명을 기반으로합니다. 또한 소프트웨어의 예상 된 동작을 나타내는, (공식 또는 비공식적 인) 모델을 사용할 수 있습니다.
일반적으로,이 방법은 사용자 인터페이스를 디버깅하기 위해 사용되고, 데이터 수집 및 결과를 도입하여 애플리케이션과의 상호 작용을 필요로한다 - 보고서 또는 인쇄물에서 스크린에서를.
테스터는, 따라서, 스위치, 버튼 또는 다른 인터페이스에 작용하여 입력함으로써 소프트웨어와 상호 작용한다. 다음 예와 같이 입력 데이터의 선택은 투여의 순서 또는 동작의 순서는 조합 큰 총 개수로 이어질 수있다.
얼마나 많은 시험은 4 윈도우 플래그와 일회성 필드에 대한 모든 가능한 값을 확인하기 위해해야 할 시간 (초)을 설정? 언뜻 계산에서 간단 개의 가능한 상태 4 개 필드 - 24 = 16, 00에서 99까지 가능한 위치의 수를 곱한해야, 즉 1,600 가능한 테스트.
그러나이 계산은 잘못이다 : 그것은 두 개의 숫자 위치로 구성되어 있으며 따라서 등 영숫자 문자, 특수 문자, 공백을 포함 할 수 있습니다 즉 우리는 2 점 필드는 공백을 포함 할 수 있음을 확인할 수 있습니다, 만약 .... 시스템은 16 비트 컴퓨터, 그들이 수행하는 경우 68,719,476 (736)의 총 제공 플래그 (16)의 조합에 의해 승산되어야한다 얻어진 4294967296 테스트 케이스에서 각 위치 (216) = 65536 하나를 켜 초당 1 개 시험 전체에 계속 olzhitelnost 테스트는 2 177.5 년이다. 32 또는 64 비트 시스템의 경우, 기간보다.
따라서, 허용 가능한 수준이 시간을 줄일 필요가있다. 따라서, 상기 기술은 테스트의 범위를 감소시키지 않고 테스트 케이스의 수를 줄이기 위해 적용되어야한다.
등가 분할
동등한 분할은 등 그것이 분할 1 당량의 모든 데이터는 동일한 방법으로 상기에서 처리 될 것이라는 원리에 기초 입출력 값, 문자, 숫자인지, 소프트웨어에 존재하는 임의의 변수들에 대한 간단한 방법을 적용 할 수있다 같은 지침을 제공합니다.
테스트하는 동안, 각각의 특정 등가 파티션의 한 대표를 선택했다. 이것은 당신이 체계적으로 명령과 기능의 범위의 손실없이 가능한 테스트 케이스의 수를 줄일 수 있습니다.
이 분할의 또 다른 결과는 다른 변수 및 테스트 케이스의 관련 환원의 조합 폭발을 감소시키는 것이다.
예를 들어, (1 / x)의 1/2은 세 개의 데이터 시퀀스 세 동등한 분할을 사용 :
1. 모든 양수는 같은 방식으로 처리되며, 정확한 결과를 제공한다.
2. 모든 음수는 동일한 결과와 같은 방식으로 처리됩니다. 음수의 뿌리가 가상이기 때문에 이것은 잘못된 것입니다.
3. 제로는 별도로 처리 및 "0으로 나누기"오류를 제공합니다. 이는 단일 값을 가진 섹션입니다.
따라서, 우리는 하나의 값으로 감소되고 그 중 하나가 세 개의 서로 다른 부분을 참조. 하나의 신뢰할 수있는 결과를 얻을 수 있습니다 "올바른"섹션, 잘못된 결과 두 개의 "잘못된"는 있습니다.
경계 값 분석
동등 분할의 경계에 처리가 예상과 다르게 수행 할 수 있습니다. 한계 값 조사 - 등의 분야에서의 소프트웨어의 동작을 분석하는 공지의 방법. 이 기술은 이러한 오류를 식별 할 수 있습니다 :
- 관계 연산자의 부적절한 사용 (<,> =, ≠, ≥, ≤);
- 하나의 오류;
- 사이클과 반복의 문제,
- 잘못된 타입 또는 정보를 저장하기 위해 사용되는 변수의 크기;
- 데이터 형식 및 변수와 연관된 인공 한계.
반투명 테스트
회색 상자 방법은 시험 범위, 당신은 흑백 기술의 조합을 통해 시스템의 모든 어려운 수준에 초점을 맞출 수 증가한다.
이 기술을 사용하여, 시험 값의 개발을위한 테스터 내부 데이터 구조 및 알고리즘에 관한 지식이 있어야한다. 다음과 같이 회색 박스 테스트 방법의 예는 다음과 같다 :
- 아키텍처 모델;
- 모델링 언어 (UML) 통합;
- 상태 모델 (유한 상태 기계).
테스트 케이스를 개발하는 회색 상자에있어서 흰색 공학 코드 모듈 공부 실제 시험 검정 기술 프로그램의 인터페이스를 수행한다.
이 시험 방법은 다음과 같은 장점이있다 :
- 장점 기술자 흰색과 블랙 박스의 조합;
- 테스터는 인터페이스와 기능 사양, 그리고 소스 코드를 기반으로;
- 디버거는 좋은 테스트 케이스를 만들 수 있습니다;
- 검사가 아닌 사용자 프로그램의 디자이너의 관점에서 이루어집니다;
- 사용자 정의 테스트 개발을 만들;
- 객관성.
단점 :
- 소스 코드에 액세스가 없기 때문에 테스트 커버리지가 제한된다;
- 분산 응용 프로그램의 결함의 복잡성
- 방법은 여러 가지가 미개척 남아있다;
- 소프트웨어 개발자는 시험을 시작했다 있다면, 추가 조사는 과도한 될 수 있습니다.
회색 상자 기술의 또 다른 이름 - 반투명 디버깅.
이 범주는 이러한 테스트 방법을 포함한다 :
1) 수직 배열 - 모든 가능한 조합의 서브 세트의 사용;
2) 프로그램 데이터의 상태를 이용하여 매트릭스 디버깅;
소프트웨어에 새로운 변화에서 실시 3) 역행 검사;
좋은 응용 프로그램의 설계와 구조를 분석 4) 템플릿 테스트.
소프트웨어 테스팅 기술의 비교
동적 방법의 사용은, 개발 및 구현을 수행해야 할 테스트의 수의 조합 폭발에 이르게. 모든 기술은 계정에 한계를 고려하여 실용적으로 사용되어야한다.
존재하지 않는 유일하고 진정한 방법은, 단지 특정 상황에 더 적합한 것들이있다. 구조 공학은 우리가 쓸모 또는 악성 코드를 찾을 수 있습니다,하지만 그들은 복잡하고 큰 프로그램에 적용되지 않습니다. 사양에 따라 방법 - 누락 된 코드를 식별 할 수있는 유일한 사람,하지만 그들은 외부인을 식별 할 수 없습니다. 일부 기술은 다른 사람보다 특정 시험 레벨, 오류 유형 또는 상황에 더 적합하다.
다음 세 동적 테스트 기술의 주요 차이점은 - 디버깅 소프트웨어의 세 가지 형태의 비교 표를 설명한다.
면 | 블랙 박스 방법 | 회색 상자 방법 | 화이트 박스 방법 |
프로그램의 구성에 대한 정보의 가용성 | 의 기본적인 측면을 검사합니다 | 프로그램의 내부 구조에 대한 부분적인 지식 | 소스 코드에 대한 전체 액세스 권한을 |
프로그램의 단편화의 정도 | 낮은 | 중심의 | 높은 |
누가 디버깅을 생산? | 사용자, 테스터와 개발자를 종료 | 사용자, 개발자 및 디버거를 종료 | 개발자와 테스터 |
베이스 | 테스트는 외부 비상 상황을 기반으로합니다. | 다이어그램 데이터베이스, 데이터 흐름 다이어그램, 알고리즘 및 아키텍처의 내부 지식의 상태 | 내부 장치가 완전히 인식 |
범위의 정도 | 덜 포괄적이고 최소한의 시간이 필요합니다 | 중심의 | 잠재적으로 가장 포괄적 인. 시간이 걸리는 |
데이터 및 내부 경계 | 단지 시행 착오에 의한 디버그 |
그들이 알고있는 경우, 데이터 도메인과 내부 테두리를 확인하실 수 있습니다 | 가장 좋은 테스트 데이터 도메인과 내부 경계 |
적합성 테스트 알고리즘 | 아니오 | 아니오 | 예 |
오토메이션
소프트웨어 테스트의 자동 방법은 많은 관계없이 기술 환경과의 맥락의 검사 과정을 단순화된다. 그들은 두 가지 경우에 사용된다 :
1) 같은 테스터 더 중요한 점의 농도가 시간을 해제하기 위해 수천 행에 파일 비교로, 지루한 반복적이거나 세심한 작업을 자동화하기 위해;
2) 추적 또는 쉽게 백분의 일초 측정 할 수있는 성능 검증 또는 분석 반응 시간으로 사용자에 의해 수행 될 수없는 작업을 수행.
테스트 도구는 여러 가지 방법으로 분류 할 수있다. 다음 부문이 지원하는 작업을 기반으로합니다 :
- 프로젝트 관리 지원, 버전, 구성, 위험 분석, 테스트 추적, 오류, 결함 및보고 도구가 포함되어 테스트 관리,;
- 완전성과 모호함, 우선 순위 및 각 테스트의 추적 성을 확인, 스토리지 요구 사항과 사양을 포함 요구 사항 관리,;
- 중요한 검토 및 유량 모니터링, 작업, 녹음 및 의견, 결함 검출 저장 및 코드를 작성의 표준 준수를 보장하는 결함을 검출하는 통신 소스 문서와 코드 정적 분석을 추적 체크리스트 및 규칙에 대한 계획 수정 관리 링크를 포함하는 정적 분석, 구조 및 종속성 분석 코드 및 아키텍처의 메트릭 파라미터의 계산. 또한, 컴파일러, 분석기, 발전기 및 상호 참조의 관계를 사용;
- 모델링 비즈니스 행동 도구를 포함하고 모델을 테스트 모델링;
- 테스트 개발 만들거나 관리, 조건 및 위험 통계 분석의 규칙에 근거하여 파일과 데이터베이스, 메시징, 데이터 유효성 검사를 수정, 관리 상태 및 사용자 인터페이스 모델과 코드를 기준으로 예상되는 데이터의 생성을 보장;
- 성공 및 실패 테스트를 식별하는 데 도움이 비교기를 사용하여 그래픽 사용자 인터페이스, API, 명령 줄을 통해 데이터를 입력하여 중요한보기;
- 당신이 결정된 출력 부분 집합, 터미널 에뮬레이터, 휴대폰 및 네트워크 장비, 언어, 운영 체제 및 확인을위한 환경을 기반으로 권. 시간. 시뮬레이션 장비 누락 된 하드웨어, 소프트웨어, 교체 할 수 있도록 지원 디버깅 환경 하드웨어 누락 된 구성 요소 드라이버를 대체하여, 가상을 캡처하고 OS를 수정 모듈 등,뿐만 아니라 툴은 CPU 시뮬레이션 제한, RAM, ROM, 또는 네트워크를 요청;
- .. 데이터 파일, 데이터베이스,시 및 테스트가 포함 동적, 완료 및 배치 비교, 자동 "오라클"후 예상 결과를 확인의 비교;
- 측정, 분석 및 시스템 리소스 보고서의 검증을위한 성장의 현실적인 시나리오의 시뮬레이션 부하 발생 부하 애플리케이션, 데이터베이스, 네트워크 나 서버에서 메모리 누수의 현지화 및 잘못된 통제 행동 예측 시스템에 대한 측정을 도포하는 단계;
- 보안;
- 성능 시험, 하중 및 동적 분석;
- 권. 시간에 다른 도구. 철자 및 문법 확인하기 위해 네트워크 보안, 모든 웹 사이트 페이지 및 기타의 가용성을.
원근법
소프트웨어 산업의 변화 추세와 함께, 디버깅의 프로세스는 변경 될 수 있습니다. 이러한 서비스 orientirovannae 아키텍처 (SOA), 무선 기술, 모바일 서비스, 등등. E. 같은 소프트웨어 테스트의 새로운 방법이있다 테스트 소프트웨어의 새로운 방법을 열었습니다. 향후 몇 년 동안 업계에서 예상되는 변화 중 일부는 다음과 같습니다 :
- 테스터는 개발자가 코드를 확인 할 수있을 것입니다 경량 모델을 제공 할 것입니다;
- 모순의 많은 제거 할 것, 볼을 포함하고 초기 단계에서 프로그램을 모델링 시험 방법의 개발;
- 복수 개의 차단 시험의 존재는 오류 검출의 시간을 단축하는 것;
- 정적 분석 및 검출을보다 널리 사용되는 수단;
- 그러한 사양의 커버리지 미네랄 매트릭스의 사용은, 모델 코드 커버리지의 범위는 프로젝트의 개발을 결정한다;
- 조합 도구는 테스터 디버깅에 대한 우선 순위 영역을 결정할 수 있습니다;
- 테스터는 소프트웨어 개발 프로세스 전반에 걸쳐 더욱 직관적이고 가치있는 서비스를 제공 할 것입니다;
- 디버거와 다양한 프로그래밍 언어와 상호 작용 작성 도구 및 소프트웨어 테스트 방법을 만들 수 있습니다;
- 디버깅 전문가들은 더 전문적으로 훈련 될 것이다.
시스템과의 상호 작용의 방법과 위험을 줄이고 비즈니스 변화의 혜택을 증가시키는 동시에 그들이 제공하는 정보를 변경, 새로운 비즈니스 지향 소프트웨어 테스트 방법으로 대체 될 것이다.
Similar articles
Trending Now