Test Driven Development (TDD)

Agile Training Course – Abstract

This agile training course engages participants in the concepts, actions, and techniques associated with Test-Drive Development (TDD). Participants learn a multitude of models, including legacy code, building test-coverage for critical areas, and advanced practices in Low-Defect Agile Software Development. The course is 3-days and will summarize the theories of a testing first mind-set, refactoring, mock objects, regression testing, and emergent design. The benefits of consistent TDD use will be aligned with the agile best-practices. Participants can expect more assurance in the detection, location, and correction of errors, have the ability to build a library of successful tests, and adapt up-front testing as a preferred methodology. Ensuring a streamlined, cost-effective, Agile way to work. Lab immersion is threaded throughout the course allowing participants to practice what they learn in the workshop setting, discuss, and then use upon returning to operations in their field.

Audience

Optimally, this agile training course is designed for astute Software Developers, with a passion for innovation. Testers and Managers can also benefit from the course, but must have capability to read and understand the basic syntax and conventions of the selected programming language. The Basic (Beginner’s All-Purpose Symbolic Instruction Code) programming language and its components are part of the overall course, and participants need to have a proficient level of comfort. Interested participants who want to ensure automated testing is accurate and correct time and time again, will benefit from this course. It is important to know “real” work will be happening during lab time, and this will require advanced knowledge and comfort in a development environment. Observation can take place during class for those who are not at the expert level, but wish to be part of the classroom lab engagement.

Prerequisites

Familiarity and suitable competence with the selected programming language(s). Participants must have basic linear algebra, differential equations and the ability to work within probability. This mathematical knowledge will make understanding the lecture, workshop activities, and case studies more fluid. Participants will support and provide each other feedback as the workshop instructor provides overviews. A familiarity with basic object-oriented principles of design. Basic familiarity with an Agile process such as Scrum, XP, or Kanban.

Duration

2 Days

Learning Outcomes

Upon completion of this agile training course, participants will be able to:

  • Define Unit Testing concepts and best practices.
  • Examine Unit Testing concepts and best practices in a practice focused workshop setting.
  • Explore the Test-First mindset.
  • Outline the importance of testing.
  • Identify what needs to be tested.
  • Identify what constitutes poorly designed code.
  • Assess the steps to take toward improving poorly designed code.
  • Describe unit test frameworks.
  • Discover the history and value of TDD.
  • Associate Agile practices to TDD.
  • Discover how to write effective unit tests.
  • Explore the properties of effective unit tests.
  • Examine the use of Mock Objects to decouple difficult dependencies.
  • Interpret the meaning of technical debt.
  • Define the process and concepts of refactoring.
  • Discover how to locate code to be refactored.
  • Experiment with refactoring techniques.
  • Explain the necessity of adding tests to legacy code.
  • Measure the success of unit testing.
  • Assess the success of the testing by completing “mini tests” within the practice workshop environment.
  • Construct intricate and challenging concepts into decipherable, well-thought-out, and resourceful code, without down time.

COURSE TOPICS

Topics addressed in the agile training course include:

  • What Is A Unit Test?
  • What is a unit test framework?
  • Unit Test Best Practices
  • TDD (Test Driven Development)
  • Agile best practices
  • TDD within an agile framework
  • Mock Objects
  • Technical Debt
  • Refactoring
  • Unit Test Metrics
  • Lab Immersion
  • Mutation Testing

COURSE CODE

  • ENG-001

COURSE OBJECTIVES

  • Conceptualize Unit Testing.
  • Understand how a unit testing framework works and how it’s components allow unit tests to be easily written.
  • Introduce Unit Test best practices.
  • Accurately take user stories and acceptance criteria and translate them into Unit Tests as part of the TDD process.
  • Learn about agile development and TDD’s role in the methodology.
  • Master the concepts of mocking and refactoring.
  • Delve into the subjects of Technical debt and Unit Test Metrics.

COURSE CODE

ENG-001

Request This Course

Download and extend ATF...

ATF Is Now Open Source

Join this 10 week program anytime...

DevOps Mastery Program

Get your DevOps health check now...

Free DevOps Assessment

X