Implementing Agile Test Driven Development for Non-Programmers (TT3530)
Implementing Agile Test Driven Development for Non-Programmers (TT3530) Course Details:
Test-Driven Deployment (TDD) is an evolutionary approach to development where you must first write a test that fails before you write new functional code. It is primarily an agile approach to software development and is one of the core principles of Extreme Programming.
This in-depth Agile-testing course will provide you with a solid introduction to TDD and "test first" design within the context of Agile processes and practices.
No classes are currenty scheduled for this course.
Call (919) 283-1674 to get a class scheduled online or in your area!
1. Agile Development
- Agile Software Development
- Controlling Risk
- Agile Development
- Motivation - Risk Reduction
- Discipline of Timeboxing
- Incremental Delivery and Evaluation
- Agile Software Development Manifesto
- Same Approach with Documentation
- Change Wins Out Over Following a Set Plan
- Refactoring is Artifact of Change
- Rules
- Extreme Values
- XP Practices
- CI
- Agile Testing
- Lowest Bar of Unit Testing
- Agile Testing Stages
- Test First
- Acceptance Tests
- TDD
- General Agile Principles
- Adopting or Trying Agile
- Setting User Expectations
2. Test-Driven Development (TDD)
- Unit Testing
- Purpose of Unit Testing
- Successful Unit Testing
- Unit Testing Frameworks
- XUnit
- Reasons tUse XUnit
- How XUnit works
- ROI of TDD
- Rationale for TDD
- Process of TDD
- Advantages tTDD
- Side-Effects of TDD
- Observations About Tests
- Tools tSupport TDD
- Automation and Coverage
- Working with Coverage Analysis
- Concept of Test "Close" Development
3. Improving Code Quality Through Refactoring
- Refactoring
- Sample of Refactorings
- Refactoring and Testing
- Suggested Refactoring
- Impact of Refactoring
- Advanced Refactoring
- Design Patterns
- Code that Feels Wrong
- Refactoring tDesign Patterns
- Abstract Factory Design Patterns
- Adapter Design Patterns
- Strategy Design Patterns
4. Advanced Topics
- Continuous Integration (CI)
- Typical CI Process
- Local Development Environment
- CI Server
- Potential Benefits of CI
- CI Best Practices
- Automate Source Code Management
- Automate Build Process
- Automate Testing
- Automate Deployment
- Commit Code Early and Often
- Manage the Build Process
- Separate Integration Environment
- Mimic Production Environment
- Increase Visibility
- Agile Testing Best Practices
- Coding Practices
- State- vs. Interaction-Based Testing
- Source Control
- Pair Programming and Code Reviews
- CI
- Legacy Code
*Please Note: Course Outline is subject to change without notice. Exact course outline will be provided at time of registration.
- Concept of development agility and the Agile Manifesto
- Major agile development methods and their strengths and weaknesses
- Manage an agile environment within a structured organizational approach
- Introduce agility into a development organization
- Unit testing and how various xUnit frameworks facilitate unit testing
- xUnit family of unit testing tools
- Concepts of and motivations for TDD
- Relate unit testing, test-driven development, and test coverage to agile processes
- Importance of refactoring in supporting agile and test driven processes
- Continuous Integration (CI) and components
- Motivations for CI
- Best practices for everything from CI to testing within the context of agile development
- Knowledge of current development processes, such as structured top-down development and the waterfall method is beneficial
Test professionals, test managers, project leaders, quality analysts, and developers