This page allows you to examine the variables generated by the Edit Filter for an individual change.

Variables generated for this change

VariableValue
Edit count of the user (user_editcount)
null
Name of the user account (user_name)
'2601:646:C200:1EC0:D92E:72A6:F6C6:658E'
Age of the user account (user_age)
0
Groups (including implicit) the user is in (user_groups)
[ 0 => '*' ]
Rights that the user has (user_rights)
[ 0 => 'createaccount', 1 => 'read', 2 => 'edit', 3 => 'createtalk', 4 => 'writeapi', 5 => 'viewmywatchlist', 6 => 'editmywatchlist', 7 => 'viewmyprivateinfo', 8 => 'editmyprivateinfo', 9 => 'editmyoptions', 10 => 'abusefilter-log-detail', 11 => 'centralauth-merge', 12 => 'abusefilter-view', 13 => 'abusefilter-log', 14 => 'vipsscaler-test' ]
Whether the user is editing from mobile app (user_app)
false
Whether or not a user is editing through the mobile interface (user_mobile)
false
Page ID (page_id)
21785911
Page namespace (page_namespace)
0
Page title without namespace (page_title)
'API testing'
Full page title (page_prefixedtitle)
'API testing'
Edit protection level of the page (page_restrictions_edit)
[]
Last ten users to contribute to the page (page_recent_contributors)
[ 0 => 'Rdp060707', 1 => '150.107.117.93', 2 => 'Walter Görlitz', 3 => '49.180.76.96', 4 => 'MrOllie', 5 => 'SecureBug', 6 => '74.108.41.159', 7 => '2601:80:4580:CAE0:BC7C:E859:FC03:2ADA', 8 => '181.224.251.235', 9 => 'Andreea.aeerdna' ]
Page age in seconds (page_age)
375814754
Action (action)
'edit'
Edit summary/reason (summary)
'/* Software */ '
Old content model (old_content_model)
'wikitext'
New content model (new_content_model)
'wikitext'
Old page wikitext, before the edit (old_wikitext)
'{{Software development process}} '''API testing''' is a type of [[software testing]] that involves testing [[application programming interface]]s (APIs) directly and as part of [[integration testing]] to determine if they meet expectations for functionality, reliability, performance, and security.<ref name="reichart1">[http://searchsoftwarequality.techtarget.com/tip/Testing-APIs-protects-applications-and-reputations Testing APIs protects applications and reputations], by Amy Reichert, SearchSoftwareQuality March 2015</ref> Since APIs lack a [[Graphical user interface|GUI]], API testing is performed at the [[Communications protocol#Layering|message layer]].<ref name="stickyminds">[http://www.stickyminds.com/interview/all-about-api-testing-interview-jonathan-cooper All About API Testing: An Interview with Jonathan Cooper], by Cameron Philipp-Edmonds, Stickyminds August 19, 2014</ref> API testing is now considered critical for automating testing because APIs now serve as the primary interface to [[application logic]] and because [[Graphical user interface testing|GUI tests]] are difficult to maintain with the short release cycles and frequent changes commonly used with [[Agile software development]] and [[DevOps]].<ref name="forrblog">[http://blogs.forrester.com/diego_lo_giudice/15-04-23-the_forrester_wave_evaluation_of_functional_test_automation_fta_is_out_and_its_all_about_going_be?cm_mmc=RSS-_-BT-_-63-_-blog_1769 The Forrester Wave™ Evaluation Of Functional Test Automation (FTA) Is Out And It's All About Going Beyond GUI Testing] {{Webarchive|url=https://web.archive.org/web/20150528225452/http://blogs.forrester.com/diego_lo_giudice/15-04-23-the_forrester_wave_evaluation_of_functional_test_automation_fta_is_out_and_its_all_about_going_be?cm_mmc=RSS-_-BT-_-63-_-blog_1769 |date=2015-05-28 }}, by Diego Lo Giudice, [[Forrester Research|Forrester]] April 23, 2015</ref><ref name="layers">[http://www.gartner.com/document/2645817?ref=QuickSearch Produce Better Software by Using a Layered Testing Strategy], by SEAN Kenefick, [[Gartner]] January 7, 2014</ref> ==API testing overview== API testing involves testing APIs directly (in isolation) and as part of the end-to-end transactions exercised during integration testing.<ref name="reichart1"/> Beyond [[Representational state transfer|RESTful APIs]], these transactions include multiple types of endpoints such as [[web services]], [[Enterprise service bus|ESBs]], [[database]]s, [[Mainframe computer|mainframes]], [[Web application|web UIs]], and [[Enterprise resource planning|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).<ref name="reichart2">[http://searchsoftwarequality.techtarget.com/tip/Onus-for-third-party-APIs-is-on-enterprise-developers Onus for third-party APIs is on enterprise developers], by Amy Reichert, SearchSoftwareQuality July 2014</ref> 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 [[Service-level agreement|acceptable amount of time]], and respond securely to potential [[Cyberwarfare|security attacks]].<ref name="reichart1"/><ref name="layers"/> [[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.<ref name="accelerate">[http://www.gartner.com/document/2642716 Accelerate Development with Automated Testing], by Nathan Wilson, [[Gartner]] December 30, 2013</ref> API testing commonly includes testing [[Representational state transfer|REST]] APIs or [[SOAP]] [[web services]] with [[JSON]] or [[XML]] [[Payload (computing)|message payloads]] being sent over [[HTTP]], [[HTTPS]], [[Java Message Service|JMS]], and [[IBM WebSphere MQ|MQ]].<ref name="stickyminds"/><ref name="guidance">[http://www.gartner.com/document/2827918 A Guidance Framework for Designing a Great Web API], by Eric Knipp and Gary Olliffe , [[Gartner]] August 20, 2014</ref> It can also include message formats such as [[Society for Worldwide Interbank Financial Telecommunication|SWIFT]], [[Financial Information eXchange|FIX]], [[Electronic data interchange|EDI]] and similar fixed-length formats, [[Comma-separated values|CSV]], [[ISO 8583]] and [[Protocol Buffers]] being sent over [[Communications protocol|transports/protocols]] such as [[TCP/IP]], [[ISO 8583]], [[MQTT]], [[Financial Information eXchange|FIX]], [[Java remote method invocation|RMI]], [[SMTP]], [[TIBCO Rendezvous]], and [[Financial Information eXchange|FIX]].<ref>[http://www.drdobbs.com/tools/the-fight-against-brittle-scripts-and-so/231901658 The Fight Against Brittle Scripts and Software Defects], by Adrian Bridgwater, [[Dr. Dobb's Journal]] October 26, 2011</ref><ref>[http://www.drdobbs.com/testing/how-do-we-learn-composite-app-testing-sp/232600874 How Do We Learn Composite App Testing-Speak?], by Adrian Bridgwater, [[Dr. Dobb's Journal]] February 14, 2012</ref> ==API testing, GUI testing, and test automation== API Testing is recognised as being more suitable for [[test automation]] and [[continuous testing]] (especially the automation used with [[Agile software development]] and [[DevOps]]) than GUI testing.<ref name="forrblog"/><ref name="layers"/> Reasons cited include: * '''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.<ref name="forrblog"/><ref name="layers"/><ref name="cohn">{{cite book | last = Cohn| first = Mike| authorlink = Mike Cohn | title = Succeeding with Agile: Software Development Using Scrum | url = https://archive.org/details/succeedingwithag00cohn_772| url-access = limited| year = 2009 | publisher = Addison-Wesley Professional | page =[https://archive.org/details/succeedingwithag00cohn_772/page/n315 312]| isbn = 978-0321579362}}</ref> ==Types of API testing== API testing typically involves the following practices: * [[Unit testing]] - Testing the functionality of individual operations. * [[Functional testing]] - Testing the functionality of broader scenarios, often using unit tests as building blocks for end-to-end tests. Includes test case definition, execution, validation, and [[regression testing]]. * [[Load testing]] - Validating functionality and performance under load, often by reusing functional test cases. * [[Runtime error detection]] - Monitoring an application the execution of automated or manual tests to expose problems such as race conditions, exceptions, and resource leaks. * [[Security testing]] - Includes [[penetration testing]] and [[fuzz testing]] as well as validating authentication, encryption, and access control. * [[Web testing|Web UI testing]] - Performed as part of end-to-end integration tests that also cover APIs, enables teams to validate GUI items in the context of the larger transaction. * Interoperability testing - (SOAP only) Checking conformance to [[Web Services Interoperability]] profiles. * [[List of web service specifications|WS-*]] compliance testing - (SOAP only) Checking compliance to WS-* standards such as WS-Addressing, WS-Discovery, WS-Federation, WS-Policy, WS-Security, and WS-Trust. * [[Penetration testing]] - testing a computer system, network or Web application to find vulnerabilities that an attacker could exploit. * [[Fuzz-testing]] - massive amounts of purely random data, sometimes referred to as "noise" or "fuzz", is forcibly input into the system in order to attempt a forced crash, overflow, or other negative behavior. This is done to test the API at its absolute limits, and serves somewhat as a "worst case scenario". ==Software== * [[SoapUI]] * [[SOAtest]] * [[Swagger (software)|Swagger]] * [https://apifortress.com/ API Fortress] ==See also== * [[Automated testing]] * [[Service virtualization]] * [[Software testing]] ==References== {{reflist}} [[Category:Software testing]]'
New page wikitext, after the edit (new_wikitext)
'{{Software development process}} '''API testing''' is a type of [[software testing]] that involves testing [[application programming interface]]s (APIs) directly and as part of [[integration testing]] to determine if they meet expectations for functionality, reliability, performance, and security.<ref name="reichart1">[http://searchsoftwarequality.techtarget.com/tip/Testing-APIs-protects-applications-and-reputations Testing APIs protects applications and reputations], by Amy Reichert, SearchSoftwareQuality March 2015</ref> Since APIs lack a [[Graphical user interface|GUI]], API testing is performed at the [[Communications protocol#Layering|message layer]].<ref name="stickyminds">[http://www.stickyminds.com/interview/all-about-api-testing-interview-jonathan-cooper All About API Testing: An Interview with Jonathan Cooper], by Cameron Philipp-Edmonds, Stickyminds August 19, 2014</ref> API testing is now considered critical for automating testing because APIs now serve as the primary interface to [[application logic]] and because [[Graphical user interface testing|GUI tests]] are difficult to maintain with the short release cycles and frequent changes commonly used with [[Agile software development]] and [[DevOps]].<ref name="forrblog">[http://blogs.forrester.com/diego_lo_giudice/15-04-23-the_forrester_wave_evaluation_of_functional_test_automation_fta_is_out_and_its_all_about_going_be?cm_mmc=RSS-_-BT-_-63-_-blog_1769 The Forrester Wave™ Evaluation Of Functional Test Automation (FTA) Is Out And It's All About Going Beyond GUI Testing] {{Webarchive|url=https://web.archive.org/web/20150528225452/http://blogs.forrester.com/diego_lo_giudice/15-04-23-the_forrester_wave_evaluation_of_functional_test_automation_fta_is_out_and_its_all_about_going_be?cm_mmc=RSS-_-BT-_-63-_-blog_1769 |date=2015-05-28 }}, by Diego Lo Giudice, [[Forrester Research|Forrester]] April 23, 2015</ref><ref name="layers">[http://www.gartner.com/document/2645817?ref=QuickSearch Produce Better Software by Using a Layered Testing Strategy], by SEAN Kenefick, [[Gartner]] January 7, 2014</ref> ==API testing overview== API testing involves testing APIs directly (in isolation) and as part of the end-to-end transactions exercised during integration testing.<ref name="reichart1"/> Beyond [[Representational state transfer|RESTful APIs]], these transactions include multiple types of endpoints such as [[web services]], [[Enterprise service bus|ESBs]], [[database]]s, [[Mainframe computer|mainframes]], [[Web application|web UIs]], and [[Enterprise resource planning|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).<ref name="reichart2">[http://searchsoftwarequality.techtarget.com/tip/Onus-for-third-party-APIs-is-on-enterprise-developers Onus for third-party APIs is on enterprise developers], by Amy Reichert, SearchSoftwareQuality July 2014</ref> 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 [[Service-level agreement|acceptable amount of time]], and respond securely to potential [[Cyberwarfare|security attacks]].<ref name="reichart1"/><ref name="layers"/> [[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.<ref name="accelerate">[http://www.gartner.com/document/2642716 Accelerate Development with Automated Testing], by Nathan Wilson, [[Gartner]] December 30, 2013</ref> API testing commonly includes testing [[Representational state transfer|REST]] APIs or [[SOAP]] [[web services]] with [[JSON]] or [[XML]] [[Payload (computing)|message payloads]] being sent over [[HTTP]], [[HTTPS]], [[Java Message Service|JMS]], and [[IBM WebSphere MQ|MQ]].<ref name="stickyminds"/><ref name="guidance">[http://www.gartner.com/document/2827918 A Guidance Framework for Designing a Great Web API], by Eric Knipp and Gary Olliffe , [[Gartner]] August 20, 2014</ref> It can also include message formats such as [[Society for Worldwide Interbank Financial Telecommunication|SWIFT]], [[Financial Information eXchange|FIX]], [[Electronic data interchange|EDI]] and similar fixed-length formats, [[Comma-separated values|CSV]], [[ISO 8583]] and [[Protocol Buffers]] being sent over [[Communications protocol|transports/protocols]] such as [[TCP/IP]], [[ISO 8583]], [[MQTT]], [[Financial Information eXchange|FIX]], [[Java remote method invocation|RMI]], [[SMTP]], [[TIBCO Rendezvous]], and [[Financial Information eXchange|FIX]].<ref>[http://www.drdobbs.com/tools/the-fight-against-brittle-scripts-and-so/231901658 The Fight Against Brittle Scripts and Software Defects], by Adrian Bridgwater, [[Dr. Dobb's Journal]] October 26, 2011</ref><ref>[http://www.drdobbs.com/testing/how-do-we-learn-composite-app-testing-sp/232600874 How Do We Learn Composite App Testing-Speak?], by Adrian Bridgwater, [[Dr. Dobb's Journal]] February 14, 2012</ref> ==API testing, GUI testing, and test automation== API Testing is recognised as being more suitable for [[test automation]] and [[continuous testing]] (especially the automation used with [[Agile software development]] and [[DevOps]]) than GUI testing.<ref name="forrblog"/><ref name="layers"/> Reasons cited include: * '''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.<ref name="forrblog"/><ref name="layers"/><ref name="cohn">{{cite book | last = Cohn| first = Mike| authorlink = Mike Cohn | title = Succeeding with Agile: Software Development Using Scrum | url = https://archive.org/details/succeedingwithag00cohn_772| url-access = limited| year = 2009 | publisher = Addison-Wesley Professional | page =[https://archive.org/details/succeedingwithag00cohn_772/page/n315 312]| isbn = 978-0321579362}}</ref> ==Types of API testing== API testing typically involves the following practices: * [[Unit testing]] - Testing the functionality of individual operations. * [[Functional testing]] - Testing the functionality of broader scenarios, often using unit tests as building blocks for end-to-end tests. Includes test case definition, execution, validation, and [[regression testing]]. * [[Load testing]] - Validating functionality and performance under load, often by reusing functional test cases. * [[Runtime error detection]] - Monitoring an application the execution of automated or manual tests to expose problems such as race conditions, exceptions, and resource leaks. * [[Security testing]] - Includes [[penetration testing]] and [[fuzz testing]] as well as validating authentication, encryption, and access control. * [[Web testing|Web UI testing]] - Performed as part of end-to-end integration tests that also cover APIs, enables teams to validate GUI items in the context of the larger transaction. * Interoperability testing - (SOAP only) Checking conformance to [[Web Services Interoperability]] profiles. * [[List of web service specifications|WS-*]] compliance testing - (SOAP only) Checking compliance to WS-* standards such as WS-Addressing, WS-Discovery, WS-Federation, WS-Policy, WS-Security, and WS-Trust. * [[Penetration testing]] - testing a computer system, network or Web application to find vulnerabilities that an attacker could exploit. * [[Fuzz-testing]] - massive amounts of purely random data, sometimes referred to as "noise" or "fuzz", is forcibly input into the system in order to attempt a forced crash, overflow, or other negative behavior. This is done to test the API at its absolute limits, and serves somewhat as a "worst case scenario". ==Software== * [[SoapUI]] * [[SOAtest]] * [[Swagger (software)|Swagger]] * [https://apifortress.com/ API Fortress] * [[RapidAPI (software) | RapidAPI]] ==See also== * [[Automated testing]] * [[Service virtualization]] * [[Software testing]] ==References== {{reflist}} [[Category:Software testing]]'
Unified diff of changes made by edit (edit_diff)
'@@ -39,4 +39,5 @@ * [[Swagger (software)|Swagger]] * [https://apifortress.com/ API Fortress] +* [[RapidAPI (software) | RapidAPI]] ==See also== '
New page size (new_size)
8905
Old page size (old_size)
8868
Size change in edit (edit_delta)
37
Lines added in edit (added_lines)
[ 0 => '* [[RapidAPI (software) | RapidAPI]]' ]
Lines removed in edit (removed_lines)
[]
Parsed HTML source of the new revision (new_html)
'<div class="mw-parser-output"><style data-mw-deduplicate="TemplateStyles:r1003042402">.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:#f8f9fa;border:1px solid #aaa;padding:0.2em;border-spacing:0.4em 0;text-align:center;line-height:1.4em;font-size:88%}.mw-parser-output .sidebar a{white-space:nowrap}.mw-parser-output .sidebar-wraplinks a{white-space:normal}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding-bottom:0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em 0}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding-top:0.2em;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding-top:0.4em;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.4em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding-top:0}.mw-parser-output .sidebar-image{padding:0.2em 0 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em}.mw-parser-output .sidebar-content{padding:0 0.1em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.4em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%}.mw-parser-output .sidebar-collapse .sidebar-navbar{padding-top:0.6em}.mw-parser-output .sidebar-collapse .mw-collapsible-toggle{margin-top:0.2em}.mw-parser-output .sidebar-list-title{text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}@media(max-width:720px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none;margin-left:0!important;margin-right:0!important}}</style><table class="sidebar vertical-navbox nomobile sidebar-wraplinks"><tbody><tr><th class="sidebar-title"><a href="/wiki/Software_development" title="Software development">Software development</a></th></tr><tr><th class="sidebar-heading" style="background-color: #e7c6a5"> Core activities</th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Software_development_process" title="Software development process">Processes</a></li> <li><a href="/wiki/Requirements_analysis" title="Requirements analysis">Requirements</a></li> <li><a href="/wiki/Software_design" title="Software design">Design</a></li> <li><a href="/wiki/Software_engineering" title="Software engineering">Engineering</a></li> <li><a href="/wiki/Software_construction" title="Software construction">Construction</a></li> <li><a href="/wiki/Software_testing" title="Software testing">Testing</a></li> <li><a href="/wiki/Debugging" title="Debugging">Debugging</a></li> <li><a href="/wiki/Software_deployment" title="Software deployment">Deployment</a></li> <li><a href="/wiki/Software_maintenance" title="Software maintenance">Maintenance</a></li></ul></td> </tr><tr><th class="sidebar-heading" style="background-color: #e7c6a5"> Paradigms and models</th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Agile_software_development" title="Agile software development">Agile</a></li> <li><a href="/wiki/Cleanroom_software_engineering" title="Cleanroom software engineering">Cleanroom</a></li> <li><a href="/wiki/Incremental_build_model" title="Incremental build model">Incremental</a></li> <li><a href="/wiki/Software_prototyping" title="Software prototyping">Prototyping</a></li> <li><a href="/wiki/Spiral_model" title="Spiral model">Spiral</a></li> <li><a href="/wiki/V-Model_(software_development)" title="V-Model (software development)">V model</a></li> <li><a href="/wiki/Waterfall_model" title="Waterfall model">Waterfall</a></li></ul></td> </tr><tr><th class="sidebar-heading" style="background-color: #e7c6a5"> <a href="/wiki/Software_development_methodology" class="mw-redirect" title="Software development methodology">Methodologies</a> and frameworks</th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Adaptive_software_development" title="Adaptive software development">ASD</a></li> <li><a href="/wiki/DevOps" title="DevOps">DevOps</a></li> <li><a href="/wiki/Disciplined_agile_delivery" title="Disciplined agile delivery">DAD</a></li> <li><a href="/wiki/Dynamic_systems_development_method" title="Dynamic systems development method">DSDM</a></li> <li><a href="/wiki/Feature-driven_development" title="Feature-driven development">FDD</a></li> <li><a href="/wiki/Iterative_and_incremental_development" title="Iterative and incremental development">IID</a></li> <li><a href="/wiki/Kanban_(development)" title="Kanban (development)">Kanban</a></li> <li><a href="/wiki/Lean_software_development" title="Lean software development">Lean SD</a></li> <li><a href="/wiki/Scrum_(software_development)#Large-scale_Scrum" title="Scrum (software development)">LeSS</a></li> <li><a href="/wiki/Model-driven_development" class="mw-redirect" title="Model-driven development">MDD</a></li> <li><a href="/wiki/Microsoft_Solutions_Framework" title="Microsoft Solutions Framework">MSF</a></li> <li><a href="/wiki/Personal_software_process" title="Personal software process">PSP</a></li> <li><a href="/wiki/Rapid_application_development" title="Rapid application development">RAD</a></li> <li><a href="/wiki/Rational_Unified_Process" title="Rational Unified Process">RUP</a></li> <li><a href="/wiki/Scaled_agile_framework" title="Scaled agile framework">SAFe</a></li> <li><a href="/wiki/Scrum_(software_development)" title="Scrum (software development)">Scrum</a></li> <li><a href="/wiki/SEMAT" title="SEMAT">SEMAT</a></li> <li><a href="/wiki/Team_software_process" title="Team software process">TSP</a></li> <li><a href="/wiki/OpenUP" title="OpenUP">OpenUP</a></li> <li><a href="/wiki/Unified_Process" title="Unified Process">UP</a></li> <li><a href="/wiki/Extreme_programming" title="Extreme programming">XP</a></li></ul></td> </tr><tr><th class="sidebar-heading" style="background-color: #e7c6a5"> Supporting disciplines</th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Software_configuration_management" title="Software configuration management">Configuration management</a></li> <li><a href="/wiki/Software_documentation" title="Software documentation">Documentation</a></li> <li><a href="/wiki/Software_quality_assurance" title="Software quality assurance">Software quality assurance (SQA)</a></li> <li><a href="/wiki/Software_project_management" title="Software project management">Project management</a></li> <li><a href="/wiki/User_experience" title="User experience">User experience</a></li></ul></td> </tr><tr><th class="sidebar-heading" style="background-color: #e7c6a5"> Practices</th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Acceptance_test%E2%80%93driven_development" title="Acceptance test–driven development">ATDD</a></li> <li><a href="/wiki/Behavior-driven_development" title="Behavior-driven development">BDD</a></li> <li><a href="/wiki/Extreme_programming_practices#Collective_code_ownership" title="Extreme programming practices">CCO</a></li> <li><a href="/wiki/Continuous_integration" title="Continuous integration">CI</a></li> <li><a href="/wiki/Continuous_delivery" title="Continuous delivery">CD</a></li> <li><a href="/wiki/Domain-driven_design" title="Domain-driven design">DDD</a></li> <li><a href="/wiki/Pair_programming" title="Pair programming">PP</a></li> <li><a href="/wiki/Specification_by_example" title="Specification by example">SBE</a></li> <li><a href="/wiki/Stand-up_meeting" title="Stand-up meeting">Stand-up</a></li> <li><a href="/wiki/Test-driven_development" title="Test-driven development">TDD</a></li></ul></td> </tr><tr><th class="sidebar-heading" style="background-color: #e7c6a5"> <a href="/wiki/Programming_tool" title="Programming tool">Tools</a></th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Compiler" title="Compiler">Compiler</a></li> <li><a href="/wiki/Debugger" title="Debugger">Debugger</a></li> <li><a href="/wiki/Profiling_(computer_programming)" title="Profiling (computer programming)">Profiler</a></li> <li><a href="/wiki/Graphical_user_interface_builder" title="Graphical user interface builder">GUI designer</a></li> <li><a href="/wiki/UML_tool" title="UML tool">Modeling</a></li> <li><a href="/wiki/Integrated_development_environment" title="Integrated development environment">IDE</a></li> <li><a href="/wiki/Build_automation" title="Build automation">Build automation</a></li> <li><a href="/wiki/Application-release_automation" title="Application-release automation">Release automation</a></li> <li><a href="/wiki/Infrastructure_as_code" title="Infrastructure as code">Infrastructure as code</a></li> <li><a href="/wiki/Category:Software_testing_tools" title="Category:Software testing tools">Testing</a></li></ul></td> </tr><tr><th class="sidebar-heading" style="background-color: #e7c6a5"> Standards and Bodies of Knowledge</th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/A_Guide_to_the_Business_Analysis_Body_of_Knowledge" title="A Guide to the Business Analysis Body of Knowledge">BABOK</a></li> <li><a href="/wiki/Capability_Maturity_Model_Integration" title="Capability Maturity Model Integration">CMMI</a></li> <li><a href="/wiki/IEEE_Standards_Association" title="IEEE Standards Association">IEEE standards</a></li> <li><a href="/wiki/ISO_9001" class="mw-redirect" title="ISO 9001">ISO 9001</a></li> <li><a href="/wiki/ISO/IEC_JTC_1/SC_7" title="ISO/IEC JTC 1/SC 7">ISO/IEC standards</a></li> <li><a href="/wiki/Project_Management_Body_of_Knowledge" title="Project Management Body of Knowledge">PMBOK</a></li> <li><a href="/wiki/Software_Engineering_Body_of_Knowledge" title="Software Engineering Body of Knowledge">SWEBOK</a></li> <li><a href="/wiki/ITIL" title="ITIL">ITIL</a></li> <li><a href="/wiki/International_Requirements_Engineering_Board" title="International Requirements Engineering Board">IREB</a></li></ul></td> </tr><tr><th class="sidebar-heading" style="background-color: #e7c6a5"> Glossaries</th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Glossary_of_artificial_intelligence" title="Glossary of artificial intelligence">Artificial intelligence</a></li> <li><a href="/wiki/Glossary_of_computer_science" title="Glossary of computer science">Computer science</a></li> <li><a href="/wiki/Glossary_of_electrical_and_electronics_engineering" title="Glossary of electrical and electronics engineering">Electrical and electronics engineering</a></li></ul></td> </tr><tr><th class="sidebar-heading" style="background-color: #e7c6a5"> Outlines</th></tr><tr><td class="sidebar-content hlist"> <ul><li><a href="/wiki/Outline_of_software_development" title="Outline of software development">Outline of software development</a></li></ul></td> </tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r992953826">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}.mw-parser-output .infobox .navbar{font-size:100%}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:Software_development_process" title="Template:Software development process"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:Software_development_process" title="Template talk:Software development process"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a class="external text" href="https://en.wikipedia.org/w/index.php?title=Template:Software_development_process&amp;action=edit"><abbr title="Edit this template">e</abbr></a></li></ul></div></td></tr></tbody></table> <p><b>API testing</b> is a type of <a href="/wiki/Software_testing" title="Software testing">software testing</a> that involves testing <a href="/wiki/Application_programming_interface" class="mw-redirect" title="Application programming interface">application programming interfaces</a> (APIs) directly and as part of <a href="/wiki/Integration_testing" title="Integration testing">integration testing</a> to determine if they meet expectations for functionality, reliability, performance, and security.<sup id="cite_ref-reichart1_1-0" class="reference"><a href="#cite_note-reichart1-1">&#91;1&#93;</a></sup> Since APIs lack a <a href="/wiki/Graphical_user_interface" title="Graphical user interface">GUI</a>, API testing is performed at the <a href="/wiki/Communications_protocol#Layering" class="mw-redirect" title="Communications protocol">message layer</a>.<sup id="cite_ref-stickyminds_2-0" class="reference"><a href="#cite_note-stickyminds-2">&#91;2&#93;</a></sup> API testing is now considered critical for automating testing because APIs now serve as the primary interface to <a href="/wiki/Application_logic" class="mw-redirect" title="Application logic">application logic</a> and because <a href="/wiki/Graphical_user_interface_testing" title="Graphical user interface testing">GUI tests</a> are difficult to maintain with the short release cycles and frequent changes commonly used with <a href="/wiki/Agile_software_development" title="Agile software development">Agile software development</a> and <a href="/wiki/DevOps" title="DevOps">DevOps</a>.<sup id="cite_ref-forrblog_3-0" class="reference"><a href="#cite_note-forrblog-3">&#91;3&#93;</a></sup><sup id="cite_ref-layers_4-0" class="reference"><a href="#cite_note-layers-4">&#91;4&#93;</a></sup> </p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#API_testing_overview"><span class="tocnumber">1</span> <span class="toctext">API testing overview</span></a></li> <li class="toclevel-1 tocsection-2"><a href="#API_testing,_GUI_testing,_and_test_automation"><span class="tocnumber">2</span> <span class="toctext">API testing, GUI testing, and test automation</span></a></li> <li class="toclevel-1 tocsection-3"><a href="#Types_of_API_testing"><span class="tocnumber">3</span> <span class="toctext">Types of API testing</span></a></li> <li class="toclevel-1 tocsection-4"><a href="#Software"><span class="tocnumber">4</span> <span class="toctext">Software</span></a></li> <li class="toclevel-1 tocsection-5"><a href="#See_also"><span class="tocnumber">5</span> <span class="toctext">See also</span></a></li> <li class="toclevel-1 tocsection-6"><a href="#References"><span class="tocnumber">6</span> <span class="toctext">References</span></a></li> </ul> </div> <h2><span class="mw-headline" id="API_testing_overview">API testing overview</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API_testing&amp;action=edit&amp;section=1" title="Edit section: API testing overview">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <p>API testing involves testing APIs directly (in isolation) and as part of the end-to-end transactions exercised during integration testing.<sup id="cite_ref-reichart1_1-1" class="reference"><a href="#cite_note-reichart1-1">&#91;1&#93;</a></sup> Beyond <a href="/wiki/Representational_state_transfer" title="Representational state transfer">RESTful APIs</a>, these transactions include multiple types of endpoints such as <a href="/wiki/Web_services" class="mw-redirect" title="Web services">web services</a>, <a href="/wiki/Enterprise_service_bus" title="Enterprise service bus">ESBs</a>, <a href="/wiki/Database" title="Database">databases</a>, <a href="/wiki/Mainframe_computer" title="Mainframe computer">mainframes</a>, <a href="/wiki/Web_application" title="Web application">web UIs</a>, and <a href="/wiki/Enterprise_resource_planning" title="Enterprise resource planning">ERPs</a>. 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).<sup id="cite_ref-reichart2_5-0" class="reference"><a href="#cite_note-reichart2-5">&#91;5&#93;</a></sup> </p><p>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 <a href="/wiki/Edge_cases" class="mw-redirect" title="Edge cases">edge cases</a> such as failures and unexpected/extreme inputs, deliver responses in an <a href="/wiki/Service-level_agreement" title="Service-level agreement">acceptable amount of time</a>, and respond securely to potential <a href="/wiki/Cyberwarfare" title="Cyberwarfare">security attacks</a>.<sup id="cite_ref-reichart1_1-2" class="reference"><a href="#cite_note-reichart1-1">&#91;1&#93;</a></sup><sup id="cite_ref-layers_4-1" class="reference"><a href="#cite_note-layers-4">&#91;4&#93;</a></sup> <a href="/wiki/Service_virtualization" title="Service virtualization">Service virtualization</a> 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.<sup id="cite_ref-accelerate_6-0" class="reference"><a href="#cite_note-accelerate-6">&#91;6&#93;</a></sup> </p><p>API testing commonly includes testing <a href="/wiki/Representational_state_transfer" title="Representational state transfer">REST</a> APIs or <a href="/wiki/SOAP" title="SOAP">SOAP</a> <a href="/wiki/Web_services" class="mw-redirect" title="Web services">web services</a> with <a href="/wiki/JSON" title="JSON">JSON</a> or <a href="/wiki/XML" title="XML">XML</a> <a href="/wiki/Payload_(computing)" title="Payload (computing)">message payloads</a> being sent over <a href="/wiki/HTTP" class="mw-redirect" title="HTTP">HTTP</a>, <a href="/wiki/HTTPS" title="HTTPS">HTTPS</a>, <a href="/wiki/Java_Message_Service" class="mw-redirect" title="Java Message Service">JMS</a>, and <a href="/wiki/IBM_WebSphere_MQ" class="mw-redirect" title="IBM WebSphere MQ">MQ</a>.<sup id="cite_ref-stickyminds_2-1" class="reference"><a href="#cite_note-stickyminds-2">&#91;2&#93;</a></sup><sup id="cite_ref-guidance_7-0" class="reference"><a href="#cite_note-guidance-7">&#91;7&#93;</a></sup> It can also include message formats such as <a href="/wiki/Society_for_Worldwide_Interbank_Financial_Telecommunication" title="Society for Worldwide Interbank Financial Telecommunication">SWIFT</a>, <a href="/wiki/Financial_Information_eXchange" title="Financial Information eXchange">FIX</a>, <a href="/wiki/Electronic_data_interchange" title="Electronic data interchange">EDI</a> and similar fixed-length formats, <a href="/wiki/Comma-separated_values" title="Comma-separated values">CSV</a>, <a href="/wiki/ISO_8583" title="ISO 8583">ISO 8583</a> and <a href="/wiki/Protocol_Buffers" title="Protocol Buffers">Protocol Buffers</a> being sent over <a href="/wiki/Communications_protocol" class="mw-redirect" title="Communications protocol">transports/protocols</a> such as <a href="/wiki/TCP/IP" class="mw-redirect" title="TCP/IP">TCP/IP</a>, <a href="/wiki/ISO_8583" title="ISO 8583">ISO 8583</a>, <a href="/wiki/MQTT" title="MQTT">MQTT</a>, <a href="/wiki/Financial_Information_eXchange" title="Financial Information eXchange">FIX</a>, <a href="/wiki/Java_remote_method_invocation" title="Java remote method invocation">RMI</a>, <a href="/wiki/SMTP" class="mw-redirect" title="SMTP">SMTP</a>, <a href="/wiki/TIBCO_Rendezvous" title="TIBCO Rendezvous">TIBCO Rendezvous</a>, and <a href="/wiki/Financial_Information_eXchange" title="Financial Information eXchange">FIX</a>.<sup id="cite_ref-8" class="reference"><a href="#cite_note-8">&#91;8&#93;</a></sup><sup id="cite_ref-9" class="reference"><a href="#cite_note-9">&#91;9&#93;</a></sup> </p> <h2><span id="API_testing.2C_GUI_testing.2C_and_test_automation"></span><span class="mw-headline" id="API_testing,_GUI_testing,_and_test_automation">API testing, GUI testing, and test automation</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API_testing&amp;action=edit&amp;section=2" title="Edit section: API testing, GUI testing, and test automation">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <p>API Testing is recognised as being more suitable for <a href="/wiki/Test_automation" title="Test automation">test automation</a> and <a href="/wiki/Continuous_testing" title="Continuous testing">continuous testing</a> (especially the automation used with <a href="/wiki/Agile_software_development" title="Agile software development">Agile software development</a> and <a href="/wiki/DevOps" title="DevOps">DevOps</a>) than GUI testing.<sup id="cite_ref-forrblog_3-1" class="reference"><a href="#cite_note-forrblog-3">&#91;3&#93;</a></sup><sup id="cite_ref-layers_4-2" class="reference"><a href="#cite_note-layers-4">&#91;4&#93;</a></sup> Reasons cited include: </p> <ul><li><b>System complexity:</b> 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.</li> <li><b>Short release cycles with fast feedback loops:</b> 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.</li></ul> <p>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.<sup id="cite_ref-forrblog_3-2" class="reference"><a href="#cite_note-forrblog-3">&#91;3&#93;</a></sup><sup id="cite_ref-layers_4-3" class="reference"><a href="#cite_note-layers-4">&#91;4&#93;</a></sup><sup id="cite_ref-cohn_10-0" class="reference"><a href="#cite_note-cohn-10">&#91;10&#93;</a></sup> </p> <h2><span class="mw-headline" id="Types_of_API_testing">Types of API testing</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API_testing&amp;action=edit&amp;section=3" title="Edit section: Types of API testing">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <p>API testing typically involves the following practices: </p> <ul><li><a href="/wiki/Unit_testing" title="Unit testing">Unit testing</a> - Testing the functionality of individual operations.</li> <li><a href="/wiki/Functional_testing" title="Functional testing">Functional testing</a> - Testing the functionality of broader scenarios, often using unit tests as building blocks for end-to-end tests. Includes test case definition, execution, validation, and <a href="/wiki/Regression_testing" title="Regression testing">regression testing</a>.</li> <li><a href="/wiki/Load_testing" title="Load testing">Load testing</a> - Validating functionality and performance under load, often by reusing functional test cases.</li> <li><a href="/wiki/Runtime_error_detection" title="Runtime error detection">Runtime error detection</a> - Monitoring an application the execution of automated or manual tests to expose problems such as race conditions, exceptions, and resource leaks.</li> <li><a href="/wiki/Security_testing" title="Security testing">Security testing</a> - Includes <a href="/wiki/Penetration_testing" class="mw-redirect" title="Penetration testing">penetration testing</a> and <a href="/wiki/Fuzz_testing" class="mw-redirect" title="Fuzz testing">fuzz testing</a> as well as validating authentication, encryption, and access control.</li> <li><a href="/wiki/Web_testing" title="Web testing">Web UI testing</a> - Performed as part of end-to-end integration tests that also cover APIs, enables teams to validate GUI items in the context of the larger transaction.</li> <li>Interoperability testing - (SOAP only) Checking conformance to <a href="/wiki/Web_Services_Interoperability" title="Web Services Interoperability">Web Services Interoperability</a> profiles.</li> <li><a href="/wiki/List_of_web_service_specifications" title="List of web service specifications">WS-*</a> compliance testing - (SOAP only) Checking compliance to WS-* standards such as WS-Addressing, WS-Discovery, WS-Federation, WS-Policy, WS-Security, and WS-Trust.</li> <li><a href="/wiki/Penetration_testing" class="mw-redirect" title="Penetration testing">Penetration testing</a> - testing a computer system, network or Web application to find vulnerabilities that an attacker could exploit.</li> <li><a href="/wiki/Fuzz-testing" class="mw-redirect" title="Fuzz-testing">Fuzz-testing</a> - massive amounts of purely random data, sometimes referred to as "noise" or "fuzz", is forcibly input into the system in order to attempt a forced crash, overflow, or other negative behavior. This is done to test the API at its absolute limits, and serves somewhat as a "worst case scenario".</li></ul> <h2><span class="mw-headline" id="Software">Software</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API_testing&amp;action=edit&amp;section=4" title="Edit section: Software">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <ul><li><a href="/wiki/SoapUI" title="SoapUI">SoapUI</a></li> <li><a href="/wiki/SOAtest" title="SOAtest">SOAtest</a></li> <li><a href="/wiki/Swagger_(software)" title="Swagger (software)">Swagger</a></li> <li><a rel="nofollow" class="external text" href="https://apifortress.com/">API Fortress</a></li> <li><a href="/w/index.php?title=RapidAPI_(software)&amp;action=edit&amp;redlink=1" class="new" title="RapidAPI (software) (page does not exist)"> RapidAPI</a></li></ul> <h2><span class="mw-headline" id="See_also">See also</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API_testing&amp;action=edit&amp;section=5" title="Edit section: See also">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <ul><li><a href="/wiki/Automated_testing" class="mw-redirect" title="Automated testing">Automated testing</a></li> <li><a href="/wiki/Service_virtualization" title="Service virtualization">Service virtualization</a></li> <li><a href="/wiki/Software_testing" title="Software testing">Software testing</a></li></ul> <h2><span class="mw-headline" id="References">References</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=API_testing&amp;action=edit&amp;section=6" title="Edit section: References">edit</a><span class="mw-editsection-bracket">]</span></span></h2> <div class="reflist" style="list-style-type: decimal;"> <div class="mw-references-wrap"><ol class="references"> <li id="cite_note-reichart1-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-reichart1_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-reichart1_1-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-reichart1_1-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://searchsoftwarequality.techtarget.com/tip/Testing-APIs-protects-applications-and-reputations">Testing APIs protects applications and reputations</a>, by Amy Reichert, SearchSoftwareQuality March 2015</span> </li> <li id="cite_note-stickyminds-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-stickyminds_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-stickyminds_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.stickyminds.com/interview/all-about-api-testing-interview-jonathan-cooper">All About API Testing: An Interview with Jonathan Cooper</a>, by Cameron Philipp-Edmonds, Stickyminds August 19, 2014</span> </li> <li id="cite_note-forrblog-3"><span class="mw-cite-backlink">^ <a href="#cite_ref-forrblog_3-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-forrblog_3-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-forrblog_3-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://blogs.forrester.com/diego_lo_giudice/15-04-23-the_forrester_wave_evaluation_of_functional_test_automation_fta_is_out_and_its_all_about_going_be?cm_mmc=RSS-_-BT-_-63-_-blog_1769">The Forrester Wave™ Evaluation Of Functional Test Automation (FTA) Is Out And It's All About Going Beyond GUI Testing</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20150528225452/http://blogs.forrester.com/diego_lo_giudice/15-04-23-the_forrester_wave_evaluation_of_functional_test_automation_fta_is_out_and_its_all_about_going_be?cm_mmc=RSS-_-BT-_-63-_-blog_1769">Archived</a> 2015-05-28 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a>, by Diego Lo Giudice, <a href="/wiki/Forrester_Research" title="Forrester Research">Forrester</a> April 23, 2015</span> </li> <li id="cite_note-layers-4"><span class="mw-cite-backlink">^ <a href="#cite_ref-layers_4-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-layers_4-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-layers_4-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-layers_4-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.gartner.com/document/2645817?ref=QuickSearch">Produce Better Software by Using a Layered Testing Strategy</a>, by SEAN Kenefick, <a href="/wiki/Gartner" title="Gartner">Gartner</a> January 7, 2014</span> </li> <li id="cite_note-reichart2-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-reichart2_5-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://searchsoftwarequality.techtarget.com/tip/Onus-for-third-party-APIs-is-on-enterprise-developers">Onus for third-party APIs is on enterprise developers</a>, by Amy Reichert, SearchSoftwareQuality July 2014</span> </li> <li id="cite_note-accelerate-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-accelerate_6-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.gartner.com/document/2642716">Accelerate Development with Automated Testing</a>, by Nathan Wilson, <a href="/wiki/Gartner" title="Gartner">Gartner</a> December 30, 2013</span> </li> <li id="cite_note-guidance-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-guidance_7-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.gartner.com/document/2827918">A Guidance Framework for Designing a Great Web API</a>, by Eric Knipp and Gary Olliffe , <a href="/wiki/Gartner" title="Gartner">Gartner</a> August 20, 2014</span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.drdobbs.com/tools/the-fight-against-brittle-scripts-and-so/231901658">The Fight Against Brittle Scripts and Software Defects</a>, by Adrian Bridgwater, <a href="/wiki/Dr._Dobb%27s_Journal" title="Dr. Dobb&#39;s Journal">Dr. Dobb's Journal</a> October 26, 2011</span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.drdobbs.com/testing/how-do-we-learn-composite-app-testing-sp/232600874">How Do We Learn Composite App Testing-Speak?</a>, by Adrian Bridgwater, <a href="/wiki/Dr._Dobb%27s_Journal" title="Dr. Dobb&#39;s Journal">Dr. Dobb's Journal</a> February 14, 2012</span> </li> <li id="cite_note-cohn-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-cohn_10-0">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r999302996">.mw-parser-output cite.citation{font-style:inherit}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-subscription,.mw-parser-output .cs1-registration{color:#555}.mw-parser-output .cs1-subscription span,.mw-parser-output .cs1-registration span{border-bottom:1px dotted;cursor:help}.mw-parser-output .cs1-ws-icon a{background:linear-gradient(transparent,transparent),url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output code.cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;font-size:100%}.mw-parser-output .cs1-visible-error{font-size:100%}.mw-parser-output .cs1-maint{display:none;color:#33aa33;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left,.mw-parser-output .cs1-kern-wl-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right,.mw-parser-output .cs1-kern-wl-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}</style><cite id="CITEREFCohn2009" class="citation book cs1"><a href="/wiki/Mike_Cohn" title="Mike Cohn">Cohn, Mike</a> (2009). <span class="cs1-lock-limited" title="Free access subject to limited trial, subscription normally required"><a rel="nofollow" class="external text" href="https://archive.org/details/succeedingwithag00cohn_772"><i>Succeeding with Agile: Software Development Using Scrum</i></a></span>. Addison-Wesley Professional. p.&#160;<a rel="nofollow" class="external text" href="https://archive.org/details/succeedingwithag00cohn_772/page/n315">312</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&#160;<a href="/wiki/Special:BookSources/978-0321579362" title="Special:BookSources/978-0321579362"><bdi>978-0321579362</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=book&amp;rft.btitle=Succeeding+with+Agile%3A+Software+Development+Using+Scrum&amp;rft.pages=312&amp;rft.pub=Addison-Wesley+Professional&amp;rft.date=2009&amp;rft.isbn=978-0321579362&amp;rft.aulast=Cohn&amp;rft.aufirst=Mike&amp;rft_id=https%3A%2F%2Farchive.org%2Fdetails%2Fsucceedingwithag00cohn_772&amp;rfr_id=info%3Asid%2Fen.wikipedia.org%3AAPI+testing" class="Z3988"></span></span> </li> </ol></div></div> '
Whether or not the change was made through a Tor exit node (tor_exit_node)
false
Unix timestamp of change (timestamp)
1611872410