Testování API - API testing
Vývoj softwaru |
---|
Hlavní činnosti |
Paradigmata a modely |
Metodiky a rámce |
Podpůrné disciplíny |
Praxe |
Nástroje |
Standardy a subjekty znalostí |
Glosáře |
Obrysy |
Testování API je typ testování softwaru to zahrnuje testování aplikační programovací rozhraní (API) přímo a jako součást integrační testování zjistit, zda splňují očekávání týkající se funkčnosti, spolehlivosti, výkonu a zabezpečení.[1] Protože API chybí GUI, Testování API se provádí na vrstva zpráv.[2] Testování API je nyní považováno za důležité pro automatizaci testování, protože API nyní slouží jako primární rozhraní logika aplikace a protože Testy GUI je obtížné udržovat s krátkými cykly vydání a častými změnami běžně používanými s Agilní vývoj softwaru a DevOps.[3][4]
Přehled testování API
Testování API zahrnuje testování API přímo (v izolaci) a jako součást transakcí end-to-end prováděných během testování integrace.[1] Mimo RESTful API, tyto transakce zahrnují více typů koncových bodů, jako jsou webové služby, ESB, databáze, sálové počítače, webové uživatelské rozhraní, a ERP. Testování API se provádí na API, která produkuje vývojový tým, a také na API, která tým spotřebovává v rámci své aplikace (včetně API třetích stran).[5]
Testování API se používá k určení, zda API vrací správnou odpověď (v očekávaném formátu) pro širokou škálu proveditelných požadavků, správně reagují na okrajové případy jako jsou poruchy a neočekávané / extrémní vstupy, doručte odpovědi v přijatelné množství času a bezpečně reagovat na potenciál bezpečnostní útoky.[1][4] Virtualizace služeb se používá ve spojení s testováním API k izolaci testovaných služeb a také k rozšíření přístupu do testovacího prostředí simulací API / služeb, které nejsou přístupné pro testování.[6]
Testování API běžně zahrnuje testování ZBYTEK API nebo MÝDLO webové služby s JSON nebo XML užitečné zatížení zpráv odesíláno HTTP, HTTPS, JMS, a MQ.[2][7] Může také zahrnovat formáty zpráv, jako je RYCHLÝ, OPRAVIT, EDI a podobné formáty pevné délky, CSV, ISO 8583 a Vyrovnávací paměti protokolu odesíláno transporty / protokoly jako TCP / IP, ISO 8583, MQTT, OPRAVIT, RMI, SMTP, TIBCO Rendezvous, a OPRAVIT.[8][9]
Testování API, testování GUI a automatizace testů
Testování API je považováno za vhodnější pro automatizace testů a průběžné testování (zejména automatizace používaná s Agilní vývoj softwaru a DevOps ) než testování GUI.[3][4] Mezi citované důvody patří:
- Složitost systému: Testy GUI nemohou dostatečně ověřit funkční cesty a back-end API / služby spojené s vícevrstvými architekturami. API jsou považována za nejstabilnější rozhraní k testovanému systému.
- Krátké uvolňovací cykly se smyčkami rychlé zpětné vazby: Agilní týmy a týmy DevOps pracující s krátkými iteracemi a smyčkami rychlé zpětné vazby zjistily, že testy grafického uživatelského rozhraní vyžadují značné přepracování, aby udržely krok s častými změnami. Testy na vrstvě API jsou méně křehké a snáze se udržují.
Z těchto důvodů se doporučuje týmům zvýšit jejich úroveň testování API a zároveň snížit jejich závislost na testování GUI. Testování API se doporučuje pro drtivou většinu úsilí v oblasti automatizace testů a co nejvíce hraničních testů. Testování GUI je pak vyhrazeno pro ověřování typických případů použití na úrovni systému, testování mobilních zařízení a testování použitelnosti.[3][4][10]
Typy testování API
Testování API obvykle zahrnuje následující postupy:
- Testování jednotky - Testování funkčnosti jednotlivých operací.
- Funkční testování - Testování funkčnosti širších scénářů, často s využitím jednotkových testů jako stavebních kamenů pro end-to-end testy. Zahrnuje definici testovacího případu, jeho provedení, ověření a regresní testování.
- Zátěžové testování - Ověření funkčnosti a výkonu při zatížení, často opětovným použitím funkčních testovacích případů.
- Detekce chyb za běhu - Monitorování aplikace provádění automatizovaných nebo manuálních testů za účelem odhalení problémů, jako jsou podmínky závodu, výjimky a úniky prostředků.
- Testování zabezpečení - Zahrnuje penetrační testování a fuzz testování stejně jako ověřování ověřování, šifrování a řízení přístupu.
- Testování webového uživatelského rozhraní - Provádí se jako součást end-to-end integračních testů, které pokrývají také API, umožňuje týmům ověřovat položky GUI v kontextu větší transakce.
- Testování interoperability - (pouze SOAP) Kontrola shody s Interoperabilita webových služeb profily.
- WS- * testování souladu - (pouze SOAP) Kontrola shody se standardy WS- *, jako je WS-Addressing, WS-Discovery, WS-Federation, WS-Policy, WS-Security a WS-Trust.
- Penetrační testování - testování počítačového systému, sítě nebo webové aplikace za účelem zjištění zranitelností, které by mohl útočník zneužít.
- Fuzz testování - obrovské množství čistě náhodných dat, někdy označovaných jako „šum“ nebo „fuzz“, je do systému násilně zadáváno za účelem pokusu o vynucené selhání, přetečení nebo jiné negativní chování. To se provádí k otestování API na jeho absolutních mezích a slouží to poněkud jako „nejhorší scénář“.
Software
Viz také
Reference
- ^ A b C Testování API chrání aplikace a reputaci, Amy Reichert, SearchSoftwareQuality, březen 2015
- ^ A b Vše o testování API: Rozhovor s Jonathanem Cooperem autor: Cameron Philipp-Edmonds, Stickyminds 19. srpna 2014
- ^ A b C Vyhodnocení Forrester Wave ™ automatizace funkčních testů (FTA) skončilo a jde o to, jít nad rámec testování GUI Archivováno 2015-05-28 na Wayback Machine, od Diega Lo Giudice, Forrester 23.dubna 2015
- ^ A b C d Produkujte lepší software pomocí strategie vrstveného testování, od SEAN Kenefick, Gartner 7. ledna 2014
- ^ Onus pro API třetích stran je na podnikových vývojářích, Amy Reichert, SearchSoftwareQuality červenec 2014
- ^ Urychlete vývoj pomocí automatizovaného testování autor: Nathan Wilson, Gartner 30. prosince 2013
- ^ Guidance Framework for Designing a Great Web API, Eric Knipp a Gary Olliffe, Gartner 20. srpna 2014
- ^ Boj proti křehkým skriptům a softwarovým vadám, podle Adriana Bridgwatera, Dr. Dobb's Journal 26. října 2011
- ^ Jak se naučíme mluvit složeným testováním aplikací?, podle Adriana Bridgwatera, Dr. Dobb's Journal 14. února 2012
- ^ Cohn, Mike (2009). Úspěch v Agile: Vývoj softwaru pomocí Scrumu. Addison-Wesley Professional. p.312. ISBN 978-0321579362.