what is interface testing
인터페이스 테스트 소개 :
응용 프로그램이나 소프트웨어 또는 웹 사이트를 개발할 때 몇 가지 구성 요소가 있습니다. 이러한 구성 요소는 서버, 데이터베이스 등이 될 수 있습니다.
이러한 구성 요소 간의 통신을 통합하고 용이하게하는 연결을 인터페이스라고합니다.
간단히 말해 인터페이스는 일련의 명령, 메시지 등으로 구성된 소프트웨어입니다.
이 튜토리얼은 개념에 대한 지식을 풍부하게하기위한 간단한 용어로 인터페이스 테스트의 전체 개요와 그 필요성, 유형, 전략, 체크리스트 및 일부 도구를 제공합니다.
학습 내용 :
- 소개
- 인터페이스를 언제, 왜 테스트해야합니까?
- 인터페이스 테스트 유형
- 인터페이스 테스트를위한 전략 또는 접근 방식
- 인터페이스, 통합 및 구성 요소 테스트의 차이점
- 인터페이스 테스트를위한 체크리스트
- 인터페이스 테스트를위한 최고의 도구
- 결론
- 추천 도서
소개
컴퓨터의 경우 인터페이스는 API, 웹 서비스 등이 될 수 있습니다. 소프트웨어 또는 애플리케이션 또는 웹 사이트의 여러 구성 요소 간의 통신은 전체 성능에 영향을 미칠 수 있으므로이 통신, 즉 인터페이스도 테스트하고 확인해야합니다.
인터페이스 기능을 확인하기 위해 수행되는 테스트를 인터페이스 테스트라고합니다.
인터페이스 테스트의 두 가지 일반적인 구성 요소는 다음과 같습니다.
- 웹 서버 및 애플리케이션 서버 인터페이스.
- 데이터베이스 서버 및 애플리케이션 서버 인터페이스.
인터페이스를 언제, 왜 테스트해야합니까?
다음은 인터페이스 수명주기에서 인터페이스 테스트의 3 단계입니다.
1) 구성 및 개발 :
인터페이스가 구성되고 개발이 시작되면 요구 사항에 따라 구성을 확인해야합니다.
2) 검증 :
개발이 완료되면 인터페이스의 유효성을 검사하고 확인해야하며 이는 단위 테스트의 일부로도 수행 할 수 있습니다.
3) 유지 관리 :
.jar 파일을 시작하는 방법
전체 소프트웨어가 준비, 배포 및 작동되면 인터페이스의 성능과 변경 사항 또는 성능 저하로 인해 도입 된 새로운 문제를 모니터링해야합니다.
인터페이스 개발을 시작할 때 코드에 결함이 없는지 확인해야하므로 인터페이스에서 테스트를 실행하여 새 코드를 추가하는 것이 새로운 결함을 주입하지 않는지 확인해야합니다. 그러면 인터페이스에 결함이 없는지 요구 사항에 따라 결정하는 데 도움이됩니다.
인터페이스가 만족 스러우면 의도 한 워크 플로우, 데이터 등에 대해 검증합니다. 성능, 방대한 데이터 테스트를 실행하고 인터페이스가 얼마나 잘 응답하는지 확인할 수 있습니다. 이렇게하면 나중에 결함을 수정하는 데 소요되는 많은 시간을 절약 할 수 있습니다.
간단히 말해서 인터페이스 테스트는 다음을 수행합니다.
- 서버 실행이 올바른지 확인합니다.
- 오류 처리가 올바르게 수행되고 응용 프로그램이나 소프트웨어에서 만든 쿼리에 대해 적절한 오류 메시지가 표시됩니다.
- 서버와의 연결이 재설정되었을 때 결과를 확인합니다.
- 구성 요소가 자체적으로 통신 할 때 보안 측면을 확인합니다.
- 구성 요소 간의 통신에 대한 네트워크 장애의 영향을 확인합니다.
인터페이스 테스트 유형
인터페이스 테스트는 기본적으로 시스템 아키텍처의 메시징 계층에서 수행됩니다. 주로 JSON 또는 XML 형식으로 REST API 또는 SOAP 웹 서비스를 테스트합니다.
인터페이스 테스트에는 일반적으로 다음 사례가 포함됩니다.
- 단위 테스트 : (함수에서) 각 개별 작업의 기능을 테스트합니다.
- 기능 테스트 : 테스트 케이스 생성, 검증, 회귀 등을 포함하는 광범위한 시나리오의 기능을 테스트합니다.
- 부하 테스트 : 주로 기능 테스트 케이스를 사용하여 부하 상태에서 성능을 검증합니다.
- 보안 테스트 : 보안 메커니즘 테스트에는 침투 테스트와 액세스 제어, 암호화 등의 유효성 검사가 포함됩니다.
- 런타임 오류 감지 : 런타임 경쟁, 리소스 누출 등과 같은 문제에 대한 애플리케이션 모니터링
- 워크 플로 테스트 : 이는 인터페이스 엔진이 예상대로 워크 플로우를 처리하는지 확인하기 위해 수행됩니다.
- 개별 시스템 : 이 테스트는 각 시스템의 개성을 확인하기 위해 수행됩니다. 과금 시스템과 재고 관리 시스템은 개별적으로 운영 할 수 있어야합니다.
인터페이스 테스트를위한 전략 또는 접근 방식
다른 테스트와 마찬가지로 인터페이스 테스트는 데이터베이스, 네트워크 및 시스템 간의 통신을 확인하여 다양한 데이터 기반 애플리케이션 및 시스템의 원활한 기능, 성능 등을 보장하므로 똑같이 중요합니다.
인터페이스 테스트는 애플리케이션과 다른 앱의 종속성을 확인할 때 더욱 중요해집니다.
다음은 인터페이스 테스트가 성공하도록 보장하는 몇 가지 단계입니다.
1) 요구 사항 정의 :
인터페이스 테스트를 만들기 전에 응용 프로그램을 이해하는 것이 중요합니다. 따라서 인터페이스의 목적이 무엇인지와 같은 질문에 대한 답을 찾아보십시오. 시스템 또는 응용 프로그램의 워크 플로는 무엇입니까? 인터페이스의 기능과 특징은 무엇입니까?
이러한 모든 답변을 정의하면 요구 사항을 이해하고 응용 프로그램의 까다로운 점을 찾은 다음 그에 따라 테스트 사례를 만드는 데 도움이됩니다. 종종 QA가 이것을 놓치고 나중에 이로 인해 요구 사항에 대한 혼란이나 잘못된 테스트가 발생합니다.
2) 예상 출력 :
이제 우리는 요구 사항을 잘 알고 이해합니다. 이제 테스트에서 기대할 출력을 완성 할 때입니다. Pass 또는 Fail뿐만 아니라 일부 데이터, 다른 API 호출 등이 될 수 있습니다. 예상 결과의 결과를 측정하는 것은 까다로울뿐만 아니라 위험 할 수도 있습니다.
따라서 개발자와 논의하여 결과가 무엇인지 알아보십시오.
3) 작게 시작 :
인터페이스 테스트를 사용하면 큰 테스트 사례를 직접 만들 수 없으며 작은 테스트 사례 나 호출을 만드는 것은 비교적 간단합니다. 적어도 작은 함수에서는 작은 테스트 코드를 만들고 출력이 예상대로인지 확인하십시오.
4) 자동화 시도 :
인터페이스 테스트를위한 코드 작성은 지루할 수 있습니다.
코드를 작성하는 데 시간을 할애 할뿐만 아니라 개발에 사용되는 형식, 스타일, 코딩 언어를 이해하는 데 시간을 할애해야합니다. 코드가 앱 또는 시스템 코드에 문제를 일으키지 않습니다.
따라서 하루를 절약 할 자동화 도구를 조사하고 찾는 것이 좋습니다. 훨씬 쉽고 시간을 절약 할 수있는 프로세스도 될 것입니다.
5) 시작 및 중지 지점을 정의합니다.
테스트 실행을 시작하기 전에 항상 테스트의 시작 (시작) 및 중지 (종료) 지점을 결정하고 전체 테스트 프로세스의 시작 및 종료 방법을 결정합니다. 마찬가지로 인터페이스 테스트의 성능 수준도 측정해야합니다.
이를 위해서는 다음 두 가지 질문에 대한 답을 찾아야합니다.
- 인터페이스 테스트의 예상 완료 시간은 얼마입니까?
- 인터페이스 테스트의 실제 완료 시간은 얼마입니까?
인터페이스 테스트의 시작 및 종료 지점을 포함하는이 단계는 테스트의 성능 수준을 찾는 데 도움이됩니다. 이것은 또한 계획된 시험 일정에 대한 결정을 내리는 데 도움이 될 것입니다.
인터페이스, 통합 및 구성 요소 테스트의 차이점
다음은 몇 가지 차이점입니다.
S. 아니. | 구성 요소 테스트 | 인터페이스 테스트 | 통합 테스트 |
---|---|---|---|
하나 | 예상 결과를 확인하기 위해 구성 요소를 개별적으로 테스트하는 것을 구성 요소 테스트라고합니다. | 예상 결과를 확인하기 위해 인터페이스를 테스트하는 것을 인터페이스 테스트라고합니다. | 전체 또는 일부 모듈 또는 구성 요소가 통합되어 통합 된 경우 그런 다음 통합 구성 요소의 종단 간 기능을 확인하기 위해 수행 된 테스트를 통합 테스트라고합니다. |
두 | 구성 요소는 화면, 로그인 모듈 등과 같은 것이 될 수 있습니다. | 인터페이스는 광범위하게 웹 서비스, API, 연결 문자열 등입니다. | 통합은 은행 앱, 로그인 및 '수혜자'추가 등과 같은 완전한 사용 사례 일 수 있습니다. |
삼 | 이 테스트는 비교적 쉽습니다. | 이 테스트는 까다 롭고 지루합니다. | 이 테스트는 조금 쉽지만 길이가 깁니다. |
4 | 수동 및 자동화 모두 적용 가능합니다. | 대부분 자동화. | 수동 및 자동화 모두 적용 가능합니다. |
5 | 이 테스트는 앱 또는 시스템의 코드와 GUI 모두에 적용됩니다. | 이 테스트는 코드에서만 수행됩니다. GUI가 없습니다. | 이 테스트는 앱 또는 시스템의 코드와 GUI 모두에 적용됩니다. 하지만 대부분은 GUI입니다. |
인터페이스 테스트를위한 체크리스트
다음은 인터페이스 테스트를 위해 고려해야 할 몇 가지 체크리스트 포인터입니다.
- 4xx 및 5xx 오류는 서버 측 및 클라이언트 측 오류 처리를 확인하는 데 도움이되기 때문에 테스트에 포함되어야합니다. 이상적으로는 코드 오류가 아닌 적절한 메시지가 표시되어야합니다.
- HTTP 인증을 사용하여 사용자의 유효성을 검사합니다.
- API 또는 GET, PUT, POST 등과 같은 웹 서비스에서 사용되는 모든 메서드를 확인합니다.
- JSON 형식에서 XML 형식으로 또는 그 반대로 변환을 확인합니다.
- 인터페이스의 대량 작업이 예상 결과를 가져 오는지 확인합니다.
- API의 시간대가 지리적 영역의 시간대 사양과 일치하는지 확인합니다.
- 인터페이스에 대한 무단 액세스로 인해 적절한 오류 메시지가 표시되는지 확인하십시오.
- 연결 중단이 올바르게 처리되었는지 확인하십시오.
- 일부 구성 요소가 응용 프로그램에서 제거되었는지 확인하면 인터페이스가 더 이상 해당 구성 요소와 상호 작용하지 않습니다.
인터페이스 테스트를위한 최고의 도구
기업이 DevOps, CI (지속적 통합) 및 CD (지속적 배포)로 이동함에 따라 테스트 피드백이 그 어느 때보 다 빨라야합니다. 애플리케이션을 출시 할 준비를하기 전에 인터페이스가 제대로 테스트되었는지 확인해야합니다. 인터페이스를 수동으로 테스트하는 것도 매우 지루하고 복잡하며 시간이 많이 걸리는 프로세스 일 수 있습니다.
인터페이스 테스트를 수행하는 가장 좋은 방법은 자동화를 사용하고 자동화 계획에 인터페이스 테스트를 포함하는 것입니다.
따라서 다음은 인터페이스 테스트를 가능한 한 빨리 완료하는 데 도움이되는 도구 목록입니다. 그러나 개인적으로 SoapUI (웹 서비스 테스트를 위해이 도구를 사용했습니다)를 사용하는 것이 좋지만 모든 요구 사항이 다르므로 5 가지 최고의 도구를 살펴 보겠습니다.
상위 5 개 도구는 다음과 같습니다.
1) REST 보장
Java로 작업하는 사람들을 위해 REST – 보장 가장 선호되는 도구입니다. 실제로 Java에서 REST 웹 서비스를 확인하는 것은 매우 어렵 기 때문에 Java를 사용한 API 테스트에 가장 적합한 도구입니다. 테스트 목적으로 설계되었으므로 모든 Java 기반 프레임 워크와 쉽게 통합 할 수 있습니다.
많은 기능이 준비되어 있으므로 처음부터 코드를 작성할 필요가 없습니다. 이 도구는 Serenity 프레임 워크와 잘 통합되며 멋진 테스트 보고서를 생성 할 수 있습니다.
2) 우편 배달부
일부 테스터는 IDE와 동일한 코딩 언어를 사용하는 것을 좋아하지 않습니다. 그런 사람들에게 Postman은 자동화를위한 좋은 옵션입니다. 이것은 탐색 적 인터페이스 테스트를위한 좋은 옵션이기도합니다.
우편 집배원 간단한 REST 클라이언트이며 Chrome 플러그인 활용을 빠르게 시작할 수 있습니다. Mac, Linux 및 Windows에서 사용할 수있는 기본 버전이 있습니다. 요청을 작성하고 수신 된 응답을 확인하는 데 도움이되는 UI가 있습니다.
3) SoapUI
팀이 API 테스트 만 수행하는 경우 비누 훌륭한 선택이 될 수 있습니다. API 테스트에 전념하는 완전한 기능 테스트 도구입니다. 또한 데이터가 CSV 또는 Excel 형식으로 전달 될 수있는 데이터 기반 테스트를 지원합니다. 또한 웹 서비스 테스트를 위해 더 좋고 향상된 기능을 제공하는 SoapUI Pro라는 유료 버전도 있습니다.
특정 워크 플로 또는 기능에 대한 추가 코드를 추가하려면 스크립팅에 Groovy를 사용하십시오. 또한 전역 변수 설정을 만들고 각 테스트에 대해 개별적으로 초기화하는 대신 테스트에서 이러한 모든 변수를 사용할 수 있습니다.
4) JMeter
JMeter는 부하 테스트에 널리 사용되며 인터페이스 테스트에도 사용할 수 있습니다. JMeter 기록 및 재생을 지원하며 읽고 이해하기 쉬운 HTML 보고서를 생성합니다. JMeter는 CSV 파일과 호환되므로 테스트를위한 고유 한 매개 변수를 생성 할 수 있습니다.
테스트가 CI에 포함될 수 있도록 Jenkins와 쉽게 통합됩니다. 인터페이스 및 부하 테스트에 동일한 도구를 사용하려는 경우 JMeter가 가치있는 선택이 될 것입니다.
5) 피들러
바이올리니스트 HTTP 요청을 확인하고 사용하는 데 도움이됩니다. 확장 기능을 사용하여 웹 사이트 문제를 디버깅하는 데 도움이되는 많은 기능이 있으며 훨씬 더 많은 작업을 수행 할 수 있습니다. 또한 암호화 된 요청을 해독 한 다음 테스트 목적으로 요청을 수정하도록 구성 할 수 있으므로 보안 테스트를위한 좋은 도구입니다.
Fiddler의 확장 기능 중 하나는 APITest 확장으로, 인터페이스의 웹 동작을 확인하는 데 도움이됩니다. 보다 집중적 인 인터페이스 테스트를 위해 FiddlerCore.Net 인터페이스 테스트 인프라를 만들기위한 라이브러리.
결론
인터페이스 테스트는 대규모 애플리케이션 테스트에서 매우 중요한 부분이며 반드시 수행해야합니다. CI를 정기적으로 따르는 애플리케이션에서도 인터페이스 테스트를 수행하는 것이 중요해집니다.
인터페이스 테스트는 매우 까다 롭고 간단하지 않으므로이 테스트를 수행하기위한 적절한 전략을 설계해야합니다. 또한 개발 팀이 코드를 더 잘 이해하므로 입력을받는 것을 잊지 마십시오.
이 테스트를 수행하는 가장 쉽고 간단한 방법은 CI에서 테스트 제품군을 자동화하고 통합하여 많은 시간을 절약하고 결과를 더 빠르게 얻을 수 있도록하는 것입니다.
인터페이스 테스트를 수행 했습니까? 경험을 공유하고 어떤 도구와 전략을 구현했는지 알려주십시오.
소프트웨어 테스트의 사용 사례는 무엇입니까