<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Software Evolutivo</title>
	<atom:link href="https://softwareevolutivo.com.ec/en/feed/" rel="self" type="application/rss+xml" />
	<link>https://softwareevolutivo.com.ec/en/consultora-de-software-empresarial-english/</link>
	<description>Consultora de Software Empresarial</description>
	<lastBuildDate>Tue, 30 Jul 2024 00:38:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://softwareevolutivo.com.ec/wp-content/uploads/2024/03/cropped-Perfil-Redes-Iso-32x32.png</url>
	<title>Software Evolutivo</title>
	<link>https://softwareevolutivo.com.ec/en/consultora-de-software-empresarial-english/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Essentials for Linux Server Administration</title>
		<link>https://softwareevolutivo.com.ec/en/linux-essentials/</link>
					<comments>https://softwareevolutivo.com.ec/en/linux-essentials/#respond</comments>
		
		<dc:creator><![CDATA[Mateo Martínez]]></dc:creator>
		<pubDate>Tue, 30 Jul 2024 00:33:57 +0000</pubDate>
				<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[Server]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=10125</guid>

					<description><![CDATA[<p>Servers are the backbone of computer networks, providing essential services to other devices or clients on the network. In the realm of servers, Linux has established itself as a very popular and robust option due to its stability, security, and flexibility. These servers can handle a wide variety of tasks, from hosting websites and managing databases to operating enterprise applications and email services.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/en/linux-essentials/">Essentials for Linux Server Administration</a> appeared first on <a href="https://softwareevolutivo.com.ec/en/consultora-de-software-empresarial-english">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="10125" class="elementor elementor-10125">
				<div class="elementor-element elementor-element-8b21cfe e-flex e-con-boxed e-con e-parent" data-id="8b21cfe" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
					</div>
				</div>
		<div class="elementor-element elementor-element-741f56f e-flex e-con-boxed e-con e-parent" data-id="741f56f" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-49960ec elementor-widget elementor-widget-text-editor" data-id="49960ec" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400">Servers are the backbone of computer networks, providing essential services to other devices or clients on the network. In the realm of servers, Linux has established itself as a very popular and robust option due to its stability, security, and flexibility. These servers can handle a wide variety of tasks, from hosting websites and managing databases to operating enterprise applications and email services.</span></p><p>Content:</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6e2bcde e-flex e-con-boxed e-con e-parent" data-id="6e2bcde" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-22533ec elementor-align-center elementor-widget elementor-widget-button" data-id="22533ec" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title1">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">Operating Systems</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-02cbd2b elementor-widget elementor-widget-button" data-id="02cbd2b" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title2">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">File Systems in Linux</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-164ccae elementor-widget elementor-widget-button" data-id="164ccae" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title3">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">The Role of the Server Administrator</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-63e91fe elementor-widget elementor-widget-button" data-id="63e91fe" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title4">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">Server Installation​</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-d52b48f elementor-widget elementor-widget-button" data-id="d52b48f" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title5">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">User and Permissions Management</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-17d4ebd elementor-widget elementor-widget-button" data-id="17d4ebd" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title6">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">Memory and Storage Management</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-0eaf1f3 elementor-widget elementor-widget-button" data-id="0eaf1f3" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title7">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">System Monitoring and Maintenance</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-3ac7f99 elementor-widget elementor-widget-button" data-id="3ac7f99" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title8">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">Security​</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-32d5184 elementor-widget elementor-widget-button" data-id="32d5184" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title9">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">Automation with Cron Jobs</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-1e56a0f elementor-widget elementor-widget-button" data-id="1e56a0f" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title10">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">Backup and Recovery</span>
					</span>
					</a>
				</div>
								</div>
				</div>
				<div class="elementor-element elementor-element-587e774 elementor-widget elementor-widget-button" data-id="587e774" data-element_type="widget" data-e-type="widget" data-widget_type="button.default">
				<div class="elementor-widget-container">
									<div class="elementor-button-wrapper">
					<a class="elementor-button elementor-button-link elementor-size-sm" href="#title11">
						<span class="elementor-button-content-wrapper">
						<span class="elementor-button-icon">
				<i aria-hidden="true" class="icofont icofont-link"></i>			</span>
									<span class="elementor-button-text">Package Management</span>
					</span>
					</a>
				</div>
								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-06b99e1 e-flex e-con-boxed e-con e-parent" data-id="06b99e1" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-7d4cc57 elementor-widget elementor-widget-heading" data-id="7d4cc57" data-element_type="widget" data-e-type="widget" id="title1" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Operating Systems
</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-10a4a61 e-flex e-con-boxed e-con e-parent" data-id="10a4a61" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-364edcd elementor-widget elementor-widget-text-editor" data-id="364edcd" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Unix-type operating systems are known for their robustness and wide use in servers and workstations. Below are some notable examples:</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-80091a5 e-flex e-con-boxed e-con e-parent" data-id="80091a5" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-55a4e8b elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="55a4e8b" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Unix: An old and robust operating system mainly used in servers and workstations.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Linux: Known for its flexibility and diversity of distributions.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">BSD (FreeBSD, OpenBSD, NetBSD): Unix derivatives with different focuses on security, portability, and performance.</span>
									</li>
						</ul>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-c6bca79 e-flex e-con-boxed e-con e-parent" data-id="c6bca79" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-2f1d839 elementor-widget elementor-widget-text-editor" data-id="2f1d839" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400">Linux is a Unix-like operating system with a common architecture and philosophy based on the idea that &#8220;everything is a file&#8221;. Multi-user and multitasking, it allows multiple tasks to be executed simultaneously by different users.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-e20ea27 e-flex e-con-boxed e-con e-parent" data-id="e20ea27" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-63a92ef elementor-widget elementor-widget-image" data-id="63a92ef" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img fetchpriority="high" decoding="async" width="440" height="292" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/06/Screenshot-from-2024-06-30-16-59-57.png" class="attachment-large size-large wp-image-9848" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/06/Screenshot-from-2024-06-30-16-59-57.png 440w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/06/Screenshot-from-2024-06-30-16-59-57-300x199.png 300w" sizes="(max-width: 440px) 100vw, 440px" />															</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5785def e-flex e-con-boxed e-con e-parent" data-id="5785def" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-51fba1f elementor-widget elementor-widget-text-editor" data-id="51fba1f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Linux Distributions:</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4a90767 e-flex e-con-boxed e-con e-parent" data-id="4a90767" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-b743a5f elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="b743a5f" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Rolling Release: Examples like Arch Linux and Manjaro. These distributions receive continuous updates, providing the latest features and software improvements constantly.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Fixed Release: Examples like Debian, Ubuntu, and Fedora. These distributions release specific versions with periodic updates not only for security but also for functionality. They are designed for different target audiences, such as hackers, servers, common users, gamers, among others. Some distributions are more stable than others, and each is optimized for a certain type of work.</span>
									</li>
						</ul>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5fe3e8d e-flex e-con-boxed e-con e-parent" data-id="5fe3e8d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1401755 elementor-widget elementor-widget-heading" data-id="1401755" data-element_type="widget" data-e-type="widget" id="title2" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">File Systems in Linux
</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-8b90646 e-flex e-con-boxed e-con e-parent" data-id="8b90646" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3c4e588 elementor-widget elementor-widget-text-editor" data-id="3c4e588" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400">File systems are structured methods for storing and organizing data on storage devices such as hard drives and flash drives. Each file system has distinct features that affect its performance, reliability, and ability to handle different types of data.</span></p><p><span style="font-weight: 400">Here are some file systems in Linux environments:</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-b94b440 e-flex e-con-boxed e-con e-parent" data-id="b94b440" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-c0ae621 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="c0ae621" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Ext4: Default in many distributions, known for its performance and reliability.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Btrfs: Designed to handle large data sets with high redundancy and scalability.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">XFS: Suitable for very large file systems.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">NTFS, FAT32: Compatible with Windows, commonly used on portable drives.</span>
									</li>
						</ul>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-b2ac259 e-flex e-con-boxed e-con e-parent" data-id="b2ac259" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-f511b1e elementor-widget elementor-widget-heading" data-id="f511b1e" data-element_type="widget" data-e-type="widget" id="title3" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">The Role of the Server Administrator
</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5a78beb e-flex e-con-boxed e-con e-parent" data-id="5a78beb" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-7ba4e36 elementor-widget elementor-widget-text-editor" data-id="7ba4e36" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Key Skills:</p>								</div>
				</div>
				<div class="elementor-element elementor-element-de4a1bf elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="de4a1bf" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Access control: Managing permissions and user authentication.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">System monitoring: Using tools like top, htop, and ps to monitor processes and resources.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Resource management: Efficiently managing CPU, memory, and storage.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Troubleshooting: Resolving issues through logs and diagnostic tools.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Software installation and maintenance: Using package managers like APT and DNF (formerly YUM).</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Creating backups: Planning and executing regular backups.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Documentation: Keeping detailed records of configurations and changes.</span>
									</li>
						</ul>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-cca243a e-flex e-con-boxed e-con e-parent" data-id="cca243a" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-5b75c64 elementor-widget elementor-widget-text-editor" data-id="5b75c64" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Specific Roles:</p>								</div>
				</div>
				<div class="elementor-element elementor-element-6f53710 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="6f53710" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">DevOps Engineer: Focused on continuous integration and delivery in software development.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Site Reliability Engineer: Ensures the operation and reliability of systems.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Security Operations Engineer: In charge of network and application-level security.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Network Engineer, Database Administrator, Cloud Engineer, etc.</span>
									</li>
						</ul>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-1e3cb7a e-flex e-con-boxed e-con e-parent" data-id="1e3cb7a" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-8893ef0 elementor-widget elementor-widget-heading" data-id="8893ef0" data-element_type="widget" data-e-type="widget" id="title4" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Server Installation</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6fadb47 e-flex e-con-boxed e-con e-parent" data-id="6fadb47" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-46c3941 elementor-widget elementor-widget-text-editor" data-id="46c3941" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Installation Methods:</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-fd885c5 e-flex e-con-boxed e-con e-parent" data-id="fd885c5" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-06bac7c elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="06bac7c" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Direct installation: Download an ISO image and use it to install the operating system on the hardware.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Virtualization: Using software like VirtualBox or KVM to create virtual machines. <br>Type 1 Hypervisor: Example: VMware ESXi, KVM installed directly on the hardware. <br>Type 2 Hypervisor: Example: VirtualBox installed on a host operating system.</span>
									</li>
						</ul>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-50a0bdb e-flex e-con-boxed e-con e-parent" data-id="50a0bdb" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-91567e2 elementor-widget elementor-widget-heading" data-id="91567e2" data-element_type="widget" data-e-type="widget" id="title5" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">User and Permissions Management
</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a04ee65 e-flex e-con-boxed e-con e-parent" data-id="a04ee65" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-29f57e7 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="29f57e7" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Creating users: </span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">useradd username</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Assigning passwords:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">passwd nombre_usuario</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Group management:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">groupadd groupname</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">usermod -aG groupname username</span>
									</li>
						</ul>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3897efe e-flex e-con-boxed e-con e-parent" data-id="3897efe" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-e3b4707 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="e3b4707" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Basic permissions: chmod to change permissions, chown to change owner.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">chmod 755 file</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">chown user:group file</span>
									</li>
						</ul>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-91eaaba e-flex e-con-boxed e-con e-parent" data-id="91eaaba" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-331fedc elementor-widget elementor-widget-heading" data-id="331fedc" data-element_type="widget" data-e-type="widget" id="title6" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Memory and Storage Management
</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-7b97b04 e-con-full e-flex e-con e-parent" data-id="7b97b04" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-c6e4eb3 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="c6e4eb3" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Viewing Storage Devices:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">lsblk</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Partition Management:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">fdisk /dev/sdX</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">parted /dev/sdX</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Formatting Partitions with Different File Systems:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">mkfs.ext4 /dev/sdX1</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">mkfs.xfs /dev/sdX1</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">mkfs.btrfs /dev/sdX1</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">mkfs.ntfs /dev/sdX1</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">mkfs.fat -F 32 /dev/sdX1</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Mounting and Unmounting File Systems:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">mount /dev/sdX1 /mnt</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">umount /mnt</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Viewing Storage Space:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">df -h</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">du -sh /ruta</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Managing Logical Volumes with LVM: <br>LVM (Logical Volume Manager) is a storage management technology that allows you to manage logical volumes in Linux in a flexible and dynamic way. This is a very broad topic. We will delve deeper into LVM in a dedicated blog where we will explore each command and its practical application in Linux storage management scenarios.</span>
									</li>
						</ul>
						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-66e2fd8 e-flex e-con-boxed e-con e-parent" data-id="66e2fd8" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-42f8fb3 elementor-widget elementor-widget-heading" data-id="42f8fb3" data-element_type="widget" data-e-type="widget" id="title7" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">System Monitoring and Maintenance
</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-48811bc e-con-full e-flex e-con e-parent" data-id="48811bc" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-4cac9bb elementor-widget elementor-widget-image" data-id="4cac9bb" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
															<img decoding="async" width="769" height="512" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/06/Screenshot-from-2024-06-30-18-34-46.jpg" class="attachment-large size-large wp-image-9913" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/06/Screenshot-from-2024-06-30-18-34-46.jpg 769w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/06/Screenshot-from-2024-06-30-18-34-46-300x200.jpg 300w" sizes="(max-width: 769px) 100vw, 769px" />															</div>
				</div>
				<div class="elementor-element elementor-element-5f60f7f elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="5f60f7f" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Monitoring Processes and Resources:</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>ps command: Lists running processes.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">ps aux</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>top command: Monitors real-time resource usage.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">top</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>lsof command: Lists open files and the processes that use them.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">lsof -i :80 </span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Find process ID:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">pidof process_name</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">The kill -15 PID command is used to send a termination signal to the process specified by its PID. The -15 can be replaced with the number -9, which corresponds to the SIGKILL signal that forces the immediate termination of the process without allowing it to perform any cleanup or orderly shutdown of resources.</span>
									</li>
						</ul>
						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-56458c4 e-con-full e-flex e-con e-parent" data-id="56458c4" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-aa9d378 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="aa9d378" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Managing Daemons and Services:</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Using systemd:</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Create and manage daemons</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">systemctl start service_name</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">systemctl enable service_name</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>To create a new custom service in systemd, you must create a unit file in the /etc/systemd/system/ directory. <br><a href="https://gist.github.com/mmartinezu/ca1eae35daab3d75b837bf60f568fcb5" target="_blank">Example</a>Here is an example of a unit file for the D-Bus service (a messaging system that allows different applications to communicate with each other). This file configures how the D-Bus service should start, stop, and reload on the system, along with its dependencies and environment settings.</span>
									</li>
						</ul>
						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-2c820d8 e-flex e-con-boxed e-con e-parent" data-id="2c820d8" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-bd96186 elementor-widget elementor-widget-heading" data-id="bd96186" data-element_type="widget" data-e-type="widget" id="title8" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Security</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-baa5f63 e-flex e-con-boxed e-con e-parent" data-id="baa5f63" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3643f0f elementor-widget elementor-widget-text-editor" data-id="3643f0f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Ensuring security on Linux systems involves implementing appropriate practices and tools to protect the system from unauthorized access and vulnerabilities. Here are some basic measures and how to use specific tools to configure firewalls and manage updates:</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-78f92a3 e-con-full e-flex e-con e-parent" data-id="78f92a3" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-4fce46c elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="4fce46c" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Firewall Configuration:</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Using ufw (Ubuntu): </span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">ufw allow 22/tcp </span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">ufw enable</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Using firewalld (CentOS,  Fedora, Red Hat, Oracle Linux): </span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">firewall-cmd --permanent --add-service=http</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">firewall-cmd --reload</span>
									</li>
						</ul>
						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-48911eb e-con-full e-flex e-con e-parent" data-id="48911eb" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-6753c6a elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="6753c6a" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Managing Updates and Patches:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">apt update &amp;&amp; apt upgrade (Debian/Ubuntu)</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">dnf update (Red Hat/CentOS)</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>SSH Configuration: Securing Remote Access:</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Changes in SSH: Edit /etc/ssh/sshd_config, the following changes are recommended:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Change the SSH port</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Disable root access</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Restrict specific users</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Configure public key authentication</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Limit weak protocols and ciphers</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Configure timeout and attempt limits</span>
									</li>
						</ul>
						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-241c3a0 e-flex e-con-boxed e-con e-parent" data-id="241c3a0" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-ab4565f elementor-widget elementor-widget-heading" data-id="ab4565f" data-element_type="widget" data-e-type="widget" id="title9" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Automation with Cron Jobs
</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2af4407 e-flex e-con-boxed e-con e-parent" data-id="2af4407" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-41420a4 elementor-widget elementor-widget-text-editor" data-id="41420a4" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Configuring and using cron jobs effectively helps automate routine processes and maintain the consistency and efficiency of the Linux operating system. It is important to regularly check existing cron jobs and ensure they work as expected to avoid problems and maintain system integrity.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-421f49d e-con-full e-flex e-con e-parent" data-id="421f49d" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-a2b92c1 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="a2b92c1" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Checking the Status of the Cron Daemon:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">systemctl status cron</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Creating Cron Jobs:</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Edit crontab: </span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">crontab -e</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Crontab syntax: minute hour day_month month day_week command</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Example (Run backup.sh every day at 2 AM):</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">0 2 * * * /path/to/backup.sh </span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>List cron jobs:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">crontab -l</span>
									</li>
						</ul>
						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-f874cee e-flex e-con-boxed e-con e-parent" data-id="f874cee" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-87f97c7 elementor-widget elementor-widget-heading" data-id="87f97c7" data-element_type="widget" data-e-type="widget" id="title10" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Backup and Recovery
</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3ca6040 e-con-full e-flex e-con e-parent" data-id="3ca6040" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-7f08aff elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="7f08aff" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Backup Methods:</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Backup with tar:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">tar -czf /path/destination/backup.tar.gz /path/source</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Incremental backup with rsync:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">rsync -av --delete /path/source /path/destination</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Using Backup Tools:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">duplicity</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">borg</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Recovery Strategies:</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Restore files with tar:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">tar -xzf backup.tar.gz -C /path/destination</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Restore files with rsync:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-code"></i>						</span>
										<span class="elementor-icon-list-text">rsync -av /path/destination /path/source</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>Disaster Recovery Planning:</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Document recovery procedures.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Regularly test restoration.</span>
									</li>
						</ul>
						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-09a0320 e-flex e-con-boxed e-con e-parent" data-id="09a0320" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-8909dcb elementor-widget elementor-widget-heading" data-id="8909dcb" data-element_type="widget" data-e-type="widget" id="title11" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Package Management
</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4b05aaf e-con-full e-flex e-con e-parent" data-id="4b05aaf" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-de7c845 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="de7c845" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text">Package Managers:</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>APT (Debian/Ubuntu):</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Update package list: sudo apt update</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Install a package: sudo apt install package_name</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Remove a package: sudo apt remove package_name</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>YUM (Red Hat/CentOS):</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Update package list: sudo yum update</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Install a package: sudo yum install package_name</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Remove a package: sudo yum remove package_name</span>
									</li>
								<li class="elementor-icon-list-item">
										<span class="elementor-icon-list-text"><br>DNF (Fedora/CentOS 8+):</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Update package list: sudo dnf update</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Install a package: sudo dnf install package_name</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="far fa-dot-circle"></i>						</span>
										<span class="elementor-icon-list-text">Remove a package: sudo dnf remove package_name</span>
									</li>
						</ul>
						</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-3aa3c50 e-flex e-con-boxed e-con e-parent" data-id="3aa3c50" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-c9a2e8d elementor-widget elementor-widget-text-editor" data-id="c9a2e8d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400">In conclusion, Linux server administration encompasses a wide range of skills and knowledge from initial installation and configuration to continuous monitoring, maintenance, and security.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-7b5dfd2 e-flex e-con-boxed e-con e-parent" data-id="7b5dfd2" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-59f564e elementor-widget elementor-widget-spacer" data-id="59f564e" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-d99c71f elementor-widget elementor-widget-witr_section_call_to_ac" data-id="d99c71f" data-element_type="widget" data-e-type="widget" data-widget_type="witr_section_call_to_ac.default">
				<div class="elementor-widget-container">
								<!-- themex call to action 3 -->

		<div class=" all_cal_color">
			<div class="cal_to_toggole">
					<div class="themex_content col_content_width_100 text-left">
						<!-- top title -->
														
								<h5>Get to know our services</h5>																	
							
						<!-- middle title -->
														
								<h2>Application and Services Orchestration</h2>																	
												<!-- bottom title -->
													<!-- content -->
													<p>Our approach to Kubernetes is designed to boost the scalability of your IT infrastructure. </p>		
							
					
					</div>
				<!-- button -->
						
						<div class="themex_button no_margin text-right">						
							<a href="https://softwareevolutivo.com.ec/orquestacion-de-aplicaciones-y-servicios-2/" > 							
								See more								<!-- icon -->
																	<i class="icofont-paper-plane"></i>
																							
							</a>
						</div>
								
			</div>
		</div>
					</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/en/linux-essentials/">Essentials for Linux Server Administration</a> appeared first on <a href="https://softwareevolutivo.com.ec/en/consultora-de-software-empresarial-english">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/en/linux-essentials/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DevOps: CI/CD in Agile Development Projects</title>
		<link>https://softwareevolutivo.com.ec/en/devops-ci-cd-en/</link>
					<comments>https://softwareevolutivo.com.ec/en/devops-ci-cd-en/#respond</comments>
		
		<dc:creator><![CDATA[Mateo Martínez]]></dc:creator>
		<pubDate>Tue, 12 Mar 2024 21:04:43 +0000</pubDate>
				<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Continuous Delivery]]></category>
		<category><![CDATA[Continuous Deployment]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=9204</guid>

					<description><![CDATA[<p>DevOps (Development - Operations) is a comprehensive approach that seeks to improve collaboration between development and operations teams, enabling agile software deliveries without compromising the stability of the organization's operations.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/en/devops-ci-cd-en/">DevOps: CI/CD in Agile Development Projects</a> appeared first on <a href="https://softwareevolutivo.com.ec/en/consultora-de-software-empresarial-english">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9204" class="elementor elementor-9204">
				<div class="elementor-element elementor-element-0ca2848 e-flex e-con-boxed e-con e-parent" data-id="0ca2848" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4aa3fae elementor-widget elementor-widget-text-editor" data-id="4aa3fae" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400">In agile software development projects, the quality of the outcome, the speed of product delivery, and fault tolerance are fundamental aspects of their success. In this context, DevOps (Development &#8211; Operations) has emerged as a comprehensive approach that seeks to improve collaboration between development and operations teams. Its main objective is to enable agile software deliveries without compromising the stability of the organization&#8217;s operations.</span></p><p><span style="font-weight: 400">By implementing DevOps, the objective is to adhere to the principles established in the Agile Manifesto. Particularly, the principle that emphasizes early and continuous delivery of valuable software to satisfy the customer aligns perfectly with DevOps&#8217; philosophy of offering changes quickly and reliably.</span></p><p><span style="font-weight: 400">Within DevOps, an important term &#8220;pipelines&#8221; emerges and is defined as a series of automated steps that enable continuous software integration (CI) and continuous software delivery (CD). This ensures that code is incorporated, tested, and deployed seamlessly, making it easier for development teams to deliver agile and reliable changes.</span></p><p><span style="font-weight: 400">DevOps is not just about adopting new technological tools and accelerating processes; it&#8217;s about a cultural shift that aims to promote communication and collaboration among teams. DevOps processes are not static but rather organic and evolutionary. Each development team has its own unique needs and challenges, so there is no one-size-fits-all magic recipe or approach.</span></p><p><span style="font-weight: 400">Implementing DevOps in an organization will result in increased agility, resilience, and innovation capability.</span></p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5e9d3ce e-flex e-con-boxed e-con e-parent" data-id="5e9d3ce" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-36a9cbd elementor-widget elementor-widget-text-editor" data-id="36a9cbd" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1>Continuous Integration (CI)</h1>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-e98069d e-flex e-con-boxed e-con e-parent" data-id="e98069d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-d69f0bf elementor-widget elementor-widget-text-editor" data-id="d69f0bf" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>This process has its origin in the agile methodology of Extreme Programming, which seeks to deliver high-quality software quickly and continuously. CI seeks to integrate the work of each of the developers constantly. Each integration must be supported by automated tests that detect errors and correct them as soon as possible.</p><p>The main goal of CI is to reduce the risk of errors and integration conflicts that hinder the progress of a project. One reason for adopting Continuous Integration (CI) is to avoid the dreaded &#8220;Big Bang Integration,&#8221; which is the practice of integrating large volumes of code from different developers or teams at the end of the development cycle, rather than integrating it continuously throughout the process.</p><p>Trunk Based Development (TBD) is a software development strategy that promotes continuous integration by reducing the complexity of merging changes and encouraging teams to integrate their work frequently into the main branch, so CI is closely related to TBD.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-40dbee1 e-flex e-con-boxed e-con e-parent" data-id="40dbee1" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3ef152b elementor-widget elementor-widget-text-editor" data-id="3ef152b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1>Continuous Delivery (CD)</h1>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ce68c5b e-flex e-con-boxed e-con e-parent" data-id="ce68c5b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-0b61823 elementor-widget elementor-widget-text-editor" data-id="0b61823" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>When the code has passed through CI, all members of the development team will have the latest code changes available, which is very useful. But software development has to follow its lifecycle, and that&#8217;s precisely the help that this first variant of CD will give us, which is defined as a series of automated steps to ensure that the code is in a deployable state, meaning all its artifacts (.jar, .war, container image) ready for someone to decide and deploy them on a server.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-9b1271d e-flex e-con-boxed e-con e-parent" data-id="9b1271d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-bd0f436 elementor-widget elementor-widget-text-editor" data-id="bd0f436" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1>Continuous Deployment (CD)</h1>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-1633340 e-flex e-con-boxed e-con e-parent" data-id="1633340" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-71a26f9 elementor-widget elementor-widget-text-editor" data-id="71a26f9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>This second variant of CD complements the first one, with the major difference that in this case, not only are the artifacts made ready for someone to deploy them, but the deployment on the server is automatic.</p><p>To achieve this, it is essential to have the appropriate tools and infrastructure that allow changes to be made without affecting services in production, known as Zero-Downtime Deployment.</p><p>The idea behind Zero-Downtime Deployment is to ensure that end users can continue using the application without experiencing any downtime. This is achieved through the implementation of specific strategies and techniques that allow the deployment of new versions of the application. Among the most common strategies are:</p><ul><li><strong>&#8211; Blue-green deployment</strong>: Deploys two production environments, where one is active and the other is updated. Once the new version has been tested, traffic is redirected to the new environment.</li><li><strong>&#8211; Canary deployment</strong>: Implements a new version initially for a small group of users or servers, allowing it to be tested before fully deploying it.</li><li><strong>&#8211; Rolling deployment</strong>: Deploys new versions of the application in stages or sequentially in different parts of the infrastructure, keeping the application online throughout the process.</li></ul><p>Going back to CI and CD, we have several tools on the market that can help us run pipelines in our projects: Jenkins, GitLab, Travis CI, CircleCI, Spinnaker, AWS CodeDeploy, and Azure DevOps, among others.</p><p>Particularly, &#8220;GitLab&#8221; is a tool for the company &#8220;Software Evolutivo&#8221; is one of the best not only for DevOps but also for managing and planning software projects. Surely, we will soon delve into this tool in another blog post that we will leave for you in the recommended readings.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-498f0c2 e-flex e-con-boxed e-con e-parent" data-id="498f0c2" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4bad396 elementor-widget elementor-widget-text-editor" data-id="4bad396" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1>How to design a CI/CD pipeline for a project?</h1>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-dd92d2d e-flex e-con-boxed e-con e-parent" data-id="dd92d2d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-ad3b5ee elementor-widget elementor-widget-text-editor" data-id="ad3b5ee" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li>&#8211; Identify the complete workflow and lifecycle of your project from zero to the moment it goes out to a production environment or whatever the target environment is.</li><li>&#8211; Determine the steps your pipeline should follow to automate the identified lifecycle.</li></ul><p>At this point, you should have everything outlined on paper, let&#8217;s continue:</p><ul><li>&#8211; Consider the state and technological characteristics of your project.</li><li>&#8211; Research the tools that will allow you to implement your pipeline (validate that the technological and economic resources required are within your reach).</li><li>&#8211; Define the tools to be used.</li></ul><p>It&#8217;s time to develop, and for this, the following is suggested:</p><ul><li>&#8211; Include one step at a time in your pipeline, test it, and validate that each step achieves its objective.</li><li>&#8211; Start by implementing CI from the simplest and most fundamental so that you can continue (compilation, tests).</li><li>&#8211; Continue with a CD of delivery. Achieving that your application generates and uploads its artifact to the repository you want will be a great milestone.</li><li>&#8211; When you have the artifact in the repository, you will need to find the appropriate way for your repository to connect to the server where you will deploy it.</li></ul><p>And finally, always ask for feedback from your team with the objective of continuous improvement.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-7750177 e-flex e-con-boxed e-con e-parent" data-id="7750177" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-36a2581 elementor-widget elementor-widget-text-editor" data-id="36a2581" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1>Challenges when implementing DevOps</h1>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-88edf70 e-flex e-con-boxed e-con e-parent" data-id="88edf70" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-9faf41d elementor-widget elementor-widget-text-editor" data-id="9faf41d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ul><li>&#8211; Overcoming resistance to change and fostering a culture of collaboration and shared responsibility.</li><li>&#8211; Achieving complete automation of development, testing, and deployment processes.</li><li>&#8211; Effectively communicating the benefits of DevOps and providing training and support for the transition.</li><li>&#8211; Integrating security and compliance practices without compromising delivery speed.</li><li>&#8211; Establishing a strategy for continuous monitoring and feedback to improve software performance and quality.</li><li>&#8211; Designing infrastructure and processes that can grow and adapt as projects and teams evolve.</li></ul>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-8fdc2ca e-flex e-con-boxed e-con e-parent" data-id="8fdc2ca" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-f01e28a elementor-widget elementor-widget-text-editor" data-id="f01e28a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>In conclusion, DevOps and CI/CD are two closely related concepts based on the principles of collaboration, automation, and continuous delivery to drive excellence in software development and delivery in agile environments.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3e23d1b e-flex e-con-boxed e-con e-parent" data-id="3e23d1b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-0351b7f elementor-widget elementor-widget-spacer" data-id="0351b7f" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
				<div class="elementor-element elementor-element-121ff3d elementor-widget elementor-widget-witr_section_call_to_ac" data-id="121ff3d" data-element_type="widget" data-e-type="widget" data-widget_type="witr_section_call_to_ac.default">
				<div class="elementor-widget-container">
								<!-- themex call to action 3 -->

		<div class=" all_cal_color">
			<div class="cal_to_toggole">
					<div class="themex_content col_content_width_100 text-left">
						<!-- top title -->
														
								<h5>Get to know our services</h5>																	
							
						<!-- middle title -->
														
								<h2>DevOps Culture</h2>																	
												<!-- bottom title -->
														
								<h3>Drive collaboration, agility and excellence</h3>																	
													<!-- content -->
													<p>Transform your team into a continuous delivery engine and achieve amazing results. </p>		
							
					
					</div>
				<!-- button -->
						
						<div class="themex_button no_margin text-right">						
							<a href="https://softwareevolutivo.com.ec/cultura-devops/" > 							
								See more								<!-- icon -->
																	<i class="icofont-paper-plane"></i>
																							
							</a>
						</div>
								
			</div>
		</div>
					</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/en/devops-ci-cd-en/">DevOps: CI/CD in Agile Development Projects</a> appeared first on <a href="https://softwareevolutivo.com.ec/en/consultora-de-software-empresarial-english">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/en/devops-ci-cd-en/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cucumber + Spring boot 2 + Junit 5</title>
		<link>https://softwareevolutivo.com.ec/en/cucumber-spring-boot-2-junit-5-2/</link>
					<comments>https://softwareevolutivo.com.ec/en/cucumber-spring-boot-2-junit-5-2/#respond</comments>
		
		<dc:creator><![CDATA[Johannes Caranqui]]></dc:creator>
		<pubDate>Wed, 06 Mar 2024 02:17:40 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[spring boot]]></category>
		<category><![CDATA[test acceptance]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=9113</guid>

					<description><![CDATA[<p>When proper testing is not carried out, the cost of fixing an error in production is high. Therefore, implementing good testing techniques helps us sleep better at night. Including the development and business teams in automated testing would be a significant step forward in keeping code and requirements under control. This is where acceptance testing and BDD come into play; a solid implementation and requirement planning are essential in this stage of development.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/en/cucumber-spring-boot-2-junit-5-2/">Cucumber + Spring boot 2 + Junit 5</a> appeared first on <a href="https://softwareevolutivo.com.ec/en/consultora-de-software-empresarial-english">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9113" class="elementor elementor-9113">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-85ce7c7 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="85ce7c7" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e323cba" data-id="e323cba" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-4bb4968 elementor-widget elementor-widget-text-editor" data-id="4bb4968" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p><span style="background-color: transparent;vertical-align: baseline"><span style="color: #000000;font-family: Arial;font-size: 12pt">When proper testing is not carried out, the cost of fixing an error in production is high. Therefore, implementing good testing techniques helps us sleep better at night. Including the development and business teams in automated testing would be a significant step forward in keeping code and requirements under control. This is where <span style="font-family: Georgia, Palatino">acceptance testing and BDD</span> come into play; a solid implementation and requirement planning are essential in this stage of development.</span></span></p><p><span style="font-family: Arial, Helvetica, sans-serif;color: #000000;font-size: 12pt">As background, let&#8217;s understand that <span style="font-family: Georgia, Palatino"><a href="https://cucumber.io/">Cucumber</a></span> is a TDD testing software that allows us to create automated tests based on easily understandable acceptance criteria by stakeholders involved in the process. We will implement it in this tutorial along with <span style="font-family: Georgia, Palatino"><a href="https://spring.io/projects/spring-boot">Spring Boot</a></span> and <span style="font-family: Georgia, Palatino"><a href="https://junit.org/junit5/">JUnit</a></span>.</span></p><p><span style="font-family: Arial, Helvetica, sans-serif;color: #000000">To begin, we need a basic project with Spring Boot 2. In this tutorial, we will create it using <span style="font-family: Georgia, Palatino"><a href="https://start.spring.io/">Spring Initializer</a></span>, an API that generates projects with their dependencies, simplifying the startup stage. Alternatively, you can use the Spring Boot plugin for IntelliJ or Visual Studio Code.</span></p><p><b style="font-weight: normal"></b><span style="font-family: Arial, Helvetica, sans-serif;color: #000000">We will use the following configuration: </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 660px;height: 318px"><img decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh4.googleusercontent.com/PGX81K76UH5KJXaCqomM-fMIxQb-rSD73je9w3RP7Usa46az8TjAZzQAMl_wbN54Eou6B3cMLlbH_QbY78C5mYVO42MsYu-3c_hDEFoX2Iy5JSMpx_kFJSC0PvNvuqc7qN6G2wb1W67Z8tTeDAZkvhawRPMIFQ7CggQ15L6RudhV-8vjOV4KvcsNivU3fA" width="660" height="318" /></span></span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9pt;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Initial configuration with Spring Boot Initializer</span></p><p><b style="font-weight: normal"> </b></p><ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px"><li dir="ltr" style="list-style-type: decimal;font-size: 15pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 15pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Cucumber and Junit 5 configuration</span></p></li></ol><div style="text-align: justify"><span style="color: #000000;font-family: Arial"><span style="font-size: 20px"><b> </b></span></span></div><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">In this step, we will add the Maven dependencies (libraries required for the proper functioning of Cucumber with Spring and JUnit).</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1 Maven dependencies (pom.xml)</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.1 Cucumber JVM </span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">io.cucumber</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">cucumber-java</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">7.8.1</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt"><span style="font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">We can find the list of versions <a href="https://mvnrepository.com/artifact/io.cucumber/cucumber-jvm">here</a></span><span style="font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.2 Junit and Cucumber</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">      </span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">io.cucumber</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">cucumber-junit-platform-engine</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">7.8.1</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt"><span style="font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">We can find the list of versions <a href="https://mvnrepository.com/artifact/io.cucumber/cucumber-junit-platform-engine">here</a></span><span style="font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.3 Junit platform suite </span><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(@Cucumber version of Junit4 became obsolete)</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">      </span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">org.junit.platform</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">junit-platform-suite</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.9.0</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt"><span style="font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">We can find the list of versions </span><span style="font-family: Arial, Helvetica, sans-serif"><a href="https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite" target="_blank" rel="noopener">here</a></span><span style="font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></span></p><p dir="ltr"> </p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.4 Finally Spring and Cucumber</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">io.cucumber</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">cucumber-spring</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">7.8.1</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">      </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt"><span style="font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">We can find the list of versions </span><span style="font-family: Arial, Helvetica, sans-serif"><a href="https://mvnrepository.com/artifact/io.cucumber/cucumber-spring" target="_blank" rel="noopener">here</a></span><span style="font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></span></p><p><b style="font-weight: normal"> </b></p><ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="2"><li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Definition and implementation of “Features”</span></p></li></ol><p><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline">For this definition, it&#8217;s common to use <a href="https://cucumber.io/docs/gherkin/">Gherkin</a>; being high-level, it&#8217;s not so technical, thus it&#8217;s possible to involve business personnel.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">We create </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">demo.feature </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">file </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/java/&lt;paquete&gt;/cucumber/features </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">with the following content:</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Feature</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">: the hello endpoint can be retrieved</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">     </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Scenario</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">: client makes call to GET greeting endpoint</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Given </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">client wants to write username</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">When </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">client calls greeting endpoint</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Then </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">client receives hello text and username</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"> </p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">The content should not contain many technical definitions; let&#8217;s remember that the objective is to involve the entire team.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Definition of steps:</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Given: </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Establishing a situation in which we configure the test.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">When:</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> Action taken or an event occurs.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Then: </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Expecting something to happen or being able to verify it.</span></p><p><b style="font-weight: normal"> </b></p><ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="3"><li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Setting up entry points</span></p></li></ol><p style="text-align: justify"><span style="background-color: transparent;text-align: justify;vertical-align: baseline"><span style="text-align: left;font-size: 14.6667px"><span style="color: #000000;font-family: Arial">The following class serves as the entry point for Cucumber to execute the tests. It can be named anything, but always considering conventions.</span></span></span></p><p style="text-align: justify"><span style="background-color: transparent;text-align: justify;vertical-align: baseline"><span style="color: #000000;font-family: Arial"><span style="font-size: 11pt">We create </span></span></span><span style="background-color: transparent;text-align: justify;font-size: 11pt;font-family: Arial;color: #000000;font-weight: bold;vertical-align: baseline">CucumberTest.java</span><span style="background-color: transparent;text-align: justify;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline"> class in </span><span style="background-color: transparent;text-align: justify;font-size: 11pt;font-family: Arial;color: #4a86e8;font-style: italic;vertical-align: baseline">src/test/java/&lt;paquete&gt;/cucumber </span><span style="background-color: transparent;text-align: justify;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline">with the following content:</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   @</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Suite</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   @</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">IncludeEngines</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;cucumber&#8221;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   @</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">SelectClasspathResource</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;com/sevolutivo/demo/cucumber/features&#8221;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   @</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">ConfigurationParameter</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(key = GLUE_PROPERTY_NAME, value = </span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;com.sevolutivo.demo.cucumber.stepDefs&#8221;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   </span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 8.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberTest</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   }</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@Suite</span><span style="font-size: 10pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> y </span><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@IncludeEngines(&#8220;cucumber&#8221;)</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span><span style="background-color: transparent;vertical-align: baseline"><span style="color: #000000;font-family: Arial"><span style="font-size: 14.6667px">they are the equivalent of the old @Cucumber annotation, but it became obsolete with version 7 of Cucumber.</span><span style="font-size: 11pt"> </span></span></span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">In JUnit 5, we can define the cucumber options in the </span><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">junit-platform.properties </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">file, located in the tests resources folder.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@SelectClasspathResource(&#8220;&lt;paquete&gt;/cucumber/features&#8221;)</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> tell us within the resources folder where we have </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">.feature </span><span style="color: #000000;font-family: Arial;font-size: 14.6667px">files.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p><span style="text-align: justify;font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;vertical-align: baseline">@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = &#8220;&lt;paquete&gt;.cucumber.stepDefs&#8221;)</span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline"> we are telling it where the glue classes are located, that is, the steps.</span></p><p><b style="font-weight: normal"> </b></p><ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="4"><li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Additional optional configuration (junit-platform.properties)</span></p></li></ol><div style="text-align: justify"><span style="color: #000000;font-family: Arial"><span style="font-size: 21.3333px"><b> </b></span></span></div><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">We create </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">junit-platform.properties</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> file in </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/resources </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">with the following content:</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> cucumber.publish.quiet=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">true</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> cucumber.publish.enabled=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">false</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> cucumber.plugin=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">pretty, html:target/cucumber-reports/Cucumber.html,   json:target/cucumber-reports/Cucumber.json,junit:target/cucumber-reports/Cucumber.xml</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="text-align: justify;line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="text-align: left;font-size: 14.6667px"><span style="color: #000000;font-family: Arial">In the above example, we are removing the banner that appears when running cucumber and instructing it not to publish the results to its cloud service. Additionally, we are generating reports locally in HTML, JSON, and XML formats in the target/cucumber-reports directory.</span></span></p><p dir="ltr" style="text-align: justify;line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 11pt"> </span></p><ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="5"><li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Spring configuration</span></p></li></ol><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="color: #000000;font-family: Arial"><span style="font-size: 14.6667px">Let&#8217;s configure Cucumber to make use of the Spring context with the <b>@SpringBootTest </b>annotation. We&#8217;ll also inject <b>TestRestTemplate</b> for making Rest calls.</span></span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">We create </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberSpringConfiguration.java</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> file in </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/java/&lt;paquete&gt;/cucumber</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">:</span></p><p> </p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">SpringBootTest</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(webEnvironment=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">SpringBootTest</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">WebEnvironment</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">RANDOM_PORT</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberSpringConfiguration</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       @</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Autowired</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">protected</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">TestRestTemplate</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">testRestTemplate</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   }</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">To verify proper functionality, run </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">./mvnw clean verify</span> <span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">in the console, and the result should be similar to the following content:</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 624px;height: 425px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/A-uPXAfEVj-8thnTrTS5TFdDBaLlOSiSGxEhWgX891C1gHGHZBAZ8FW6YIfCTicPPC-aKijpAwFcmu-c6jHI61srR4emh1_aG_EAulKbc4Ko19b2W8UqOPm8R48mVjnhqLdHNSFjQbW-S5mc9Kpxw6mELhZy4qyEG4n2sFgcnyQY_3DBYG7Zna5Bp-FCdw" width="624" height="425" /></span></span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">We can see that it doesn&#8217;t find the step definitions and suggests implementing them according to its recommendations.</span></p><p><b style="font-weight: normal"> </b></p><ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="6"><li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Implementation of steps (steps or glue code)</span></p></li></ol><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="text-align: justify;line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="background-color: transparent;vertical-align: baseline"><span style="text-align: left;font-size: 14.6667px"><span style="color: #000000;font-family: Arial">The steps are the mapping of each step of the scenario defined in the .feature file. This class has the <b>@CucumberContextConfiguration</b> notation, which makes Cucumber use it as the Spring context configuration.</span></span></span></p><p dir="ltr" style="text-align: justify;line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="background-color: transparent;vertical-align: baseline"><span style="text-align: left;font-size: 14.6667px"><span style="color: #000000;font-family: Arial"> </span></span></span></p><p dir="ltr" style="text-align: justify;line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt"><span style="background-color: transparent;vertical-align: baseline"><span style="color: #000000;font-family: Arial"><span style="font-size: 11pt">We create </span></span></span><span style="background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;font-weight: bold;vertical-align: baseline">DemoSteps.java</span><span style="background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline"> file in </span><span style="background-color: transparent;font-size: 11pt;font-family: Arial;color: #4a86e8;font-style: italic;vertical-align: baseline">src/test/&lt;paquete&gt;/cucumber/stepDefs:</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberContextConfiguration</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoSteps</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">extends</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberSpringConfiguration</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">private</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">username</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">private</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">ResponseEntity</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">response</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       @</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Given</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;client wants to write username&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">void</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">clientWantsToWriteAGreeting</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(){</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           username = </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;user001&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       }</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       @</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">When</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;client calls greeting endpoint&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">void</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">clientCallsToGreetingEndpoint</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">() {</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           response = </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">testRestTemplate</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">getForEntity</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;/greeting/&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> + username, </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">);</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       }</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       @</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Then</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;client receives hello text and username&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">void</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">clientReceivesHelloTextAndGreeting</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">() {</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Assertions</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">assertEquals</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;hello &#8220;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> + username, </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">response</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">getBody</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">());</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       }</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   }</span></p><p><b style="font-weight: normal"> </b></p><ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="7"><li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Rest API controller implementation</span></p></li></ol><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">We create controller class </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoController.java</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> with one GET </span><span style="color: #000000;font-family: Arial;font-size: 14.6667px">method</span><span style="background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline"> /greeting in  </span><span style="background-color: transparent;font-size: 11pt;font-family: Arial;color: #4a86e8;font-style: italic;vertical-align: baseline">src/main/java/&lt;paquete&gt;/web</span><span style="background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline"> that return greeting string:</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   @</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">RestController</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoController</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       @</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">GetMapping</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;/greeting/{username}&#8221;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">greeting</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">PathVariable</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">username</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">){</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">           </span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">return</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;hello &#8220;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> + username;</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">       }</span></p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">   }</span></p><p><b style="font-weight: normal"> </b></p><ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="8"><li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Execution</span></p></li></ol><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Once the entire implementation is ready, execute <span style="font-size: 14.6667px;font-weight: bold;background-color: #ffff00">./mvnw clean verify</span> and we will obtain the following content:</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 702px;height: 313px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/Q9I6lUDruL8SJqW4CmCl7UXGGJ0fT74tUK_OtqBpnJbXoycyddTDg6qP9e2Q0XcL6stHTq9wFr4fUbMz_JWzGIWNNnBJ0hWr5R6C3GRBTM7kCThi8BrNCwaF_zgt-NOOQHqBmn1IiLddY7KbHqGhBtWdRkhTOjXHD8K6YobeUpdbwUVoV0yJoOvt32IM1g" width="702" height="313" /></span></span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">If IntelliJ IDEA is used, running the implemented Cucumber tests will result in something similar to this:</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 474px;height: 179px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh5.googleusercontent.com/ln0j_Ef8X-pqzln2SndI6S-ziZoFAuKXY7GJLZGdI2SMwo46JPkJQnKHees8HB0bl_io_yA0VcsSNpUEVWJUAsSlrmrFzWk-WU5dQTMTIgREla549knDl4TokFNOGno_O-YUzTkGO05u2u-zSeByj5zi0wdC28f1D6J9vTYjowW50KyliLJkIj4i2tnJ5w" width="474" height="179" /></span></span></p><p><b style="font-weight: normal"> </b></p><ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="9"><li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Conclusions</span></p></li></ol><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Acceptance tests are an important tool if the goal is to integrate the business team and the development team, thus improving the formulation of scenarios, requirements, and analysis cases.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt;text-align: justify"><span style="color: #000000;font-family: Arial"><span style="font-size: 14.6667px">In this tutorial, we have outlined a basic case of implementation and the configuration of Cucumber, Spring Boot, and JUnit 5 to obtain a basic or reference architecture for future implementations.</span></span></p><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt;text-align: justify"><span style="color: #000000;font-family: Arial"><span style="font-size: 14.6667px"> </span></span></p><p><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline">The source code can be found on </span><a href="https://github.com/softwareevolutivo/spring-boot-cucumber" target="_blank" rel="noopener">github.com</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline">.</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/en/cucumber-spring-boot-2-junit-5-2/">Cucumber + Spring boot 2 + Junit 5</a> appeared first on <a href="https://softwareevolutivo.com.ec/en/consultora-de-software-empresarial-english">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/en/cucumber-spring-boot-2-junit-5-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
