Erlang and Test Driven Development

Target Audience : Developers and testersPrerequisites: Knowledge
of basic Erlang (equivalent to Erlang by Example or Erlang Express
courses. OTP courses not necessary, but useful).Objectives: • Understand the principles behind Test Driven Development, • Be able to use Erlang's principal testing tools (EUnit, Common Test, QuickCheck), • Learn about tools to maintain and debug existing Erlang programsGoal: Learn how to use existing tools of the ecosystem to help develop, debug and maintain Erlang softwareDuration: Three daysRegistration: 08:30 on 21st March 2011. Venue: Hilton San Francisco Airport Hotel.Description: You will learn test frameworks for unit tests, property-based tests and large-scale tests. We will cover Eunit, Common Test, QuickCheck for testing, then Wrangler, Dialyzer and tracing (among others) for maintenance. You will also learn principles of Test-Driven Development which will ultimately allow you to write more reliable and maintainable software.

Course Contents:

What is TDD

TDD With Eunit

Common Test

Property-Based Testing

Maintenance and Debugging

What is TDDA brief overview of test-driven development: what are the principles behind it, possible advantages and disadvantages of the practice, terminology and a quick look at case studies of TDD

TDD With EunitExploring EUnit, and the architecture behind it (assertions, test generators, test representations and fixtures); how to use EUnit to test functional code and code with state.

Common TestA guide on how to use Common Test, from unit tests to large scale testing. This covers unit test, testing with state, test groups and suites, how to configure tests, write specifications and do distributed testing.Property-Based TestingCovers the principles behind property-based testing. We use QuickCheck Mini to see how to write property-based tests: generators, properties, symbolic representation of tests, etc. This also briefly covers shrinking strategies to find errors.

Maintenance and DebuggingA review of useful tools when maintaining and debugging Erlang software. This section covers test coverage with the cover tool, Type checking with Dialyzer and TypEr, refactoring with Wrangler and also the the Trace Tool builder for ErlIDE and Exago.

Teacher(s):

Fred Hebert

Fred Hebert is an Erlang enthusiast based in the unexplored Northern
parts of Quebec (relatively speaking). He is so enthusiastic, in fact, that he
started writing Learn You Some Erlang
for great good! a free online book designed to teach Erlang, functional
programming and basic computer science concepts.

He started his career working with backend services for medium to large scale
web sites, but php just did not do it. In 2010 Erlang Solutions came to the
rescue! He is now working with course development and e-learning while
remaining true to web applications, this time, written in Erlang.