SlideShare a Scribd company logo
1 of 42
David Hong • Jecelyn Yeen
PRAGMATIC
BATCH PROCESS MANAGEMENT
&
DEVELOPER TESTING
Agenda
Batch Process Management
• Problems.
• Job Scheduling Framework, Quartz.NET
• What’s Next.
Developer Testing
• Unit testing.
• End to end testing.
BATCH PROCESS MANAGEMENT
Problems
• No Automated Deployment
• Developer spend more time in deployment.
• Cumbersome Error Log Analysis
• Support team having difficulties in
troubleshooting.
Solution - “Job Scheduling Framework"
• Quartz.NET, Open Source
• Port of Java Scheduling Framework, Quartz.
• Set up as Windows Service.
Download & Set-up Put in your job Your job is ready
Solution for No Automated Deployment
• Quartz API method with CI tool (Jenkins)
Solution for Cumbersome Error Log
Analysis
• Quartz.NET with Common Logging Framework
Integration.
• Send logging messages to Centralised Logging
Framework (ELK Stack).
Quartz.NET Features
• Provide API method to interact with main
scheduler.
• Support job execution on any .NET class that
implements the generic interface.
Quartz.NET Scheduling
• Flexible triggers and rules
with Cron Expressions.
• Time Zone specific
schedulers.
• http://www.cronmaker.com/
Example of Cron Expression
Job Scheduler’s Parameters
Job Parameter Remark
JobItemClassName Job namespace and class name . It have to be unique among the Job Item.
Example: “Speakgeek.Session” that will accept topic name as parameter
Cron Schedule For Cron Schedule go to http://www.cronmaker.com/ to generate the expression
Example: “0 0 8 1/1 * ? *” – Run every day start from 8am
File Path Your dll, exe file location, beware of the security
Example: “C:Speakgeekspeakgeek.dll or speakgeek.exe”
Argument Custom argument that you can pass to the job
Example: topic name :“BatchProcess, ContinouesIntegration”
HandleMisFire Misfired rule such as
• Execute misfired immediately
• Do nothing
Quartz.NET Clustering
• Support Clustering with Load Balancing.
What’s Next
• Expose Quartz.NET as Web Service
• Campaign Scheduler
• Reporting Scheduler
• Clustering in Quartz.NET
Benefits of Quartz.NET
• Low Set-up Time and Cost
• Flexibility in Job Scheduling
• Ease of Integration
• Maintainability with Centralised Logging
Framework
• Scalability with Clustering
Helpful Links
• Quartz.NET Official Website
• http://www.quartz-scheduler.net/
• Cron Maker
• http://www.cronmaker.com/
• Cron Maker Tutorial
• http://www.quartz-scheduler.org/documentation/quartz-1.x/tutorials/crontrigger
• Common Logging .NET
• https://github.com/net-commons/common-logging
• Geeks with Blogs with detail walkthrough
• http://bit.ly/1dzCwgA
Q & A
DEVELOPER TESTING
The Journey
Unit Testing
Unit testing
framework
Unit testable
code
Mocking Methodology
xUnit
Autofac
MEF
NSubstitute
MockQ
Test Driven
Development
Smooth Climb?
Common Challenges
“
“ AINT
NOBODY
GOT TIME
FOR THAT ”
Unit testing
framework
Unit testable
code
Mocking Methodology
Working!
• Legacy code
• Inexperienced
• Static object
• Refactoring
• Time consuming
No one knows TDD
in a proper way
1st round: Result
Start Again
Start Small
API
Principles
Mock external
references
Thorough
Repeatable
ONE condition
at a time
Isolated
http://epkulbld02:8080/view/360%20KUL/job/360%20%28T%29%20BUILD-TEST/
End to end (E2E) testing
Verify that a system meets
external requirements and
achieves its goals, testing the
entire system, from end to end
Unit vs Integration vs E2E testing
Stimulate real
user scenarios.
End to end
testing
Takes a small group of
units (2 units), tests
their behaviour as a
whole
Integration
testing
Test a small piece of
the product in
isolation
Unit
testing
E2E testing
Framework AutomationMethodology
Behaviour
Driven
Development
SpecFlow
SpecFlow
The Benefits of SpecFlow
Standard way of
defining test case
Reusable
Human
understandable
Hide away
implementation
details
Less require tech
knowledge
http://epkulbld02:8080/view/360%20KUL/job/360%20Api%20%28T%29%20TEST%20QaBeta/
The Testing Pyramid
• Fast
• Reliable
• Isolate failure
Need initialization,
slower
• Stimulate real user
• Take longer time
• Take longer time
Number of tests
Journey thus Far
Start small
Having experienced guides
Motivation
Communication
What we’ve learn
Increase code coverage
Implement unit test for defects / enhancements
Where we’re heading to
Automate performance testing
Q & A
THANK YOU

More Related Content

What's hot

Mining Performance Regression Testing Repositories for Automated Performance ...
Mining Performance Regression Testing Repositories for Automated Performance ...Mining Performance Regression Testing Repositories for Automated Performance ...
Mining Performance Regression Testing Repositories for Automated Performance ...SAIL_QU
 
ScottBritt_newresume
ScottBritt_newresumeScottBritt_newresume
ScottBritt_newresumeScott Britt
 
In-Stream Processing Service Blueprint, Reference architecture for real-time ...
In-Stream Processing Service Blueprint, Reference architecture for real-time ...In-Stream Processing Service Blueprint, Reference architecture for real-time ...
In-Stream Processing Service Blueprint, Reference architecture for real-time ...Grid Dynamics
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro - Database DevOps
 
Performance testing services
Performance testing servicesPerformance testing services
Performance testing servicesVandithaM1
 
Microsoft SQL Server Continuous Integration
Microsoft SQL Server Continuous IntegrationMicrosoft SQL Server Continuous Integration
Microsoft SQL Server Continuous IntegrationMark Ginnebaugh
 
Neotys PAC 2018 - Bruno Da Silva
Neotys PAC 2018 - Bruno Da SilvaNeotys PAC 2018 - Bruno Da Silva
Neotys PAC 2018 - Bruno Da SilvaNeotys_Partner
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtimeDBmaestro - Database DevOps
 
The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...Red Gate Software
 
Performance Testing In Software Testing | quality professionals
Performance Testing In Software Testing | quality professionalsPerformance Testing In Software Testing | quality professionals
Performance Testing In Software Testing | quality professionalsQualityProfessionals2
 
Training Webinar: Effective Platform Server Monitoring
Training Webinar: Effective Platform Server MonitoringTraining Webinar: Effective Platform Server Monitoring
Training Webinar: Effective Platform Server MonitoringOutSystems
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsPrabhu Ramasamy
 
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQuali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQualiQuali
 
Successfully migrating existing databases to Azure
Successfully migrating existing databases to AzureSuccessfully migrating existing databases to Azure
Successfully migrating existing databases to AzureRed Gate Software
 
Challenges and Best Practices of Database Continuous Delivery
Challenges and Best Practices of Database Continuous DeliveryChallenges and Best Practices of Database Continuous Delivery
Challenges and Best Practices of Database Continuous DeliveryDBmaestro - Database DevOps
 
Using Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseUsing Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseRed Gate Software
 
Automated Performance Testing
Automated Performance TestingAutomated Performance Testing
Automated Performance TestingAntonio Hernandez
 
Redgate database DevOps demo webinar (with Git & Jenkins)
Redgate database DevOps demo webinar (with Git & Jenkins)Redgate database DevOps demo webinar (with Git & Jenkins)
Redgate database DevOps demo webinar (with Git & Jenkins)Red Gate Software
 
What Is New In TestMaker 6.5
What Is New In TestMaker 6.5What Is New In TestMaker 6.5
What Is New In TestMaker 6.5Clever Moe
 

What's hot (20)

Mining Performance Regression Testing Repositories for Automated Performance ...
Mining Performance Regression Testing Repositories for Automated Performance ...Mining Performance Regression Testing Repositories for Automated Performance ...
Mining Performance Regression Testing Repositories for Automated Performance ...
 
ScottBritt_newresume
ScottBritt_newresumeScottBritt_newresume
ScottBritt_newresume
 
In-Stream Processing Service Blueprint, Reference architecture for real-time ...
In-Stream Processing Service Blueprint, Reference architecture for real-time ...In-Stream Processing Service Blueprint, Reference architecture for real-time ...
In-Stream Processing Service Blueprint, Reference architecture for real-time ...
 
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings RevealedDBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
DBmaestro's State of the Database Continuous Delivery Survey- Findings Revealed
 
Performance testing services
Performance testing servicesPerformance testing services
Performance testing services
 
Microsoft SQL Server Continuous Integration
Microsoft SQL Server Continuous IntegrationMicrosoft SQL Server Continuous Integration
Microsoft SQL Server Continuous Integration
 
Neotys PAC 2018 - Bruno Da Silva
Neotys PAC 2018 - Bruno Da SilvaNeotys PAC 2018 - Bruno Da Silva
Neotys PAC 2018 - Bruno Da Silva
 
Why retail companies can't afford database downtime
Why retail companies can't afford database downtimeWhy retail companies can't afford database downtime
Why retail companies can't afford database downtime
 
The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...The future of DevOps: fully left-shifted deployments with version control and...
The future of DevOps: fully left-shifted deployments with version control and...
 
Performance Testing In Software Testing | quality professionals
Performance Testing In Software Testing | quality professionalsPerformance Testing In Software Testing | quality professionals
Performance Testing In Software Testing | quality professionals
 
Training Webinar: Effective Platform Server Monitoring
Training Webinar: Effective Platform Server MonitoringTraining Webinar: Effective Platform Server Monitoring
Training Webinar: Effective Platform Server Monitoring
 
Continuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database ObjectsContinuous Integration - Oracle Database Objects
Continuous Integration - Oracle Database Objects
 
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQuali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
 
Successfully migrating existing databases to Azure
Successfully migrating existing databases to AzureSuccessfully migrating existing databases to Azure
Successfully migrating existing databases to Azure
 
Challenges and Best Practices of Database Continuous Delivery
Challenges and Best Practices of Database Continuous DeliveryChallenges and Best Practices of Database Continuous Delivery
Challenges and Best Practices of Database Continuous Delivery
 
Using Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your DatabaseUsing Redgate, AKS and Azure to bring DevOps to your Database
Using Redgate, AKS and Azure to bring DevOps to your Database
 
Taking Database Development to the 21st Century
Taking Database Development to the 21st CenturyTaking Database Development to the 21st Century
Taking Database Development to the 21st Century
 
Automated Performance Testing
Automated Performance TestingAutomated Performance Testing
Automated Performance Testing
 
Redgate database DevOps demo webinar (with Git & Jenkins)
Redgate database DevOps demo webinar (with Git & Jenkins)Redgate database DevOps demo webinar (with Git & Jenkins)
Redgate database DevOps demo webinar (with Git & Jenkins)
 
What Is New In TestMaker 6.5
What Is New In TestMaker 6.5What Is New In TestMaker 6.5
What Is New In TestMaker 6.5
 

Viewers also liked

Batch processing
Batch processingBatch processing
Batch processingHarish43
 
Batch processing
Batch processingBatch processing
Batch processingKen Coenen
 
Process Education on Demand
Process Education on Demand Process Education on Demand
Process Education on Demand Emerson Exchange
 
Emerson Exchange 3D plots Process Analysis
Emerson Exchange 3D plots Process AnalysisEmerson Exchange 3D plots Process Analysis
Emerson Exchange 3D plots Process AnalysisEmerson Exchange
 
Process control
Process control Process control
Process control Sadiq Rahim
 
Dynamic Process Modeling
Dynamic Process ModelingDynamic Process Modeling
Dynamic Process Modelingahmad bassiouny
 
Batch process conrol
Batch process conrol Batch process conrol
Batch process conrol Sadiq Rahim
 
C4f Batch Or Continuous
C4f Batch Or ContinuousC4f Batch Or Continuous
C4f Batch Or ContinuousM F Ebden
 
Batch processing
Batch processingBatch processing
Batch processingHarish43
 
Odata batch processing
Odata batch processingOdata batch processing
Odata batch processingAshish Agrawal
 
Fieldbus Tutorial Part 3 - Example Applications
Fieldbus Tutorial Part 3  - Example ApplicationsFieldbus Tutorial Part 3  - Example Applications
Fieldbus Tutorial Part 3 - Example ApplicationsEmerson Exchange
 
Continuos and batch process
Continuos and batch processContinuos and batch process
Continuos and batch processSadiq Rahim
 
Continuous and batch culture
Continuous and batch cultureContinuous and batch culture
Continuous and batch cultureMayur D. Chauhan
 
4.types of manufacturing system and layouts
4.types of manufacturing system and layouts4.types of manufacturing system and layouts
4.types of manufacturing system and layoutsAkash Bakshi
 
2 process-design
2 process-design2 process-design
2 process-designguru_fake
 

Viewers also liked (20)

Batch processing
Batch processingBatch processing
Batch processing
 
Batch processing
Batch processingBatch processing
Batch processing
 
Process Education on Demand
Process Education on Demand Process Education on Demand
Process Education on Demand
 
Emerson Exchange 3D plots Process Analysis
Emerson Exchange 3D plots Process AnalysisEmerson Exchange 3D plots Process Analysis
Emerson Exchange 3D plots Process Analysis
 
Process control
Process control Process control
Process control
 
Dynamic Process Modeling
Dynamic Process ModelingDynamic Process Modeling
Dynamic Process Modeling
 
Batch process conrol
Batch process conrol Batch process conrol
Batch process conrol
 
C4f Batch Or Continuous
C4f Batch Or ContinuousC4f Batch Or Continuous
C4f Batch Or Continuous
 
Batch processing
Batch processingBatch processing
Batch processing
 
Odata batch processing
Odata batch processingOdata batch processing
Odata batch processing
 
Presentation Q10
Presentation Q10Presentation Q10
Presentation Q10
 
Fieldbus Tutorial Part 3 - Example Applications
Fieldbus Tutorial Part 3  - Example ApplicationsFieldbus Tutorial Part 3  - Example Applications
Fieldbus Tutorial Part 3 - Example Applications
 
Continuos and batch process
Continuos and batch processContinuos and batch process
Continuos and batch process
 
Continuous and batch culture
Continuous and batch cultureContinuous and batch culture
Continuous and batch culture
 
Process design & steps
Process design & stepsProcess design & steps
Process design & steps
 
Process design
Process design  Process design
Process design
 
4.types of manufacturing system and layouts
4.types of manufacturing system and layouts4.types of manufacturing system and layouts
4.types of manufacturing system and layouts
 
2 process-design
2 process-design2 process-design
2 process-design
 
Types of production system
Types of production systemTypes of production system
Types of production system
 
Design process
Design processDesign process
Design process
 

Similar to #speakgeek - Pragmatic Batch Process Management & Developer Testing

Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...DevOps4Networks
 
Telerik test studio webinar deck
Telerik  test studio webinar deckTelerik  test studio webinar deck
Telerik test studio webinar deckDhananjay Kumar
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyRightScale
 
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloudCloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloudClever Moe
 
Innovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCInnovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCkscaldef
 
Nightwatch JS for End to End Tests
Nightwatch JS for End to End TestsNightwatch JS for End to End Tests
Nightwatch JS for End to End TestsSriram Angajala
 
Continuous Integration as a Way of Life
Continuous Integration as a Way of LifeContinuous Integration as a Way of Life
Continuous Integration as a Way of LifeMelissa Benua
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfIvan Vasyliev
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environmentMatanGoren
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerLaura Frank Tacho
 
End to End Testing with nightwatchjs
End to End  Testing with nightwatchjsEnd to End  Testing with nightwatchjs
End to End Testing with nightwatchjsSrikanth Madduri
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMatanGoren
 
Visual Studio 2010 for testers
Visual Studio 2010 for testersVisual Studio 2010 for testers
Visual Studio 2010 for testersArpit Dubey
 
PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux Neotys
 
Tokyo Azure Meetup #9 - Azure Update, september
Tokyo Azure Meetup #9 - Azure Update, septemberTokyo Azure Meetup #9 - Azure Update, september
Tokyo Azure Meetup #9 - Azure Update, septemberTokyo Azure Meetup
 
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...Gilad Garon
 

Similar to #speakgeek - Pragmatic Batch Process Management & Developer Testing (20)

Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
 
Telerik test studio webinar deck
Telerik  test studio webinar deckTelerik  test studio webinar deck
Telerik test studio webinar deck
 
Continuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases WeeklyContinuous Delivery: How RightScale Releases Weekly
Continuous Delivery: How RightScale Releases Weekly
 
Devops architecture
Devops architectureDevops architecture
Devops architecture
 
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloudCloudBees Continuous Integration and Test with Appvance PerformanceCloud
CloudBees Continuous Integration and Test with Appvance PerformanceCloud
 
Innovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXCInnovating faster with SBT, Continuous Delivery, and LXC
Innovating faster with SBT, Continuous Delivery, and LXC
 
Nightwatch JS for End to End Tests
Nightwatch JS for End to End TestsNightwatch JS for End to End Tests
Nightwatch JS for End to End Tests
 
Continuous Integration as a Way of Life
Continuous Integration as a Way of LifeContinuous Integration as a Way of Life
Continuous Integration as a Way of Life
 
Containerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconfContainerising bootiful microservices javaeeconf
Containerising bootiful microservices javaeeconf
 
MyHeritage - QA Automations in a Continuous Deployment environment
MyHeritage -  QA Automations in a Continuous Deployment environmentMyHeritage -  QA Automations in a Continuous Deployment environment
MyHeritage - QA Automations in a Continuous Deployment environment
 
Building Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with DockerBuilding Efficient Parallel Testing Platforms with Docker
Building Efficient Parallel Testing Platforms with Docker
 
End to End Testing with nightwatchjs
End to End  Testing with nightwatchjsEnd to End  Testing with nightwatchjs
End to End Testing with nightwatchjs
 
MyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing InfraMyHeritage - End 2 End testing Infra
MyHeritage - End 2 End testing Infra
 
Visual Studio 2010 for testers
Visual Studio 2010 for testersVisual Studio 2010 for testers
Visual Studio 2010 for testers
 
Case study-regression-testinga
Case study-regression-testingaCase study-regression-testinga
Case study-regression-testinga
 
PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux PAC 2019 virtual Bruno Audoux
PAC 2019 virtual Bruno Audoux
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
Tokyo Azure Meetup #9 - Azure Update, september
Tokyo Azure Meetup #9 - Azure Update, septemberTokyo Azure Meetup #9 - Azure Update, september
Tokyo Azure Meetup #9 - Azure Update, september
 
PP_Eric_Gandt
PP_Eric_GandtPP_Eric_Gandt
PP_Eric_Gandt
 
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
 

More from Derek Chan

#speakgeek - Support Processes for iconnect360
#speakgeek - Support Processes for iconnect360#speakgeek - Support Processes for iconnect360
#speakgeek - Support Processes for iconnect360Derek Chan
 
#speakgeek - Testing Recipe: The iconnect360 Way
#speakgeek - Testing Recipe: The iconnect360 Way#speakgeek - Testing Recipe: The iconnect360 Way
#speakgeek - Testing Recipe: The iconnect360 WayDerek Chan
 
#speakgeek - Open Source Software Infrastructure at iconnect360
#speakgeek - Open Source Software Infrastructure at iconnect360#speakgeek - Open Source Software Infrastructure at iconnect360
#speakgeek - Open Source Software Infrastructure at iconnect360Derek Chan
 
#speakgell - Continuous Integration in iconnect360
#speakgell - Continuous Integration in iconnect360#speakgell - Continuous Integration in iconnect360
#speakgell - Continuous Integration in iconnect360Derek Chan
 
#speakgeek - Angular JS
#speakgeek - Angular JS#speakgeek - Angular JS
#speakgeek - Angular JSDerek Chan
 
#speakgeek - Keynote
#speakgeek - Keynote#speakgeek - Keynote
#speakgeek - KeynoteDerek Chan
 
#speakgeek - Agile development in iconnect360
#speakgeek - Agile development in iconnect360#speakgeek - Agile development in iconnect360
#speakgeek - Agile development in iconnect360Derek Chan
 

More from Derek Chan (7)

#speakgeek - Support Processes for iconnect360
#speakgeek - Support Processes for iconnect360#speakgeek - Support Processes for iconnect360
#speakgeek - Support Processes for iconnect360
 
#speakgeek - Testing Recipe: The iconnect360 Way
#speakgeek - Testing Recipe: The iconnect360 Way#speakgeek - Testing Recipe: The iconnect360 Way
#speakgeek - Testing Recipe: The iconnect360 Way
 
#speakgeek - Open Source Software Infrastructure at iconnect360
#speakgeek - Open Source Software Infrastructure at iconnect360#speakgeek - Open Source Software Infrastructure at iconnect360
#speakgeek - Open Source Software Infrastructure at iconnect360
 
#speakgell - Continuous Integration in iconnect360
#speakgell - Continuous Integration in iconnect360#speakgell - Continuous Integration in iconnect360
#speakgell - Continuous Integration in iconnect360
 
#speakgeek - Angular JS
#speakgeek - Angular JS#speakgeek - Angular JS
#speakgeek - Angular JS
 
#speakgeek - Keynote
#speakgeek - Keynote#speakgeek - Keynote
#speakgeek - Keynote
 
#speakgeek - Agile development in iconnect360
#speakgeek - Agile development in iconnect360#speakgeek - Agile development in iconnect360
#speakgeek - Agile development in iconnect360
 

Recently uploaded

Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...masabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 

Recently uploaded (20)

Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 

#speakgeek - Pragmatic Batch Process Management & Developer Testing

Editor's Notes

  1. How we manage our batch process and discuss some of the problems we face. I will also show you some great features of Quartz.NET when scheduling your job. Then I will show you the process of managing our batch process with Quartz.NET and how we moving forward with Quartz.NET.
  2. Introduction How we manage our batch process that runs repeatedly on daily or monthly basis. For example Set Failed Payment Notification Email to all members We started small with SQL Server Job Scheduler and Windows Task Scheduler which is work well for us, but we start to face some problems when our clients base start to grow. No Automated Deployment Developer should focus on their product development instead of deployment. In order to improve the productivity, we are practising Agile with Continuous Delivery where we continuously releasing our Product with great features on monthly basis. In order to achieve that, this is where Continuous Integration (CI) come into picture. Ultimate we only need to click a "Push" button that will automate the build, test and release process so our developer continue develop better product. To know more about CI, stay tune for next session later. Cumbersome Error Log Analysis When comes to maintain the batch process, logs is very important for analyse/ identity the root cause when error occurred. it was very troublesome for support team to access the logs in Production Machine where a remote access always needed. This happen for Windows Task Scheduler when errors are being logged in Windows Events Log of the machine. I will show how to address these problems in next few slides.
  3. The main focus of Quartz are easy to setup and use with 3 steps: Download and setup Minimum changes required to putting in your app as part of scheduler Start execute your job with own scheduler.
  4. After some research on address those problems, we had chosen “Quartz.NET” as our “Job Scheduling Framework” . The main focus of Quartz are easy to setup and use with 3 steps: Download and setup Minimum changes required to putting in your app as part of scheduler Start execute your job with own scheduler.
  5. In order to achieve Automated Deployment, we are using Quartz API method together with Jenkins (CI Tool). This diagram show the process involved when we decide set-up a new batch job Developer will add the new batch job in Batch Configuration Devops will trigger Jenkins Task that will Get latest Batch Configuration from the Source Control Iterate through the configuration by schedule job into Quartz via API Restart Quartz Service to load the latest Quartz Jobs
  6. Provides a simple logging abstraction to switch between different logging implementations. There is current support for log4net, NLog and Enterprise Library logging. Early of this year, we had launched Centralized Logging Framework to collect and store all our application logs to help Support team in analyze production issue. So, its very important to ensure all our Batch process able to integrate with the logging framework easily. We make use of Nlog in sending logs to Redis and LogStash and Kibana (Centralised Logging Framework) Redis – NoSQL database which store data in Memory. Since everything is in-memory, so the READ/WRITE is extremely fast. For us, we use it as a Cache Store. We are sending logging message to REDIS via Nlog Redis Plugin LogStash – its help to process logs in different format such as IISLog, JSON, Event Log and etc. Then you can some manipulate rule on those logs and output your content different destination. In our case, we are output the logs into ElasticSearch. ElasticSearch – RESTful search engine where all your data stored in JSON format. Kibana – Web Interface on top of ElasticSearch that act as analytics and visualization platform where you can easily shape your data into different form.
  7. Quartz.NET is a full-featured, open source job scheduling system that can be used from smallest apps to large scale enterprise systems. Setup as Windows Service , Console Application, Web Service
  8. Provide API method to interact with main scheduler. Scheduled/Unscheduled/Stop/Pause/Resume Run with any .NET class that implement Ijob Interface. Minimum migration effort required Job Status Notification jobToBeExecuted jobExecutionVetoed jobWasExecuted
  9. Time zone base scheduler mean you can have your own time zone trigger for each batch process instead of based on machine time zone.
  10. Simpler Trigger to have Calendar exclude Day (Public Holiday)
  11. JobItemClassName = Job namespace and class name . It have to be unique among the Job Item. CronSchedule = For CronSchedule go to http://www.cronmaker.com/ to generate the expression IdentityGroup = Job Group; Priority = Priority of the job; FilePath = Your dll, exe file location, beware of the security JobType= I: job inherintance the IBatchJob, C: stand alone exe. Arguement = Only need if JobType = "C", is the parameter wish to pass to the exe. HandleMisFire = 1: withMisfireHandlingInstructionIgnoreMisfires (All misfired executions are immediately executed, then the trigger runs back on schedule.) 2: withMisfireHandlingInstructionFireAndProceed (Immediately executes first misfired execution and discards other (i.e. all misfired executions are merged together). Then back to schedule. No matter how many trigger executions were missed, only single immediate execution is performed.) 3: withMisfireHandlingInstructionDoNothing (All misfired executions are discarded, the scheduler simply waits for next scheduled time.)
  12. Split the job evenly If one of node fail, other node will recover it immediately. Prevent Single point of failure
  13. Moving toward SOA which provide Self Service Scheduler Service Campaign Scheduler – schedule email campaign to customers for any newsletter or promotion Reporting Scheduler – send daily sales report to their manager The scheduler load will definitely increase when many clients start to schedule their own job. We can easily scale our application by enable clustering feature in Quartz.NET.
  14. Low set-up time and cost Open Source Very easy to set-up Various type of setup option: Window Services, Console App, Web Service Flexibility in scheduling You schedule almost any combination of trigger Time zone based Simplicity of integration with iJob Interface Low integration effort / Onboard Maintainability with common logging framework Support different logging implementation: NLOG / LOG4NET Integrated with Centralised Logging Framework (Redis + ELK) Scalability with Clustering As your scheduler load increases, you can easily launch a new Quartz instance speed up the process time.
  15. Low set-up time and cost Open Source Very easy to set-up Various type of setup option: Window Services, Console App, Web Service Flexibility in scheduling You schedule almost any combination of trigger Time zone based Simplicity of integration with iJob Interface Low integration effort Maintainbility with common logging framework Support different logging implementation: NLOG / LOG4NET Integrated with Centralised Logging Framework (Redis + ELK) Scalability with Clustering As your scheduler load increases, you can easily launch a new Quartz instance speed up the process time.
  16. 1 buggy jump, edit and try your luck
  17. http://blog.smartbear.com/testing/there-aint-no-roi-in-software-testing/
  18. http://blogs.unity3d.com/2014/06/03/unit-testing-part-2-unit-testing-monobehaviours/
  19. http://anthonysciamanna.com/2014/08/02/use-mock-objects-wisely.html http://martinfowler.com/articles/mocksArentStubs.html http://devblog.avdi.org/2011/09/06/making-a-mockery-of-tdd/
  20. 1. Isolated: Each Unit Test Should Be Able to Run Independently 2. Test Only One Condition at a Time 3. Repeatable 4. Thorough. A code coverage of 80% and above is a good indication 5. Mock External References. should only be one assert statement for each test method Don’t over mock:http://googletesting.blogspot.com/2013/05/testing-on-toilet-dont-overuse-mocks.html
  21. System test: I check if my own system works as expected. For example on e-commerce site: If my customer goes through checkout, correct data are sent to the warehouse (which is owned by someone else) End To End test: As stated above, the actual workflow. Someone puts a piece of goods to the shopping basket and fills in the user data, pays for it. I check if I actually received payment, make call to warehouse, make sure they received the data. And as little cherry on the pie: By receving the parcel, I make sure, that those data were good enough, were printed correctly, especially, when my real name is Pavel Janíček (see the funny diacritics? they sometimes get printed out incorrectly). Integration System Testing: All the various system components are tested if they give the correct expected results in minute details. End-to-End Testing: The entire application is tested from the beginning to end as if to be satisfied when viewed from the customer. For example if you were to test an e-commerce site the shop front, browsing for items, cart and checkout would all work fine in systems test. You may then find issues with the workflow of moving between these areas of functionality in an end to end test. Flower --------- http://martinfowler.com/articles/microservice-testing/ Unit tests - exercise the smallest pieces of testable software in the application to determine whether they behave as expected. Integration tests - verify the communication paths and interactions between components to detect interface defects. Component tests - limit the scope of the exercised software to a portion of the system under test, manipulating the system through internal code interfaces and using test doubles to isolate the code under test from other components. Contract tests - verify interactions at the boundary of an external service asserting that it meets the contract expected by a consuming service. End-To-End tests - verify that a system meets external requirements and achieves its goals, testing the entire system, from end to end.
  22. Gherkin is a domain specific language that lets us describe how our applications should behave without having to explain implementation details. Most of the above specification is free-text; there are only a few Gherkin specific keywords: Feature, Scenario, Given, When, And and Then. Everything else is free-text and is practically our documentation of how the feature is used. Gherkin is a line-oriented language with each line in the scenario called a step. The first step in the "Logging in with valid credentials" scenario is "Given I am at the login page". The step needs a step definition so our test runner will know how to accomplish this step. A step definition in Spec Flow is simply a method with an attribute that contains the text of the step. All step definition methods need to be within a class that has a Binding attribute.
  23. TDD vs BDD Tha main benefit of BDD and tools like specflow and Cucumber is communication with the stakeholders of the project and creating a shared understanding of what is to be built. The main benefit of TDD is to take small steps through a solutions implementation, ensuring that you build maintainable and great code. Or if you want; BDD is about ensuring that we're building the right thing, TDD is about ensuring that we're building it right. http://www.marcusoft.net/2011/11/bdd-and-technical-scenarios.html http://googletesting.blogspot.com/2015/04/just-say-no-to-more-end-to-end-tests.html