SlideShare uma empresa Scribd logo
1 de 69
Proprietary and Confidential Continuous Integration using Hudson and Fitnesse Norman Boccone | Lead Engineer | twitter: @dropslowly Jennifer Wong | Lead QE Engineer | twitter: @jenlwong Vasu Durgavarjhula | Director of Development | twitter: @d_vasu
Proprietary and Confidential 2 Overview ► Who we are ? ► The Challenge ► Tools and Processes ► Test Strategy ► Conclusion
Ingenuity Systems   We are a leading provider of information and analytics solutions for life science researchers  Our goal is to help life science researchers get biological insights from their data quickly and reliably Our products are used by thousands of researchers worldwide Partial Customer List Proprietary and Confidential 3
? Scientists Need a Tool to Make Good Decisions From Complex Biological Data Toxicology Biomarkers Pharmacogenomics Discovery Use understanding of disease mechanisms to identify and validate targets Elucidate biological mechanisms of drug action and toxicity Identify and prioritize novel biomarkers by understanding role in disease pathways Understand mechanisms behind differential response to R(x) Hard to synthesize the picture of what that data means in a broader biological context, and how the pieces work together…            Traditional publishing models are good for learning but not applying knowledge … Enormous volume and complexity of biological and chemical data… Cancer Publishing and Collaboration Experimental Data Search Proprietary and Confidential 4
The Ingenuity® Knowledge Base   Is the core technology behind all of Ingenuity’s products and services THE INGENUITY KNOWLEDGE BASE ANALYSIS HYPOTHESIS GENERATION VISUALIZATION ECOMMERCE ENABLEMENT PATHWAY, REAGENT & GENE SEARCH ENABLES SCIENTIFIC UNDERSTANDING Discover existing relationships and function, as well as inference of relationships that may not have been studied in a particular context yet Generatetestable hypotheses, build pathways, ability to inference Get answers by asking detailed and in-depth scientific questions
The Ingenuity® Knowledge Base   How is it different? THE INGENUITY KNOWLEDGE BASE ► Structured-to capture relevant details 	Scientific statements are modeled into Findings using the Ingenuity Ontology ► Expert Review Process- for accuracy 	Findings go through QC process ► Comprehensive- leverage knowledge in one place 	Largest scientific knowledge base of its kind with modeled relationships between proteins, genes, complexes, cells, tissues, drugs, pathways and diseases ► Timely- for access to up-to-date knowledge 	  Findings are added weekly
Proprietary and Confidential The Challenge 7
Proprietary and Confidential 8 Single product
Proprietary and Confidential 9 multiple products Ingenuity Variant Analysis Next Generation Sequencing Analysis Reports Ingenuity Product Search Reagent Portals for BD, Sigma, Thermo Fischer
Proprietary and Confidential 10 Large monolithic code base
Proprietary and Confidential 11 Modular Services Single Sign On User Management Views & Reports User Data Content Service iReport Master Graph
Proprietary and Confidential 12 Long release cycles
Proprietary and Confidential 13 Faster release cycles
Proprietary and Confidential 14 Speeding up the feedback loop Developer Stakeholders
Proprietary and Confidential 15 Do all of this while supporting the existing product
Proprietary and Confidential 16 Approach Move to a Service Oriented Architecture Don’t miss Jeff’s talk on Sunday 10:45 am “Learning to Love Services: Experiences from the Transition to a Service-oriented Architecture” Develop a test strategy focused on automated testing Build a continuous integration system Adopt agile product management Improve infrastructure to create and deploy services Foster a Dev/Ops culture
Proprietary and Confidential 17 Continuous Integration Workflow Application Bundle Deploy Application Run Fitnesse Tests (Nightly suite) Nightly Build (Clover) Run JUnit Tests publish summary Fitnesse Bundle Deploy Fitnesse publish publish Hudson Dashboard (JUnit, Fitnesse summary, Code Coverage) Fitnesse Wiki (Test history, Details, Test Case Management) Link SVN Commit (Test Cases)
Proprietary and Confidential 18 Tools and Processes
Proprietary and Confidential 19 Service Oriented Architecture
Proprietary and Confidential 20 SOA: Before lots of modules, separate but dependent easy to develop on but also easy to add circular dependencies hard to keep track of purpose/value of all the modules product consisted of bunches of modules put together reference was typically to latest devcode to ensure "latest," individual modules of a product were rebuilt for every release junittests were run every time as well new product version meant build everything, test everything builds were slow
Proprietary and Confidential 21 SOA: “Current” components: module grouped together.  Access through api module only less chance of circular dependencies easier to comprehend modules more flexibility to change code: just do not change api components built/tested separately faster builds less repetitive testing some shared modules still exist (they are not part of any component)
Proprietary and Confidential 22 SOA: Conversion Notes find a logical group of modules Convert groupput group into hierarchical structure, hide things behind an apilayer convert outside modules to use apis see Jeff's talk
Proprietary and Confidential 23 Build System
Proprietary and Confidential 24 Build System: Before in-house ant scripts lots of control but it required lots of resources no real industry standard global scripts/property files, overrides allowed offered consistency but (busy) people would override instead of follow pattern scripts got complicated anyone could add a new feature if anyone wanted a new feature, just tell them to add it inefficient additions, different code styles made scripts hard to read very little dependency management multiple repositories for binary files
Proprietary and Confidential 25 Build System: “Current”  maven not much control, and very rigid  (a good thing, in a way) steep learning curve different from previous way of doing things standard structure; difficult to not follow structure hierarchical structure easily followed versions for all dependencies well defined easy to add new features (after a short burst of intense agony) only one repository
Proprietary and Confidential 26 Build System: Conversion Notes  get a maven repository manager (nexus? Turn on search!) add antrun plugin to publish artifacts to old system choose a simple component to start, make lots of little submodules(1 module per artifact, plus assembly) manually add needed dependencies to repository build up company parent pom, use hierarchy Put all plugin management into parent Key maven plugins: buildnumber, buildhelper, release, assembly,
Proprietary and Confidential 27 Build System: TODO cleaner release plugin continue learning maven contribute to plugins Improve internal maven FAQ Look into git
Proprietary and Confidential 28 Continuous Builds
Proprietary and Confidential 29 Continuous Builds: Before Hudson (no plugins) auto build start for each module, with artifacts published manual build start for products shell scripts to copy artifacts to release dir
Proprietary and Confidential 30 Continuous Builds: “Current” Hudson devmaster for auto build of modules/submodules, auto published to repository manager (dev area) release master for components/products, auto published to repository manager (release area) modules/submodulesbuilt on checkin components/products built on schedule or on demand process includes various tests and deployments (Jen)
Proprietary and Confidential 31 Continuous Builds: Conversion Notes use Jenkins, not Hudson  (more activity for Jenkins) startup new, clean servers copy/create job that we want Try to make Jenkins be the portal to everything  fingerprinting Plugins we use: clover, fitnesse, findbugs, checkstyle, disk-usage, downstream build view, (custom) dashboard view, promoted builds, ssh slaves
Proprietary and Confidential 32 Continuous Builds: TODO better job rollup job templates more maven/hudson plugins submit hudson plugin(s) to community
Proprietary and Confidential 33 Deployment: Before proprietary shell/perl scripts targeted to install app only  (not machine set up) multiple proprietary property config scripts
Proprietary and Confidential 34 Deployment: “Current” Puppet Configures machines and apps Work on our machines and EC2 Use of .erb files everywhere for property configuration
Proprietary and Confidential 35 Deployment: Conversion Notes modify tar format moved to one tomcat used erb files split properties into app
Proprietary and Confidential 36 Deployment: TODO standard server configuration types (e.g. “build machine”, “app machine”, …) more puppet scripts
Proprietary and Confidential 37 Visibility
Proprietary and Confidential 38 Visibility: Before cfmap (IT server diagnostic tool) Hudson status page FitNesse server
Proprietary and Confidential 39 Visibility: “Current” cfmap Hudson status page Hudson dashboard extra tests built in to Hudson FitNesse server Service status page
Proprietary and Confidential 40 Visibility: Conversion Notes use Hudson plugins, with drill down get everything to report in a standard way (junit xml)
Proprietary and Confidential 41 Visibility: TODO more widgets for the dashboard Integrate outside reports into dashboard cfmap status page sdm? (service discovery manager)
Proprietary and Confidential 42 Test Strategy
Proprietary and Confidential 43 Testing For CI/CD Test Automation is key How and what to automate Mezaros Cohn Crispin
Proprietary and Confidential 44 Test Challenges Testability:  some products are difficult to test at lower levels Legacy Apps: one of our main products was a ‘Legacy App’.  Tests used to look like this:
Proprietary and Confidential 45 Test Challenges varying levels of coverage some of our newer components have great coverage other components have lower coverage: legacy, proof of concept
Proprietary and Confidential 46 Solutions Test and code refactoring Legacy Apps: Strangulation approach automate new and refactored features incremental work on tests: reserve time in each iteration for adding to tests Change in culture: team ownership of tests and status Cycle time for ipa was 2.5 weeks Now for most of our services, it is 20-40 minutes
Proprietary and Confidential 47 Test Infrastructure and Environments
Proprietary and Confidential 48 Process: Build Promotion Build Promotion through Quality Gates Beta ,[object Object],[object Object]
 Deployment Tests
System and performance tests
 Manual/exploratoryCI Environment ,[object Object]
 functional testsService1 Service1 Service2 Service2 Service3 Service3 Service4 Service4 Service5 Service5 Service6
Proprietary and Confidential 50 Test Types
Proprietary and Confidential 51 Test Types: Deployment and Health Each of our components has a built-in status page
Proprietary and Confidential 52 Test Types: Deployment and Health Status page Reflects app status Resource availability: DB Connections, Services
Proprietary and Confidential 53 Test Types: Deployment and Health Information is used for: Deployment Health Monitoring Service Compatibility and Dependency checking
Proprietary and Confidential 54 Test Types: FitNesse FitNesse is a wiki-based web server test tool Helps abstract test definition from technical implementation Provides visual reporting and result history tracking
Proprietary and Confidential 55 Test Types: FitNesse The FitNesse Server  http://localhost:8080/FitNesse.UserGuide.TwoMinuteExamplehttp://localhost:8080/FitNesse.UserGuide.TwoMinuteExample?pageHistory Wiki view                   Editing the wiki         Test Results
Proprietary and Confidential 56 Test Types: FitNesse ,[object Object],- Views, drilldown, configuration ,[object Object],View of fitnesse test job in Hudson
Proprietary and Confidential 57 Drill downs on fitnesse test results in Hudson
Proprietary and Confidential 58 FitNessePlugin Configuration Convert results to Junit format
Proprietary and Confidential 59 Publish FitNesse Results and Coverage
Proprietary and Confidential 60 Test Types: FitNesse ,[object Object]
Functional tests
Integration tests
UI Tests (com.jbergin.HtmlFixture)
DB Tests (dbfit)What we’ve done with it that is different Use as execution framework for more complex tests  Extension of fitnesse server for data-driven tests json fixture – pass in javascript Execution of Selenium tests
Proprietary and Confidential 61 Test Types: FitNesse Lessons learned FitNesse is good for straightforward verification of data To do more, you have to get creative Fixture and test ownership needs to be a shared responsibility
Proprietary and Confidential 62 Test Types: Selenium We fire off Selenium tests in two ways: via Hudson job or through FitNesse. ,[object Object],Hudson job in dashboard:                    Hudson job view:

Mais conteúdo relacionado

Mais procurados

Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps worldMoataz Nabil
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Moataz Nabil
 
A guide for automated testing
A guide for automated testingA guide for automated testing
A guide for automated testingMoataz Nabil
 
Test driven development
Test driven developmentTest driven development
Test driven developmentNascenia IT
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven developmenttoteb5
 
ISTQB Agile Tester - Agile Test Tools
ISTQB Agile Tester - Agile Test ToolsISTQB Agile Tester - Agile Test Tools
ISTQB Agile Tester - Agile Test ToolsMoataz Nabil
 
Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI Leonard Fingerman
 
Elements of a Test Framework
Elements of a Test FrameworkElements of a Test Framework
Elements of a Test FrameworkSmartBear
 
Continuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoContinuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoMaaret Pyhäjärvi
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayLeonard Fingerman
 
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang GottesheimPerformance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang GottesheimJAXLondon2014
 
Codeception Testing Framework -- English #phpkansai
Codeception Testing Framework -- English #phpkansaiCodeception Testing Framework -- English #phpkansai
Codeception Testing Framework -- English #phpkansaiFlorent Batard
 
How do you implement Continuous Delivery? Part 4: Automated Testing
How do you implement Continuous Delivery? Part 4: Automated TestingHow do you implement Continuous Delivery? Part 4: Automated Testing
How do you implement Continuous Delivery? Part 4: Automated TestingThoughtworks
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Fabricio Epaminondas
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDGlobalLogic Ukraine
 
Agile testing - Principles and best practices
Agile testing  - Principles and best practicesAgile testing  - Principles and best practices
Agile testing - Principles and best practicesDr Ganesh Iyer
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery appliedMike McGarr
 

Mais procurados (20)

Testing in DevOps world
Testing in DevOps worldTesting in DevOps world
Testing in DevOps world
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
 
A guide for automated testing
A guide for automated testingA guide for automated testing
A guide for automated testing
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Scrum and Test-driven development
Scrum and Test-driven developmentScrum and Test-driven development
Scrum and Test-driven development
 
ISTQB Agile Tester - Agile Test Tools
ISTQB Agile Tester - Agile Test ToolsISTQB Agile Tester - Agile Test Tools
ISTQB Agile Tester - Agile Test Tools
 
Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI
 
Elements of a Test Framework
Elements of a Test FrameworkElements of a Test Framework
Elements of a Test Framework
 
Continuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoContinuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San Diego
 
Agile test practices
Agile test practicesAgile test practices
Agile test practices
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
 
Agile Evolution
Agile EvolutionAgile Evolution
Agile Evolution
 
Demo1ghjkl
Demo1ghjklDemo1ghjkl
Demo1ghjkl
 
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang GottesheimPerformance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
 
Codeception Testing Framework -- English #phpkansai
Codeception Testing Framework -- English #phpkansaiCodeception Testing Framework -- English #phpkansai
Codeception Testing Framework -- English #phpkansai
 
How do you implement Continuous Delivery? Part 4: Automated Testing
How do you implement Continuous Delivery? Part 4: Automated TestingHow do you implement Continuous Delivery? Part 4: Automated Testing
How do you implement Continuous Delivery? Part 4: Automated Testing
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 
Agile testing - Principles and best practices
Agile testing  - Principles and best practicesAgile testing  - Principles and best practices
Agile testing - Principles and best practices
 
Continuous delivery applied
Continuous delivery appliedContinuous delivery applied
Continuous delivery applied
 

Destaque

Continuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practiceContinuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practiceDao Ngoc Kien
 
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)Jen Wong
 
Moving from Ad Hoc Testing to Continuous Test Data with FitNesse
Moving from Ad Hoc Testing to Continuous Test Data with FitNesseMoving from Ad Hoc Testing to Continuous Test Data with FitNesse
Moving from Ad Hoc Testing to Continuous Test Data with FitNesseJoris Meerts
 
Fitnesse - Acceptance testing
Fitnesse - Acceptance testingFitnesse - Acceptance testing
Fitnesse - Acceptance testingvijay_challa
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Joris De Winne
 
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackAccelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackBob Sokol
 
QAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Technologies
 
Continuous Delivery in a Complex S.O.A.
Continuous Delivery in a Complex S.O.A.Continuous Delivery in a Complex S.O.A.
Continuous Delivery in a Complex S.O.A.Richard Lennox
 
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaJavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaWerner Keil
 
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...mfrancis
 
TestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan MolenaarTestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan MolenaarXebia Nederland BV
 
Automated cceptance testing using Fitnesse & Selenium
Automated cceptance testing using Fitnesse & SeleniumAutomated cceptance testing using Fitnesse & Selenium
Automated cceptance testing using Fitnesse & Seleniummayurairon
 
Fitnesse user acceptance test - Presentation
Fitnesse   user acceptance test - PresentationFitnesse   user acceptance test - Presentation
Fitnesse user acceptance test - PresentationSunil Kumar Gunasekaran
 
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...CA Technologies
 
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)Peter Kofler
 
FitNesse With Scala
FitNesse With ScalaFitNesse With Scala
FitNesse With ScalaKnoldus Inc.
 
Automatic web ui testing
Automatic web ui testingAutomatic web ui testing
Automatic web ui testingAlex van Assem
 

Destaque (20)

Continuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practiceContinuous Integration (CI) - An effective development practice
Continuous Integration (CI) - An effective development practice
 
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)
More on Fitnesse and Continuous Integration (Silicon Valley code camp 2012)
 
Moving from Ad Hoc Testing to Continuous Test Data with FitNesse
Moving from Ad Hoc Testing to Continuous Test Data with FitNesseMoving from Ad Hoc Testing to Continuous Test Data with FitNesse
Moving from Ad Hoc Testing to Continuous Test Data with FitNesse
 
Fitnesse - Acceptance testing
Fitnesse - Acceptance testingFitnesse - Acceptance testing
Fitnesse - Acceptance testing
 
Seminar continuous delivery 19092013
Seminar continuous delivery 19092013Seminar continuous delivery 19092013
Seminar continuous delivery 19092013
 
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStackAccelerating the Software Delivery Pipelinewith Mirantis OpenStack
Accelerating the Software Delivery Pipelinewith Mirantis OpenStack
 
QAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with Appium
 
Continuous Delivery in a Complex S.O.A.
Continuous Delivery in a Complex S.O.A.Continuous Delivery in a Complex S.O.A.
Continuous Delivery in a Complex S.O.A.
 
CI, CD and Jenkins 2
CI, CD and Jenkins 2CI, CD and Jenkins 2
CI, CD and Jenkins 2
 
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit AgoravaJavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
JavaLand: Quantified Social - Fitness-Geräte und -Portale mit Agorava
 
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...
Methodologies for Test-Driven Development of OSGi enabled Embedded Devices - ...
 
TestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan MolenaarTestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
TestWorks Conf 2015 Beefing up FitNesse - Arjan Molenaar
 
Fitnesse, Watir and Ruby Based Test Automation System
Fitnesse, Watir and Ruby Based Test Automation SystemFitnesse, Watir and Ruby Based Test Automation System
Fitnesse, Watir and Ruby Based Test Automation System
 
Automated cceptance testing using Fitnesse & Selenium
Automated cceptance testing using Fitnesse & SeleniumAutomated cceptance testing using Fitnesse & Selenium
Automated cceptance testing using Fitnesse & Selenium
 
Fitnesse user acceptance test - Presentation
Fitnesse   user acceptance test - PresentationFitnesse   user acceptance test - Presentation
Fitnesse user acceptance test - Presentation
 
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
Pre-Con Ed: Simplify Administration and Reporting in CA Application Performan...
 
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
Coding Dojo for Testers/Testing Dojo: Designing Test Cases with FitNesse (2014)
 
FitNesse, An Introduction
FitNesse, An IntroductionFitNesse, An Introduction
FitNesse, An Introduction
 
FitNesse With Scala
FitNesse With ScalaFitNesse With Scala
FitNesse With Scala
 
Automatic web ui testing
Automatic web ui testingAutomatic web ui testing
Automatic web ui testing
 

Semelhante a Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silicon Valley code camp 2011)

Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentVladimir Bakhov
 
Open.source.innovation.20070624
Open.source.innovation.20070624Open.source.innovation.20070624
Open.source.innovation.20070624Vu Hung Nguyen
 
Sinh hoat CLB tin hoc Komaba lan 1 - Phat bieu cua Hung
Sinh hoat CLB tin hoc Komaba lan 1 - Phat bieu cua HungSinh hoat CLB tin hoc Komaba lan 1 - Phat bieu cua Hung
Sinh hoat CLB tin hoc Komaba lan 1 - Phat bieu cua HungNgoc Dao
 
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformaticsStephen Turner
 
Elsevier‘s RDM Program: Habits of Effective Data and the Bourne Ulitmatum
Elsevier‘s RDM Program: Habits of Effective Data and the Bourne UlitmatumElsevier‘s RDM Program: Habits of Effective Data and the Bourne Ulitmatum
Elsevier‘s RDM Program: Habits of Effective Data and the Bourne UlitmatumAnita de Waard
 
Get Started on Azure with Puppet
Get Started on Azure with Puppet  Get Started on Azure with Puppet
Get Started on Azure with Puppet Puppet
 
Meet Puppet's new product lineup 12/7/2017
Meet Puppet's new product lineup 12/7/2017Meet Puppet's new product lineup 12/7/2017
Meet Puppet's new product lineup 12/7/2017Puppet
 
Reproducibility: 10 Simple Rules
Reproducibility: 10 Simple RulesReproducibility: 10 Simple Rules
Reproducibility: 10 Simple RulesAnnika Eriksson
 
Accelerate your Journey to Pervasive Automation 05.03.2018
Accelerate your Journey to Pervasive Automation 05.03.2018Accelerate your Journey to Pervasive Automation 05.03.2018
Accelerate your Journey to Pervasive Automation 05.03.2018Puppet
 
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...OW2
 
ImageJ and the SciJava software stack
ImageJ and the SciJava software stackImageJ and the SciJava software stack
ImageJ and the SciJava software stackCurtis Rueden
 
Automation for the Modern Enterprise_26oct2017
Automation for the Modern Enterprise_26oct2017Automation for the Modern Enterprise_26oct2017
Automation for the Modern Enterprise_26oct2017Claire Priester Papas
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0Jasmine Conseil
 
DevOps Transformation - technical and organizational goals
DevOps Transformation - technical and organizational goalsDevOps Transformation - technical and organizational goals
DevOps Transformation - technical and organizational goalsAgron Fazliu
 
Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...Pankesh Patel
 
Reproducible bioinformatics pipelines with Docker and Anduril
Reproducible bioinformatics pipelines with Docker and AndurilReproducible bioinformatics pipelines with Docker and Anduril
Reproducible bioinformatics pipelines with Docker and AndurilChristian Frech
 
Introducción a Microservicios, SUSE CaaS Platform y Kubernetes
Introducción a Microservicios, SUSE CaaS Platform y KubernetesIntroducción a Microservicios, SUSE CaaS Platform y Kubernetes
Introducción a Microservicios, SUSE CaaS Platform y KubernetesSUSE España
 
How to automate your DevSecOps successfully
How to automate your DevSecOps successfullyHow to automate your DevSecOps successfully
How to automate your DevSecOps successfullyManuel Pistner
 
hcp-as-continuous-integration-build-artifact-storage-system
hcp-as-continuous-integration-build-artifact-storage-systemhcp-as-continuous-integration-build-artifact-storage-system
hcp-as-continuous-integration-build-artifact-storage-systemIngrid Fernandez, PhD
 

Semelhante a Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silicon Valley code camp 2011) (20)

Continuous Integration for Oracle Database Development
Continuous Integration for Oracle Database DevelopmentContinuous Integration for Oracle Database Development
Continuous Integration for Oracle Database Development
 
Open.source.innovation.20070624
Open.source.innovation.20070624Open.source.innovation.20070624
Open.source.innovation.20070624
 
Sinh hoat CLB tin hoc Komaba lan 1 - Phat bieu cua Hung
Sinh hoat CLB tin hoc Komaba lan 1 - Phat bieu cua HungSinh hoat CLB tin hoc Komaba lan 1 - Phat bieu cua Hung
Sinh hoat CLB tin hoc Komaba lan 1 - Phat bieu cua Hung
 
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
2018 ABRF Tools for improving rigor and reproducibility in bioinformatics
 
Elsevier‘s RDM Program: Habits of Effective Data and the Bourne Ulitmatum
Elsevier‘s RDM Program: Habits of Effective Data and the Bourne UlitmatumElsevier‘s RDM Program: Habits of Effective Data and the Bourne Ulitmatum
Elsevier‘s RDM Program: Habits of Effective Data and the Bourne Ulitmatum
 
Get Started on Azure with Puppet
Get Started on Azure with Puppet  Get Started on Azure with Puppet
Get Started on Azure with Puppet
 
Meet Puppet's new product lineup 12/7/2017
Meet Puppet's new product lineup 12/7/2017Meet Puppet's new product lineup 12/7/2017
Meet Puppet's new product lineup 12/7/2017
 
Reproducibility: 10 Simple Rules
Reproducibility: 10 Simple RulesReproducibility: 10 Simple Rules
Reproducibility: 10 Simple Rules
 
Accelerate your Journey to Pervasive Automation 05.03.2018
Accelerate your Journey to Pervasive Automation 05.03.2018Accelerate your Journey to Pervasive Automation 05.03.2018
Accelerate your Journey to Pervasive Automation 05.03.2018
 
Of Changes and Their History
Of Changes and Their HistoryOf Changes and Their History
Of Changes and Their History
 
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
 
ImageJ and the SciJava software stack
ImageJ and the SciJava software stackImageJ and the SciJava software stack
ImageJ and the SciJava software stack
 
Automation for the Modern Enterprise_26oct2017
Automation for the Modern Enterprise_26oct2017Automation for the Modern Enterprise_26oct2017
Automation for the Modern Enterprise_26oct2017
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
DevOps Transformation - technical and organizational goals
DevOps Transformation - technical and organizational goalsDevOps Transformation - technical and organizational goals
DevOps Transformation - technical and organizational goals
 
Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...Accelerating Application Development in the Internet of Things using Model-dr...
Accelerating Application Development in the Internet of Things using Model-dr...
 
Reproducible bioinformatics pipelines with Docker and Anduril
Reproducible bioinformatics pipelines with Docker and AndurilReproducible bioinformatics pipelines with Docker and Anduril
Reproducible bioinformatics pipelines with Docker and Anduril
 
Introducción a Microservicios, SUSE CaaS Platform y Kubernetes
Introducción a Microservicios, SUSE CaaS Platform y KubernetesIntroducción a Microservicios, SUSE CaaS Platform y Kubernetes
Introducción a Microservicios, SUSE CaaS Platform y Kubernetes
 
How to automate your DevSecOps successfully
How to automate your DevSecOps successfullyHow to automate your DevSecOps successfully
How to automate your DevSecOps successfully
 
hcp-as-continuous-integration-build-artifact-storage-system
hcp-as-continuous-integration-build-artifact-storage-systemhcp-as-continuous-integration-build-artifact-storage-system
hcp-as-continuous-integration-build-artifact-storage-system
 

Último

Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfOnline Income Engine
 
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Delhi Call girls
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxAndy Lambert
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageMatteo Carbone
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst SummitHolger Mueller
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsMichael W. Hawkins
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.Aaiza Hassan
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Serviceritikaroy0888
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Dipal Arora
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Roland Driesen
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfPaul Menig
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth MarketingShawn Pang
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLSeo
 
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...noida100girls
 
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130  Available With RoomVIP Kolkata Call Girl Howrah 👉 8250192130  Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Roomdivyansh0kumar0
 
Best Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaBest Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaShree Krishna Exports
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Roland Driesen
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayNZSG
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...Any kyc Account
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurSuhani Kapoor
 

Último (20)

Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdf
 
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
Best VIP Call Girls Noida Sector 40 Call Me: 8448380779
 
Monthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptxMonthly Social Media Update April 2024 pptx.pptx
Monthly Social Media Update April 2024 pptx.pptx
 
Insurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usageInsurers' journeys to build a mastery in the IoT usage
Insurers' journeys to build a mastery in the IoT usage
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst Summit
 
HONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael HawkinsHONOR Veterans Event Keynote by Michael Hawkins
HONOR Veterans Event Keynote by Michael Hawkins
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Service
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
Tech Startup Growth Hacking 101  - Basics on Growth MarketingTech Startup Growth Hacking 101  - Basics on Growth Marketing
Tech Startup Growth Hacking 101 - Basics on Growth Marketing
 
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRLMONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
MONA 98765-12871 CALL GIRLS IN LUDHIANA LUDHIANA CALL GIRL
 
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...BEST ✨ Call Girls In  Indirapuram Ghaziabad  ✔️ 9871031762 ✔️ Escorts Service...
BEST ✨ Call Girls In Indirapuram Ghaziabad ✔️ 9871031762 ✔️ Escorts Service...
 
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130  Available With RoomVIP Kolkata Call Girl Howrah 👉 8250192130  Available With Room
VIP Kolkata Call Girl Howrah 👉 8250192130 Available With Room
 
Best Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaBest Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in India
 
Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...Boost the utilization of your HCL environment by reevaluating use cases and f...
Boost the utilization of your HCL environment by reevaluating use cases and f...
 
It will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 MayIt will be International Nurses' Day on 12 May
It will be International Nurses' Day on 12 May
 
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
KYC-Verified Accounts: Helping Companies Handle Challenging Regulatory Enviro...
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
 

Continuous Integration using Hudson and Fitnesse at Ingenuity Systems (Silicon Valley code camp 2011)

  • 1. Proprietary and Confidential Continuous Integration using Hudson and Fitnesse Norman Boccone | Lead Engineer | twitter: @dropslowly Jennifer Wong | Lead QE Engineer | twitter: @jenlwong Vasu Durgavarjhula | Director of Development | twitter: @d_vasu
  • 2. Proprietary and Confidential 2 Overview ► Who we are ? ► The Challenge ► Tools and Processes ► Test Strategy ► Conclusion
  • 3. Ingenuity Systems We are a leading provider of information and analytics solutions for life science researchers Our goal is to help life science researchers get biological insights from their data quickly and reliably Our products are used by thousands of researchers worldwide Partial Customer List Proprietary and Confidential 3
  • 4. ? Scientists Need a Tool to Make Good Decisions From Complex Biological Data Toxicology Biomarkers Pharmacogenomics Discovery Use understanding of disease mechanisms to identify and validate targets Elucidate biological mechanisms of drug action and toxicity Identify and prioritize novel biomarkers by understanding role in disease pathways Understand mechanisms behind differential response to R(x) Hard to synthesize the picture of what that data means in a broader biological context, and how the pieces work together… Traditional publishing models are good for learning but not applying knowledge … Enormous volume and complexity of biological and chemical data… Cancer Publishing and Collaboration Experimental Data Search Proprietary and Confidential 4
  • 5. The Ingenuity® Knowledge Base Is the core technology behind all of Ingenuity’s products and services THE INGENUITY KNOWLEDGE BASE ANALYSIS HYPOTHESIS GENERATION VISUALIZATION ECOMMERCE ENABLEMENT PATHWAY, REAGENT & GENE SEARCH ENABLES SCIENTIFIC UNDERSTANDING Discover existing relationships and function, as well as inference of relationships that may not have been studied in a particular context yet Generatetestable hypotheses, build pathways, ability to inference Get answers by asking detailed and in-depth scientific questions
  • 6. The Ingenuity® Knowledge Base How is it different? THE INGENUITY KNOWLEDGE BASE ► Structured-to capture relevant details Scientific statements are modeled into Findings using the Ingenuity Ontology ► Expert Review Process- for accuracy Findings go through QC process ► Comprehensive- leverage knowledge in one place Largest scientific knowledge base of its kind with modeled relationships between proteins, genes, complexes, cells, tissues, drugs, pathways and diseases ► Timely- for access to up-to-date knowledge Findings are added weekly
  • 8. Proprietary and Confidential 8 Single product
  • 9. Proprietary and Confidential 9 multiple products Ingenuity Variant Analysis Next Generation Sequencing Analysis Reports Ingenuity Product Search Reagent Portals for BD, Sigma, Thermo Fischer
  • 10. Proprietary and Confidential 10 Large monolithic code base
  • 11. Proprietary and Confidential 11 Modular Services Single Sign On User Management Views & Reports User Data Content Service iReport Master Graph
  • 12. Proprietary and Confidential 12 Long release cycles
  • 13. Proprietary and Confidential 13 Faster release cycles
  • 14. Proprietary and Confidential 14 Speeding up the feedback loop Developer Stakeholders
  • 15. Proprietary and Confidential 15 Do all of this while supporting the existing product
  • 16. Proprietary and Confidential 16 Approach Move to a Service Oriented Architecture Don’t miss Jeff’s talk on Sunday 10:45 am “Learning to Love Services: Experiences from the Transition to a Service-oriented Architecture” Develop a test strategy focused on automated testing Build a continuous integration system Adopt agile product management Improve infrastructure to create and deploy services Foster a Dev/Ops culture
  • 17. Proprietary and Confidential 17 Continuous Integration Workflow Application Bundle Deploy Application Run Fitnesse Tests (Nightly suite) Nightly Build (Clover) Run JUnit Tests publish summary Fitnesse Bundle Deploy Fitnesse publish publish Hudson Dashboard (JUnit, Fitnesse summary, Code Coverage) Fitnesse Wiki (Test history, Details, Test Case Management) Link SVN Commit (Test Cases)
  • 18. Proprietary and Confidential 18 Tools and Processes
  • 19. Proprietary and Confidential 19 Service Oriented Architecture
  • 20. Proprietary and Confidential 20 SOA: Before lots of modules, separate but dependent easy to develop on but also easy to add circular dependencies hard to keep track of purpose/value of all the modules product consisted of bunches of modules put together reference was typically to latest devcode to ensure "latest," individual modules of a product were rebuilt for every release junittests were run every time as well new product version meant build everything, test everything builds were slow
  • 21. Proprietary and Confidential 21 SOA: “Current” components: module grouped together.  Access through api module only less chance of circular dependencies easier to comprehend modules more flexibility to change code: just do not change api components built/tested separately faster builds less repetitive testing some shared modules still exist (they are not part of any component)
  • 22. Proprietary and Confidential 22 SOA: Conversion Notes find a logical group of modules Convert groupput group into hierarchical structure, hide things behind an apilayer convert outside modules to use apis see Jeff's talk
  • 23. Proprietary and Confidential 23 Build System
  • 24. Proprietary and Confidential 24 Build System: Before in-house ant scripts lots of control but it required lots of resources no real industry standard global scripts/property files, overrides allowed offered consistency but (busy) people would override instead of follow pattern scripts got complicated anyone could add a new feature if anyone wanted a new feature, just tell them to add it inefficient additions, different code styles made scripts hard to read very little dependency management multiple repositories for binary files
  • 25. Proprietary and Confidential 25 Build System: “Current” maven not much control, and very rigid  (a good thing, in a way) steep learning curve different from previous way of doing things standard structure; difficult to not follow structure hierarchical structure easily followed versions for all dependencies well defined easy to add new features (after a short burst of intense agony) only one repository
  • 26. Proprietary and Confidential 26 Build System: Conversion Notes get a maven repository manager (nexus? Turn on search!) add antrun plugin to publish artifacts to old system choose a simple component to start, make lots of little submodules(1 module per artifact, plus assembly) manually add needed dependencies to repository build up company parent pom, use hierarchy Put all plugin management into parent Key maven plugins: buildnumber, buildhelper, release, assembly,
  • 27. Proprietary and Confidential 27 Build System: TODO cleaner release plugin continue learning maven contribute to plugins Improve internal maven FAQ Look into git
  • 28. Proprietary and Confidential 28 Continuous Builds
  • 29. Proprietary and Confidential 29 Continuous Builds: Before Hudson (no plugins) auto build start for each module, with artifacts published manual build start for products shell scripts to copy artifacts to release dir
  • 30. Proprietary and Confidential 30 Continuous Builds: “Current” Hudson devmaster for auto build of modules/submodules, auto published to repository manager (dev area) release master for components/products, auto published to repository manager (release area) modules/submodulesbuilt on checkin components/products built on schedule or on demand process includes various tests and deployments (Jen)
  • 31. Proprietary and Confidential 31 Continuous Builds: Conversion Notes use Jenkins, not Hudson (more activity for Jenkins) startup new, clean servers copy/create job that we want Try to make Jenkins be the portal to everything fingerprinting Plugins we use: clover, fitnesse, findbugs, checkstyle, disk-usage, downstream build view, (custom) dashboard view, promoted builds, ssh slaves
  • 32. Proprietary and Confidential 32 Continuous Builds: TODO better job rollup job templates more maven/hudson plugins submit hudson plugin(s) to community
  • 33. Proprietary and Confidential 33 Deployment: Before proprietary shell/perl scripts targeted to install app only (not machine set up) multiple proprietary property config scripts
  • 34. Proprietary and Confidential 34 Deployment: “Current” Puppet Configures machines and apps Work on our machines and EC2 Use of .erb files everywhere for property configuration
  • 35. Proprietary and Confidential 35 Deployment: Conversion Notes modify tar format moved to one tomcat used erb files split properties into app
  • 36. Proprietary and Confidential 36 Deployment: TODO standard server configuration types (e.g. “build machine”, “app machine”, …) more puppet scripts
  • 38. Proprietary and Confidential 38 Visibility: Before cfmap (IT server diagnostic tool) Hudson status page FitNesse server
  • 39. Proprietary and Confidential 39 Visibility: “Current” cfmap Hudson status page Hudson dashboard extra tests built in to Hudson FitNesse server Service status page
  • 40. Proprietary and Confidential 40 Visibility: Conversion Notes use Hudson plugins, with drill down get everything to report in a standard way (junit xml)
  • 41. Proprietary and Confidential 41 Visibility: TODO more widgets for the dashboard Integrate outside reports into dashboard cfmap status page sdm? (service discovery manager)
  • 42. Proprietary and Confidential 42 Test Strategy
  • 43. Proprietary and Confidential 43 Testing For CI/CD Test Automation is key How and what to automate Mezaros Cohn Crispin
  • 44. Proprietary and Confidential 44 Test Challenges Testability: some products are difficult to test at lower levels Legacy Apps: one of our main products was a ‘Legacy App’. Tests used to look like this:
  • 45. Proprietary and Confidential 45 Test Challenges varying levels of coverage some of our newer components have great coverage other components have lower coverage: legacy, proof of concept
  • 46. Proprietary and Confidential 46 Solutions Test and code refactoring Legacy Apps: Strangulation approach automate new and refactored features incremental work on tests: reserve time in each iteration for adding to tests Change in culture: team ownership of tests and status Cycle time for ipa was 2.5 weeks Now for most of our services, it is 20-40 minutes
  • 47. Proprietary and Confidential 47 Test Infrastructure and Environments
  • 48.
  • 51.
  • 52. functional testsService1 Service1 Service2 Service2 Service3 Service3 Service4 Service4 Service5 Service5 Service6
  • 54. Proprietary and Confidential 51 Test Types: Deployment and Health Each of our components has a built-in status page
  • 55. Proprietary and Confidential 52 Test Types: Deployment and Health Status page Reflects app status Resource availability: DB Connections, Services
  • 56. Proprietary and Confidential 53 Test Types: Deployment and Health Information is used for: Deployment Health Monitoring Service Compatibility and Dependency checking
  • 57. Proprietary and Confidential 54 Test Types: FitNesse FitNesse is a wiki-based web server test tool Helps abstract test definition from technical implementation Provides visual reporting and result history tracking
  • 58. Proprietary and Confidential 55 Test Types: FitNesse The FitNesse Server http://localhost:8080/FitNesse.UserGuide.TwoMinuteExamplehttp://localhost:8080/FitNesse.UserGuide.TwoMinuteExample?pageHistory Wiki view Editing the wiki Test Results
  • 59.
  • 60. Proprietary and Confidential 57 Drill downs on fitnesse test results in Hudson
  • 61. Proprietary and Confidential 58 FitNessePlugin Configuration Convert results to Junit format
  • 62. Proprietary and Confidential 59 Publish FitNesse Results and Coverage
  • 63.
  • 67. DB Tests (dbfit)What we’ve done with it that is different Use as execution framework for more complex tests Extension of fitnesse server for data-driven tests json fixture – pass in javascript Execution of Selenium tests
  • 68. Proprietary and Confidential 61 Test Types: FitNesse Lessons learned FitNesse is good for straightforward verification of data To do more, you have to get creative Fixture and test ownership needs to be a shared responsibility
  • 69.
  • 70. Proprietary and Confidential 63 Test Types: Selenium Hudson job configuration: trigger execution on Selenium grid using Ant
  • 71. Proprietary and Confidential 64 Test Types: Selenium Second way we fire off Selenium tests is using a FitNesse fixture: WebTest
  • 72. Proprietary and Confidential 65 Test Types: Backward Compatibility No staging environment How do we know that when we release a new service version to prod that it won’t break? Service version compatibility Leverage Service Discover Manager (SDM) and Status pages to check for availability of services Jar compatibility static code analysis could detect changes in method signature but not underlying object or serialization changes
  • 73. Proprietary and Confidential 66 What’s Next: Getting to the End of the Road
  • 74.
  • 75. Culture:Continue to support, reinforce, educate
  • 76. Proprietary and Confidential 68 The Finish Line Continuous deployment Reduced Cycle Time Improved quality Predictable metrics Reduced risk
  • 77. Proprietary and Confidential 69 Slides are posted here: http://www.slideshare.net/jenlwong/ingenuity-svcc-ci-presentation-20111007 Plugs Learning to Love Services: Experiences from the Transition to a Service-oriented Architecture Speaker: Jeff Green 10:45 AM Sunday Ingenuity is hiring: http://www.ingenuity.com/company/careers.html Q&A References Todd. Test Automation Pyramid – review. Retrieved September 29, 2011 from: http://blog.goneopen.com/2010/08/test-automation-pyramid-review/ Humble, Jez, and Farley, David. Continuous Delivery. Boston: Pearson Education Inc, 2011. Print. Crispin, Lisa, and Gregory, Janet. Agile Testing: A Practical Guide for Testers and Agile Teams. Boston: Pearson Education Inc, 2011. Print.

Notas do Editor

  1. Outline for this deck:Who we areWhat challenge we are addressing (high level)Our platform = Ingenuity Knowledge Base Content (3 slides) Ontology (1 slide)Products and Solutions Overview Research and Analysis Solutions The challenge IPA addresses IPA overview The challenge Ingenuity Answers addresses Additional Solutions eCommerce EnterpriseWhat Sets Ingenuity Apart (USPs)
  2. What is the challenge Ingenuity is addressing? Speaking points:Helping researchers access detailed and high-quality knowledge and then USING it to design experiments, generate hypothesis, answer targeted questions, and analyze dataAll of Ingenuity's products and services have one common goal — to help life science researchers generate maximum value from all types of biological and chemical knowledge.Ingenuity offers a broad and flexible range of solutions that can be tailored to needs of various clients, including academic and therapeutic area researchers, computational biologists and informatics departments, and suppliers in the life sciences industry.
  3. Speaking Points:What is it? [high level description]The Ingenuity Knowledge Base is the core technology of Ingenuity Systems Is the engine behind all of Ingenuity’s products – (IPA) It is a repository of biological interactions and functional annotations created from millions of individually modeled relationships between proteins, genes, complexes, cells, tissues, drugs, and diseasesThe IKB enables scientific understanding – through IPA and other services, researchers canDiscover biological relationships and functionsBuild testable hypothesesLastly, they can answer targeted biological questions – and get back relevant answersSo, what is unique about the IKB – what have we done differently - next slideInference example:For example – can I discover a molecular path connecting a compound known to treat mammary tumors to angiogenesis? Types of contextual detail:SpeciesSynonymsExperimental methodSite of post-translational modificationDirection of changeTissue contextCell line contextOriginal source
  4. Speaking Points:How is our approach different? With the information we capture (publications, public knowledge, etc. - not JUST publications) we do THREE important things:We STRUCUTURE the information using the Ingenuity Ontology – statements are modeled into Findings. Findings are not just EXPERT REVIEW PROCESS We capture a lot of detail and ensure it is correct.The information we cover is COMPREHENSIVE – IKB covers and extensive body of biological and chemical info, including publications and third party sources.The information is TIMELY – weekly updates as of IPA 8 and IPA 8.5
  5. Small teams empowered to release to production without management approvalBetter iteration and release planning. Learning to build and release features incrementally; show/hide features in betaFocus on Unit testing first and then integration testingStreamline the build environment to do automated builds, deployments and build promotionRefactor the code base to create more modular and service oriented code base
  6. --title: --list items
  7. --only one repository
  8. --mention fingerprinting--all plugins in parent
  9. --artifactsinhudson repo--nodpeloyment/test pohase other than junit--just build, not CI
  10. --release master is the CI one--remove jenkinsrefernces
  11. --cconfigurabel, difficult to maintain
  12. --describe what puppet is--erb use--cofnigmgt standardized--moreenforcable
  13. --standard vmconfig
  14. --hudson build succesnoyl
  15. --status app page --hudson
  16. --service discovery mgr, router for services