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