This event has ended

Uncle Bob's Advanced Test Driven Development in NYC

Skills Matter

Wednesday, February 20, 2013 at 9:00 AM - Friday, February 22, 2013 at 4:00 PM (EST)

Uncle Bob's Advanced Test Driven Development in NYC

Ticket Information

Ticket Type Sales End Price Fee Quantity
15% Early Bird Uncle Bob's Advanced TDD   more info Ended $2,290.00 $0.00
Uncle Bob's Advanced TDD   more info Ended $2,695.00 $0.00

Share Uncle Bob's Advanced Test Driven Development in NYC

Event Details

This is a intense, hands-on and exercise driven Advanced Test Driven Development course is written and delivered by Uncle Bob Martin and focuses on the design of clean, robust, and maintainable unit and acceptance tests. You will learn the principles of test design, and the practices of keeping tests clean. More importantly, they will learn the principles of designing applications for testability. Exercises include the refactoring of bad tests, the writing of clean tests, and the design and refactoring of applications to make them testable.

This three-day hands-on Advanced Test Driven Development will explain the principles and practices of Test Driven Development as described in Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin. You will also receive this book as part of the course materials.

Exercises are in Java, but are applicable to C#, C++, and other object oriented languages.

 

ABOUT THE EXPERT

Uncle Bob (Robert C. Martin) has been a software professional since 1970. In the last 40 years, he has worked in various capacities on literally hundreds of software projects. He has authored "landmark" books on Agile Programming, Extreme Programming, UML, Object-Oriented Programming, C++ Programming and Clean Code. He has published dozens of articles in various trade journals.

Today, he is one of the software industry's leading authorities on Agile software development and is a regular speaker at international conferences and trade shows. He is a former editor of the C++ Report and writes regular blogs at Cleancoder.posterous.com


LEARN HOW TO:

  • The professional's attitude towards TDD
  • Coping with a non-TDD organization
  • The Principles of Clean Tests
  • Conventions for well written tests
  • Avoiding and repairing fragile tests
  • Testing with GUIs, Databases, Web Containers, and external resources
  • Stubbing, Mocking, and Test Doubles
  • Metrics and Tools
  • BDD
  • Acceptance Testing


PROGRAMME:

Day 1

Moderated Discussion of:

  • Fears, concerns, confounds & blockages
  • Professionalism, Clean Code, and TDD
  • Push-back: What Managers really want.

Why TDD?

  • The Three Laws of TDD.
  • Understanding the Costs and Benefits.

Clean Tests

  • Test Smells
    • Multiple Logical Asserts
    • Accidental Complexity
    • Too Slow
    • Scope Too Wide
    • Slang
  • Cleaning Tests.
  • Composed Asserts
  • Composed Results

Testing Behavior vs. State

  • Mocking and Stubbing
  • Ontology of Test Doubles

Exercises

  • Initial Setup.
  • Coverage
  • Critiquing some good and bad tests.
  • Cleaning Tests
  • Review The Presenter Model for UI testability.

Coding Dojo

  • Group Exercise
  • TDD under the microscope.

Day 2

F.I.R.S.T Principles.

  • Making Tests Fast.
  • Database Isolation
  • Web Container Isolation
  • Impact Analysis
  • Isolating Tests
  • Repeatable Tests
  • Hosting, Mocking.
  • Test Hierarchies.
  • Self Validating Tests
  • Testing Tools, the good and the bad.
  • Timely Tests.

Test Conventions and Heuristics

  • Naming Conventions
  • Statistical testing.
  • Principles of Test Encapsulation : Testing Private Methods.
  • Testing Inheritance Hierarchies
  • Test per Class
  • Splitting Test Files

Writing Maintainable Tests.

  • The Fragile Test "Problem"
  • Interface Sensitivity
  • Abstract APIs.
  • Behavior Sensitivity
  • Data Sensitivity
  • Context Sensitivity
  • Over-specification
  • Sensitive Comparison and Equality
  • Test Sensitivity

Preserving Tests

  • When are Tests Discarded.
  • Solutions.

Exercises

  • Fitnesse
    • Wiki
    • Tests
    • Fixtures
    • Setup.
  • Acceptance Tests Smells
  • Critiquing Acceptance Tests.

Day 3

Metrics

  • Coverage
  • Combining Cyclomatic Complexity and Coverage
  • Brathwaite's Correlation
  • Wall Metrics.

S.O.L.I.D. The Principles of TEST design.

  • How the principles of OO are used to design good tests.

Static Analysis Tools

Behavior Driven Development (BDD)

GUI Testing

  • Testing Through The GUI
  • Testing Around the GUI.
  • Stubbing the GUI.
  • Stubbing the applications.

The Levels of Testing

  • The Dilemma of Manual Testing.
  • Unit Tests
  • Component Tests.
  • Integration Tests.
  • System Tests.
  • Exploratory Tests.

Functional and Performance Testing.

Legacy Code.

Convincing Others.

Exercises

  • Refactoring applications to Separate GUI
  • Testing the GUI separately
  • Applying the Principles
  • Applying the Levels


IS THIS COURSE FOR YOU?

For this Advanced Test Driven Development course, you need to be a developer with one or more years experience with TDD.


COURSE PREREQUISITES

You are expected to have a knowledge of Java, TDD, JUnit.


BRING YOUR OWN LAPTOP

Important! You are requested to bring your own laptop for this course, so you learn how to develop within your own environment. If you are unable to bring a laptop for the course, please contact the sales team on +1 347 708 1529 or email sales. A full installation guide for the course software will be provided with your joining instructions.


COURSE LABS & EXERCISES

Exercises in this Advanced Test Driven Development course include the refactoring of bad tests, the writing of clean tests, and the design and refactoring of applications to make them testable. Exercises are in Java, but are applicable to C#, C++, and other object oriented languages.

 

TERMS AND CONDITIONS

Click here to read our Terms & Conditions

Have questions about Uncle Bob's Advanced Test Driven Development in NYC? Contact Skills Matter

When & Where



MicroTek - New York City ,
90 Broad St 11th Floor
, NY 10004-2


Wednesday, February 20, 2013 at 9:00 AM - Friday, February 22, 2013 at 4:00 PM (EST)


  Add to my calendar

Organizer

Skills Matter

Skills Matter helps a community of passionate developers learn and share skills to write better software.

Skills Matter collaborates with the world's leading innovators in software and thousands of passionate developers meeting up at Skills Matter, to produce some 450 intensive workshops , 500 talks & meetups, 2,000 hours worth of skillscast video's, quarterly Open Source Journal magazine's per year. Join our community to learn and share skills on leading ideas and truly bleeding edge technologies (from HTML5, Android and iPhone to F#, Clojure and Scala, from DDD and CQRS to RDFa and NOSQL and from Lean, Kanban and Agile Leadership to Software Craftsmanship and Agile Testing to BDD)

 


 

Skills Matter's mission is to promote continuous learning and innovation in software. More than 35,000 people get together at Skills Matter each year, everyone with the goal of improving themselves and our community. We welcomed 42,000 face-to-face visits to our talks, workshops and gatherings in the last 12 months and our SkillsCast video's were seen by several hundreds of thousands of passionate developers too. Follow us on twitter @skillsmatter #skillsmatter

 

 

 

 

 

  Contact the Organizer

Please log in or sign up

In order to purchase these tickets in installments, you'll need an Eventbrite account. Log in or sign up for a free account to continue.