Developer Testing

Developer-Driven Testing for Software Engineers

If you are a Software Development Engineer, a Test Engineer, or a technical Engineering Manager, you know that implementing an effective developer testing strategy is crucial for successful software development.

In this code-driven Learning Program, you’ll learn how to design the optimal set of tests cases and ensure you have enough testing coverage, test during development instead of after, design software for testability, fix untestable code, and test your code in isolation from external dependencies.

You’ll also learn how to apply developer testing to new or legacy code, use automated testing best practices, avoid common pitfalls, deliver quality software at any time, and sync releases with integration milestones.

Hands-on design and coding labs let you master these test case design techniques and coding practices so that you can deliver high-quality maintainable software and automated tests effectively and efficiently.

Open Enrollment
Developer Testing Learning Program

Great developer testing programs are built with these skills

You’ll learn them all in the code-driven, hands-on Developer-Driven Testing for Software Engineers and why they’re important. If you’re a Program Manager, Project Manager, Scrum Master, manager, or developer planning a developer testing strategy and want to get a handle on the key concepts, you might want to begin with Developer Testing Core Skills.

Design the optimal set of test cases

To use the minimum number of test cases, ensure you have enough test coverage, and prioritize test cases based on risk.

Use coding best practices for software and related automated tests

To ensure code is testable, fix untestable code, build maintainable tests, reduce complexity, and enable automated developer testing.

Get to the next level of automated unit testing

To enable fast, independent testing of code at the lowest functional block level using an XUnit framework.

Test without external dependencies using test doubles

To test your code in isolation, guarantee fast and repeatable expected results, and avoid turning unit or functional tests into integration tests by replacing external dependencies.

Grow test cases with your code

To design and develop test cases based on functional requirements before writing the code, using Test-Driven Development (TDD) and Acceptance TDD (ATDD).

Avoid testing gaps by using best practices for new or legacy code

To focus your developer testing effort, make optimal use of your QA team, and avoid common testing gaps.

Topics at a glance

Before your program starts

Developer Testing assessment to discover where your program is strong and where it needs improvement.

Why you need developers doing testing

The high cost of finding defects late in the process
Which issues introduce the most defects?
Types of automated testing and when to use each
Run automated tests as part of CI/CD
Automated unit testing using XUnit
Grow your tests with your code using TDD and ATDD

Designing test cases

Test design techniques for maximum coverage & minimum tests
Test contracts and behavioral tests
Domain coverage, test pairs
Combinatorial testing

Ensuring code coverage & designing for testability

Decision tables, branch coverage, basis path coverage
Control flow graphs, condition coverage
Designing testable software, identifying untestable code
Designing for easier code & test case maintenance
The key tenets of testability
How to measure and reduce code complexity
Single Responsibility Principle (SRP)
Law of Demeter and the Principle of Least Knowledge

Replacing dependencies with test doubles, best practices, & pitfalls

The problem: unit tests impacted by external dependencies
Design for testing in isolation via dependency management
Dependency replacement techniques
Dependency injection techniques
Types of test doubles
Using developer tests as part of CI/CD pipeline
Continuous integration & testing in hybrid agile
Planning releases & syncing with external milestones
Developer testing for new or legacy code
Six things you should do to benefit from developer testing

Sample Learning Program

Expand each section below using the toggles to see all the details. This is one possible shape this Learning Program can take. For private offerings, we’ll work with you to customize the program for your learners’ needs.
What’s the time investment?
Get in touch »

Why are our Learning Programs so effective?

We interviewed more than 400 software leaders around the world and what did they request?

Customized, minimally disruptive virtual sessions that focus on real-world results through a balanced mix of coursework, self-study, and expert mentoring.

Grow and thrive with developer testing

Developer Testing Core Skills

Learn the concepts and best practices that enable you to avoid common testing pitfalls, determine how much testing is enough, use automated testing, and deliver quality software.

Learn more »

Developer-Driven Testing for Software Engineers

Learn to design the optimal set of tests cases, design software for testability, fix untestable code, test your code in isolation from external dependencies, apply developer testing to new or legacy code, and sync releases with integration milestones.

Learn more »

Ready to give yourself or your team state-of-the-art learning?

Get in touch, and we’ll get right back to you!