TDD & BDD: Testing Practices for Better Software Quality
This course covers Test Driven Development (TDD) and Behavior Driven Development (BDD), crucial for creating high-quality applications, reducing bugs, and improving performance.
Language
- English
Topic
- Cloud Development
Skills You Will Learn
- Test Driven Development (TDD), Behavior Driven Development (BDD), Selenium, Testing, Workflow, Behave
Offered By
- IBMSkillsNetwork
Estimated Effort
- 12 hours
Platform
- SkillsNetwork
Last Update
- October 25, 2024
Learning Outcomes
- Explain why testing is crucial for ensuring high-quality software and minimizing bugs.
- Describe Test-Driven Development (TDD) concepts and its advantages in DevOps, then develop and run unit tests with assertions and fixtures.
- Improve unit testing with advanced TDD techniques such as coverage reports, factories, fakes, and mock objects.
- Outline the BDD workflow, explore popular BDD tools and their benefits, and perform BDD tests using Honcho and Behave.
Course Syllabus
- The Importance of Testing
- Why Developers Don’t Test
- Testing Levels and Release Cycle
- TDD and BDD
- Testing Case Study
- Reading: Summary & Highlights
- Module 1 Glossary: Introduction to Testing
- Practice Quiz: Introduction to Testing
- Graded Quiz: Introduction to Testing
- Benefits of Test Driven Development
- Tools for TDD
- Practice Quiz: Introduction to Test Driven Development
- Running Tests with Nose
- Running Tests with Nose Demo
- Hands-on Lab: Running Tests with Nose
- Anatomy of a Test Case
- Writing Test Assertions
- Writing Test Assertions Demo
- Hands-on Lab: Writing Test Assertions
- Test Fixtures
- Creating Initial State Using Test Fixtures Demo
- Hands-on Lab: Creating an Initial State Using Test Fixtures
- Reading: Summary & Highlights
- Module 2 Glossary: Test Driven Development
- Practice Quiz: Methods for Test Driven Development
- Graded Quiz: Methods for Test Driven Development
- Test Coverage
- Running Test Cases with Coverage Demo
- Hands-on Lab: Running Test Cases with Coverage
- Factories and Fakes
- Factories and Fakes Demo
- Hands-on Lab: Using Factories and Fakes
- Mocking
- Mocking with Patch
- Mocking with Mock Objects
- Mocking with Mock Objects Demo
- Hands-on Lab: Mocking Objects
- Practicing Test Driven Development
- Practicing Test Driven Development Demo
- Hands-On Lab: Practicing Test Driven Development
- Reading: Summary & Highlights
- Module 3 Glossary: Advanced Methods for Test Driven Development
- Practice Quiz: Advanced Methods for Test Driven Development
- Graded Quiz: Advanced Methods for Test Driven Development
- What is Behavior Driven Development
- Benefits of BDD
- BDD Workflow and Gherkin Syntax
- Example of BDD
- Tools for Behavior Driven Development
- Quiz: Practice Quiz: Introduction to Behavior-Driven Development
- Overview of Behave
- Environment Setup
- Hands-on Lab: Setting up an Environment in Behave
- Writing Feature Files
- Hands-on Lab: Writing Feature Files
- Selenium
- Writing Step Files
- Loading Test Data with Behave
- Hands-on Lab: Loading Test Data with Behave
- Reading: Summary and Highlights
- Module 4 Glossary: Behavior Driven Development
- Quiz: Practice Quiz: Methods for Behavior Driven Development
- Quiz: Graded Quiz: Introduction to Behavior Driven Development
- Generating Steps with Behave
- Generating Steps with Behave Demo
- Hands-on Lab: Generating Steps with Behave
- Implementing Your First Steps
- Implementing Your First Steps Demo
- Hands-on Lab: Implementing Your First Steps
- Working with the Context
- Using Variable Substitution
- Hands-on Lab: Using Variable Substitution
- Module Summary: Running Behave for Behavior Driven Development
- Ungraded Plugin: Module 5 Glossary: Running Behave for Behavior Driven Development
- Practice Quiz: Running Behave for Behavior Driven Development
- Graded Quiz: Running Behave for Behavior Driven Development
- Reading: Final Project Overview
- Reading: About the Product Model
- Lab Environment and Starter Code
- Check list: Final Project
- Peer-Assignment: Peer Graded Final Assignment
- Graded Quiz: Final Exam
General Information
- This course is self-paced.
- This platform works best with current versions of Chrome, Edge, Firefox, Internet Explorer, or Safari.
Recommended Skills Prior to Taking this Course
- Software Engineering principles
- Working knowledge of Python
Language
- English
Topic
- Cloud Development
Skills You Will Learn
- Test Driven Development (TDD), Behavior Driven Development (BDD), Selenium, Testing, Workflow, Behave
Offered By
- IBMSkillsNetwork
Estimated Effort
- 12 hours
Platform
- SkillsNetwork
Last Update
- October 25, 2024
Instructors
John Rofrano
Senior Technical Staff Member | DevOps Champion
John J. Rofrano is a Senior Technical Staff Member and DevOps Champion at IBM T.J. Watson Research Center where he leads a variety of research projects exploring the use of AI for accelerating Application Modernization to the Cloud. He is also an Adjunct Faculty Member at New York University Courant Institute, and Stern School of Business @ NYU, where he teaches a graduate course on DevOps and Agile Methodologies. John is an accomplished musician and videographer, and has authored numerous patents, industry papers, training videos, and books.
Read more