March 2022 PHP TDD Training post

TL;DR

I am running a remote Ensemble (mob) Programming session focussing on learning the skills to do Test-Driven Development of PHP code. on March 25th starting at 10AM Eastern time. The cost of this 2-3 hour session is US$229. Space is limited to 5 people so please email me at chartjes@grumpy-learning.com for more details.

You can sign up for the event using this link on Eventbrite

What Will We Be Learning?

To be up front -- this is about building skills first and worrying about perfect tests second. We are focussing on learning the building blocks of doing Test-Driven Development in PHP using PHPUnit.

We'll also likely be covering:

  • building test scenarios
  • the Arrange-Act-Assert test organization pattern
  • how to identify dependencies required for tests
  • common test-centric code refactoring practices

We can't go in-depth in such a short period of time but you will come out of this having participated in building up a test suite to verify PHP code written to solve a specific set of problems behaves as expected.

Testing is hard, even harder to learn on your own. I hope this training helps steer you in the direction of learning the basic and growing your skills as part of your path towards building effective test suites for your PHP code.

Ensemble Programming Training

The idea behind ensemble programming (it might be more familiar as "mob programming") is to have pairs of people work together to solve an issue. In this case, the goal is to have me guide the participants through learning the basics of Test-Driven Development with PHP code.

A pair of participants will work together as Driver and Navigator while the other participants watch. This is the key part! If you're not comfortable working with strangers then this is not the training session for you!

Drivers

Drivers are the ones doing all the typing and executing the test cases and carries out the intent of the Navigator. If you get stuck, it's okay to ask but please let the Navigator dictate what is being done!

Navigators are the ones who declare what work is being done for the session, only providing more detail if the Driver asks.

Examples for this training might be:

  • "Outline what are Arrange-Act-Assert blocks are going to be"
  • "Refactor the main loop on line 18 to include a new conditional statement for this new test scenario"

Remember, this is a collaborative process!

Session Length

The sessions are kept short at 5-7 minutes per pair before the existing Driver moves to be the Navigator and a new Driver takes over.

Tools Required

To participate in this training session, you need the following:

  • be willing to work with potential strangers
  • be willing to share your screen
  • have a GitHub account
  • mob.sh, the code collaboration tool we will be using, installed
  • Zoom installed
  • Sufficient video bandwidth to allow screen-sharing
  • PHP 7.4 or greater installed (I will be using PHP 8.1 myself)

You can use whatever editor/IDE you want. This will be a rare chance to watch me slice and dice code inside NeoVim.

How Do I Sign Up?

If all of this hasn't scared you off, send an email to chartjes@grumpy-learning.com where I will be happy to answer any questions you have. To purchase a ticket for the event, please visit the event link on Eventbrite.

Hope to see you on March 25th!

Categories: development, testing