API 테스트

API testing

API 테스트는 Application Programming Interface(API; 응용 프로그램프로그래밍 인터페이스)를 직접 테스트하고 기능, 신뢰성, 퍼포먼스 [1]및 보안에 대한 기대치를 충족하는지 확인하기 위한 통합 테스트의 일환으로 수행하는 소프트웨어 테스트의 일종입니다.API에는 GUI가 없기 때문에 API 테스트는 메시지레이어에서 [2]실행됩니다.API는 이제 애플리케이션 로직의 주요 인터페이스 역할을 하고 GUI 테스트는 GUI 테스트의 짧은 릴리스 사이클과 Agile 소프트웨어 개발 [3][4]DevOps에서 일반적으로 사용되는 빈번한 변경 사항으로 유지하기가 어렵기 때문에 테스트를 자동화하는 데 있어 중요한 것으로 간주됩니다.

API 테스트의 개요

API 테스트에는 API를 직접(단독적으로) 테스트하고 [1]통합 테스트 중에 실행되는 엔드 투 엔드 트랜잭션의 일부로 테스트하는 작업이 포함됩니다.RESTful API 외에도 이러한 트랜잭션에는 웹 서비스, ESB, 데이터베이스, 메인프레임, 웹 UIERP같은 여러 유형의 엔드포인트가 포함됩니다.API 테스트는 개발팀이 작성하는 API와 팀에서 애플리케이션 내에서 사용하는 API(서드파티 API [5]포함)에 대해 수행됩니다.

API 테스트는 API가 광범위한 실행 가능한 요청에 대해 올바른 응답(예상된 형식)을 반환하는지 여부, 장애 및 예기치 않은/극단 입력 등의 에지 사례에 적절하게 반응하는지 여부, 허용 가능한 시간 내에 응답을 전달하는지 여부 및 잠재적인 보안 공격에 안전하게 [1][4]응답하는지 여부를 판단하기 위해 사용됩니다.서비스 가상화는 API 테스트와 함께 사용하여 테스트 대상 서비스를 격리하고 [6]테스트에 액세스할 수 없는 API/서비스를 시뮬레이션하여 테스트 환경 액세스를 확장합니다.

API시험 일반적으로 JSON이나 XML메시지 payloads HTTP, HTTPS, 합동 군사 전략서, MQ.[2][7]또한 SWIFT, FIX, EDI와 유사한 가져올 고정 길이 형식, CSV, ISO8583 및 프로토콜 Buffers TCP/IP, ISO8583, MQTT, 같은 transports/protocols을 통해 보내는 등 메시지 포맷 포함될 수 있습니다를 통해 되는 것과 REST API또는 SOAP웹 서비스 시험을 포함한다. FIX, RMI, SMTP, TIBCO RendezvousFIX.[8][9]

API 테스트, GUI 테스트 및 테스트 자동화

API 테스트는 GUI [3][4]테스트보다 테스트 자동화지속적인 테스트(특히 Agile 소프트웨어 개발 DevOps에서 사용되는 자동화)에 더 적합하다고 알려져 있습니다.그 이유는 다음과 같습니다.

  • 시스템의 복잡성: GUI 테스트에서는 멀티티어 아키텍처와 관련된 기능 경로 및 백엔드 API/서비스를 충분히 검증할 수 없습니다.API는 테스트 대상 시스템에 대한 가장 안정적인 인터페이스로 간주됩니다.
  • 피드백 루프가 빠른 짧은 릴리스 사이클:신속한 대응 및 DevOps 팀은 짧은 반복과 빠른 피드백 루프를 통해 빈번한 변화에 대응하기 위해 GUI 테스트에 상당한 재작업이 필요하다는 것을 알게 되었습니다.API 계층에서의 테스트는 덜 취약하고 유지보수가 용이합니다.

이러한 이유로 팀은 API 테스트 수준을 높이고 GUI 테스트에 대한 의존도를 줄이는 것이 좋습니다.API 테스트는 대부분의 테스트 자동화 작업과 가능한 한 많은 에지 테스트에 권장됩니다.그 후 GUI 테스트는 시스템레벨에서의 일반적인 사용 사례 검증, 모바일 테스트 및 [3][4][10]가용성 테스트용으로 예약됩니다.

API 테스트의 종류

API 테스트에는 일반적으로 다음과 같은 방법이 포함됩니다.

  • 유닛 테스트 - 개별 동작의 기능을 테스트합니다.
  • 기능 테스트 - 광범위한 시나리오의 기능을 테스트합니다.종종 엔드 투 엔드 테스트의 구성 요소로 유닛 테스트를 사용합니다.테스트 케이스 정의, 실행, 검증 및 회귀 테스트가 포함됩니다.
  • 부하 테스트 - 부하가 걸린 상태에서 기능 테스트 케이스를 재사용하여 기능 및 성능을 검증합니다.
  • 런타임 오류 감지 - 응용 프로그램에서 자동 또는 수동 테스트 실행을 모니터링하여 경쟁 조건, 예외, 리소스 누출 등의 문제를 노출합니다.
  • 보안 테스트 - 인증, 암호화 및 접근컨트롤 검증뿐만 아니라 침입 테스트와 퍼지 테스트도 포함됩니다.
  • 웹 UI 테스트 - API를 망라하는 엔드 투 엔드 통합 테스트의 일부로 수행되며, 팀은 대규모 트랜잭션의 맥락에서 GUI 항목을 검증할 수 있습니다.
  • 상호운용성 테스트 - (SOAP 한정) Web Services 상호운용성 프로파일에 대한 적합성을 확인합니다.
  • WS-* 컴플라이언스 테스트 - (SOAP 한정) WS-Addressing, WS-Discovery, WS-Federation, WS-Policy, WS-Security, WS-Trust 등의 WS-* 표준에 대한 컴플라이언스 검사
  • 침입 테스트 - 컴퓨터 시스템, 네트워크 또는 웹 응용 프로그램을 테스트하여 공격자가 악용할 수 있는 취약성을 찾습니다.
  • 퍼지 테스트 - 강제 크래시, 오버플로 또는 기타 부정적인 동작을 시도하기 위해 시스템에 대량의 랜덤 데이터('노이즈' 또는 '퍼지'라고도 함)가 강제로 입력됩니다.이는 API를 절대 제한으로 테스트하기 위해 수행되며 "최악의 경우 시나리오"로 기능합니다.

소프트웨어

이름. 노점상
SoapUI SmartBear 소프트웨어
포스트맨 API 플랫폼 우체부(소프트웨어)
SOA 테스트 파라소프트
스웨거 SmartBear 소프트웨어
카탈론 스튜디오 카탈론

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b c API 테스트를 통해 애플리케이션과 평판을 보호, Amy Reichert, Search Software Quality 2015년 3월
  2. ^ a b API 테스트의 개요: Stickyminds Cameron Philipp-Edmonds의 Jonathan Cooper 인터뷰, 2014년 8월 19일
  3. ^ a b c Forrester Wave Evaluation Of Functional Test Automation(FTA; 기능 테스트 자동화)의 평가 발표, 2015년 4월 23일 Diego Lo Giudice가 Wayback Machine에서 2015-05-28년에 아카이브한 GUI 테스트넘어서는 것이 중요합니다.
  4. ^ a b c d SEON Kenefick, Gartner, 2014년 1월 7일, 레이어드 테스트[dead link] 전략을 사용하여 더 나은 소프트웨어 제작
  5. ^ 서드파티 API의 책임은 엔터프라이즈 개발자에게 있습니다.Amy Reichert, Search Software Quality 2014년 7월
  6. ^ Nathan[dead link] Wilson, Gartner의 자동 테스트를 통해 개발 가속화 2013년 12월 30일
  7. ^ Gartner, 2014년 8월 20일 Eric Knipp와 Gary Olliffe의 위대한 웹 API 설계[dead link] 위한 가이드라인 프레임워크
  8. ^ Adrian Bridgwater, Dobb 박사의 저널, 2011년 10월 26일, The Fight Against Scripts and Software Defects, by Adrian Bridgwater, 2011년 10월 26일
  9. ^ Dobb's Journal, Adrian Bridgwater, 2012년 2월 14일 발행, 컴포지트테스트-스피크 학습 방법
  10. ^ Cohn, Mike (2009). Succeeding with Agile: Software Development Using Scrum. Addison-Wesley Professional. p. 312. ISBN 978-0321579362.