돌연변이 테스트란 무엇입니까? (예)
돌연변이 테스트란 무엇입니까?
돌연변이 테스트 테스트 케이스가 소스 코드에서 오류를 찾을 수 있는지 확인하기 위해 소스 코드의 특정 명령문을 변경/변형시키는 소프트웨어 테스트 유형입니다. Mutation Testing의 목표는 변경된 소스 코드가 실패해야 하는 견고성 측면에서 테스트 사례의 품질을 보장하는 것입니다.
돌연변이 프로그램의 변경 사항은 프로그램의 전반적인 목적에 영향을 미치지 않도록 극히 작게 유지되어야 합니다. 돌연변이 테스트(Mutation Testing)는 프로그램에 오류를 생성하는 것과 관련이 있기 때문에 오류 기반 테스트 전략이라고도 합니다. 백 Box 지원 주로 사용되는 것은 단위 테스트.
돌연변이는 원래 1971년에 제안되었지만 관련된 높은 비용으로 인해 열정을 잃었습니다. 이제 다시 Steam을 선택했으며 다음과 같은 언어에 널리 사용됩니다. Java 그리고 XML.
돌연변이 테스트를 실행하는 방법은 무엇입니까?
돌연변이 테스트(돌연변이 분석)를 실행하는 단계는 다음과 같습니다.
1단계: 돌연변이라고 불리는 많은 버전을 생성하여 프로그램의 소스 코드에 오류가 도입됩니다. 각 돌연변이에는 단일 결함이 포함되어야 하며 목표는 테스트 사례의 효율성을 입증하는 돌연변이 버전이 실패하도록 하는 것입니다.
2단계: 테스트 케이스는 원본 프로그램과 돌연변이 프로그램에 모두 적용됩니다. ㅏ 테스트 케이스 적절해야 하며 프로그램의 결함을 감지하기 위해 조정됩니다.
3단계: 원본 프로그램과 돌연변이 프로그램의 결과를 비교합니다.
4단계: 원본 프로그램과 돌연변이 프로그램이 서로 다른 출력을 생성하는 경우 해당 돌연변이는 테스트 사례에 의해 종료됩니다. 따라서 테스트 사례는 원본 프로그램과 돌연변이 프로그램 간의 변경 사항을 감지하기에 충분합니다.
5단계: 원본 프로그램과 돌연변이 프로그램이 동일한 출력을 생성하는 경우 Mutant는 활성 상태로 유지됩니다. 이러한 경우 모든 돌연변이를 죽이는 보다 효과적인 테스트 사례를 만들어야 합니다.
돌연변이 프로그램을 만드는 방법은 무엇입니까?
돌연변이는 프로그램 명령문에 적용되는 단일 구문 변경에 지나지 않습니다. 각 돌연변이 프로그램은 원본 프로그램과 하나의 돌연변이가 달라야 합니다.
오리지널 프로그램 | 돌연변이 프로그램 |
---|---|
(x>y)인 경우
"안녕하세요"를 인쇄하세요 다른 "안녕"을 인쇄하세요 |
만약에(x<y)
"안녕하세요"를 인쇄하세요 다른 "안녕"을 인쇄하세요 |
돌연변이 프로그램에서 무엇을 변경해야 합니까?
돌연변이 프로그램을 생성하는 데 사용할 수 있는 몇 가지 기술이 있습니다. 그들을 살펴보자
Operand 대체 연산자 | 표현 수정 Opera토르 | 진술 수정 Opera토르 |
---|---|---|
피연산자를 다른 피연산자(x를 y로 또는 y를 x로) 또는 상수 값으로 바꿉니다. | 프로그램 명령문에서 연산자를 바꾸거나 새로운 연산자를 삽입합니다. | 프로그래밍 문을 수정하여 돌연변이 프로그램을 만듭니다. |
예-
If(x>y) x 및 y 값 바꾸기 If(5>y) x를 상수 5로 대체 |
예-
만약(x==y) ==를 >=로 바꾸고 다음과 같은 돌연변이 프로그램을 가질 수 있습니다. If(x>=y) 및 명령문에 ++ 삽입 만약(x==++y) |
예-
if-else 문에서 else 부분 삭제 프로그램이 어떻게 작동하는지 확인하려면 전체 if-else 문을 삭제하세요. 일부 샘플 돌연변이 연산자:
|
돌연변이 테스트 자동화
돌연변이 테스트는 시간이 많이 걸리고 수동으로 실행하기가 복잡합니다. 프로세스 속도를 높이려면 자동화 도구를 사용하는 것이 좋습니다. 자동화 도구는 테스트 비용도 줄여줍니다.
사용 가능한 도구 목록-
돌연변이 테스트의 유형
In 소프트웨어 공학, Mutation 테스트는 기본적으로 명령문 돌연변이, 결정 돌연변이, 가치 돌연변이의 3가지 유형으로 분류할 수 있습니다.
- 명령문 돌연변이 – 개발자가 코드의 일부를 잘라내어 붙여넣는 경우 결과적으로 일부 줄이 제거될 수 있습니다.
- 값 변이– 기본 매개변수의 값이 수정됩니다.
- 결정 돌연변이– 제어문이 변경될 예정입니다.
돌연변이 점수
돌연변이 점수는 총 돌연변이 수에 대한 사멸된 돌연변이의 백분율로 정의됩니다.
- 돌연변이 점수 = (죽은 돌연변이 / 총 돌연변이 수) * 100
테스트 케이스는 점수가 100%이면 돌연변이가 적절합니다. 실험 결과에 따르면 돌연변이 테스트는 테스트 사례의 적절성을 측정하는 효과적인 접근 방식입니다. 그러나 가장 큰 단점은 돌연변이를 생성하고 해당 돌연변이 프로그램에 대해 각 테스트 사례를 실행하는 데 드는 비용이 높다는 것입니다.
돌연변이 테스트의 장점
돌연변이 테스트의 장점은 다음과 같습니다.
- 이는 소스 프로그램의 높은 적용 범위를 확보하는 강력한 접근 방식입니다.
- 이번 테스트를 통해 돌연변이 프로그램을 종합적으로 테스트할 수 있다.
- 돌연변이 테스트는 소프트웨어 개발자에게 우수한 수준의 오류 감지 기능을 제공합니다.
- 이 방법은 소스 코드의 모호성을 찾아내고 프로그램의 모든 결함을 감지할 수 있는 능력을 갖추고 있습니다.
- 고객은 가장 신뢰할 수 있고 안정적인 시스템을 확보함으로써 이 테스트를 통해 이익을 얻을 수 있습니다.
돌연변이 테스트의 단점
반면에, 돌연변이 검사의 단점은 다음과 같습니다.
- 돌연변이 테스트는 생성해야 하는 돌연변이 프로그램이 많기 때문에 비용과 시간이 매우 많이 소요됩니다.
- 시간이 많이 걸리기 때문에 이 테스트는 자동화 도구 없이는 수행할 수 없다고 말하는 것이 타당합니다.
- 각 변형은 원래 프로그램과 동일한 수의 테스트 케이스를 갖습니다. 따라서 원래 테스트 모음에 대해 많은 수의 돌연변이 프로그램을 테스트해야 할 수도 있습니다.
- 이 방법에는 소스 코드 변경이 포함되므로 전혀 적용할 수 없습니다. 검정 Box 지원.
결론
애플리케이션을 철저하게 테스트하고 싶나요? 대답은 돌연변이 테스트입니다. 프로그램을 테스트하는 가장 포괄적인 기술입니다. 이는 시스템의 결함이나 오류를 감지하기 위해 테스트 프로그램의 효율성과 정확성을 확인하는 방법입니다.