continuous integration - oracle database objects
TRANSCRIPT
Oracle Database Objects
Continuous Integration
▪ Working Methods
▪ Change Pain Risks
▪ Continuous Integration
▪ The Big Picture
▪ The Toolbox
▪ Demonstration Feedback
Agenda
Working Method
Incremental Design
Development
TestingDeployment
Delivery
Change is Permanent
Incremental Design
Development
TestingDeployment
Delivery
Requirement Changes
Distributed Team
Manual Test Executions
Integration
Request for Re-Deployment
Change Pain
Reiteration Redeployment Revalidation
Pain Risks
EffortTime to Deliver
Cost
Continuous Integration
Build and deliver software more rapidly by eliminating pain points
“Continuous Integration doesn’t get rid of bugs, but it does make them easier to find and remove” – Martin Fowler, Chief Scientist, ThoughtWorks
Continuous Integration
Integrate at least Daily
Continuous Integration (CI) is a development practice Each Check-in is verified by an automated build Integrating regularly helps to detect errors quickly
Reduces Issues with Distributed Team Environment Reduces Integration Issues
Continuous Integration
Solve Problems Quickly
No more long waiting period for results Increase visibility which enables greater communication Spend less time debugging and more time adding features Proceed in the confidence you’re building on a solid foundation Stop waiting to find out if your code’s going to work
Reduces Time/Effort consumption by Manual Test ExecutionsReduces Time/Effort involved in Redeployment
Continuous Integration
Principles and Practices
The PracticesHow to do it ?
Maintain a single source repository Automate the build Make your build self-testing Every commit should build on an integration machine Test in a clone of the production environment Make it easy for anyone to get the latest executable Everyone can see what’s happening Automate deployment
Overview
Commit Code
Version ControlCI Server
Feedback Mechanism
Feedback Mechanism
Development Team
The Big Picture
POLL ANALYZE
RESULTS
RESULTS
CI ServerVersion Control
Feedback Mechanism
Feedback Mechanism
Co
mm
it Ch
ange
s
Co
mm
it C
han
ges
BUILD SUCCESS
BUILD TEST DEPLOY
The Big Picture
BUILD FAILURE
CI Server Build & Deploy
Code Version Control
Unit Test Framework
Code Quality
The Toolbox
Why Jenkins?
Led by Developers for Developers Governance and Community Stability Primary platform for Plug-ins Cloud-Enabled
Jenkins, a continuous build tool, enables teams to focus on their work by automating the build, artifact management and deployment process
Maven helps a developer to comprehend the complete state of a development effort in the shortest period of time
Why Maven?
Making the build process easy Providing a uniform build system Controls the entire Build, Test & Deployment phase of CI Setup Change Log Documents Unit Test Reports Keep your test source code separate Easy ways to update Easy way to install new plugins
Four Steps for using UTPLSQL Install UTPLSQL Identify the test cases for a program Build a Test Package Run your test
Why utPLSQL?utPLSQL is a unit testing framework for programmers using Oracle's PL/SQL language and allows the automated testing of packages, functions and procedures
CommentsStandards
Design Complexity
BugsCoverage
Duplication
Why SonarQube Code Analysers Reporting Tools Defect Hunting Modules Time Machine Extended Functionality by Plug-in(s)
“One-Shop-Stop for Source Code Quality Management”
Continuous Integration [HUDSON] Automated Polling [HUDSON SVN] Automated Build [HUDSON SVN MAVEN] Automated Test [HUDSON SVN MAVEN UTPLSQL] Automated Code Analysis [HUDSON SVN MAVEN UTPLSQL SONAR]
DemonstrationJENKINS SVN MAVEN UTPLSQL SONAR
Summary
Prabhu Ramasamy [email protected]