Test-Driving ASP.NET Development Tampa Code Camp – July 15 th, 2006 Cory Foy

Slides:



Advertisements
Similar presentations
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
Advertisements

AgileMan Consulting So what the heck is Agile? It came about as a response to the high failure rate of software projects (> 60%), where failure means late,
Copyright © 2006 Korson-Consulting 1/219 Unit 4 Test First Development.
Agile Process Models. Prescriptive models don’t work It is unrealistic to not have changes. Why? The Agile Manifesto: Individuals and interactions over.
Agile development By Sam Chamberlain. First a bit of history..
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
Project Management – An Overview Project as a metaphor – a way to approach a series of activities Contexts – construction managementt, IT development,
Agile Software Development. Traditional Software Development 1.Initiation (RFP) 2.Feasibility study Technical – can we build it? Economic – should we.
Agile Programing Methods Drew Arrigoni. The Agile Manifesto ● Individual Interactions over Processes and Tools ● Working Software over Comprehensive Documentation.
Agile Methods.
The Challenge to Survive in Today’s Software Development Environment Evaluating the Agile Methodology.
Quality assurance of agile software engineering Shipeng Xu.
Programming with eyes wide open. Your host today Subby Angelov Team
Software SYSTEMS DEVELOPMENT
Introduction to Agile Methodologies and Concepts Roy Osherove Principal, Team Agile Blog : ISerializable.com.
SEG4911 – Projet génie logiciel en fin d’études / Software Engineering Capstone Project Thoughts about Agile Design and Release Management Timothy C. Lethbridge.
Test Driven Development Derived from Dr. Fawcett’s notes Phil Pratt-Szeliga Fall 2009.
Test-Driven Development Gary Brown Building better software one test at a time.
Red-Green-Refactor! EclipseCon 2008 Kevin P. Taylor, Nicolaus Malnick Test-Driven Development (TDD) for Eclipse RCP.
CZ Biz. Auto. System & Test-Driven Development Teoman Soygul (Sept 24, 2012).
TEST-DRIVEN DEVELOPMENT AND MVP Cory Foy and Michael Russo.
Test Driven Development An approach to writing better code Jimmy Zimmerman Intel Corporation.
AgileCamp Presents: Agile Software Development. Good luck in your presentation! This slide deck has been shared by AgileCamp Kit under the Creative Commons.
Agile Software Development What is Agile? And How are we implementing Agile?
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
CompSci 230 Software Design and Construction
1 Agile Methodology & Programming Ric Holt July 2009.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
Todd Snyder Development Team Lead Infragistics Experience Design Group.
Testing in Extreme Programming
Cory Foy St. Louis Code Camp May 6 th, 2005 Achieving Customer Zen with Fitnesse and.NET Fitnesse and.NET Achieving Customer.
Cory Foy April 29th, 2005 MSDN Code Camp Charlotte, NC Test Driving ASP.NET Development Cory Foy, Software Engineer MobileHWY,
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
© Copyright 2005, thycotic. Test Driven Development Jonathan Cogley Maryland Cold Fusion User's Group 10/11/2005.
© ALEXANDRE CUVA  VERSION 2.00 Test Driven Design.
Extreme Programming (XP). Agile Software Development Paradigm Values individuals and interactions over processes and tools. Values working software over.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
SCRUMBAN?!?! What is it and how can it help your team?
Informatics 43 – May 14, Open Source Source code is freely available and (usually) re-distributable Examples: Firefox web browser Apache HTTP Server.
CS3100 Software Project Management Agile Approaches.
Agile Methodology Paul Mohrbacher. Agile Manifesto We are uncovering better ways of developing software by doing it and helping others do it. Through.
Copyright © 2005 Charlie Poole. All rights reserved Test First User Interfaces XP2005 Sheffield University June 18, 2005.
Test Driven Development Daniel Brown dxb17u. Introduction Originates from Extreme Programming (XP) Proposed by Kent Beck in Test Driven Development.
The Start Menu……..Exposed What you never knew existed.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
CS223: Software Engineering Lecture 16: The Agile Methodology.
ICS 61 – The Game Improves through Iteration Based on Schell, ch. 8 Winter, 2015.
Agile Development Chapter 10 - part 2. Agile Philosophy  A guiding philosophy and set of guidelines for : developing information systems in an unknown,
Headspring Certified Training.Net Boot Camp: From Journeyman to Master Series Presented by Jeffrey Palermo CTO, Headspring Systems Microsoft MVP, MCSD.Net.
Testing WebForms w/ Model-View-Presenter Erik Peterson.
Agile Manifesto Values. Agile Manifesto - Values In 2001, a group of expert software development professionals met to agree on a common set of guiding.
Northwest Arkansas.Net User Group Jay Smith Tyson Foods, Inc. Unit Testing nUnit, nUnitAsp, nUnitForms.
Unit testing with NUnit Anne Lam & Chris James CMPS 4113 – Software Engineering April 15, 2015.
By Manish Shrotriya CSE MS 4 Point Agile Manifesto 1.Individuals and interactions over processes and tools 2.Working software over comprehensive.
Microsoft Project for Software Projects Florian Ivan | Rolf Consulting.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Agile/XP Introduction
Manifesto for Agile Software Development
Shifting to Agile: Are University Libraries Ready?
Introduction to .NET Florin Olariu
Structure of a web application
Test-driven development
Agile Software Development
Agile and XP Development
Chapt 2 Iterative Evolutionary Agile.
Agile and XP Development
Agile and XP Development
Introduction to XP.
System Development Methods
Presentation transcript:

Test-Driving ASP.NET Development Tampa Code Camp – July 15 th, 2006 Cory Foy

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Test-Driving ASP.NET Development Session Overview –What’s this Agile/XP thing? –What’s this Test-Driven Development thing? –TDD/NUnit Bowling demo –Applying TDD to ASP.NET –Wrap-Up

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Extreme Programming Base everything off four principles (the Agile manifesto): –Individuals and Interactions (over processes and tools) –Working Software (over comprehensive documentation) –Customer Collaboration (over contract negotiation) –Responding to change (over following a plan)

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Extreme Programming

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Extreme Programming

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Extreme Programming

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Extreme Programming

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Test-Driven Development It’s about coding It’s about design Way of developing applications by writing tests Red-Green-Refactor –Write a failing test –Make the test pass by doing the simplest thing –Refactor duplication

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Test-Driven Development NUnit (

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Test-Driven Development Write a test Watch it fail

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Test-Driven Development Make the test pass Refactor Duplication

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 TDD Bowling Demo Create an app to track the score of a bowling game Consists of 10 frames which can be open frames, strikes, spares or bonus rolls Scoring is different based on what the type of frame is

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Applying TDD to ASP.NET NUnitAsp – –Extension to NUnit –Originally created by Brian Knowles, now maintained by Jim Shore –Provides NUnit with the ability to download, parse and manipulate ASP.NET pages –Meant for programmers, not QA teams

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Applying TDD to ASP.NET

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Applying TDD to ASP.NET NUnitAsp Drawbacks –Tests are slow because we are making actual requests to IIS –Information that isn’t sent to the client can’t be tested –Session and Cache values can’t be tested directly

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Applying TDD to ASP.NET Model-View-Presenter – –Separates the behavior of a presentation from the view while allowing the view to receive user events. –Make the page as “thin” as possible and extract the logic out to testable classes

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Applying TDD to ASP.NET Extract the services you want to provide to an interface Have your views implement the interface Have all interactions between the view and controller be through interface exposed methods

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Applying TDD to ASP.NET

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Applying TDD to ASP.NET ASP.NET MVP demo

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Applying TDD to ASP.NET Advantages of Model-View- Presenter in TDD –Separates your logic from your presentation –Let’s your business logic be tested – fast –Allows mocks of the pages to be built to test user behavior –Easily allows additional views to be plugged in

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Wrap-Up Do nothing without frequent feedback Testing GUIs is hard – but can be mitigated Try to make GUI tests (and GUIs) as thin as possible

Cory Foy Test-Driving ASP.NET Development Tampa Code Camp, 7/15/06 Wrap-Up Links – us/dnvs05/html/guidelinesfortdd.asp – – – (VS plugin) – – (presentation)