SlideShare a Scribd company logo
1 of 23
Download to read offline
DXAT (Disseny de Xarxes i Aplicacions Telemàtiques)

                               Luis Miguel Amorós
                                      Adrien Viala
1.    Testing Tools
     1.1. JUnit
     1.2. Selenium
2.    Agile Software Development
     2.1. Scrum
3.    Continuous Integration
     3.1. Version control tools (SVN, GIT)
     3.2. Project creation and management tools(Maven)
     3.3. Hudson

                                                         2
1.1. JUnit
   From xUnit generic term: a framework to test the
    smallest part of a code.
   For Java: class, interface.
   It aims at repeatable tests: checking that code’s
    evolution do not alter the specification compliance.
   Integrated in Eclipse, NetBeans…
   Content:
     Assertions for testing expected results
     Test fixtures for sharing common test data
     Test runners for running tests

                                                           3
import junit.framework.TestCase;      @Before
import org.junit.*;                    public void setUp() throws Exception {
                                         // Code executed before each test
public class TestFoobar extends        }
TestCase{
   @BeforeClass                           @After
   public static void setUpClass()        public void tearDown() throws Exception {
throws Exception {                          // Code executed after each test
     // Code executed before the          }
first test method }
                                          @Test
  @AfterClass                             public void test() {
  public static void                        assertTrue(true);
tearDownClass() throws Exception          }
{                                     }
    // Code executed after the last
test method
  }                                                                                   4
1.2. Selenium
   Test web applications
   It records a previous test and plays it anytime it would be
    necessary in order to test the webapp
   It has its own programming language (Selenes) in order to
    program tests in most popular languages:
     C#, Java, Groovy, Perl, PHP, Python & Ruby.
   Tests can be executed in any web browser and any platform




                                                                  5
1.2. Selenium
   Its architecture is based on:
     Selenium IDE:
      ▪ Firefox Extension which lets to record, edit and
        debug tests
      ▪ It lets to export created tests into different
        programming languages
     Selenium RemoteControl
      ▪ Java Server which interprets commands via
        HTTP
     Selenium Client API
      ▪ Selenese



                                                           6
   Its purpose is to assure the main demands of the industry
    nowadays:
     Value:
       ▪ Value at the moment of product launch
       ▪ Ability to adapt and evolve through upgrades and expansions
     Reduced development time:
       ▪ Overlapping in development phases
       ▪ Early delivery of the first parts of the product which are often the most urgent
     Quickness:
       ▪ Produce complete parts of the product in short periods of time
     Flexibility:
       ▪ Adjust the shape and course of project development characteristics and evolution of
         requirements
     Reliability:
       ▪ The processes are good when they get delivered early and continuously innovative value
                                                                                                  7
   Agile Software Development cycle is
    divided into:
     Concept:
      ▪ Create the vision of the product
      ▪ Determine what the team is going to work on
     Speculation:
      ▪ Determine limitations imposed by business
        environment: agendas and costs
      ▪ Close first approximation about what it can be
        produced
     Exploration:
      ▪ Develop an increment of the product which includes
        those functionalities determined in previous phase
     Revision:
      ▪ Revision what it has been built until this moment
     Closing:
      ▪ It does not imply the end of the project
                                                             8
   Most popular Agile Software Development models are:
       Adaptive Software Development (ASD)
       Agile Unified Process (AUP)
       Crystal Clear.
       Essential Unified Process (EssUP)
       Feature Driven Development (FDD)
       Lean Software Development (LSD)
       Kanban
       Open Unified Process (OpenUP)
       eXtreme Programming (XP)
       Dynamic Systems Development Method (DSDM)
       Scrum

                                                          9
2.1. Scrum
   Very simple development methodology:
     It requires hard work  there’s no plan, only continuous adaptation of the
      project
   All the people which participate in the project are classified in:
     Committed (pigs)
     Involved (hens)
   Meetings:
     They must be done stood
     It is advisable to use a cell format tasks on a blackboard
     A graph indicating the improvements done in the sprint should be there
   Meetings Type:
     Sprint planning
     Sprint track
     Sprint review
                                                                                   10
11
3.1. Control Version tools
   Apache Subversion (SVN):
     How you manage several versions due to different programmers?
     Started as early as mid 70’s.
     SVN’s ancestor is CVS: Concurrent Version System, started as shell scripts
      in 1986.
     SVN was born in 2000 to complete and develop CVS
     Today, it is a top-level Apache project.




                                                                                   12
1 – Get content:
          svn checkout
          svn update
2 – Make changes:
          svn add
          svn move
          svn delete
3 – See what was changed in the
repository in meantime
          svn status -u
4 – Update your local copy
          svn update
5 – Merge your changes and Resolve
conflicts
          svn diff
          svn resolved
6 – Submit your changes
          svn commit

                                     13
   Conflicts resolution:
     svn diff  show the differences from the
      checkout files
     svn revert  cancel all modification( except
      deleted files), then update & work again. Svn does
      not know how to merge binary files (.doc).
     svn resolved <FileName> then commit again
     svn automatically merge (fusion) if modifications
      are not at the same place.
                                                           14
3.1. Control Version tools
   GIT: distributed version control, since 2005, by Torvalds for
    Linux kernel.  created by programmers for programmers !!
                                      • Only working copies
                                      • Faster operation (no central
                                        server)
                                      • Autonomous group of
                                        developers from network and
                                        chiefs.
                                      • Private versioning.
                                      • Still possibility to have a central
                                        server.



                                                                              15
3.2. Maven :
 Maven: project
  management and
  build automation
 Only direct
  dependencies
 Scope
  specification
  (JUnit only for
  test)


                     16
 Project described in the POM file, Project Object Model. XML, and
  v3.0 Ruby, Groovy or Yaml.
 Contents:
      Src and resource files location
      Java version
      Direct dependencies
      Used plugins
      Technical report asked
    <project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0</version>
    </project>

                                                                      17
   Convention over Configuration: specified only the
    unconventional.
   Build life cycles:
       process-resources
       compile
       process-test-resources
       test-compile
       test
       package
       install
       Deploy
       mvn test  all the way until test.

                                                        18
3.3. Hudson
 Continuous Integration Tool implemented in Java
 It works over an application server such as Apache or GlassFish
 It supports control version tools (CVS, SVN, GIT)
 It can execute projects based in Apache Ant or Maven, and
  scripts based on batch or shell/bash scripts
 It can build the projects through:
     A scheduler programmed with cron
     Compilation of other projects
     Request of an specific URL



                                                                    19
3.3. Hudson
   Principals advantages:
     Easy installation and use: deploy a .war and easy web interface
     An extensible plugin system
     Support for distributed compilation based on master-slave systems
     Support for multiples machines and project groups
     It is completely Free Software




                                                                          20
21
   Selenium:
     http://seleniumhq.org/docs/05_selenium_rc.html

   Scrum:
     http://www.scrummanager.net/files/sm_proyecto.pdf

   Hudson:
     http://www.xnoccio.com/es/362-hudson-parte-1-introduccion/

   Maven:
     http://en.wikipedia.org/wiki/Apache_Maven
     http://maven.apache.org/ (faq, doc, etc)
     http://linsolas.developpez.com/articles/java/outils/builds/#LV-A
     http://docs.codehaus.org/display/MAVENUSER/introduction-to-the-lifecycle*


                                                                                  22
   Junit:
       http://junit.org/
       http://junit.sourceforge.net/doc/faq/faq.htm
       http://junit.sourceforge.net/doc/cookbook/cookbook.htm
       http://en.wikipedia.org/wiki/JUnit
       http://en.wikipedia.org/wiki/Unit_testing
   SVN Apache:
       http://en.wikipedia.org/wiki/Apache_Subversion
       http://en.wikipedia.org/wiki/Software_versioning
       http://en.wikipedia.org/wiki/Concurrent_Versions_System
       http://subversion.apache.org/
       http://www.siteduzero.com/tutoriel-3-2696-gerez-vos-projets-a-l-aide-du-
        gestionnaire-de-versions-subversion.html
       http://doc.ubuntu-fr.org/subversion

                                                                                   23

More Related Content

What's hot

Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in MavenGeert Pante
 
Continuous Deployment Pipeline with maven
Continuous Deployment Pipeline with mavenContinuous Deployment Pipeline with maven
Continuous Deployment Pipeline with mavenAlan Parkinson
 
How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotBaruch Sadogursky
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0Jasmine Conseil
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
 
Apache Maven for SoftServe IT Academy
Apache Maven for SoftServe IT AcademyApache Maven for SoftServe IT Academy
Apache Maven for SoftServe IT AcademyVolodymyr Ostapiv
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svnAnkur Goyal
 
Maven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenMaven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenGeert Pante
 
Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup PuneUmesh Kumhar
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to MavenVadym Lotar
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineSlawa Giterman
 

What's hot (20)

P&MSP2012 - Maven
P&MSP2012 - MavenP&MSP2012 - Maven
P&MSP2012 - Maven
 
Maven
MavenMaven
Maven
 
Version Management in Maven
Version Management in MavenVersion Management in Maven
Version Management in Maven
 
03 - Continuous Integration
03 - Continuous Integration03 - Continuous Integration
03 - Continuous Integration
 
Continuous Deployment Pipeline with maven
Continuous Deployment Pipeline with mavenContinuous Deployment Pipeline with maven
Continuous Deployment Pipeline with maven
 
How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we got
 
Presentation 1 open source tools in continuous integration environment v1.0
Presentation 1   open source tools in continuous integration environment v1.0Presentation 1   open source tools in continuous integration environment v1.0
Presentation 1 open source tools in continuous integration environment v1.0
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
 
Apache Maven for SoftServe IT Academy
Apache Maven for SoftServe IT AcademyApache Maven for SoftServe IT Academy
Apache Maven for SoftServe IT Academy
 
Apache Maven
Apache MavenApache Maven
Apache Maven
 
Introduction to Maven
Introduction to MavenIntroduction to Maven
Introduction to Maven
 
Build server
Build serverBuild server
Build server
 
Ci jenkins maven svn
Ci jenkins maven svnCi jenkins maven svn
Ci jenkins maven svn
 
Maven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in MavenMaven plugins, properties en profiles: Advanced concepts in Maven
Maven plugins, properties en profiles: Advanced concepts in Maven
 
Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup Pune
 
Maven ppt
Maven pptMaven ppt
Maven ppt
 
An Introduction to Maven
An Introduction to MavenAn Introduction to Maven
An Introduction to Maven
 
Introduction to maven
Introduction to mavenIntroduction to maven
Introduction to maven
 
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 PipelineDelivery Pipeline as Code: using Jenkins 2.0 Pipeline
Delivery Pipeline as Code: using Jenkins 2.0 Pipeline
 
BDD using Cucumber JVM
BDD using Cucumber JVMBDD using Cucumber JVM
BDD using Cucumber JVM
 

Viewers also liked

Pro-Business cities and states
Pro-Business cities and statesPro-Business cities and states
Pro-Business cities and statesChamberFoundation
 
Jonathan Kay - How to launch your product and build buzz for your business
Jonathan Kay - How to launch your product and build buzz for your businessJonathan Kay - How to launch your product and build buzz for your business
Jonathan Kay - How to launch your product and build buzz for your businessRamenCamp
 
Seven most important metrics for video email marketing.
Seven most important metrics for video email marketing. Seven most important metrics for video email marketing.
Seven most important metrics for video email marketing. Vidoomail
 
Consulmex NY te da información sobre como realizar tus Impuestos
Consulmex NY te da información sobre como realizar tus ImpuestosConsulmex NY te da información sobre como realizar tus Impuestos
Consulmex NY te da información sobre como realizar tus ImpuestosConsulmexNY
 
Ef tours general information
Ef tours general informationEf tours general information
Ef tours general informationchochmuth
 
English time 3 rb chapter 1
English time 3 rb   chapter 1English time 3 rb   chapter 1
English time 3 rb chapter 1Fun With English
 
Guyana Goldfields November 2012 Investor Presentation
Guyana Goldfields November 2012 Investor PresentationGuyana Goldfields November 2012 Investor Presentation
Guyana Goldfields November 2012 Investor Presentationjwagenaar734
 
Manual elaborar-blog-aplicacion-educacion
Manual elaborar-blog-aplicacion-educacionManual elaborar-blog-aplicacion-educacion
Manual elaborar-blog-aplicacion-educacionFiliberto Ucan
 
Rmc.web movil.v.2.0
Rmc.web movil.v.2.0Rmc.web movil.v.2.0
Rmc.web movil.v.2.0Yamiunivo
 
Reconstruir para seguir peleando por la mejora de la educación
Reconstruir para seguir peleando por la mejora de la educaciónReconstruir para seguir peleando por la mejora de la educación
Reconstruir para seguir peleando por la mejora de la educaciónkarina lopez
 

Viewers also liked (20)

Pro-Business cities and states
Pro-Business cities and statesPro-Business cities and states
Pro-Business cities and states
 
Generations In The Workplace
Generations In The WorkplaceGenerations In The Workplace
Generations In The Workplace
 
Jonathan Kay - How to launch your product and build buzz for your business
Jonathan Kay - How to launch your product and build buzz for your businessJonathan Kay - How to launch your product and build buzz for your business
Jonathan Kay - How to launch your product and build buzz for your business
 
401 – Service Design
401 – Service Design401 – Service Design
401 – Service Design
 
Expoblas
ExpoblasExpoblas
Expoblas
 
Seven most important metrics for video email marketing.
Seven most important metrics for video email marketing. Seven most important metrics for video email marketing.
Seven most important metrics for video email marketing.
 
Nanotecnologia
NanotecnologiaNanotecnologia
Nanotecnologia
 
Consulmex NY te da información sobre como realizar tus Impuestos
Consulmex NY te da información sobre como realizar tus ImpuestosConsulmex NY te da información sobre como realizar tus Impuestos
Consulmex NY te da información sobre como realizar tus Impuestos
 
High fidelity english
High fidelity englishHigh fidelity english
High fidelity english
 
Apoemas
ApoemasApoemas
Apoemas
 
Ef tours general information
Ef tours general informationEf tours general information
Ef tours general information
 
TTC FITCuba 2014
TTC FITCuba 2014TTC FITCuba 2014
TTC FITCuba 2014
 
English time 3 rb chapter 1
English time 3 rb   chapter 1English time 3 rb   chapter 1
English time 3 rb chapter 1
 
Guyana Goldfields November 2012 Investor Presentation
Guyana Goldfields November 2012 Investor PresentationGuyana Goldfields November 2012 Investor Presentation
Guyana Goldfields November 2012 Investor Presentation
 
Manual elaborar-blog-aplicacion-educacion
Manual elaborar-blog-aplicacion-educacionManual elaborar-blog-aplicacion-educacion
Manual elaborar-blog-aplicacion-educacion
 
Actividad individual n0. 2 e portafolio
Actividad individual n0. 2 e portafolioActividad individual n0. 2 e portafolio
Actividad individual n0. 2 e portafolio
 
Rmc.web movil.v.2.0
Rmc.web movil.v.2.0Rmc.web movil.v.2.0
Rmc.web movil.v.2.0
 
Heifer China (Haihui ) Annual Report FY2011
Heifer China (Haihui ) Annual Report FY2011Heifer China (Haihui ) Annual Report FY2011
Heifer China (Haihui ) Annual Report FY2011
 
Ptl presentazione02
Ptl  presentazione02Ptl  presentazione02
Ptl presentazione02
 
Reconstruir para seguir peleando por la mejora de la educación
Reconstruir para seguir peleando por la mejora de la educaciónReconstruir para seguir peleando por la mejora de la educación
Reconstruir para seguir peleando por la mejora de la educación
 

Similar to Agile Software Development & Tools

Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld PresentationDan Hinojosa
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptxAnuj Sharma
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptxVgPolampalli
 
Code review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourCode review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourDenis Santos
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Amrita Prasad
 
Hudson
HudsonHudson
Hudson8x8
 
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
 
Magento infrastructure by OpsWay
Magento infrastructure by OpsWayMagento infrastructure by OpsWay
Magento infrastructure by OpsWayOpsWay
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 featuresAngel Ruiz
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topicGourav Varma
 
Selenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI TestingSelenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI Testingmikereedell
 
Enhance your Agility with DevOps
Enhance your Agility with DevOpsEnhance your Agility with DevOps
Enhance your Agility with DevOpsEdureka!
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdfMahmoudAlnmr1
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopMichael Palotas
 
Part6 introducing the jas forge collaborative project
Part6   introducing the jas forge collaborative projectPart6   introducing the jas forge collaborative project
Part6 introducing the jas forge collaborative projectJasmine Conseil
 

Similar to Agile Software Development & Tools (20)

Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld Presentation
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
 
varun JENKINS.pptx
varun JENKINS.pptxvarun JENKINS.pptx
varun JENKINS.pptx
 
Code review automation and functional tests on Carrefour
Code review automation and functional tests on CarrefourCode review automation and functional tests on Carrefour
Code review automation and functional tests on Carrefour
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
 
Hudson
HudsonHudson
Hudson
 
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
 
Magento infrastructure by OpsWay
Magento infrastructure by OpsWayMagento infrastructure by OpsWay
Magento infrastructure by OpsWay
 
Maven 2 features
Maven 2 featuresMaven 2 features
Maven 2 features
 
Jenkins advance topic
Jenkins advance topicJenkins advance topic
Jenkins advance topic
 
Selenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI TestingSelenium2 and Jenkins: Almost pain-free UI Testing
Selenium2 and Jenkins: Almost pain-free UI Testing
 
Jenkins.pdf
Jenkins.pdfJenkins.pdf
Jenkins.pdf
 
Session 2
Session 2Session 2
Session 2
 
Session 2
Session 2Session 2
Session 2
 
Maven
MavenMaven
Maven
 
Enhance your Agility with DevOps
Enhance your Agility with DevOpsEnhance your Agility with DevOps
Enhance your Agility with DevOps
 
Jenkins_1679702972.pdf
Jenkins_1679702972.pdfJenkins_1679702972.pdf
Jenkins_1679702972.pdf
 
jenkins.pdf
jenkins.pdfjenkins.pdf
jenkins.pdf
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Part6 introducing the jas forge collaborative project
Part6   introducing the jas forge collaborative projectPart6   introducing the jas forge collaborative project
Part6 introducing the jas forge collaborative project
 

Recently uploaded

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Agile Software Development & Tools

  • 1. DXAT (Disseny de Xarxes i Aplicacions Telemàtiques) Luis Miguel Amorós Adrien Viala
  • 2. 1. Testing Tools 1.1. JUnit 1.2. Selenium 2. Agile Software Development 2.1. Scrum 3. Continuous Integration 3.1. Version control tools (SVN, GIT) 3.2. Project creation and management tools(Maven) 3.3. Hudson 2
  • 3. 1.1. JUnit  From xUnit generic term: a framework to test the smallest part of a code.  For Java: class, interface.  It aims at repeatable tests: checking that code’s evolution do not alter the specification compliance.  Integrated in Eclipse, NetBeans…  Content:  Assertions for testing expected results  Test fixtures for sharing common test data  Test runners for running tests 3
  • 4. import junit.framework.TestCase; @Before import org.junit.*; public void setUp() throws Exception { // Code executed before each test public class TestFoobar extends } TestCase{ @BeforeClass @After public static void setUpClass() public void tearDown() throws Exception { throws Exception { // Code executed after each test // Code executed before the } first test method } @Test @AfterClass public void test() { public static void assertTrue(true); tearDownClass() throws Exception } { } // Code executed after the last test method } 4
  • 5. 1.2. Selenium  Test web applications  It records a previous test and plays it anytime it would be necessary in order to test the webapp  It has its own programming language (Selenes) in order to program tests in most popular languages:  C#, Java, Groovy, Perl, PHP, Python & Ruby.  Tests can be executed in any web browser and any platform 5
  • 6. 1.2. Selenium  Its architecture is based on:  Selenium IDE: ▪ Firefox Extension which lets to record, edit and debug tests ▪ It lets to export created tests into different programming languages  Selenium RemoteControl ▪ Java Server which interprets commands via HTTP  Selenium Client API ▪ Selenese 6
  • 7. Its purpose is to assure the main demands of the industry nowadays:  Value: ▪ Value at the moment of product launch ▪ Ability to adapt and evolve through upgrades and expansions  Reduced development time: ▪ Overlapping in development phases ▪ Early delivery of the first parts of the product which are often the most urgent  Quickness: ▪ Produce complete parts of the product in short periods of time  Flexibility: ▪ Adjust the shape and course of project development characteristics and evolution of requirements  Reliability: ▪ The processes are good when they get delivered early and continuously innovative value 7
  • 8. Agile Software Development cycle is divided into:  Concept: ▪ Create the vision of the product ▪ Determine what the team is going to work on  Speculation: ▪ Determine limitations imposed by business environment: agendas and costs ▪ Close first approximation about what it can be produced  Exploration: ▪ Develop an increment of the product which includes those functionalities determined in previous phase  Revision: ▪ Revision what it has been built until this moment  Closing: ▪ It does not imply the end of the project 8
  • 9. Most popular Agile Software Development models are:  Adaptive Software Development (ASD)  Agile Unified Process (AUP)  Crystal Clear.  Essential Unified Process (EssUP)  Feature Driven Development (FDD)  Lean Software Development (LSD)  Kanban  Open Unified Process (OpenUP)  eXtreme Programming (XP)  Dynamic Systems Development Method (DSDM)  Scrum 9
  • 10. 2.1. Scrum  Very simple development methodology:  It requires hard work  there’s no plan, only continuous adaptation of the project  All the people which participate in the project are classified in:  Committed (pigs)  Involved (hens)  Meetings:  They must be done stood  It is advisable to use a cell format tasks on a blackboard  A graph indicating the improvements done in the sprint should be there  Meetings Type:  Sprint planning  Sprint track  Sprint review 10
  • 11. 11
  • 12. 3.1. Control Version tools  Apache Subversion (SVN):  How you manage several versions due to different programmers?  Started as early as mid 70’s.  SVN’s ancestor is CVS: Concurrent Version System, started as shell scripts in 1986.  SVN was born in 2000 to complete and develop CVS  Today, it is a top-level Apache project. 12
  • 13. 1 – Get content: svn checkout svn update 2 – Make changes: svn add svn move svn delete 3 – See what was changed in the repository in meantime svn status -u 4 – Update your local copy svn update 5 – Merge your changes and Resolve conflicts svn diff svn resolved 6 – Submit your changes svn commit 13
  • 14. Conflicts resolution:  svn diff  show the differences from the checkout files  svn revert  cancel all modification( except deleted files), then update & work again. Svn does not know how to merge binary files (.doc).  svn resolved <FileName> then commit again  svn automatically merge (fusion) if modifications are not at the same place. 14
  • 15. 3.1. Control Version tools  GIT: distributed version control, since 2005, by Torvalds for Linux kernel.  created by programmers for programmers !! • Only working copies • Faster operation (no central server) • Autonomous group of developers from network and chiefs. • Private versioning. • Still possibility to have a central server. 15
  • 16. 3.2. Maven :  Maven: project management and build automation  Only direct dependencies  Scope specification (JUnit only for test) 16
  • 17.  Project described in the POM file, Project Object Model. XML, and v3.0 Ruby, Groovy or Yaml.  Contents:  Src and resource files location  Java version  Direct dependencies  Used plugins  Technical report asked <project> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1.0</version> </project> 17
  • 18. Convention over Configuration: specified only the unconventional.  Build life cycles:  process-resources  compile  process-test-resources  test-compile  test  package  install  Deploy  mvn test  all the way until test. 18
  • 19. 3.3. Hudson  Continuous Integration Tool implemented in Java  It works over an application server such as Apache or GlassFish  It supports control version tools (CVS, SVN, GIT)  It can execute projects based in Apache Ant or Maven, and scripts based on batch or shell/bash scripts  It can build the projects through:  A scheduler programmed with cron  Compilation of other projects  Request of an specific URL 19
  • 20. 3.3. Hudson  Principals advantages:  Easy installation and use: deploy a .war and easy web interface  An extensible plugin system  Support for distributed compilation based on master-slave systems  Support for multiples machines and project groups  It is completely Free Software 20
  • 21. 21
  • 22. Selenium:  http://seleniumhq.org/docs/05_selenium_rc.html  Scrum:  http://www.scrummanager.net/files/sm_proyecto.pdf  Hudson:  http://www.xnoccio.com/es/362-hudson-parte-1-introduccion/  Maven:  http://en.wikipedia.org/wiki/Apache_Maven  http://maven.apache.org/ (faq, doc, etc)  http://linsolas.developpez.com/articles/java/outils/builds/#LV-A  http://docs.codehaus.org/display/MAVENUSER/introduction-to-the-lifecycle* 22
  • 23. Junit:  http://junit.org/  http://junit.sourceforge.net/doc/faq/faq.htm  http://junit.sourceforge.net/doc/cookbook/cookbook.htm  http://en.wikipedia.org/wiki/JUnit  http://en.wikipedia.org/wiki/Unit_testing  SVN Apache:  http://en.wikipedia.org/wiki/Apache_Subversion  http://en.wikipedia.org/wiki/Software_versioning  http://en.wikipedia.org/wiki/Concurrent_Versions_System  http://subversion.apache.org/  http://www.siteduzero.com/tutoriel-3-2696-gerez-vos-projets-a-l-aide-du- gestionnaire-de-versions-subversion.html  http://doc.ubuntu-fr.org/subversion 23