2. Stack
● Jenkins is an open source automation server. With Jenkins,
organizations can accelerate the software development process
through automation. Jenkins manages and controls development
lifecycle processes of all kinds, including build, document, test,
package, stage, deployment, static analysis and many more
● We using to schedule the execution and publish the feedback
after the execution
3. Deployment Pipeline
DEV Git Pull Build Unit Tests SonarQube
Code Quality
Promote
new release
QA
Promote Dev
Release
Functional Tests
<automatized>
Rollback?
<conditional after
functional tests>
Functional Tests
<Manual>
Release
Tested
Production Promote QA
Release
Run Devops
routines
<Rundeck>
New Release
4. Functional Tests Stack
Cucumber makes your team
amazing. At a glance, Cucumber
might just look like another tool for
running automated tests
Capybara helps you test web applications
by simulating how a real user would
interact with your app. It is agnostic
about the driver running your tests and
comes with Rack::Test and Selenium
support built in. WebKit is supported
through an external gem.
Behavior-driven development combines
the general techniques and principles of
TDD with ideas from domain-driven
design and object-oriented analysis and
design to provide software development
and management teams with shared
tools and a shared process to
collaborate on software development.
BDD
Ruby on Rails, or simply Rails, is a
server-side web application
framework written in Ruby under the
MIT License. Rails is a
model–view–controller (MVC)
framework, providing default
structures for a database, a web
service, and web pages
Selenium-Grid allows you run your tests on different machines
against different browsers in parallel. That is, running multiple tests
at the same time against different machines running different
browsers and operating systems. Essentially, Selenium-Grid support
distributed test execution. It allows for running your tests in a
distributed test execution environment
6. Code Quality Result
We delivered one report per develop team, per CI pipeline after each deployment. Example:
● If a new technical debit was created,
the build stop the pipeline and
delivered the report to develop team
● The develop team follow this report
to fix your code