PHP, QA, and Jenkins Eric Cope June 25, 2013

Slides:



Advertisements
Similar presentations
Vincent Massol, 1 st December 2006 Quality with Maven2.
Advertisements

Jenkins User Conference Jenkins User Conference Israel, 06 June 2013 #jenkinsconf Pre-Tested Commits with Jenkins and Reviewboard Yardena Meymann VMware.
Test Automation Framework Ashesh Jain 2007EE50403 Manager Amit Maheshwari.
Scite Scintilla integrated text editor. Click here.
BY: KYLE ROGAHN COMPUTER SCIENCE SEMINAR UW PLATTEVILLE 4/3/2012 Web Browser Automation - Geb.
Continuous Integration after Hudson, CruiseControl, and Home Built Mile High Agile 2011 – Mark Waite.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
DNN LOVES JENKINS FOR CONTINUOUS INTEGRATION
JSP and Servlets Lecture notes by Theodoros Anagnostopoulos.
Maven and Stack Starter Michael Youngstrom. Notes This is a training NOT a presentation Please ask questions Prerequisites – Introduction to Java Stack.
M. Taimoor Khan * Java Server Pages (JSP) is a server-side programming technology that enables the creation of dynamic,
Maven & Bamboo CONTINUOUS INTEGRATION. QA in a large organization In a large organization that manages over 100 applications and over 20 developers, implementing.
MAVEN-BLUEMARTINI Yannick Robin. What is maven-bluemartini?  maven-bluemartini is Maven archetypes for Blue Martini projects  Open source project on.
Eclipse Overview Introduction to Web Programming Kirkwood Continuing Education Fred McClurg © Copyright 2015, Fred McClurg, All Rights Reserved.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Towards Further Automation of the Quality Assurance Cycle Alan Berg: University of Amsterdam Central Computer Services (IC)‏ Group Education and Research.
Created by: Maria Abrahms Modified Date: Classification: How to get it done Contributing to OpenStack.
Troubleshooting Tips and Tricks Derick Larson Kinetic Data.
INFSOM-RI Juelich, 10 June 2008 ETICS - Maven From competition, to collaboration.
MAE Continuous Integration Administration guide July 8th, 2013.
Plug-in Development Environment. Session Outline Tools Installation Configuration New Project Basic Debugging Remote Debugging.
Development Environment Matthew Sell, CSSE Student MASS Research Participant, October 2014.
Continuous Integration Mile High Agile 2012 – Mark Waite 3 April 2012.
Installing Repast in the Eclipse IDE Charlie Gieseler 6/28/04.
Scalatest. 2 Test-Driven Development (TDD) TDD is a technique in which you write the tests before you write the code you want to test This seems backward,
Introduction Selenium IDE is a Firefox extension that allows you to record, edit, and debug tests for HTML Easy record and playback Intelligent field selection.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Build automation. Prerequisites for Continuous Integration (CI)  Version Control System  Build automation  Notification on build result sent to related.
Build Systems Presentation December 14, 2015 Noon-1pm Kathy Lee Simunich Bldg. 203/ D120 Brought to you by: Argonne Java.
Lecture XIII: Continuous Integration CS 4593 Cloud-Oriented Big Data and Software Engineering.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
Test Driven Development Introduction Issued date: 8/29/2007 Author: Nguyen Phuc Hai.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
TSSG Case Study: Using Free & Open Source Tools to Manage Software Quality EECS811: Software/IT Project Management Agile Integration Management Case Study.
Managing TDM Drawings Lifecycle WorkFlow Created: March 30, 2006 Updated: April 10, 2006 By: Tony Parker.
Copyright © 2010 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. ODS Tools – Fannie Mae.
© 2013 IBM Corporation IBM UrbanCode Deploy v6.0 Support Enablement Training Jenkins plug-in 1 November 2013.
PRODUCT - ORGANIZATION - AGILE - LEAN CD - Agile on Steroids - (and what Jenkins got to do with it) Paul Bakker linkedin.com/paulgbakker github.com/p-bakker.
Findbugs Tin Bui-Huy September, Content What is bug? What is bug? What is Findbugs? What is Findbugs? How to use Findbugs? How to use Findbugs?
Platform & Maven2 David Šimonek. Certified Engineer Course Agenda What is Maven? Why Maven? NB IDE & Maven NB Platform & Maven.
#! Phil Norton Getting Started With Jenkins and Drupal DrupalCampNW 2013.
Catch Your Bugs By Surprise: Testing with PHPUnit Orion Ifland Tipping Canoe
End-to-end Web Testing with Selenium ● Stefan Priebsch, e-novative GmbH ● ZendCon 2008, Santa Clara, CA.
Getting Started as an EdgeX Developer
Open-O Integration Project Introduction
Maven 04 March
Selenium HP Web Test Tool Training
Plan What is Maven ? Links : mvn command line tool
External Web Services Quick Start Guide
Modern “Servlet” Development
Selenium HP Web Test Tool Training
Understanding SOAP and REST calls The types of web service requests
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Getting Started as an EdgeX Developer
Test Driven Development 1 November Agenda  What is TDD ?  Steps to start  Refactoring  TDD terminology  Benefits  JUnit  Mocktio  Continuous.
Selenium Automation Framework
Installing and running the local check projects in Eclipse
DevOps Deep Dive DevOps Deep Dive What you will learn
Using Jenkins for your DSC CI Pipeline
Quick Start Guide for Visual Studio 2010
Sr. Developer Cloud System - Architecture
Devops Jenkins as CI/CD tool Created By: Amrit Choudhary
JENKINS TIPS Ideas for making your life with Jenkins easier
Continuous Integration
Continuous Integration Tool
The Most Popular Android UI Automation Testing Tool Andrii Voitenko
PagerDuty Integration Development
Java Code Review with CheckStyle
Software Engineering and Architecture
Presentation transcript:

PHP, QA, and Jenkins Eric Cope June 25,

About Me I run Voltamp Media Inc., a 1-man web-dev shop PHP-literate since 2002 CodeIgniter since 2005 (1.6 whenever that was) Bitten by the TDD bug around 2006 Met Hudson/Jenkins in 2011

The Tools Jenkins - – Continuous Integration Tool – Basic install is a quick download then: java –jar jenkins.war Normal vs. LTS – For bigger installations, its recommended to run within a java container, like Tomcat. PHPUnit – – A set of QA tools – Installation is via PEAR Selenium – – java -jar selenium-server-standalone jar

Getting Started Open a browser to: –

Managing Jenkins File System Location – Config files – Project build areas – Manage plugins Start from here - Get the plugins Static Code Analysis Plug-insClover PHP PluginPlot plugin DRY PluginCheckstyle PluginPMD Plugin Git PluginHTML Publisher PluginxUnit Plugin

The First Job Each job must be configured! – Source Code – how to get the code – Build triggers (poll SCM, commit hooks) – Build Steps Scripts (very limited environment) Maven Ant – see for yours! – Post Build Steps Plots, reports

The ANT Script This is auto-generated, then modified as needed Test by running: % ant /path/to/build.xml More at g

The PHPUnit Script This is auto-generated, then modified as needed too Test by running: % phpunit

PHPUnit Tips and Tricks - fixtures YAML files can be used within a fixture

PHPUnit Tips and Tricks – data providers YAML files can be used as a data provider too – Calls the provider (returns an array) – For each row it calls the test The YAML is different!

PHPUnit Tips and Tricks – Exceptions Test your exceptions! Check exception class and code

Bonus! PHPUnit and Selenium Make Jenkins drive PHPUnit drive Selenium!

My Issues - controller My current projects use CodeIgniter. CIUnit makes using PHPUnit and CI better, but setup is painful. – End case of parent controller Correct parent class in setUp, but not in the testMethod! MY_Controller vs. Controller – $this->CI = set_controller('MY_Controller');

My Issues - Selenium Selenium has matured quite a bit, but documentation and support is still very lean. PHPUnit’s Selenium2 class is much better, but still leaves much to be desired. – Click() does not wait for the page to load after a form submission. Selenese supported clickandwait(), but I can’t find documentation… – selenium/blob/master/Tests/Selenium2TestCaseTest.p hp selenium/blob/master/Tests/Selenium2TestCaseTest.p hp – -with-selenium

Still to Learn/Do Mocks Dependency Injection Code Coverage DRY-er! More Integration coverage with Selenium Exclude External Libraries in analysis || fix them! Better TDD / BDD