If you have automated tests for your code, you are doing better than some programmers. However, how good are those tests? In this article I'll explore how tests can be good (or not). Cable clip analogy Before I get into tests, I want to introduce something that will be useful as an analogy for them. … Continue reading Tests to hold code securely in place
Category: Testing
Building computer systems via problems rather than solutions
When it comes to building computer computer system, even something as simple as storing the name and address of universities can be surprisingly complicated and messy. While the mess and complication often can’t be avoided, knowing what the end user needs are can help you come up with the best way of tackling them. “Just” … Continue reading Building computer systems via problems rather than solutions
Reviewing requirements
Ministry of Testing kindly published an article I wrote for them on reviewing requirements. It gives some tips for doing it, and also looks a bit at the human side of things. I hope it's useful for non-testers as well as testers, whether your requirements are big documents full of UML or something much briefer … Continue reading Reviewing requirements
When a failing test might be OK
Usually, a failing test is a problem. In this article I will cover three cases where this might not always be true: performance tests, testing a data science model such as a classifier, and testing in quantum computing. In all these cases, a definitive answer about passing or failing is given by a set of … Continue reading When a failing test might be OK
Fuzzy matching – context and testing
This is the third article in a short series on fuzzy matching: Introduction Example algorithms Testing and context In this article I will consider the difference between context-dependent and context-independent fuzziness, and think about how fuzzy matching systems can be tested. Context-dependent and context-independent fuzziness If you are trying to do fuzzy matching of strings, … Continue reading Fuzzy matching – context and testing
Staging input data to improve testability in data pipelines
In a data pipeline (an ETL or ELT pipeline, to feed a data warehouse, data science model etc.) it is often a good idea to copy input data to storage that you control as soon as possible after you receive it. This can be known as copying the data to a staging table (or other … Continue reading Staging input data to improve testability in data pipelines
Improving testability and observability of look-ups in data pipelines
Often in data pipelines (ETL or ELT pipelines for feeding a data warehouse, data science model etc.) we need to look up reference data that relates to the main flow of data through the pipeline. If this isn't done carefully, there can be problems for checking how the system is running. Before the system is … Continue reading Improving testability and observability of look-ups in data pipelines
Analogies and objectives for testing
I guess if I had to define my role at work it would be: programmer. However, I have learned a lot from people who wouldn't call themselves programmers, such as testers (Michael Bolton, Jerry Weinberg, the Ministry of Testing community etc.), user experience experts (Paul Boag, Jared Spool, Don Norman etc.), and data people of … Continue reading Analogies and objectives for testing
Testing a data pipeline
There are several approaches to testing a data pipeline - e.g. one built using an ETL tool such as SSIS or Azure Data Factory. In this article I will go through three, plus refer to another (unit testing components of the pipeline). For simplicity sake I will refer to only database tables, but other forms … Continue reading Testing a data pipeline
Regular expressions
This is the first article in a short series on some classic bits of computer science, which are occasionally useful in professional programming: Regular expressionsFinite state machinesComparing regular expressions and finite state machines A useful tool with a bad reputation Regular expressions are a way to define a set of 0 or more text strings … Continue reading Regular expressions