Java course - IAG0040. Unit testing & Agile Software Development

Size: px
Start display at page:

Download "Java course - IAG0040. Unit testing & Agile Software Development"

Transcription

1 Java course - IAG0040 Unit testing & Agile Software Development 2011

2 Unit tests How to be confident that your code works? Why wait for somebody else to test your code? How to provide up-to-date examples on using your API? How to help yourself see your design better and therefore improve it? The answer: write Unit Tests!!! Unit tests are executable test cases for your modules (units), expressed in code Unit tests are executed automatically to ensure that your code still works after changing it (regression testing) Slide 2

3 Benefits of unit tests Unit testing isolates each module and shows that it is correct. It provides a strict written contract that the code must satisfy Facilitates change unit tests provide regression testing, make refactoring safer Simplifies integration integration testing is easier, if parts are already proven to work correctly Documentation unit tests show how to use the API Separation of interface from implementation unit tests result in loosely coupled code Slide 3

4 A simple example public class Concatenator { // this is a method under test public String concat(string a, String b) { return a + b; } } // this is a simple test case public static void main(string[] args) { Concatenator c = new Concatenator(); assert abc123.equals( c.concat( abc, 123 )) : concat() failed! ; } Slide 4

5 JUnit JUnit is the first and most popular unit and regression testing framework for Java Is a 3rd-party jar file Obtainable from Included and interfaced in IDEA, Eclipse, etc JUnit 3 older but still very popular JUnit 4 takes advantage of Java 5 features Slide 5

6 JUnit (cont) JUnit 3 must extend the junit.framework.testcase class TestCase provides a lot of assertxxx() methods setup() method is run before each test teardown() method is run after each test JUnit 4 no extending is needed annotate test methods (from org.junit) assertxxx() methods may be statically imported import static annotations replace setup() and teardown() Slide 6

7 JUnit 3 example public class Concatenator { // this is a method under test public String concat(string a, String b) { return a + b; } } public class ConcatenatorTest extends TestCase{ // this is a simple test case public void testconcat() { Concatenator c = new Concatenator(); assertequals( concat() failed!, abc123, c.concat( abc, 123 )); } } Slide 7

8 JUnit 4 example public class Concatenator { // this is a method under test public String concat(string a, String b) { return a + b; } } public class ConcatenatorTest { // this is a simple test public void testconcat() { Concatenator c = new Concatenator(); assertequals( concat() failed!, abc123, c.concat( abc, 123 )); } } Slide 8

9 JUnit (cont) Naming convention Create at least one test class for each class, test classes usually have the Test suffix (e.g. DogTest) Generally, create one test method per method under test public void doghasaname()) Put tests into the the test directory (same package as the class under test, then you can access package local methods from tests) JUnit runs all tests, defined in public void testxxx methods in classes extending TestCase, or annotated (no 'test' prefix please) Slide 9

10 Mock objects in tests Unit tests must isolate the unit under test (avoid dependencies) If an object under test uses other objects, they must be mocked A mock object has the same interface as the real object, but different implementation (in many cases, it does nothing) Real objects being mocked should have their own separate unit tests Possible implementations: Overriding: class MockDog extends Dog {... } Anonymous classes: new Dog() {... } Dynamic proxies: Proxy.newProxyInstance(... ) (see javadoc of java.lang.reflect.proxy) Frameworks: mockito, easymock, mockobjects, jmock, etc Slide 10

11 Unit test tasks Write unit tests for these your classes using JUnit 4 (see previous lectures' slides if you don't have them): Fibonacci, Factorial DuplicateRemoverImpl WordFrequencyCalculatorImpl ShapeAggregatorImpl Use the above mentioned naming/coding convention You no longer need main() methods in these classes which demonstrate that the code works these were actually a sort of unit tests, too Slide 11

12 Agile Software Development Is a relatively new and more efficient software development methodology (process) Minimizes risks by splitting projects into small iterations that look like separate projects Each iteration includes all tasks to release an increment in functionality planning requirements analysis design & coding & testing documentation Slide 12

13 Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Slide 13

14 So what is Agile? Way of creating software in lighter, faster, and people-centric way Adaptable, not predictable Working software is the primary measure of success and is delivered frequently Agile software development requires strict discipline Project team sits together (face-to-face communication) programmers and customers at minimum testers, designers, technical writers, managers Changes in requirements are welcomed, not being afraid of Slide 14

15 Agile methodologies There are many (some existed before the Agile Manifesto) Scrum, Crystal Clear, Lean Software Development, XP (Extreme Programming), etc Bad (but often used) alternatives: Cowboy coding no well-defined process Waterfall most predictive, steps through requirements capture, analysis, design, coding, testing in a strict sequence (see fake conference site) Slide 15

16 Agile/XP project cycle Kick-off meeting Iterations: Iteration planning meeting (a few hours) Daily stand-up meetings (max 15 min) Designing, coding, testing, communicating Fixed deadline ends (or customer decides to finish the project) Slide 16

17 User stories and iterations User stories are written on small paper chunks They are are added/removed/prioritized during iteration planning meetings Each user story is estimated in abstract units Team's velocity is calculated after each iteration Next iteration plan must be the same number of units completed during the previous iteration After a few iterations, velocity stabilizes Slide 17

18 TDD (Test Driven Development) TDD is one of the main practices of XP (Extreme Programming) TDD = TFD + refactoring TFD (Test First Development) means Write tests before the real (functional) code Write real code only to satisfy failing tests Eliminate duplication Refactoring means redesigning the code without changing or braking existing functionality always ensure that you have the simplest design possible for the functionality built to date Slide 18

19 TDD benefits Code is written in small steps You design your API before writing code, which results in better and loosely coupled object model You get 100% unit test coverage After each test-code iteration you get a working code, you can virtually stop anytime You don't waste time designing beforehand; initial designs cannot predict everything You can change anything anytime (because requirements always change) Overengineering is eliminated Slide 19

20 Pair Programming Pair Programming means there are two programmers sitting and working together Pairs help stay on track with TDD Pairing helps to learn from each other Instant (extreme) code review Two people produce better ideas than any of them could alone Ping-pong allows to turn development into a game Implement failing test, write a new test, pass keyboard Slide 20

21 Continuous integration Regular automated builds of the software (e.g. after each commit) the whole program is recompiled automated (unit) tests are run documentation is generated software is packaged and therefore ready to run Provides short feedback to developers Helps to find integration problems and failed tests early The latest builds are always runnable and testable by e.g. customers Hudson is one of the tools used for this purpose see Slide 21

22 Hands-on: TDD Bowling Rules/Requirements of 10-pin bowling: A game of 10 frames (2 shots per frame) Total score = sum of scores of all frames Spare all 10 pins are hit with two shots (frame) Frame score += next shot (bonus) Strike all 10 pins are hit with one shot Frame score += two next shots (bonus) If last frame hits all pins, extra shot is awarded Perfect game = 12 strikes = 300 points Slide 22

Introduction to Agile Software Development Process. Software Development Life Cycles

Introduction to Agile Software Development Process. Software Development Life Cycles Introduction to Agile Software Development Process Presenter: Soontarin W. (Senior Software Process Specialist) Date: 24 November 2010 AGENDA Software Development Life Cycles Waterfall Model Iterative

More information

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process Extreme Programming, an agile software development process Paul Jackson School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled

More information

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories XP & Scrum Beatrice Åkerblom [email protected] extreme Programming XP Roles XP Roles, cont!d! Customer ~ Writes User Stories and specifies Functional Tests ~ Sets priorities, explains stories ~ May or

More information

Extreme Programming, an agile software development process

Extreme Programming, an agile software development process Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh Recall: Waterfall and Spiral Models Waterfall: Spiral: Split project into controlled

More information

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes

RUP. Development Process. Iterative Process (spiral) Waterfall Development Process. Agile Development Process. Well-known development processes Well-known development processes Development Process RUP (Rational Unified Process) (Capability Maturity Model Integration) Agile / XP (extreme Programming) Waterfall Development Process Iterative Process

More information

Agile processes. Extreme Programming, an agile software development process

Agile processes. Extreme Programming, an agile software development process Agile processes Extreme Programming, an agile software development process Nigel Goddard School of Informatics University of Edinburgh What the spiral models were reaching towards was that software development

More information

Test Driven Development

Test Driven Development Test Driven Development Introduction Test Driven development (TDD) is a fairly recent (post 2000) design approach that originated from the Extreme Programming / Agile Methodologies design communities.

More information

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem Agile processes Extreme Programming, an agile software development process Perdita Stevens School of Informatics University of Edinburgh What the spiral models were reaching towards was that software development

More information

JUnit. Introduction to Unit Testing in Java

JUnit. Introduction to Unit Testing in Java JUnit Introduction to Unit Testing in Java Testing, 1 2 3 4, Testing What Does a Unit Test Test? The term unit predates the O-O era. Unit natural abstraction unit of an O-O system: class or its instantiated

More information

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods Topics covered Chapter 3 Agile Software Development Agile methods Plan-driven and agile Extreme programming Agile project management Scaling agile methods 1 2 Need for rapid software Rapid software Changing

More information

Approach of Unit testing with the help of JUnit

Approach of Unit testing with the help of JUnit Approach of Unit testing with the help of JUnit Satish Mishra [email protected] About me! Satish Mishra! Master of Electronics Science from India! Worked as Software Engineer,Project Manager,Quality

More information

Upping the game. Improving your software development process

Upping the game. Improving your software development process Upping the game Improving your software development process John Ferguson Smart Principle Consultant Wakaleo Consulting Email: [email protected] Web: http://www.wakaleo.com Twitter: wakaleo Presentation

More information

Test-Driven Development

Test-Driven Development Test-Driven Development An Introduction Mattias Ståhlberg [email protected] Debugging sucks. Testing rocks. Contents 1. What is unit testing? 2. What is test-driven development? 3. Example 4.

More information

Unit Testing. and. JUnit

Unit Testing. and. JUnit Unit Testing and JUnit Problem area Code components must be tested! Confirms that your code works Components must be tested t in isolation A functional test can tell you that a bug exists in the implementation

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development Ingegneria del Software Corso di Laurea in Informatica per il Management Agile software development Davide Rossi Dipartimento di Informatica Università di Bologna The problem Efficiency: too much effort

More information

Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.

Test Driven Development Part III: Continuous Integration Venkat Subramaniam venkats@agiledeveloper.com http://www.agiledeveloper.com/download. Test Driven Development Part III: Continuous Integration Venkat Subramaniam [email protected] http://www.agiledeveloper.com/download.aspx Abstract In this final part of the three part series on

More information

Software Development Methodologies

Software Development Methodologies Software Development Methodologies Jonathan Hoyle Eastman Kodak Thursday, June 2, 2005 Overview Predictive Methodologies Waterfall Other Predictive Methodologies Agile Methodologies Extreme Programming

More information

Agile Testing. What Students Learn

Agile Testing. What Students Learn Agile Testing Transition sound traditional test practices into an Agile development environment. By using a step-by-step approach, this course documents how to transition from traditional test practices

More information

Agile Development with C#

Agile Development with C# Agile Development with C# Paweł Jarosz, [email protected] Cracow University of Technology, Poland Jyvaskyla University of Applied Sciences, February 2009 Paweł Jarosz who am I? M.Sc. of Applied Physics

More information

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D. An Introduction to extreme Programming Jonathan I. Maletic, Ph.D. Department of Computer Science Kent State University Introduction Extreme Programming (XP) is a (very) lightweight incremental software

More information

Agile Testing and Extreme Programming

Agile Testing and Extreme Programming Agile Testing and Extreme Programming [email protected] www.pettichord.com March 2003 Copyright 2003 Bret Pettichord. All rights reserved. The Agile Alliance Values We have come to value: Individuals

More information

Unit Testing JUnit and Clover

Unit Testing JUnit and Clover 1 Unit Testing JUnit and Clover Software Component Technology Agenda for Today 2 1. Testing 2. Main Concepts 3. Unit Testing JUnit 4. Test Evaluation Clover 5. Reference Software Testing 3 Goal: find many

More information

Testing in Agile methodologies easier or more difficult?

Testing in Agile methodologies easier or more difficult? Testing in Agile methodologies easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości Systemów Informatycznych [email protected] [email protected] Professor in

More information

XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich

XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich XP and TDD Extreme Programming and Test Driven Development Bertrand Meyer, Manuel Oriol Andreas Leitner ETH Zurich October 27, 2006 Outline Development Processes Overview Extreme Programming Test Driven

More information

Agile Project Management By Mark C. Layton

Agile Project Management By Mark C. Layton Agile Project Management By Mark C. Layton Agile project management focuses on continuous improvement, scope flexibility, team input, and delivering essential quality products. Agile project management

More information

AGILE BUSINESS INTELLIGENCE

AGILE BUSINESS INTELLIGENCE AGILE BUSINESS INTELLIGENCE OR HOW TO GIVE MANAGEMENT WHAT THEY NEED WHEN THEY NEED IT Evan Leybourn Author Directing the Agile Organisation Melbourne, Australia [email protected] INTRODUCTION

More information

Agile and lean methods for managing application development process

Agile and lean methods for managing application development process Agile and lean methods for managing application development process Hannu Markkanen 24.01.2013 1 Application development lifecycle model To support the planning and management of activities required in

More information

JDemo - Lightweight Exploratory Developer Testing

JDemo - Lightweight Exploratory Developer Testing JDemo Lightweight Exploratory Developer Testing Ilja Preuß [email protected] disy Informationssysteme GmbH, Karlsruhe, Germany Agile 2008 Motivation Introduction to JDemo Demonstration Experiences Demos

More information

Quality Assurance Software Development Processes

Quality Assurance Software Development Processes Quality Assurance Software Development Processes Part II - Lecture 3 1 The University of Auckland New Zealand 254 12/09/ /2012 The FBI Virtual Case File 254 12/09/ /2012 Database application developed

More information

How To Be Successful At An Agile Software Engineering

How To Be Successful At An Agile Software Engineering "Agile Software Engineering" Overview for external offering of ASE ABAP Juergen Heymann, CPO Software Engineering There are many ingredients for successful software projects Experienced Developers Domain

More information

Agile Software Development

Agile Software Development Agile Software Development Use case for Agile Software Development Methodology in an Oil and Gas Exploration environment. White Paper Introduction No matter what business you are in, there are critical

More information

Agile So)ware Development

Agile So)ware Development Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast

More information

Agile Development Overview

Agile Development Overview Presented by Jennifer Bleen, PMP Project Services Practice of Cardinal Solutions Group, Inc. Contact: Agile Manifesto We are uncovering better ways of developing software by doing it and helping others

More information

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people: AGILE HANDBOOK OVERVIEW WHAT IS THIS? This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people: Someone who is looking for a quick overview on

More information

Agile Scrum Workshop

Agile Scrum Workshop Agile Scrum Workshop What is agile and scrum? Agile meaning: Able to move quickly and easily. Scrum meaning: a Rugby play Agile Scrum: It is an iterative and incremental agile software development framework

More information

Agile In a Nutshell. Note - all images removed to fit 2MB limit Actual presentation has much more content. Jonathan Rasmusson

Agile In a Nutshell. Note - all images removed to fit 2MB limit Actual presentation has much more content. Jonathan Rasmusson Agile In a Nutshell Note - all images removed to fit 2MB limit Actual presentation has much more content Jonathan Rasmusson What we re going to cover How agile works What to expect What agile is Agile

More information

Agile Testing (October 2011) Page 1. Learning Objectives for Agile Testing

Agile Testing (October 2011) Page 1. Learning Objectives for Agile Testing Agile Testing (October 2011) Page 1 Learning Objectives for Agile Testing "Certification is the by-product; Learning is the product." Agile Testing should: Compare and contrast agile testing with traditional

More information

Agile Projects 7. Agile Project Management 21

Agile Projects 7. Agile Project Management 21 Contents Contents 1 2 3 Agile Projects 7 Introduction 8 About the Book 9 The Problems 10 The Agile Manifesto 12 Agile Approach 14 The Benefits 16 Project Components 18 Summary 20 Agile Project Management

More information

Unit Testing and JUnit

Unit Testing and JUnit Unit Testing and JUnit Testing Objectives Tests intended to find errors Errors should be found quickly Good test cases have high p for finding a yet undiscovered error Successful tests cause program failure,

More information

Effective unit testing with JUnit

Effective unit testing with JUnit Effective unit testing with JUnit written by Eric M. Burke [email protected] Copyright 2000, Eric M. Burke and All rights reserved last revised 12 Oct 2000 extreme Testing 1 What is extreme Programming

More information

Agile Software Development

Agile Software Development Agile Software Development Application in the Medical Device Industry Kelly Weyrauch Medtronic, Inc. (29 April 2008) Introduction Purpose Provide an introduction to Agile Software Development as it applies

More information

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT Cruceru Anca Romanian- American University, Faculty of Management- Marketing, 1B Expozitiei Blvd, Bucharest, [email protected], 0723508894

More information

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Software Development Life Cycle Models - Process Models. Week 2, Session 1 Software Development Life Cycle Models - Process Models Week 2, Session 1 PROCESS MODELS Many life cycle models have been proposed } Traditional Models (plan-driven) } Classical waterfall model } Iterative

More information

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC) Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process

More information

Contents. 3 Agile Modelling 31 3.1 Introduction 31 3.2 Modelling Misconceptions 31

Contents. 3 Agile Modelling 31 3.1 Introduction 31 3.2 Modelling Misconceptions 31 Contents 1 Introduction 1 1.1 WhyThisBook? 1 1.2 A Bit of History 1 1.3 What Is Agile Software Development? 2 1.4 WhyBe Agile? 3 1.5 What This Book Is About? 3 1.6 Implementation Languages 3 1.7 The Structure

More information

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming Génie Logiciel et Gestion de Projets Software Processes Focus on Extreme Programming 1 Roadmap Process, Method, Methodology?? What is a software process? Software Process Models Methodologies: RUP Focus

More information

Software Development Process

Software Development Process Software Development Process A software development process, also known as software development lifecycle, is a structure imposed on the development of a software product. Similar terms include software

More information

Unit-testing with JML

Unit-testing with JML Métodos Formais em Engenharia de Software Unit-testing with JML José Carlos Bacelar Almeida Departamento de Informática Universidade do Minho MI/MEI 2008/2009 1 Talk Outline Unit Testing - software testing

More information

www.testing-solutions.com TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

www.testing-solutions.com TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes www. TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes What is Agile Development? There are various opinions on what defines agile development, but most would

More information

SEEM4570 System Design and Implementation Lecture 10 Software Development Process

SEEM4570 System Design and Implementation Lecture 10 Software Development Process SEEM4570 System Design and Implementation Lecture 10 Software Development Process Software Development A software development process: A structure imposed on the development of a software product Also

More information

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal [email protected]

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal alain.april@etsmtl.ca Using Simulation to teach project management skills Dr. Alain April, ÉTS Montréal [email protected] Agenda of the workshop 1 The software project management theory overview (40 minutes) 2 Why use SDLC

More information

extreme Programming An Overview

extreme Programming An Overview extreme Programming An Overview Methoden und Werkzeuge der Softwareproduktion WS 1999/2000 Author Thomas Dudziak 1 INTRODUCTION... 4 WHAT IS EXTREME PROGRAMMING?... 4 OUTLINE... 4 BASIC CONCEPTS... 5 THE

More information

Agile Software Development

Agile Software Development E Learning Volume 5 Number 1 2008 www.wwwords.co.uk/elea Agile Software Development SOLY MATHEW BIJU University of Wollongong in Dubai, United Arab Emirates ABSTRACT Many software development firms are

More information

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986) Agile Methods Barry Boehm, CS 510 Lecture Fall 2001 ([email protected]) (http://sunset.usc.edu) Outline Silver bullets and lead bullets Information technology trends The dwindling lead-bullet niche

More information

Scrum and Testing The end of the test role Bryan Bakker 20 maart 2012

Scrum and Testing The end of the test role Bryan Bakker 20 maart 2012 Scrum and Testing The end of the test role Bryan Bakker 20 maart 2012 voordracht georganiseerd door Discussiegroep Software Testing met de steun van Ingenieurshuis, Antwerpen Scrum and Testing... The end

More information

The Agile Movement An introduction to agile software development

The Agile Movement An introduction to agile software development The Agile Movement An introduction to agile software development 1 The Agile Movement An introduction to agile software development Russell Sherwood @russellsherwood & David Sale @saley89 Agenda Who are

More information

Unit Testing & JUnit

Unit Testing & JUnit Unit Testing & JUnit Lecture Outline Communicating your Classes Introduction to JUnit4 Selecting test cases UML Class Diagrams Rectangle height : int width : int resize(double,double) getarea(): int getperimeter():int

More information

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL Sanja Vukićević 1, Dražen Drašković 2 1 Faculty of Organizational Sciences, University of Belgrade, [email protected] 2 Faculty

More information

Testing Rails. by Josh Steiner. thoughtbot

Testing Rails. by Josh Steiner. thoughtbot Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................

More information

Agile.NET Development Test-driven Development using NUnit

Agile.NET Development Test-driven Development using NUnit Agile.NET Development Test-driven Development using NUnit Jason Gorman Test-driven Development Drive the design and construction of your code on unit test at a time Write a test that the system currently

More information

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007 Agile and Secure Can We Be Both? Chicago OWASP June 20 th, 2007 The Agile Practitioner s Dilemma Agile Forces: Be more responsive to business concerns Increase the frequency of stable releases Decrease

More information

Agile Development for Application Security Managers

Agile Development for Application Security Managers Agile Development for Application Security Managers www.quotium.com When examining the agile development methodology many organizations are uncertain whether it is possible to introduce application security

More information

Agile Beyond The Team 1

Agile Beyond The Team 1 Agile Beyond The Team 1 Dilbert Agile 2 What Does Your Organization Value? Projects over Teams? Do new teams spools up for new projects? On-Time/On-Budget Delivery over Zero Maintenance Products Deliver

More information

SECC Agile Foundation Certificate Examination Handbook

SECC Agile Foundation Certificate Examination Handbook Versions 2.0 Version Date Remarks 1.0 12/4/2012 Initial version 2.0 3/8/2008 REVISION HISTORY Updated knowledge areas Added questions examples Updated suggested readings section Page 2 of 15 Version 2.0

More information

How to manage agile development? Rose Pruyne Jack Reed

How to manage agile development? Rose Pruyne Jack Reed How to manage agile development? Rose Pruyne Jack Reed What will we cover? Introductions Overview and principles User story exercise Retrospective exercise Getting started Q&A About me: Jack Reed Geospatial

More information

DATA DONE RIGHT. Applying Agile and XP Concepts. #DataDoneRight

DATA DONE RIGHT. Applying Agile and XP Concepts. #DataDoneRight DATA DONE RIGHT Applying Agile and XP Concepts to Enterprise Data Integration #DataDoneRight ABOUT THE SPEAKERS JOE FRAZIER 12 years data integration experience Designer/Architect for enterprise standards

More information

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT Shivangi Shandilya, Surekha Sangwan, Ritu Yadav Dept. of Computer Science Engineering Dronacharya College Of Engineering, Gurgaon Abstract- Looking at the software

More information

LEAN AGILE POCKET GUIDE

LEAN AGILE POCKET GUIDE SATORI CONSULTING LEAN AGILE POCKET GUIDE Software Product Development Methodology Reference Guide PURPOSE This pocket guide serves as a reference to a family of lean agile software development methodologies

More information

Extreme Programming: Strengths and Weaknesses

Extreme Programming: Strengths and Weaknesses The International Arab Conference on Information Technology (ACIT 2013) Extreme Programming: Strengths and Weaknesses Ahmad dalalah Prep. Year Deanship University of Hail, SA [email protected] Abstract:

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 8 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2015 Last Week State machines Layered Architecture: GUI Layered Architecture: Persistency

More information

The Agile Manifesto is based on 12 principles:

The Agile Manifesto is based on 12 principles: The Agile Manifesto is based on 12 principles: Customer satisfaction by rapid delivery of a useful product solution Welcome changing requirements, even late in development Working products are delivered

More information

Testing in an Agile Environment

Testing in an Agile Environment Testing in an Agile Environment Marie Walsh [email protected] http://www.linkedin.com/in/mariewalsh In this presentation, Marie will share her experiences working in agile teams across multiple projects

More information

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc. [email protected] www.coveros.

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc. jeff.payne@coveros.com www.coveros. Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc. [email protected] www.coveros.com 1 About Coveros Coveros helps organizations accelerate the delivery

More information

Agile So6ware Development

Agile So6ware Development h(p://home.hit.no/~hansha/?page=so6ware_development Agile So6ware Development S. Adams. Dilbert. Available: h(p://dilbert.com Hans- Pe(er Halvorsen, M.Sc. 1 Agile? I ll go up and find out what they need

More information

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited Continuous Integration: Improving Software Quality and Reducing Risk Preetam Palwe Aftek Limited One more title Do you love bugs? Or Are you in love with QC members? [Courtesy: Smita N] Agenda Motivation

More information

Test Driven Development in Python

Test Driven Development in Python Test Driven Development in Python Kevin Dahlhausen [email protected] My (pythonic) Background learned of python in 96 < Vim Editor Fast-Light Toolkit python wrappers PyGallery one of the early

More information

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006

Extreme Programming. Sergey Konovalov and Stefan Misslinger. May 23, 2006 Extreme Programming Sergey Konovalov and Stefan Misslinger May 23, 2006 1 Contents 1 Introduction 3 2 Why do we need XP? 3 3 Economics of Software Development 4 4 Extreme Programming Values 4 5 Extreme

More information

Mastering the Iteration: An Agile White Paper

Mastering the Iteration: An Agile White Paper Rally Software Development Corporation Whitepaper Mastering the Iteration: An Agile White Paper Dean Leffingwell Abstract: The heartbeat of Agile development is the iteration the ability of the team to

More information

The traditional project management uses conventional methods in software project management process.

The traditional project management uses conventional methods in software project management process. Volume 5, Issue 1, January 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Analysis of

More information

SOFTWARE PROCESS MODELS

SOFTWARE PROCESS MODELS SOFTWARE PROCESS MODELS Slide 1 Software Process Models Process model (Life-cycle model) - steps through which the product progresses Requirements phase Specification phase Design phase Implementation

More information

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Waterfall to Agile. DFI Case Study By Nick Van, PMP Waterfall to Agile DFI Case Study By Nick Van, PMP DFI Case Study Waterfall Agile DFI and Waterfall Choosing Agile Managing Change Lessons Learned, Sprints Summary Q and A Waterfall Waterfall Waterfall

More information

Tools for Integration Testing

Tools for Integration Testing Tools for Integration Testing What is integration ing? Unit ing is ing modules individually A software module is a self-contained element of a system Then modules need to be put together to construct the

More information

Agile with XP and Scrum

Agile with XP and Scrum Agile with XP and Scrum Amit Goel National Agile Software Workshop @ Indore Agile India Conference Agile Software Community of India Disclaimer and Credits Most of material in this presentation has been

More information

Introduction to Agile Scrum

Introduction to Agile Scrum Introduction to Agile Scrum by Julia M. Lobur Penn State Harrisburg CMPSC 487W Fall 2015 Introduction to Scrum Learning Goals Relationship of Scrum to other Agile methods Scrum Framework Scrum Roles Scrum

More information

Agile and Secure: OWASP AppSec Seattle Oct 2006. The OWASP Foundation http://www.owasp.org/

Agile and Secure: OWASP AppSec Seattle Oct 2006. The OWASP Foundation http://www.owasp.org/ Agile and Secure: Can We Be Both? OWASP AppSec Seattle Oct 2006 Dan Cornell, OWASP San Antonio Leader Principal, Denim Group Ltd. [email protected] (210) 572-4400 Copyright 2006 - The OWASP Foundation

More information

Agile Software Development Methodologies and Its Quality Assurance

Agile Software Development Methodologies and Its Quality Assurance Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed

More information

Intro to scientific programming (with Python) Pietro Berkes, Brandeis University

Intro to scientific programming (with Python) Pietro Berkes, Brandeis University Intro to scientific programming (with Python) Pietro Berkes, Brandeis University Next 4 lessons: Outline Scientific programming: best practices Classical learning (Hoepfield network) Probabilistic learning

More information

Agile and Secure: Can We Be Both?

Agile and Secure: Can We Be Both? Agile and Secure: Can We Be Both? OWASP AppSec Seattle Oct 2006 Keith Landrus Director of Technology Denim Group Ltd. [email protected] (210) 572-4400 Copyright 2006 - The OWASP Foundation Permission

More information

Introduction to Agile Software Development

Introduction to Agile Software Development Introduction to Agile Software Development Word Association Write down the first word or phrase that pops in your head when you hear: Extreme Programming (XP) Team (or Personal) Software Process (TSP/PSP)

More information

The style is: a statement or question followed by four options. In each case only one option is correct.

The style is: a statement or question followed by four options. In each case only one option is correct. AGILE FOUNDATION CERTIFICATE SAMPLE FOUNDATION QUESTIONS WITH ANSWERS This document is a set of sample questions, in the style of the Agile Foundation Certificate Examination, which is a 60 question, 1

More information

A Capability Maturity Model (CMM)

A Capability Maturity Model (CMM) Software Development Life Cycle (SDLC) and Development Methods There are some enterprises in which a careful disorderliness is the true method. Herman Melville Capability Maturity Model (CMM) A Capability

More information

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice

Life-Cycle Model. Software Life-Cycle Models. Software Development in Theory. Software Development in Practice Life-Cycle Model Software Life-Cycle Models Xiaojun Qi It specifies the various phases/workflows of the software process, such as the requirements, analysis (specification), design, implementation, and

More information

www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Created by Stephen Barkar - www.stephenbarkar.se

www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Created by Stephen Barkar - www.stephenbarkar.se 1 www.stephenbarkar.se Lean vs. Agile similarities and differences 2014-08-29 Purpose with the material 2 This material describes the basics of Agile and Lean and the similarities and differences between

More information

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD Development Techniques CSE301 University of Sunderland Harry R. Erwin, PhD Sources Boehm, 1981, Software Engineering Economics, Prentice- Hall. Stephens and Rosenberg, 2003, Extreme Programming Refactored:

More information

Tonight s Speaker. Life of a Tester at Microsoft Urvashi Tyagi Software Test Manager, Microsoft

Tonight s Speaker. Life of a Tester at Microsoft Urvashi Tyagi Software Test Manager, Microsoft Tonight s Speaker Life of a Tester at Microsoft Urvashi Tyagi Software Test Manager, Microsoft You will learn about what a software tester does at Microsoft, how the role interfaces with program managers

More information