{"id":218,"date":"2023-05-12T09:30:51","date_gmt":"2023-05-12T09:30:51","guid":{"rendered":"https:\/\/razvanvancea.ro\/blog\/?p=218"},"modified":"2024-10-02T10:11:40","modified_gmt":"2024-10-02T10:11:40","slug":"unveiling-the-limitations-of-gherkin-syntax-in-software-test-automation","status":"publish","type":"post","link":"https:\/\/razvanvancea.ro\/blog\/2023\/05\/12\/unveiling-the-limitations-of-gherkin-syntax-in-software-test-automation\/","title":{"rendered":"Unveiling the Limitations of Gherkin Syntax in Software &#8211; WEB &#8211; Test Automation"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div>\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"218\" class=\"elementor elementor-218\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-48c4088 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"48c4088\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-fed9756\" data-id=\"fed9756\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-01ee575 elementor-widget elementor-widget-text-editor\" data-id=\"01ee575\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Software test automation has revolutionized the way we ensure the quality and reliability of our applications. One popular approach is using <a href=\"https:\/\/cucumber.io\/docs\/gherkin\/reference\/\" target=\"_blank\" rel=\"noopener\">Gherkin syntax<\/a>, a structured language that promotes collaboration and communication between developers, testers, and stakeholders. Gherkin is often used in conjunction with tools like Cucumber. While Gherkin offers certain benefits, it is essential to acknowledge its limitations and question its suitability for all scenarios. In this blog article, we will explore the drawbacks of Gherkin syntax in software Web test automation, challenging the notion that it is a one-size-fits-all solution. In my personal experience, gherkin approach might be a a better approach for API automation frameworks (because the test steps are fewer and mostly common). Therefore, the following limitations I faced mainly on the web test automation frameworks<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-e272227 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"e272227\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-f644c39\" data-id=\"f644c39\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-752f59f elementor-widget elementor-widget-heading\" data-id=\"752f59f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">1. Rigidity and Limited Expressiveness<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-58cb45c elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"58cb45c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-182f3f1\" data-id=\"182f3f1\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-509a9ce elementor-widget elementor-widget-text-editor\" data-id=\"509a9ce\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Gherkin syntax follows a strict Given-When-Then structure, aiming to provide clear and concise test scenarios. However, this <strong>rigid structure<\/strong> can also be <strong>limiting<\/strong> and will <strong>increase the test development time<\/strong>. Real-world scenarios are often complex and diverse, requiring flexibility and expressive power. Gherkin&#8217;s simplicity may result in oversimplification of test cases, making it difficult to represent intricate business logic or complex workflows accurately.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-a82c256 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"a82c256\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c164164\" data-id=\"c164164\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-22c4934 elementor-widget elementor-widget-heading\" data-id=\"22c4934\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">2. Ambiguity and Overhead in Maintenance<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-aab5147 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"aab5147\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3ff5ba4\" data-id=\"3ff5ba4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-5ecbc27 elementor-widget elementor-widget-text-editor\" data-id=\"5ecbc27\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Maintaining Gherkin scenarios can <strong>become cumbersome<\/strong> over time. As applications evolve, scenarios may need to be modified or extended, which can lead to <strong>a significant overhead<\/strong> in <strong>updating<\/strong> Gherkin files. Additionally, Gherkin&#8217;s natural language format can introduce <strong>ambiguity<\/strong> and <strong>subjective interpretations<\/strong>, making it <strong>challenging<\/strong> to <strong>maintain<\/strong> consistent and reliable test cases across the entire development team. This ambiguity can hinder collaboration and <strong>impact<\/strong> the overall effectiveness of the test automation process.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-446caaa elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"446caaa\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-98ae9b2\" data-id=\"98ae9b2\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-6f34640 elementor-widget elementor-widget-heading\" data-id=\"6f34640\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">3. Difficulty in Reusing Steps<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-66e86b2 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"66e86b2\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-692d712\" data-id=\"692d712\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-99d43ae elementor-widget elementor-widget-text-editor\" data-id=\"99d43ae\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>One of the touted advantages of Gherkin syntax is its reusability of steps across different scenarios. However, managing and maintaining a reusable step library can <strong>become complex<\/strong> as the <strong>number<\/strong> of scenarios <strong>grows<\/strong>. <strong>Dependencies<\/strong> between steps can introduce a <strong>high level of coupling<\/strong>, making it <strong>difficult<\/strong> to <strong>modify<\/strong> or <strong>refactor<\/strong> <strong>steps<\/strong> without <strong>impacting multiple scenarios<\/strong>. This can lead to <strong>duplicated steps, reduced maintainability, and increased effort<\/strong> in managing the step definitions.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-9bc2ddd elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"9bc2ddd\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-45e0e06\" data-id=\"45e0e06\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-05193a1 elementor-widget elementor-widget-heading\" data-id=\"05193a1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">4. Ambiguity and Subjectivity in Natural Language<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b200913 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b200913\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8ee76b0\" data-id=\"8ee76b0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-1e45f6d elementor-widget elementor-widget-text-editor\" data-id=\"1e45f6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Gherkin relies on natural language for test case representation, which can introduce <strong>ambiguity and subjective interpretations<\/strong>. Different team members may understand and interpret the same scenario differently, leading to <strong>inconsistencies<\/strong> and <strong>misunderstandings<\/strong>. This can hinder effective collaboration and make it challenging to maintain a consistent and reliable set of test cases.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b79c304 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"b79c304\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7ea5794\" data-id=\"7ea5794\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-8b2c48d elementor-widget elementor-widget-heading\" data-id=\"8b2c48d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">5. Test development time will increase<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c07c415 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c07c415\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-2241dc0\" data-id=\"2241dc0\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-3c70826 elementor-widget elementor-widget-text-editor\" data-id=\"3c70826\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Utilizing the Gherkin approach introduces an <strong>additional layer<\/strong> in the test development process (gherkin syntax .feature files). This layer implies the connection between human-readable sentences and the underlying code. Aside from debugging and maintaining this layer too, when considering the creation of new tests,<strong> time will be spent<\/strong> searching through existing steps to determine if any can be reused. Moreover, the test design phase requires mapping the business flow into human-readable steps, finding suitable sentences for each step, and adding further time requirements.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-bc2bfc3 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"bc2bfc3\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-72ee0ec\" data-id=\"72ee0ec\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-e23bb9f elementor-widget elementor-widget-heading\" data-id=\"e23bb9f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Conclusion<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-c93f21d elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"c93f21d\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-17e4d63\" data-id=\"17e4d63\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-d7d9ba1 elementor-widget elementor-widget-text-editor\" data-id=\"d7d9ba1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>While Gherkin syntax has gained popularity as a means of promoting collaboration and communication within software development teams, <strong>in my opinion<\/strong> it is crucial to recognize its limitations. The rigidity of Gherkin&#8217;s structure can hinder its applicability in complex and evolving software projects. The potential ambiguity, overhead in maintenance, and challenges in reusability can also impact the effectiveness of Gherkin-based test automation.<\/p><p>The choice of a testing approach should be based on a thorough evaluation of the project requirements, team expertise, and the trade-offs involved.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-0d9d4e0 elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"0d9d4e0\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-0fb177d\" data-id=\"0fb177d\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-29cc5f3 elementor-widget elementor-widget-spacer\" data-id=\"29cc5f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a19f403 elementor-widget elementor-widget-text-editor\" data-id=\"a19f403\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>Enjoyed this article? Make sure to subscribe to my\u00a0<em><a href=\"https:\/\/www.youtube.com\/@LearnwithRV\" target=\"_blank\" rel=\"noopener\">YouTube Channel<\/a><\/em>\u00a0for more Test Automation tutorials, and follow me on\u00a0<a href=\"https:\/\/www.linkedin.com\/in\/razvanvancea\/\" target=\"_blank\" rel=\"noopener\"><em>LinkedIn<\/em><\/a>\u00a0and\u00a0<em><a href=\"https:\/\/twitter.com\/razvanvancea\" target=\"_blank\" rel=\"noopener\">Twitter<\/a><\/em>\u00a0for regular insights.<strong><br \/>Looking to improve your test automation skills?<br \/><\/strong>I\u2019ve created a<strong>\u00a0personalized 1-on-1 Mentoring program\u00a0<\/strong>refined to<strong>\u00a0boost YOUR skills.\u00a0<\/strong>Reach out at\u00a0<a rel=\"noopener\">iamrv@razvanvancea.ro<\/a>\u00a0for more details and\u00a0<strong>together\u00a0<\/strong>will create a<strong>\u00a0learning path\u00a0<\/strong>adapted to your<strong>\u00a0current skills and goals\u00a0<\/strong>that you are aiming for<strong>,<\/strong>\u00a0in a<strong>\u00a0timely-efficient manner\ud83d\ude80<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Software test automation has revolutionized the way we ensure the quality and reliability of our&#8230;<\/p>\n","protected":false},"author":1,"featured_media":220,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[11],"tags":[],"class_list":["post-218","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qa"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/razvanvancea.ro\/blog\/wp-content\/uploads\/2023\/05\/gherkin-example.png","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/posts\/218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/comments?post=218"}],"version-history":[{"count":17,"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/posts\/218\/revisions"}],"predecessor-version":[{"id":964,"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/posts\/218\/revisions\/964"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/media\/220"}],"wp:attachment":[{"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/media?parent=218"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/categories?post=218"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/razvanvancea.ro\/blog\/wp-json\/wp\/v2\/tags?post=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}