The value of automated testing is predicated on trust. It begins innocently with a test suite that reports incorrectly. Maybe the test suite reports a lot of false positives, or maybe the test suite does catch enough failures. In either case, people stop running the tests. They stop maintaining the tests, and eventually the tests no longer function and are discarded.

For tests to remain relevant, this pervasive question runs throughout software testing: how can I trust that a unit test is actually exercising the code in question? This post talks about how mutation testing can provide a definitive answer.

Read more...


Marketing is not all about positioning product; it’s also about connecting with your consumer base.

This post contrasts two television advertising approaches to September 11th. Both ads refer to the destruction of the Twin Towers in New York City on September 11th, 2001 – 15 years ago today at the time of this posting.

Read more...

Today I want to describe another aspect of my bullet journaling, my weekly review. This is the first week I’ve taken a data analysis approach, and I am pleased with the results. I took a quick picture, which shows last week’s charts. (The page wasn’t flat, so the edges are blurry but legible.)

weekly review charts

Read more...

Today, I want to talk to you about a different kind of database than the ones you are probably used to. I start with a brief description of common types of databases, then introduce graph databases with a couple of examples.

If you have been in the software development industry for a long time, you probably started with relational databases. If you’ve ever used a spreadsheet, this concept should sound familiar. A relational database stores data items in life-structured groups called tables that contains rows and columns. The row represents a discrete piece of data, and a column represents a characteristic of the item common to every row in the table. In a database proper, that structure is enforced by a specification called a schema.

Graph databases can be powerful tools for analyzing the way items relate to one another.
Read more...