<v ->Although rarely covered</v> in introductory programming tutorials automated testing is one of the most important subjects in modern software development. Accordingly lesson eight gives you an introduction to testing in JavaScript including a first look at test driven development or TDD. Test driven development came up briefly in lesson six, where I promised that we would use testing techniques to add an important capability to finding palindromes namely being able to detect complicated palindromes such as a man, a plan, a canal Panama, or Madam I'm Adam. This lesson fulfills that promise. We'll start by setting up our system for testing using the popular Mocha testing framework. Here's our strategy for testing the current palindrome code and extending it to more complicated phrases. One, set up our system for automated testing. Two write automated tests for the existing palindrome functionality. Three, writing failing test for the enhanced palindrome detector also known as Red. This is the first step in the TDD cycle known as red green refactor. Four, write possibly ugly code to get the test passing also known as green, which is the second step in red green refactor. Five refactor, the code which involves changing its form without changing its function because the code should accomplish the same results the entire time. The test suite should remain green even after refactoring thereby completing the red green refactor cycle. As it turns out learning how to write JavaScript tests will also give us a chance to learn how to create and use self-contained software packages called NPM modules. Another valuable skill for modern JavaScript programming.