화이트박스 테스트2018. 11. 21. 00:00

단위 테스트 란 무엇입니까?

단위 소프트웨어 응용 프로그램 테스트는 응용 프로그램 개발 (코딩) 중에 수행됩니다.

단위 테스트의 목적은 코드 섹션을 분리하고 코드의 정확성을 확인하는 것입니다. 절차 적 프로그래밍에서 단위는 개별 기능 또는 절차 일 수 있습니다

단위 테스트의 목적은 프로그램의 각 부분을 분리하여 개별 부분이 올바른지 확인하는 것입니다. 단위 테스트는 대개 개발자가 수행합니다.


단위 테스트를하는 이유는 무엇입니까? 왜 중요 함?

때때로 소프트웨어 개발자는 최소한의 단위 테스트를 통해 시간을 절약하려고합니다. 단위 테스트를 무시하면 시스템 테스트 , 통합 테스트 및 응용 프로그램 완료 후 베타 테스트 중 결함 수정 비용 이 높아 지므로 이는 신화 입니다. 개발 단계에서 적절한 단위 테스트를 수행하면 결국 시간과 비용을 절약 할 수 있습니다.


유닛 테스트 케이스를 만드는 법

단위 테스트는 일반적으로 자동화되어 있지만 수동으로 수행 할 수도 있습니다. IEEE는 다른 하나를 선호하지 않습니다. 단위 테스트에 대한 수동 접근 방식은 단계별 교육 문서를 사용할 수 있습니다.

자동화 된 접근 방식 -

  • 개발자는 함수를 테스트하기 위해 응용 프로그램에 다른 코드 섹션을 작성할 수 있습니다. 그들은 나중에 응용 프로그램이 완료되었을 때 테스트 코드를 주석 처리하고 마침내 제거합니다.
  • 또한 더 엄격하게 테스트 할 수있는 기능을 격리 할 수 ​​있습니다. 이것은 자연 환경이 아닌 자체 테스트 환경으로 기능을 복사하여 붙여 넣는 것을 포함하는보다 철저한 단위 테스트 방법입니다. 코드를 분리하면 테스트중인 코드와 제품의 다른 단위 또는 데이터 공간 사이의 불필요한 종속성을 드러내는 데 도움이됩니다. 이러한 종속성은 제거 될 수 있습니다.

 

코더는 UnitTest Framework를 사용하여 자동화 된 테스트 케이스를 개발할 수 있습니다. 자동화 프레임 워크를 사용하여 개발자는 테스트의 기준을 코드화하여 유닛의 정확성을 검증합니다. 테스트 케이스를 실행하는 동안 프레임 워크는 모든 기준을 충족하지 않는 테스트 케이스를 기록합니다. 많은 프레임 워크는 실패한 테스트 케이스를 요약하여 자동으로 표시하고보고합니다. 실패의 심각도에 따라 프레임 워크는 후속 테스트를 중단시킬 수 있습니다.

모의 객체

단위 테스트는 아직 작성되지 않은 코드 섹션을 테스트하기 위해 작성되는 모의 객체에 의존합니다. 모의 객체는 프로그램의 누락 부분을 채 웁니다. 예를 들어 아직 생성되지 않은 변수 나 객체가 필요한 함수가있을 수 있습니다. 유닛 테스팅에서, 그것들은 그 코드 섹션에서 수행 된 단위 테스팅 목적으로 만 만들어진 모의 객체의 형태로 설명 될 것입니다.

단위 테스트 도구

단위 테스트를 지원하는 데 사용할 수있는 몇 가지 자동화 된 도구가 있습니다. 아래에 몇 가지 예를 제공합니다.

  1. Jtest : Parasoft Jtest는 단위 테스트를 생성, 확장 및 유지 관리하기 위해 가이드 및 손쉬운 클릭 한 작업으로 오픈 소스 프레임 워크 (Junit, Mockito, PowerMock 및 Spring)를 활용하는 IDE 플러그인입니다. 단위 테스트의 이러한 시간 소모적 인 측면을 자동화함으로써 개발자는 비즈니스 로직에 집중하고보다 의미있는 테스트 슈트를 만들 수 있습니다.
  2. Junit : Junit은 Java 프로그래밍 언어에 사용되는 테스트 도구를 무료로 사용할 수 있습니다. 시험 방법을 확인하기위한 assertion을 제공한다. 이 도구는 먼저 데이터를 테스트 한 다음 코드 조각에 삽입합니다.
  3. NUnit : NUnit은 모든 .net 언어에 대해 널리 사용되는 단위 테스트 프레임 워크입니다. 수동으로 스크립트를 작성할 수있는 오픈 소스 도구입니다. 병렬로 실행할 수있는 데이터 기반 테스트를 지원합니다.
  4. JMockit : JMockit은 오픈 소스 단위 테스트 도구입니다. 라인 및 경로 메트릭을 포함하는 코드 범위 도구입니다. 녹음 및 검증 구문을 사용하여 mocking API를 사용할 수 있습니다. 이 도구는 회선 범위, 경로 범위 및 데이터 범위를 제공합니다.
  5. EMMA : EMMA는 Java 언어로 작성된 코드를 분석하고보고하기위한 오픈 소스 툴킷입니다. Emma는 방법, 라인, 기본 블록과 같은 서비스 유형을 지원합니다. Java 기반이므로 외부 라이브러리 종속성이 없으며 소스 코드에 액세스 할 수 있습니다.
  6. PHPUnit : PHPUnit은 PHP 프로그래머를 위한 단위 테스트 툴입니다. 단위라고 불리는 코드의 작은 부분을 취하여 각각을 개별적으로 테스트합니다. 또한 개발자는이 도구를 사용하여 미리 정의 된 어설션 방법을 사용하여 시스템이 특정 방식으로 동작하는지 확인할 수 있습니다. 

이것들은 사용 가능한 단위 테스트 도구 중 일부에 지나지 않습니다. C 언어와 Java의 경우 특히 많이 있지만, 사용하는 언어에 관계없이 프로그래밍 요구 사항에 맞는 단위 테스트 도구를 찾을 수 있습니다.

익스 트림 프로그래밍 및 단위 테스트

익스트림 프로그래밍의 단위 테스트에는 테스팅 프레임 워크의 광범위한 사용이 포함됩니다. 단위 테스트 프레임 워크는 자동화 된 단위 테스트를 작성하는 데 사용됩니다. 단위 테스트 프레임 워크는 극단적 인 프로그래밍에만 국한되지는 않지만 필수적입니다. 아래에서 우리는 극단적 인 프로그래밍이 단위 테스트의 세계에 가져 오는 것을 살펴 봅니다.

  • 테스트는 코드 앞에 작성됩니다.
  • 테스트 프레임 워크에 크게 의존하십시오.
  • 응용 프로그램의 모든 클래스가 테스트됩니다.
  • 빠르고 쉬운 통합이 가능합니다.

 

단위 테스트 신화

신화 : 시간이 필요하며, 나는 항상 과장되어있다.

내 코드는 견고합니다! 나는 단위 테스트가 필요하지 않습니다.

그들의 본질 상 신화는 잘못된 가정이다. 이러한 가정은 다음과 같은 악순환을 초래합니다.

UNIT 테스팅 튜토리얼 - 10 분 학습

진실은 단위 테스트를 통해 개발 속도를 높입니다.

프로그래머는 통합 테스트가 모든 오류를 잡아 단위 테스트를 실행하지 않는다고 생각합니다. 단위가 통합되면 단위 테스트에서 매우 쉽게 발견되고 수정 될 수있는 매우 간단한 오류가 추적되고 수정되는 데 오랜 시간이 걸립니다.

 

단위 테스트의 이점과 이점

  • 유닛이 제공하는 기능이 무엇인지 배우려는 개발자는 유닛 테스트를 통해 유닛 API에 대한 기본적인 이해를 얻을 수 있습니다.
  • 단위 테스트를 통해 프로그래머는 나중에 코드를 리팩터링하고 모듈이 여전히 올바르게 작동하는지 확인할 수 있습니다 (예 : 회귀 테스트). 이 절차는 변경 사항이 오류를 일으킬 때마다 신속하게 식별하고 수정 할 수 있도록 모든 함수 및 메서드에 대한 테스트 사례를 작성하는 것입니다.
  • 단위 테스트의 모듈 식 특성으로 인해 다른 부분이 완료 될 때까지 기다리지 않고 프로젝트의 일부분을 테스트 할 수 있습니다.

 

단위 테스트 제한

  • 단위 테스트는 프로그램의 모든 오류를 잡을 수는 없습니다. 가장 사소한 프로그램에서도 모든 실행 경로를 평가할 수는 없습니다.
  • 단위 테스트는 코드 단위에 초점을 맞 춥니 다. 따라서 통합 오류 또는 광범위한 시스템 레벨 오류를 잡을 수 없습니다.

단위 테스트는 다른 테스트 활동과 함께 사용하는 것이 좋습니다.

단위 테스트 기법

  • 구조 기술
  • 기능 테스트 기법
  • 오류 기반 기술

단위 테스트 모범 사례

  • 단위 테스트 케이스는 독립적이어야합니다. 요구 사항이 향상되거나 변경되는 경우 단위 테스트 케이스가 영향을 받지 않아야합니다.
  • 한 번에 하나의 코드 만 테스트하십시오.
  • 단위 테스트에 대해 명확하고 일관된 명명 규칙을 따르십시오.
  • 모듈의 코드가 변경된 경우 모듈에 해당하는 단위 테스트 케이스 가 있는지 확인 하고 모듈은 구현을 변경하기 전에 테스트를 통과합니다
  • 단위 테스트 중 확인 된 버그는 SDLC의 다음 단계로 진행하기 전에 해결해야합니다.
  • "귀하의 코드로 테스트"방식을 채택하십시오. 테스트하지 않고 작성하는 코드가 많을수록 오류를 확인해야하는 경로가 늘어납니다.
UNIT 테스팅 튜토리얼 - 10 분 학습

개요

보시다시피, 단위 테스트에는 많은 것들이 포함될 수 있습니다. 테스트되는 응용 프로그램과 테스트 전략, 도구 및 사용 된 철학에 따라 복잡하거나 다소 단순 할 수 있습니다. 단위 테스트는 어느 정도 수준에서 항상 필요합니다. 그것은 확실합니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
Posted by 프리스케이터