Agile Unit Testing Workshop

  • Practice designing, implementing, and executing unit tests
  • Discover agile unit testing best practices
  • Explore key unit testing approaches like TDD
  • Find out how to incorporate non-functional tests such as security and performance
  • Understand how to use stubs and mocks to eliminate dependencies
  • Learn strategies for increasing unit test coverage
Gain hands-on experience with unit test design, implementation, and execution in this two-day course for development team members who are comfortable with their programming language and the basics of object-oriented design. Attendees learn the techniques of design and developing unit tests, test-driven development (TDD), unit testing best practices, and ways to increase unit test coverage. Practice common unit testing and experience how these techniques reduce defect escapes downstream. This set of practices for developers is essential core competencies for ensuring what they build is effectively tested.
 
This workshop-style course provides hands-on exercises to allow developers to immediately apply unit testing techniques in an informal and interactive setting. Attendees will leave the workshop with the ability to apply unit testing best practices in their own environment. 
 
Who Should Attend?
This is a novice to intermediate level course intended for software developers. Attendees should have competence with common programming languages such as Java, JavaScript, or C#. 
 
Prerequisites/Requirements
A working knowledge of software development processes, familiarity with basic object-oriented principles of design, and a basic familiarity with an agile framework such as Scrum or Kanban are necessary for this course.
 
Laptop Required
This class involves hands-on activities using sample software to better facilitate learning. Each student should bring a laptop with a remote desktop protocol (RDP) client preinstalled. Connection specifics and credentials will be supplied during class. Please verify permissions with your IT Admin before class. If you or your Admin have questions about the specific applications involved, contact our Client Support team.

 

Course Outline
Introduction to TDD
Origin
Why do TDD?
What are unit tests?
Comparison of test levels
 
Unit Test details
Drivers
Annotations
Handling exceptions
Mocks
Assertions
 
Concepts
Black box thinking
Domain
Related concepts
  • Agile
  • MVP
  • BDD
  • Pair programming
  • Continuous integration
Practice
TDD coding cycle
Best practices
Code coverage
  • Statement
  • Decision
  • Condition
  • Notes on technique
  • Mutation testing
General notes
  • Duration
  • Test orbits and VCS hooks
 
Transition
What's standing in our way?
Next steps
 

 

Class Daily Schedule
3-Day Daily Schedule: 12:30pm-4:30pm ET/9:30am-1:30pm PT
2-Day Daily Schedule: 10:30am-5:00pm ET/7:30am-2:00pm PT
Times represent the typical daily schedule. Please confirm class schedule at registration.

 

Training Course Fee Includes
  • Easy course access: Attend training right from your computer and easily connect your audio via computer or phone. Easy and quick access fits today’s working style and eliminates expensive travel and long days in the classroom.
  • Live, expert instruction: Instructors are sought-after practitioners, highly-experienced in the industry who deliver a professional learning experience in real-time.
  • Valuable course materials: Courses cover the same professional content as our classroom training, and students have direct access to valuable materials.
  • Rich virtual learning environment: A variety of tools are built in to the learning platform to engage learners through dynamic delivery and to facilitate a multi-directional flow of information.
  • Hands-on exercises: An essential component to any learning experience is applying what you have learned. Using the latest technology, your instructor can provide hands-on exercises, group activities, and breakout sessions.
  • Real-time communication: Communicate real-time directly with the instructor. Ask questions, provide comments, and participate in the class discussions.
  • Peer interaction: Networking with peers has always been a valuable part of any classroom training. Live Virtual training gives you the opportunity to interact with and learn from the other attendees during breakout sessions, course lecture, and Q&A.
  • Convenient schedule: Course instruction is divided into modules no longer than four hours per day. This schedule makes it easy to get the training you need without taking days out of the office and setting aside projects.
  • Small class size: Live Virtual courses are limited in small class size to ensure an opportunity for personal interaction.