Professional Documents
Culture Documents
Software development
Core activities
Processes
Requirements
Design
Engineering
Construction
Testing
Debugging
Deployment
Maintenance
Agile
Cleanroom
Incremental
Prototyping
Spiral
V model
Waterfall
Methodologies and frameworks
ASD
DevOps
DAD
DSDM
FDD
IID
Kanban
Lean SD
LeSS
MDD
MSF
PSP
RAD
RUP
SAFe
Scrum
SEMAT
TSP
OpenUP
UP
XP
Supporting disciplines
Configuration management
Documentation
Software quality assurance (SQA)
Project management
User experience
Practices
ATDD
BDD
CCO
CI
CD
DDD
PP
SBE
Stand-up
TDD
Tools
Compiler
Debugger
Profiler
GUI designer
Modeling
IDE
Build automation
Release automation
Infrastructure as code
Testing
Glossaries
Artificial intelligence
Computer science
Electrical and electronics engineering
Outlines
v
t
e
Contents
4Software
5See also
6References
API testing overview[edit]
API testing involves testing APIs directly (in isolation) and as part of the end-to-end
transactions exercised during integration testing.[1] Beyond RESTful APIs, these
transactions include multiple types of endpoints such as web
services, ESBs, databases, mainframes, web UIs, and ERPs. API testing is
performed on APIs that the development team produces as well as APIs that the
team consumes within their application (including third-party APIs). [5]
API testing is used to determine whether APIs return the correct response (in the
expected format) for a broad range of feasible requests, react properly to edge
cases such as failures and unexpected/extreme inputs, deliver responses in
an acceptable amount of time, and respond securely to potential security attacks.[1]
[4]
Service virtualization is used in conjunction with API testing to isolate the services
under test as well as expand test environment access by simulating APIs/services
that are not accessible for testing.[6]
API testing commonly includes testing REST APIs or SOAP web
services with JSON or XML message payloads being sent over HTTP, HTTPS, JMS,
and MQ.[2][7]It can also include message formats such as SWIFT, FIX, EDI and similar
fixed-length formats, CSV, ISO 8583 and Protocol Buffers being sent
overtransports/protocols such as TCP/IP, ISO 8583, MQTT, FIX, RMI, SMTP, TIBCO
Rendezvous, and FIX.[8][9]
System complexity: GUI tests can't sufficiently verify functional paths and back-end
APIs/services associated with multitier architectures. APIs are considered the most
stable interface to the system under test.
Short release cycles with fast feedback loops: Agile and DevOps teams working
with short iterations and fast feedback loops find that GUI tests require considerable
rework to keep pace with frequent change. Tests at the API layer are less brittle and
easier to maintain.
For these reasons, it is recommended that teams increase their level of API testing
while decreasing their reliance on GUI testing. API testing is recommended for the
vast majority of test automation efforts and as much edge testing as possible. GUI
testing is then reserved for validating typical use cases at the system level, mobile
testing, and usability testing.[3][4][10]
Software[edit]
SoapUI
SOAtest
Swagger
See also[edit]
Automated testing
Service virtualization
Software testing