---
title: "Introducing Depender - Testability Problem Finder"
url: "https://osherove.com/blog/2008/7/5/introducing-depender-testability-problem-finder.md"
canonical: "https://osherove.com/blog/2008/7/5/introducing-depender-testability-problem-finder.html"
published: "2008-07-05T07:08:25"
updated: "2008-07-05T07:08:25"
tags: ["Agile", "Art Of Unit Testing", "Cool Tools", "Typemock", "Unit Testing"]
author: "Roy Osherove"
description: "Update : Here's how you can extend Depender with your own dependency rules Depender is a tool that I created to illustrate several concepts both for my book and both for my training classes. I think it should prove…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# Introducing Depender - Testability Problem Finder

By Roy Osherove July 5, 2008 In [Agile](https://osherove.com/blog/category/agile), [Art Of Unit Testing](https://osherove.com/blog/category/art-of-unit-testing), [Cool Tools](https://osherove.com/blog/category/cool-tools), [Typemock](https://osherove.com/blog/category/typemock), [Unit Testing](https://osherove.com/blog/category/unit-testing)

**Historical article** · Originally published July 5, 2008; technical details may be outdated.

**Update**: [Here's how you can extend Depender](http://weblogs.asp.net/rosherove/archive/2008/07/05/extending-depender-with-your-own-custom-dependency-rules.aspx) with your own dependency rules

Depender is a tool that I created to illustrate several concepts both for [my book](http://the.artofunittesting.com/) and both for my training classes. I think it should prove valuable (as it gets more and more features) to anyone who is trying to write tests for existing code.

Depender allows you to load an assembly and inspect the types within it according to very simple rules. the main question on my mind and I run it is: "How easy would it be to test class X?". Depender will list all the classes in the assembly and for each one will try to detect possible testability problems (non decoupling) and places where you might be able to "inject" your own implementation (calls to virtual methods, fields that are interfaces or types who are not sealed..etc..)

so you can:

- see places where you might want to refactor your code or use a tool like [Typemock Isolator](http://www.typemock.com/)
- see places where you can already use "seams" to inject behavior into your code without needing to look up the source code manually.

here's what the main screen looks like when loading an assembly:

the type "RealLogger" is marked in red because it contains calls to static methods. double clicking on the type's node will load a separate window just for this type:

I will be adding more rules and also releasing the source so that other people can help develop this. for now I just want to get it out there and see what people think.

possible futures:

- Make it command line driven so it can run in your CI builds
- Make it give "scores" to assemblies or types on testability and decoupling
- Make it add "suggestions" on how to fix decoupling issues
- Make it create the base diagram for my [test feasibility matrix](http://weblogs.asp.net/rosherove/pages/420425.aspx)

Download [Depender from here](http://files.osherove.com/downloads/Depender.zip).

## More in Agile

[All posts in Agile](https://osherove.com/blog/category/agile)

- Jul 6, 2008

    ### [Is Moq too poweful?](https://osherove.com/blog/2008/7/6/is-moq-too-poweful.html)

- Jul 5, 2008

    ### [Extending Depender with your own custom dependency rules](https://osherove.com/blog/2008/7/5/extending-depender-with-your-own-custom-dependency-rules.html)

- Jul 3, 2008

    ### [TDD 5-day course\\workshop in Norway](https://osherove.com/blog/2008/7/3/tdd-5-day-courseworkshop-in-norway.html)

- Jul 3, 2008

    ### [Typemock Isolator 4.3 and future syntax](https://osherove.com/blog/2008/7/3/typemock-isolator-43-and-future-syntax.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
