Highlights
- Agility and predictability are two qualities often missing from software development.
- Learn Agile Development Microprocess
- A test-driven approach, in which design is grown and code delivered incrementally according to functionality or risk, forms the basis of the construction phase of an iterative and incremental development.
- The use of unit testing provides confidence in existing code and supports the ability to refactor code as development unfolds.
- Labs can use either NUnit (NUnit Test Adapter) or MS Test frameworks
Course Details
Agile Development Microprocess
Traditional versus agile development processes · Iterative and incremental development
Informal and continuous design
The role of refactoring
Refactoring versus other code changes
Extreme Programming
Test-Driven Development
Testing in Principle
Traditional view and reality of testing
Driving development through testing
Testing early, often and automatically
Testing versus debugging
White-box versus black-box testing
Functional versus operational testing
Basic Unit Testing in Practice
Test plans versus test code
Use of Assert
Testing at the interface
Testing the simplest things first
Testing incrementally
Testing correctness of failure
Overview of NUnit
NUnit and the xUnit family ·
Test fixtures and test methods ·
The role of attributes in NUnit's design ·
Assertion methods ·
Testing correctness of exceptions ·
Defining common fixture code
Test-Writing Techniques
Red, green, refactor
None to one to many
Faking it
Telling the truth
Isolated and short tests
Refactor common fixture code
Declare, prepare, assert
Test by method, state or scenario
Custom assertions
Common Refactorings
Renaming variables, methods, classes and packages
Restructuring class hierarchies by extracting interfaces, superclasses and subclasses
Partitioning classes by extracting classes and methods ·
Testing private implementation
Use of PrivateObject
Decoupling Techniques
Unmanaged dependencies
Test-driven decoupling
Layering
Reorganising packages
Eliminating cyclic dependencies
Mock objects
Use of Mock Framework (Moq or Rhino Mocks)
Eliminating Singletons, statics and other globals
Microsoft Fakes (and Shims)
Working with Frameworks and 3rd Party Libraries
Fakes and Shims
Faking Concrete Types
Configuration
Use of ShimContext
Setting up Custom implementation
Who should attend
Feedback
4.8 out of 5 average
"Our tailored course provided a well rounded introduction and also covered some intermediate level topics that we needed to know. Clive gave us some best practice ideas and tips to take away. Fast paced but the instructor never lost any of the delegates"
Brian Leek, Data Analyst, May 2022
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022