Category: Quality
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
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
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
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
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
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
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
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
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
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