Test driving to clean CODE Kenrick Chien CTO, Critical Phase.

Slides:



Advertisements
Similar presentations
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. Can’t Live With It, Can’t.
Advertisements

Test-Driven Development and Refactoring CPSC 315 – Programming Studio.
A Brief Introduction to Test- Driven Development Shawn M. Jones.
Test-Driven Development. Why Testing is Important? “If you don’t have tests, how do you know your code is doing the thing right and doing the right thing?”
April '081 The Requirements Balance Test Managers Forum - April ‘08 Stevan Zivanovic
Local Touch – Global Reach The New Tester Matthew Eakin, Manager Managed Testing Practice Sogeti, USA.
Chapter 15 © 2010 by Addison Wesley Longman, Inc Origins and Uses of Ruby - Designed by Yukihiro Matsumoto; released in Use spread rapidly.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
PS4: Test Driven Development Based on Test Driven Development by Example By Kent Beck.
Refactoring By: Brian Smith. What is Refactoring? Definition: a change to the internal structure of software to make it easier to understand and cheaper.
Testing by Duncan Butler Sara Stephens. Too much to cover.
Test-Driven Development and Refactoring Project 3 Lecture 1 CPSC 315 – Programming Studio Fall 2009.
TDD Test-Driven Development. JUnit 4.0 To use annotations need to import org.junit.Test To use assertion need to import org.junit.Assert.* No need to.
Test-Driven Development “Test first, develop later!” –OCUnit.
XUnit Test Patterns writing good unit tests Peter Wiles.
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.
By Bob Bunson  Simulation of software development project  Fictitious system from Concept to Code  Oriented around the.
By John Boal  Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new.
By for Test Driven Development: Industry practice and teaching tool Robert Vanderwall, Ph.D. 1 WISTPC-15.
A little engineering on Rails Robert W. Hasker. Goals Intro to the Rails framework ▫Basic concepts: MVC, Active Record ▫A bit of Ruby Using Rails to build.
Test-Driven Development With Visual Studio 2005 Erno de Weerd Info Support.
TEST-DRIVEN DEVELOPMENT AND MVP Cory Foy and Michael Russo.
Test Driven Development using Visual Studio Team System Ariel Gur-Arieh VP R&D – MCD Software Solutions
Test Driven Development TDD. Testing ”Testing can never demonstrate the absence of errors in software, only their presence” Edsger W. Dijkstra (but it.
Introduction to Unit Testing Jun-Ru Chang 2012/05/03.
Course Introduction Svetlin Nakov Telerik Corporation
Clear Lines Consulting · clear-lines.comSilicon Valley Code Camp 2008 · Nov 8, 2008 · 1 Test-Driven Development An introduction for C# developers.
Software Specification and Design Sirisin Kongsilp & James Brucker.
© ALEXANDRE CUVA  VERSION 2.00 Test Driven Design.
By for Testing Tools: Test Automation and supporting tools Jariro Pava, Robert Vanderwall 1 WISTPC-14.
1 Design Lecture 4 – Practical Issues in Design CIS 6101 – Software Processes and Metrics.
JavaScript Unit Testing Hanoi PHP Day
Future Media  BBC MMXI TDD at the BBC David Craddock, Jack Palfrey and Tom Canter.
Comp 312 Production Programming Lecture 1 Course Overview and Culture Corky Cartwright January 12, 2005.
By Rick Mercer with help from Kent Beck and Scott Ambler Java Review via Test Driven Development (TDD)
Test-Driven Development Eduard Miric ă. The problem.
Software Craftsmanship Raising the bar for software development
Agile Software Development Jeff Sutherland, one of the developers started it In February 2001, 17 Tools: continuous integration, automated or xUnit test,
University of Sunderland CSE301 Advanced Object-Oriented Software DevelopmentUnit 1 Test-Driven Development CSE301 University of Sunderland Dr. Giles Oatley.
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,
MNP1163 (Software Construction).  SDLC and Construction Models  Construction Planning  Construction Measurement.
Software Testing 1Software testing. V model Software testing2.
Henrik Bærbak Christensen1 Test Driven Development “TDD” Summary.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
1/2/12 Chapt 2 Iterative Evolutionary Agile. 1/2/12 (Rational) Unified Process A software development process – Flexible and open Other processes – XP.
Refactoring Agile Development Project. Lecture roadmap Refactoring Some issues to address when coding.
A proposal to support the extreme programming development methodology from the quality assurance point of view Authors: Calin Jebelean –
Copyright © 2011 Pearson Education, Inc. Publishing as Longman.
Test Driven Development Introduction Issued date: 8/29/2007 Author: Nguyen Phuc Hai.
FAZAL WAHAB Agile Software Development. What is Agile? An iterative and incremental (evolutionary) approach performed in a highly collaborative manner.
Clean Code and How to Achieve Zero Defects Jason Jolley Director, Application Development Micro Strategies, Inc.
Model View Presenter Design Pattern Jay Smith PMO Architect and Evangelist Tyson Foods, Inc.
Mapping Designs to Code. It specify how to map the design into object oriented language The UML artifacts created during the design work, the interaction.
1 © Agitar Software, 2007 Automated Unit Testing with AgitarOne Presented by Eamon McCormick Senior Solutions Consultant, Agitar Software Inc. Presented.
Course Outline.
Test-Driven Development
© 2015 Pearson Education, Inc.
© 2015 Pearson Education, Inc.
TEST DRIVEN DEVELOPMENT AND ME
Website: Contact No: ID:
Contact US Healthy Life Cycle Location : USA
TDD adoption plan 11/20/2018.
Batches, Transactions, & Errors
Chapt 2 Iterative Evolutionary Agile.
Test Driven Development
Copyright © 2011 Pearson Education, Inc
TDD & ATDD 1/15/2019.
Chapter 3.1 Culture.
Presentation transcript:

Test driving to clean CODE Kenrick Chien CTO, Critical Phase

Photo by Toni Blay - Code we want to avoid

BENEFITS Easy to refactor Cleaner; less time spent debugging Documentation - examples More time to do what you enjoy

THE TDD “CYCLE” RED GREEN REFACTOR

UNCLE BOB’S Three LAWS OF TDD 1. You are not allowed to write any production code unless it is to make a failing unit test pass. 2. You are not allowed to write any more of a unit test than is sufficient to fail; and compilation failures are failures. 3. You are not allowed to write any more production code than is sufficient to pass the one failing unit test.

MYTHS All about unit tests Testing methods, not behavior Too slow; I don’t have time for this!

Limitations New language /framework Database & UI Culture

Kata

references Beck, K. Test-Driven Development by Example. Addison Wesley, Erdogmus, Hakan; Morisio, Torchiano. "On the Effectiveness of Test-first Approach to Programming". Proceedings of the IEEE Transactions on Software Engineering, 31(1). January On the Effectiveness of Test-first Approach to Programming Freeman, Steve and Nat Pryce. Growing Object-Oriented Software, Guided By TestsSoae, Guided By Tests Massachusetts: Pearson Educatio Massachusetts: Pearson Education, Inc, Fowler, Martin. Refactoring: Improving the Design of Existing Code. USA: Addison Wesley Longman, Inc Martin, Robert. Agile Software Development Principles, Patterns, and Practices. New Jersey: Pearson Education, Inc

Contact website: blog: