단위 테스트, 통합 테스트, 스모크 테스트, 회귀 테스트란 무엇인가요?

StackOverflow https://stackoverflow.com/questions/520064

문제

단위 테스트, 통합 테스트, 스모크 테스트, 회귀 테스트란 무엇이며 이들 간의 차이점은 무엇인가요?그리고 각각에 어떤 도구를 사용할 수 있나요?

예를 들어 저는 단위 테스트와 통합 테스트에 JUnit과 NUnit을 사용합니다.연기 테스트 또는 회귀 테스트 도구가 있습니까?

도움이 되었습니까?

해결책

  • 단위 테스트: 단일 클래스 방법 계약의 한 지점을 지정하고 테스트합니다. 이것은 매우 좁고 잘 정의 된 범위를 가져야합니다. 복잡한 의존성과 외부 세계와의 상호 작용은 다음과 같습니다 스터브 또는 조롱.

  • 통합 테스트: 다중 서브 시스템의 올바른 상호 작용을 테스트하십시오. 두 클래스 간 통합 테스트에서 생산 환경과의 통합 테스트에 이르기까지 전체 스펙트럼이 있습니다.

  • 연기 테스트 (일명 정신 검사): 테스트중인 시스템이 호출 될 때 정상적으로 돌아 오지 않으며 폭발하지 않는지 확인하는 간단한 통합 테스트.

    • 연기 테스트는 전자 제품과 유사하며, 첫 번째 테스트는 회로에 전원을 공급할 때 발생합니다 (담배를 피우면 나쁘다!) ...
    • ... 그리고, 보기에, 와 함께 배관, 파이프 시스템이 말 그대로 연기로 채워진 다음 시각적으로 확인됩니다. 담배를 피우면 시스템이 새립니다.
  • 회귀 테스트: 버그가 수정되었을 때 작성된 테스트. 이 특정 버그가 다시 발생하지 않도록합니다. 성명은 "비 회귀 테스트"입니다. 응용 프로그램이 동일한 결과를 제공하기 위해 응용 프로그램을 변경하기 전에 테스트 할 수도 있습니다.

이것에 다음을 추가하겠습니다.

  • 승인 테스트: 기능 또는 사용 사례가 올바르게 구현되었음을 테스트하십시오. 통합 테스트와 유사하지만 관련 구성 요소보다는 사용 사례에 중점을 둡니다.

  • 시스템 테스트: 시스템을 블랙 박스로 테스트합니다. 다른 시스템에 대한 의존성은 종종 테스트 중에 조롱하거나 스터브됩니다 (그렇지 않으면 통합 테스트가 더 많습니다).

  • 비행 전 확인: 생산과 같은 환경에서 반복되는 테스트, '내 기계의 빌드'증후군을 완화합니다. 종종 이것은 환경과 같은 생산에서 수용 또는 연기 테스트를 통해 실현됩니다.

다른 팁

  • 단위 테스트: 클래스의 내부 작업을 테스트하기위한 자동 테스트. 다른 리소스와 관련이없는 독립형 테스트 여야합니다.
  • 통합 테스트: 환경에서 수행되는 자동 테스트, 단위 테스트와 유사하지만 외부 리소스 (DB, 디스크 액세스)
  • 회귀 테스트: 새로운 기능이나 버그 수정을 구현 한 후 과거에 작동 한 시나리오를 다시 테스트합니다. 여기에서 새로운 기능이 기존 기능을 위반할 가능성을 다룹니다.
  • 연기 테스트: 테스트가 테스트를 계속할 경우 테스터가 결론을 내릴 수있는 첫 번째 테스트.

모든 사람은 약간 다른 정의를 가질 것이며 종종 회색 영역이 있습니다. 하지만:

  • 단위 테스트 : 이것은 가능한 한 하나의 비트 (가능한 한 고립 된)가 작동합니까?
  • 통합 테스트 :이 두 구성 요소가 함께 작동합니까?
  • 연기 테스트 :이 전체 시스템 (가능한 한 생산 시스템에 가깝게)이 합리적으로 잘 어울리나요? (즉, 우리는 그것이 블랙홀을 만들지 않을 것이라고 합리적으로 확신합니까?)
  • 회귀 테스트 : 이전에 수정 한 버그를 실수로 재 도입 했습니까?

내가 방금 알게 된 새로운 테스트 범주는 다음과 같습니다.

카나리아 테스트

카나리아 테스트 자동화되고 비파괴적인 테스트입니다 정기적으로 실행하십시오 안에 라이브 환경, 그것이 실패하면 실제로 나쁜 일이 일어났습니다.

예는 다음과 같습니다.

  • Dev/Test에서만 사용할 수있는 데이터가 라이브에 나타납니다.
  • 배경 프로세스가 실행되지 않았습니다
  • 사용자 로그온 할 수 있습니다

묵시적 역사적 퀴즈 : "연기 테스트"는 문자 그대로 연기가 펌핑되어 잠수함에 대한 극적인 실패가 될 것입니다.

소프트웨어 테스트 기술을위한 최고의 웹 사이트 중 하나에서 답변 :

소프트웨어 테스트 유형 - 전체 목록 여기를 클릭하십시오

enter image description here

그것은 꽤 긴 설명입니다. 나는 여기에 붙여 넣지 않을 것입니다. 그러나 모든 테스트 기술을 알고 싶어하는 사람에게 도움이 될 수 있습니다.

도움이되기를 바랍니다. :)

단위 테스트 : 해당 특정 구성 요소 (예 : 클래스)를 작성하여 작성된대로 기능을 작성하거나 수정했습니다. 이 테스트는 수동 또는 자동화 될 수 있지만 구성 요소의 경계를 넘지 않습니다.

통합 테스트 : 특정 구성 요소의 상호 작용이 설계된대로 작동하는지 확인합니다. 통합 테스트는 단위 수준 또는 시스템 수준에서 수행 할 수 있습니다. 이 테스트는 수동 또는 자동화 될 수 있습니다.

회귀 테스트 : 새로운 결함이 기존 코드에 도입되지 않았는지 확인합니다. 이 테스트는 수동 또는 자동화 될 수 있습니다.

SDLC (폭포, RUP, 민첩한 등)에 따라 특정 테스트는 '단계'에서 수행 될 수 있거나 동시에 모두 수행 될 수 있습니다. 예를 들어, 단위 테스트는 통합 및 회귀 테스트를 위해 코드를 테스터로 넘겨주는 개발자로 제한 될 수 있습니다. 그러나 또 다른 접근 방식은 개발자가 단위 테스트 및 어느 수준의 통합 및 회귀 테스트를 수행 할 수 있습니다 (연속 통합 및 자동화 된 장치 및 회귀 테스트와 함께 TDD 접근법을 사용).

도구 세트는 크게 코드베이스에 따라 다르지만 단위 테스트 (Junit)를위한 오픈 소스 도구가 많이 있습니다. HP (Mercury) QTP 또는 Borland의 실크 테스트는 자동화 된 통합 및 회귀 테스트를위한 도구입니다.

단위 테스트: 응용 프로그램에서 개별 모듈 또는 독립 구성 요소 테스트는 단위 테스트로 알려져 있으며, 장치 테스트는 개발자가 수행합니다.

통합 테스트: 모든 모듈을 결합하고 응용 프로그램을 테스트하여 통신을 확인하고 모듈 간의 데이터 흐름이 제대로 작동하는지 여부에 따라이 테스트를 수행합니다.

연기 테스트 연기 테스트에서 그들은 얕고 넓은 방식으로 응용 프로그램을 확인하고, 연기 테스트에서 응용 프로그램의 주요 기능을 확인하고, 응용 프로그램에 차단제 문제가있는 경우 개발자 팀에보고하고 개발하는 팀이이를 수정하고 수정합니다. 결함, 테스트 팀에 돌려주고 이제 테스트 팀이 모든 모듈을 확인하여 한 모듈에서 이루어진 TAT 변경 사항을 확인합니다. 연기 테스트에서 테스트 사례는 스크립트됩니다

회귀 테스트 변경되지 않은 모듈이 결함이 발생하지 않도록 동일한 테스트 케이스를 반복적으로 실행하면 결함이 발생하지 않습니다. 회귀 테스트는 기능 테스트에서 제공됩니다

회귀 테스트-

"회귀 테스트는 현재 소프트웨어의 변경이 기존 소프트웨어의 기능에 영향을 미치지 않도록 변경된 소프트웨어에 대해 이전 테스트를 다시 실행합니다."

단위 테스트 구현의 가장 작은 부분을 지시합니다. Java에서 이것은 단일 클래스를 테스트하고 있음을 의미합니다. 수업이 다른 클래스에 의존하면 이들이 위조된다.

테스트가 둘 이상의 클래스를 호출 할 때 통합 테스트.

전체 테스트 스위트는 실행하는 데 오랜 시간이 걸릴 수 있으므로 변화가 끝난 후 많은 팀이 중대한 파손을 감지하기 위해 테스트를 신속하게 실행합니다. 예를 들어, 당신은 Essential Resources에 대한 Uris를 깨뜨 렸습니다. 이것들은입니다 연기 테스트.

회귀 테스트 모든 빌드에서 실행하고 부서지는 것을 잡음으로써 효과적으로 리팩터를 리팩터링 할 수 있습니다. 모든 종류의 테스트는 회귀 테스트가 될 수 있지만 단위 테스트가 결함의 원인을 찾는 데 가장 도움이된다는 것을 알게됩니다.

단위 테스트 : 해당 특정 구성 요소 (예 : 클래스)를 작성하여 작성된대로 기능을 작성하거나 수정했습니다. 이 테스트는 수동 또는 자동화 될 수 있지만 구성 요소의 경계를 넘지 않습니다.

통합 테스트 : 특정 구성 요소의 상호 작용이 설계된대로 작동하는지 확인합니다. 통합 테스트는 단위 수준 또는 시스템 수준에서 수행 할 수 있습니다. 이 테스트는 수동 또는 자동화 될 수 있습니다.

회귀 테스트 : 새로운 결함이 기존 코드에 도입되지 않았는지 확인합니다. 이 테스트는 수동 또는 자동화 될 수 있습니다.

SDLC (폭포, RUP, 민첩한 등)에 따라 특정 테스트는 '단계'에서 수행 될 수 있거나 동시에 모두 수행 될 수 있습니다. 예를 들어, 단위 테스트는 통합 및 회귀 테스트를 위해 코드를 테스터로 넘겨주는 개발자로 제한 될 수 있습니다. 그러나 또 다른 접근 방식은 개발자가 단위 테스트 및 어느 수준의 통합 및 회귀 테스트를 수행 할 수 있습니다 (연속 통합 및 자동화 된 장치 및 회귀 테스트와 함께 TDD 접근법을 사용).

이 스레드에서 언급 할 가치가있는 한 가지 유형의 테스트는 응력/성능/로드 테스트입니다.이 테스트는 특정 소프트웨어가 나오는 한계를 찾는 것으로 간단히 고정 될 수 있습니다. 툴링 측면에서 시스템 관점에서 스트레스 테스트를 강조하기 위해 제안하는 범위를 정확하게 결정하는 것이 필수적입니다. 예를 들어 "웹 애플리케이션"스트레스 테스트의 경우 웹 서버 응용 프로그램 자체의 범위에 포함될 수 있습니다. ~할 수 있었다 그 끝에 개입하십시오. 여기에 좋은 게시물이 있습니다 HTTP로드 테스트

  • 통합 테스트 : 통합 테스트는 다른 요소의 통합입니다.
  • 연기 테스트 : 연기 테스트는 빌드 버전 테스트라고도 알려져 있습니다. 검사 테스트는 테스트중인 소프트웨어가 추가 테스트를 위해 준비/안정인지 확인하기 위해 연습 된 초기 테스트 프로세스입니다.
  • 회귀 테스트 : 회귀 테스트는 다시 나타난 테스트입니다. 새로운 소프트웨어가 다른 모듈에서 영향을 받는지 여부.
  • 단위 테스트 : 흰색 상자 테스트입니다.

단위 테스트 :- 단위 테스트는 일반적으로 개발자 측에 의해 수행됩니다. 여기서 테스트가 단위별로 테스트를 수행하는이 유형의 테스트에서 테스터가 부분적으로 진화합니다. Java Junit 테스트 사례는 서면 코드가 완벽하게 설계되었는지 여부를 테스트 할 수 있습니다.

통합 테스트 :-이 유형의 테스트는 모든/일부 구성 요소가 통합 될 때 단위 테스트 후에 가능합니다.이 테스트 유형은 구성 요소가 통합 될 때 서로의 작업 기능이나 기능자에게 영향을 미치도록합니다.

연기 테스트 :-이 유형의 테스트는 시스템이 성공적으로 통합되어 생산 서버를 사용할 준비가 된 경우 마지막으로 수행됩니다. 이러한 유형의 테스트는 처음부터 끝까지 모든 중요한 기능이 잘 작동하고 시스템이 제작 서버에 배포 할 준비가되도록합니다.

회귀 테스트 :-이 유형의 테스트는 개발자가 일부 문제를 해결할 때 시스템에 의도하지 않은/원치 않는 결함이 시스템에 존재하지 않음을 테스트하는 데 중요합니다. 이 테스트는 또한 모든 버그가 성공적으로 해결되었으며 다른 문제가 발생하지 않도록합니다.

단위 테스트 : 개발자는 개발자가 QA에 대한 요구 사항을 준비하기 전에 테스트 측면에서 문제를 찾기 위해 개발 한 후에 항상 수행됩니다.

통합 테스트 : 일부 데이터/기능 출력이 하나의 모듈로 다른 모듈로 드러날 때 테스터가 모듈을 서브 모듈 검증으로 확인해야한다는 것을 의미합니다. 또는 시스템 데이터를 사용하여 시스템 데이터를 사용하여 시스템 데이터를 사용하는 경우.

연기 테스트 : 테스터는 높은 수준의 테스트를위한 시스템을 확인하고 변경 또는 코드가 진행되기 전에 쇼 스토퍼 버그를 찾으려고 노력했습니다.

회귀 테스트 : 테스터는 시스템의 새로 향상 또는 변화를 위해 시스템에서 구현 된 변경으로 인해 기존 기능의 검증을 위해 회귀를 수행했습니다.

연기 및 세력 테스트는 소프트웨어 빌드 후에 테스트를 시작할지 여부를 식별하기 위해 수행됩니다. 연기 테스트 후에는 세력이 실행되거나 실행되지 않을 수 있습니다. 그것들은 따로 또는 동시에 실행할 수 있습니다.

세력 테스트는 더 심층적이고 시간이 더 걸리기 때문에 대부분의 경우 자동화 할 가치가 있습니다.

연기 테스트는 일반적으로 실행하는 데 5-30 분을 넘지 않습니다. 더 일반적입니다. 소프트웨어의 안정성이 추가 테스트에 충분하고 계획된 테스트 사례의 실행을 차단하는 문제가 없는지 확인하기 위해 전체 시스템의 소수의 핵심 기능을 확인합니다.

Sanity 테스트는 연기보다 상세하며 새로운 빌드의 규모에 따라 15 분에서 하루 종일 소요될 수 있습니다. 진행 또는 재 테스트 후에 수행되는보다 전문화 된 수용 테스트 유형입니다. 회귀 테스트가 더 큰 규모로 실행되기 전에 필요한 작동 로직과 관련하여 기능하고 있는지 확인하기 위해 특정 새로운 기능 및/또는 버그 수정의 핵심 기능을 확인합니다.

이미 몇 가지 좋은 답변이지만 더 자세히 개선하고 싶습니다.

단위 테스트는 여기에서 흰색 상자 테스트의 유일한 형태입니다. 다른 것들은 블랙 박스 테스트입니다. 화이트 박스 테스트는 입력을 알고 메커니즘의 내부 작동을 알고 검사 할 수 있으며 출력을 알고 있습니다. 블랙 박스 테스트를 통해 입력이 무엇인지, 출력이 무엇인지 알 수 있습니다.

따라서 분명히 단위 테스트는 여기에서 유일한 흰색 상자 테스트입니다.

  • 단위 테스트 테스트 특정 코드. 일반적으로 방법.
  • 통합 테스트 테스트 새로운 기능의 소프트웨어가 다른 모든 것과 intergrate 할 수 있는지 여부.
  • 회귀 테스트. 이것은 당신이 아무것도 깨지지 않았는지 확인하기 위해 테스트입니다. 작동했던 모든 것이 여전히 작동해야합니다.
  • 연기 테스트는 빠른 테스트로 수행되어보다 활발한 테스트에 참여하기 전에 모든 것이 괜찮아 보이도록합니다.

회귀 테스트 - 버그 수정을 덮거나 확인하려고하는 SW 테스트 유형입니다. 제공된 수정으로 인해 버그 수정 주변의 기능이 변경되거나 변경되지 않아야합니다. 이러한 프로세스에서 발견 된 문제를 회귀 문제라고합니다.

연기 테스트 : 추가 QA 테스트를 위해 빌드/소프트웨어를 수락할지 여부를 결정하기 위해 일종의 테스트가 수행됩니다.

연기 테스트는 이미 여기에 설명되었으며 간단합니다. 회귀 테스트는 통합 테스트에서 제공됩니다.

자동화 된 테스트는 단지 2로 나눌 수 있습니다.

단위 테스트 및 통합 테스트. (이것은 중요한 전부입니다)

통합 테스트, 기능 테스트, 회귀 테스트, UI 테스트 등과 같은 모든 테스트 및 "짧은 테스트"로 "Long Test"(LT)라는 문구를 사용합니다.

LT 예제는 웹 페이지를 자동으로로드하고 계정에 로그인하고 책을 구매할 수 있습니다. 테스트가 통과하면 라이브 사이트에서 동일한 방식으로 실행될 가능성이 높습니다 (따라서 '더 나은 수면'참조). Long = 웹 페이지 (시작)와 데이터베이스 (끝) 사이의 거리.

그리고 이것은의 이점을 논의하는 훌륭한 기사입니다. 단위 테스트에 대한 통합 테스트 (긴 테스트)

단위 테스트 단위 테스트는 응용 프로그램 소스에 가깝고 매우 낮습니다.이들은 소프트웨어가 사용하는 클래스, 구성 요소 또는 모듈의 개별 방법 및 기능을 테스트하는 것으로 구성됩니다.단위 테스트는 일반적으로 자동화하기에 매우 저렴하며 연속 통합 서버에서 매우 빠르게 실행할 수 있습니다.

통합 테스트 통합 테스트는 응용 프로그램에서 사용하는 다양한 모듈 또는 서비스가 함께 잘 작동하는지 확인합니다.예를 들어, 데이터베이스와의 상호 작용을 테스트하거나 마이크로 서비스가 예상대로 함께 작동하는지 확인할 수 있습니다.이러한 유형의 테스트는 응용 프로그램의 여러 부분을 가동하고 실행해야하므로 실행하는 데 더 비쌉니다.

기능 테스트 기능 테스트는 응용 프로그램의 비즈니스 요구 사항에 중점을 둡니다.그들은 행동의 출력 만 확인하고 해당 동작을 수행 할 때 시스템의 중간 상태를 확인하지 않습니다.

여러 구성 요소가 서로 상호 작용해야하므로 통합 테스트와 기능 테스트 사이에 혼란이 있습니다.차이점은 통합 테스트가 단순히 데이터베이스를 쿼리 할 수 ​​있는지 확인하고 기능 테스트는 제품 요구 사항에 의해 정의 된대로 데이터베이스에서 특정 값을 얻을 것으로 예상합니다.

엔드투엔드 테스트 엔드 투 엔드 테스트는 완전한 응용 프로그램 환경에서 소프트웨어로 사용자 동작을 복제합니다.다양한 사용자 흐름이 예상대로 작동하며 웹 페이지를로드하거나 로그인하거나 이메일 알림, 온라인 결제 등을 확인하는 훨씬 더 복잡한 시나리오만큼 간단 할 수 있음을 확인합니다.

엔드 투 엔드 테스트는 매우 유용하지만 수행하는 데 비용이 많이 들고 자동화 될 때 유지하기가 어려울 수 있습니다.몇 가지 주요 엔드 투 엔드 테스트를 수행하고 하위 레벨 유형의 테스트 (단위 및 통합 테스트)에 더 의존하여 깨진 변경 사항을 신속하게 식별 할 수 있습니다.

승인 테스트 수락 테스트는 시스템이 비즈니스 요구 사항을 충족하는지 확인하기 위해 공식 테스트입니다.그들은 전체 응용 프로그램이 UP 및 실행 중이며 사용자 동작을 복제하는 데 중점을 두어야합니다.그러나 그들은 또한 더 나아가 시스템의 성능을 측정하고 특정 목표가 충족되지 않으면 변경을 거부 할 수 있습니다.

성능 시험 성능 테스트 시스템이 상당한 부하하에있을 때 시스템의 동작을 확인합니다.이러한 테스트는 기능이없고 플랫폼의 신뢰성, 안정성 및 가용성을 이해하기위한 다양한 형태를 가질 수 있습니다.예를 들어, 많은 수의 요청을 실행할 때 응답 시간을 관찰하거나 시스템이 중요한 데이터로 어떻게 작동하는지 확인할 수 있습니다.

성능 테스트는 본질적으로 구현 및 실행 비용이 많이 들지만 새로운 변경 사항이 시스템을 저하시키는 데 도움이 될 수 있습니다.

연기 테스트 연기 테스트는 응용 프로그램의 기본 기능을 확인하는 기본 테스트입니다.그것들은 빠르게 실행해야하며, 그들의 목표는 시스템의 주요 기능이 예상대로 작동한다는 확신을주는 것입니다.

새 빌드가 더 비싼 테스트를 실행할 수 있는지 여부를 결정하기 위해 새로운 빌드가 이루어진 직후에 또는 새로 배치 된 환경에서 응용 프로그램이 올바르게 실행되도록하기 위해 연기 테스트가 유용 할 수 있습니다.

원천: https://www.atlassian.com/continuous-delivery/software-testing/types-of-software-testing

저는 단지 우리가 이러한 수준의 테스트를 실시하는 이유와 예시를 통해 실제로 의미하는 바에 대해 더 많은 맥락을 추가하고 제공하고 싶었을 뿐입니다.

Mike Cohn은 그의 저서 "Succeeding with Agile"에서 프로젝트의 자동화된 테스트에 접근하는 방법으로 "테스트 피라미드"를 제시했습니다.이 모델에 대해서는 다양한 해석이 있습니다.이 모델은 어떤 종류의 자동화된 테스트를 만들어야 하는지, 테스트 중인 애플리케이션에 대한 피드백을 얼마나 빨리 제공할 수 있는지, 누가 이러한 테스트를 작성하는지 설명합니다.모든 프로젝트에는 기본적으로 3가지 수준의 자동화 테스트가 필요하며 다음과 같습니다.

단위 테스트-이는 소프트웨어 응용 프로그램의 가장 작은 구성 요소를 테스트합니다.이는 문자 그대로 일부 입력을 기반으로 값을 계산하는 코드의 하나의 함수일 수 있습니다.이 기능은 애플리케이션을 구성하는 하드웨어/소프트웨어 코드베이스의 다른 여러 기능의 일부입니다.

예를 들어 웹 기반 계산기 애플리케이션을 살펴보겠습니다.단위 테스트가 필요한 이 애플리케이션의 가장 작은 구성 요소는 덧셈을 수행하는 함수, 뺄셈을 수행하는 다른 함수 등이 될 수 있습니다.이러한 모든 작은 기능이 모여서 계산기 응용 프로그램을 구성합니다.

역사적으로 개발자는 일반적으로 소프트웨어 애플리케이션과 동일한 프로그래밍 언어로 작성되는 테스트를 작성합니다.JUnit 및 NUnit(Java용), MSTest(C# 및 .NET용), Jasmine/Mocha(JavaScript용)와 같은 단위 테스트 프레임워크가 이러한 목적으로 사용됩니다.

단위 테스트의 가장 큰 장점은 UI 아래에서 매우 빠르게 실행되며 애플리케이션에 대한 빠른 피드백을 얻을 수 있다는 것입니다.이는 자동화된 테스트의 50% 이상을 구성해야 합니다.

API/통합 테스트-이는 소프트웨어 시스템의 다양한 구성 요소를 함께 테스트합니다.구성 요소에는 애플리케이션과 함께 테스트 데이터베이스, API(애플리케이션 프로그래밍 인터페이스), 타사 도구 및 서비스가 포함될 수 있습니다.

예를 들어 위의 계산기 예에서 웹 애플리케이션은 데이터베이스를 사용하여 값을 저장하고, API를 사용하여 일부 서버 측 유효성 검사를 수행하고, 타사 도구/서비스를 사용하여 결과를 클라우드에 게시하여 다양한 환경에서 사용할 수 있도록 할 수 있습니다. 플랫폼.

역사적으로 개발자 또는 기술 QA는 Postman, SoapUI, JMeter 및 Testim과 같은 기타 도구와 같은 다양한 도구를 사용하여 이러한 테스트를 작성했습니다.

이는 여전히 내부적으로 실행되므로 UI ​​테스트보다 훨씬 빠르게 실행되지만 시스템의 다양한 독립 구성 요소 간의 통신을 확인하고 원활한 통합을 보장해야 하므로 단위 테스트보다 약간 더 많은 시간이 소요될 수 있습니다.이는 자동화된 테스트의 30% 이상을 구성해야 합니다.

UI 테스트-마지막으로 애플리케이션의 UI를 검증하는 테스트가 있습니다.이러한 테스트는 일반적으로 애플리케이션을 통해 엔드투엔드 흐름을 테스트하기 위해 작성됩니다.

예를 들어 - 계산기 애플리케이션에서 종단 간 흐름은 브라우저 열기 -> 계산기 애플리케이션 URL 입력 -> 사용자 이름/비밀번호로 로그인 -> 계산기 애플리케이션 열기 -> 계산기에서 일부 작업 수행이 될 수 있습니다. -> UI에서 해당 결과 확인 -> 애플리케이션에서 로그아웃합니다.이는 UI 자동화를 위한 좋은 후보가 될 수 있는 엔드투엔드 흐름이 될 수 있습니다.

역사적으로 기술 QA 또는 수동 테스터는 UI 테스트를 작성했습니다.그들은 Selenium과 같은 오픈 소스 프레임워크나 Testim과 같은 UI 테스트 플랫폼을 사용하여 테스트를 작성, 실행 및 유지 관리합니다.이러한 테스트는 스크린샷, 로그, 테스트 보고서를 통해 테스트가 어떻게 실행되는지, 예상 결과와 실제 결과의 차이를 확인할 수 있으므로 더 많은 시각적 피드백을 제공합니다.

UI 테스트의 가장 큰 한계는 단위 및 API 수준 테스트에 비해 상대적으로 느리다는 것입니다.따라서 전체 자동화 테스트의 10~20%만 구성해야 합니다.

다음 두 가지 유형의 테스트는 프로젝트에 따라 다를 수 있지만 아이디어는 다음과 같습니다.

연기 테스트

이는 위의 3가지 테스트 수준을 조합한 것일 수 있습니다.아이디어는 모든 코드 체크인 중에 이를 실행하고 시스템의 중요한 기능이 여전히 예상대로 작동하는지 확인하는 것입니다.새로운 코드 변경 사항이 병합된 후.실패에 대한 더 빠른 피드백을 얻으려면 일반적으로 5~10분 동안 실행해야 합니다.

회귀 테스트

일반적으로 하루에 한 번 이상 실행되며 시스템의 다양한 기능을 다룹니다.이는 애플리케이션이 예상대로 계속 작동하는지 확인합니다.이는 스모크 테스트보다 더 세부적이며 중요하지 않은 테스트를 포함하여 더 많은 애플리케이션 시나리오를 다룹니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top