A presentation-centric interactive Training Workshop designed with a practical and motivational thrust for software developers to apply Test Driven Development (TDD) principles in their workplace. The participants and software developers will also learn to develop a bug-free scientific mindset from this interactive workshop. The workshop itself will try to adopt Test Driven approach to establish and satisfy the mutually agreed participants’ acceptance test criteria. It will discuss human-intensive error-prone and evolving issues as ubiquitous in all software development. It will also stress the need for bug-free software as the growing demand from all users around the world. Bug-free mindset of software developers is critical to develop bug-free software. A true TDD mindset will help us to become bug-free developers to write bug-free software.
How participants will benefit after the course:
In this highly connected and immensely competitive global business environment, professional software developers and managers always face the challenge of completing software projects and delivering “bug-free” software products in increasingly shorter time spans. Test Driven Development (TDD) and the associated Behavior Driven Development (BDD) principles are NOT just “buzzwords” anymore. They are now well-proven and time-tested principles and approach to build truly high quality software with zero-defect.
In TDD, the developer will write a deliberately failing test (since the System Under Test [SUT] won’t have any implementation for the requirement yet), then go on to write the most obvious and simplest code to make this test pass. Once the test passes, the developer eliminates any duplicate code (re-factor), writes the next (probably failing) test, implements a little code to make it pass, and then moves on. The end result is that over time the developer will have two large sets of source code—one is the test code itself; the other is the source code of the software. It’s highly probable that there will be more lines of code providing test coverage than there will be actual source code. There are several benefits of keeping all that test code in the project directory:
• Running the tests ensures that the behavioral requirements they specify are still met.
• They provide support to developers who wish to modify the software without breaking or changing its existing behavior.
• They provide a form of documentation for developers who need to understand how the software works.
Test Driven Development is a way of managing fear during programming. The test code driving the source code will always generate courage in the heart of the software developer to make any necessary changes in the software. The participants will become “Test Infected” (with due practice) to consistently develop bug-free software after this course.
Participants are encouraged to bring personal laptops with at least one of the following setups: (i) Java / JDK 1.6 and Eclipse 3.4; (ii) MS Visual Studio 2005 and NUnit 2.5; (iii) XAMPP and PHPUnit.
Workshop topics to be covered:
- Welcome / presentation-centric workshop objectives
- Workshop Acceptance Criteria from the Presenter with TDD Spirit
- Introduction and expectation of the participants
Module 1 – TDD Explained
- Making of a “Bug-Free” Developer / The Quality Mindset
- Test Driven Development (TDD) Principles with the V-Diagram
- TDD Basics / Getting Test Infected
- TDD Examples / Case Studies
- TDD Exercises (Team Participation)
Module 2 – BDD Introduced / Acceptance Test Frameworks
- Behavior Driven Development (BDD) Principles / Requirements Acceptance Criteria
- User Acceptance Test Cases (UATCs)
- UATC Examples
- Introducing Tools / Frameworks: FIT and JBehave
- TDD / BDD Exercises (Team Participation)
- Following the Pioneer TDD Guru Kent Beck; and his masterpiece: TDD by Example
- Introducing Tools / Frameworks: JUnit, NUnit, PHPUnit / Selenium
- The Classic Money and Stack Example
- The Sieve of Eratosthenes – Finding Primes Example
- The Unit Test Case Exercises
- Short Presentations by Team Leaders – Exercises
Module 4 – Practicing TDD & Way Forward
- A Sample Case Study
- How to Get Test Infected? - Exercise
- Short Presentations by Team Leaders – Getting Test Infected
- Analysis of presentations - Discussion
- Open Forum - Discussion
- Workshop Evaluation & Closing Formalities with Next Steps