From e339a15a00fd3a78571080a746c3ef35a8ccd3db Mon Sep 17 00:00:00 2001 From: TommasoLencioni Date: Tue, 5 Dec 2023 16:21:01 +0100 Subject: [PATCH 1/5] add Gherkin to languages and frameworks --- radar/languages-and-frameworks/gherkin.md | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 radar/languages-and-frameworks/gherkin.md diff --git a/radar/languages-and-frameworks/gherkin.md b/radar/languages-and-frameworks/gherkin.md new file mode 100644 index 0000000..dd74b1e --- /dev/null +++ b/radar/languages-and-frameworks/gherkin.md @@ -0,0 +1,24 @@ +--- +title: "Gherkin" +ring: adopt +quadrant: "languages-and-frameworks" +tags: [all] +--- + +Gherkin is a domain-specific language designed for describing software behavior without detailing how that behavior is implemented. It serves as a collaboration tool between technical and non-technical team members. + +### Key features: + +- **Human-Readable Syntax** + +- **Behavior-Driven Development** + +- **Structured Format** + +- **Tool Agnostic** + +### Our use cases: + +- [Test automation](https://github.com/pagopa/idpay-functional-testing) + +- [Requirement Documentation](https://pagopa.github.io/idpay-functional-testing/) \ No newline at end of file From 1605542e65bfbd03edd7e6ae5826eb8debf389f3 Mon Sep 17 00:00:00 2001 From: TommasoLencioni Date: Thu, 7 Dec 2023 16:32:37 +0100 Subject: [PATCH 2/5] add Gherkin reference --- radar/languages-and-frameworks/gherkin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radar/languages-and-frameworks/gherkin.md b/radar/languages-and-frameworks/gherkin.md index dd74b1e..8015cc7 100644 --- a/radar/languages-and-frameworks/gherkin.md +++ b/radar/languages-and-frameworks/gherkin.md @@ -5,7 +5,7 @@ quadrant: "languages-and-frameworks" tags: [all] --- -Gherkin is a domain-specific language designed for describing software behavior without detailing how that behavior is implemented. It serves as a collaboration tool between technical and non-technical team members. +[Gherkin](https://cucumber.io/docs/gherkin/reference/) is a domain-specific language designed for describing software behavior without detailing how that behavior is implemented. It serves as a collaboration tool between technical and non-technical team members. ### Key features: From 16f1d4f470c464cac4456ef747704f1b4464fc87 Mon Sep 17 00:00:00 2001 From: TommasoLencioni Date: Thu, 7 Dec 2023 17:14:06 +0100 Subject: [PATCH 3/5] expand description, key features and use cases --- radar/languages-and-frameworks/gherkin.md | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/radar/languages-and-frameworks/gherkin.md b/radar/languages-and-frameworks/gherkin.md index 8015cc7..b935649 100644 --- a/radar/languages-and-frameworks/gherkin.md +++ b/radar/languages-and-frameworks/gherkin.md @@ -7,18 +7,27 @@ tags: [all] [Gherkin](https://cucumber.io/docs/gherkin/reference/) is a domain-specific language designed for describing software behavior without detailing how that behavior is implemented. It serves as a collaboration tool between technical and non-technical team members. +Gherkin is often used to write acceptance tests. In our case serves as the foundation for test automation. Tools (e.g. [behave](https://behave.readthedocs.io/en/latest/)) interpret Gherkin syntax to execute tests and verify that the software behaves as specified. + +Gherkin files can be used as living documentation for software projects. They provide a clear and concise representation of the expected behavior, aiding in requirements understanding and maintenance. + ### Key features: -- **Human-Readable Syntax** +- **Human-Readable Syntax**: +Gherkin uses a plain-text format that is easy to understand by both technical and non-technical stakeholders. This facilitates better collaboration and communication within cross-functional teams. + -- **Behavior-Driven Development** +- **Behavior-Driven Development (BDD)**: +Gherkin is a central component of BDD methodologies, promoting collaboration between developers, testers, and business stakeholders. It allows the creation of executable specifications that ensure the development team delivers the expected functionality. -- **Structured Format** +- **Structured Format**: +Gherkin scenarios are written in a structured format using keywords such as Given, When, Then. This structure provides a clear and consistent way to define the steps of a scenario, making it easy to follow and maintain. -- **Tool Agnostic** +- **Tool Agnostic**: +Gherkin is not tied to any specific programming language or testing tool. This agnosticism allows teams to use Gherkin with various BDD tools and frameworks, fostering flexibility and adaptability. ### Our use cases: -- [Test automation](https://github.com/pagopa/idpay-functional-testing) +- [Test automation](https://github.com/pagopa/idpay-functional-testing): We use Gherkin as framework to automate funcional tests but its flexibility makes it suitable even for integration tests. At unit level the use of Gherkin can result in a proliferation of ad-hoc step definition, making the whole suite less maintainable. -- [Requirement Documentation](https://pagopa.github.io/idpay-functional-testing/) \ No newline at end of file +- [Requirement Documentation](https://pagopa.github.io/idpay-functional-testing/): Given Gherkin syntax, We parsed feature files and presented their content as documentation on the currently tested scenarios. \ No newline at end of file From 28a6c81bbed20898dc6a59d3f7ccf8861f4bb339 Mon Sep 17 00:00:00 2001 From: TommasoLencioni Date: Mon, 11 Dec 2023 18:03:32 +0100 Subject: [PATCH 4/5] modify tag --- radar/languages-and-frameworks/gherkin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radar/languages-and-frameworks/gherkin.md b/radar/languages-and-frameworks/gherkin.md index b935649..73adf4d 100644 --- a/radar/languages-and-frameworks/gherkin.md +++ b/radar/languages-and-frameworks/gherkin.md @@ -2,7 +2,7 @@ title: "Gherkin" ring: adopt quadrant: "languages-and-frameworks" -tags: [all] +tags: [testing] --- [Gherkin](https://cucumber.io/docs/gherkin/reference/) is a domain-specific language designed for describing software behavior without detailing how that behavior is implemented. It serves as a collaboration tool between technical and non-technical team members. From d6c91eba13c68996a571a43bb051ceda0519a9c8 Mon Sep 17 00:00:00 2001 From: TommasoLencioni Date: Tue, 12 Dec 2023 14:11:57 +0100 Subject: [PATCH 5/5] move Gherkin to trial ring --- radar/languages-and-frameworks/gherkin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radar/languages-and-frameworks/gherkin.md b/radar/languages-and-frameworks/gherkin.md index 73adf4d..27a8bd2 100644 --- a/radar/languages-and-frameworks/gherkin.md +++ b/radar/languages-and-frameworks/gherkin.md @@ -1,6 +1,6 @@ --- title: "Gherkin" -ring: adopt +ring: trial quadrant: "languages-and-frameworks" tags: [testing] ---