Category: Quality

September 16, 2021

Improving your root cause analysis

I’m often asked to help people improve the value of their root cause analysis (RCA). Here’s my most common advice. I include a RCA process to improve your software development and advice to make your analysis more effective. Summary When determining the problem, ask why until you hit a people issue. Ask what’s the earliest …

Bill Hodghead

January 10, 2020

In what order should functional test automation be implemented?

This post is part of a series on functional testing using the test pyramid. For new code New code has unit tests added as the code is created. If you are good, you write them before the code is created (TDD), but even if you don’t use TDD, get them done and merged into the …

Bill Hodghead

December 16, 2019

End-to-end testing

This post is part of a series on functional testing using the test pyramid. Also called “system” testing. Purposes Verifies the key customer experiences of the software. Who defines the test? Defined by product management (PM), often with contribution from quality engineers (QE). Who codes the test automation? System automation can be created by a …

Bill Hodghead

December 12, 2019

Integration testing

This post is part of a series on functional testing using the test pyramid. Purposes Verifies that components or microservices within a service or sub-system talk to each other correctly. This is different from component or API testing. API testing covers the external interface and functionality of the sub-system, while integration testing covers communication between …

Bill Hodghead

November 20, 2019

API / Component testing

This post is part of a series on functional testing using the test pyramid. API testing checks the external interface of one or more components, while component testing tests the functionality of a single component. From the point of view of the consumer, these are the same, so we group them together in the same …

Bill Hodghead

November 11, 2019

Unit testing in the test pyramid

This post is part of a series on functional testing using the test pyramid. Purposes of unit testing Documentation: Defines the behavior of the code as a working specification that is kept up to date. Reduces the need for a development specification. Maintainability: By proving code is testable, it proves the code is maintainable forcing …

Bill Hodghead

November 5, 2019

Structure of the test automation pyramid

This post is part of a series on functional testing using the test pyramid. I’ve been engaged by five different companies to help them create a quality strategy. For each company I’ve worked with, I used variations on the same strategy. To create this strategy, I took ideas from all over, but the core came …

Bill Hodghead

October 29, 2019

The test pyramid: A functional test automation strategy

In this article series, I’ll show you a test strategy I’ve used with several different companies to achieve high quality and productivity. Test automation saves money, improves time to market and raises quality, but it’s also expensive. This test pyramid gives a guideline on how to allocate your efforts. I’ll give you the basic definitions, …

Bill Hodghead

May 29, 2019

Using a test oracle

Oracles solve “This thing needs more tests than I can list!” We use data-driven testing to reduce the number of tests into a few rows. What happens when the number of test rows get to be too many? Example: Let’s say we have a date control that is composed of three integer inputs: one for …

Bill Hodghead

May 28, 2019

Equivalence classes and boundary value analysis

Equivalence classes Equivalence classes are a set of input values that produce the same result. It’s important to know the equivalence classes for your system under test, because you can use equivalence classes to limit your test cases. Let’s look at an example. Let’s say you have a user interface that looks like this: Remember, …

Bill Hodghead

Next Page »