Is this a bug, a missing feature, or neither?
Random Tech Thoughts Blog
by Bob
2M ago
Software makers have this question a lot.  They get some feedback from a user, and they must decide if it’s a bug, a missing feature, or neither.  In this article I will explore this question using the analogy of a car.  The simple answer is that there’s a lot of nuance – i.e. ‘it depends’ again –  and this can lead to less obvious consequences. My car doesn’t fly First, we will imagine that the feedback from the user is: my car doesn’t fly.  Is this a bug, a missing feature, or neither? One of my favourite definitions of bug is the one I learned from Michael Bolton: a ..read more
Visit website
Reducing risk and disruption during migration using a blue/green approach
Random Tech Thoughts Blog
by Bob
4M ago
When a system needs to change from one version to the next, this can be disruptive and risky.  One approach to reducing this disruption and risk is a via a blue/green approach.  Changing from one version to the next is also known as migration, upgrading or updating.  I will describe the blue/green approach using three examples – tariffs in UK domestic smart meters, the Swedish road network, and software. UK domestic smart meters SMETS2 is the current standard for UK domestic smart meters.  It contains these requirements (and many others): Tariffs must be downloaded and sto ..read more
Visit website
International languages?
Random Tech Thoughts Blog
by Bob
7M ago
There are several things that are either official or de facto international languages.  (I’m using a more elastic meaning of the word language than you might expect.) It’s interesting to look at the history and influences behind these languages, because they often leave fingerprints on the language. Who are the languages for?  Who decides on what’s in a language and what’s not? The languages I’ll be looking at briefly are: Symbols for chemical elements, as in the periodic table of elements The International Phonetic Alphabet – the odd-looking symbols in a dictionary that say how to ..read more
Visit website
Modulo arithmetic in everyday life and code
Random Tech Thoughts Blog
by Bob
7M ago
Despite its scarily maths-sounding name, I suspect that you have already come across modulo arithmetic, even though it probably didn’t have that name. In this article I’ll go into a few examples of modulo arithmetic in the everyday world, and how the practical limitations faced by computers cause modulo arithmetic to crop up when you don’t expect it (and how this can be a problem). Number line vs. number circle You have probably been shown the idea of numbers being in a line, stretching from minus infinity on the left to plus infinity on the right. If you ignore exotic things like complex numb ..read more
Visit website
Tests to hold code securely in place
Random Tech Thoughts Blog
by Bob
8M ago
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. If you have had to secure something like an Ethernet cable in your home, you might have used one of these: They are cable clips. The cable goes under the arch, and then the tack to one side of the arch is hammered e.g. into a wall, holding the cable clip in place. This, in turn, holds the cable in ..read more
Visit website
Balanced trees
Random Tech Thoughts Blog
by Bob
9M ago
In a previous article on complexity, i.e. performance trends in code, I said that trees can be useful ways of storing data, but they only work if they’re reasonably well balanced. In this context, balanced means that no path from the root node of the tree to a leaf node is much longer than any other path.  Balanced trees tend to be symmetrical and bushy, rather than long and straggly. Balanced trees are great, but how do you encourage a tree to be balanced?  In this article I will describe one approach to this, which is the 2-3-4 tree, which is a special case of the B-tree.  I’l ..read more
Visit website
Building computer systems via problems rather than solutions
Random Tech Thoughts Blog
by Bob
11M ago
When it comes to storing data in a 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” storing university names and addresses Imagine you’re designing a system, and someone asks you to store the names and addresses of UK universities.  That’s not too hard, so you should get it done quickly, right?  It will be even easier and quicker if the perso ..read more
Visit website
Reviewing requirements
Random Tech Thoughts Blog
by Bob
11M ago
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 like user stories ..read more
Visit website
When a failing test might be OK
Random Tech Thoughts Blog
by Bob
1y ago
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 tests, rather than by a single test. Dividing jobs between tests In automated tests, each test does a different job – why bother having more than one test to deliver some information?  It’s common for there to be more test code than production code and maintaining test code is ..read more
Visit website
Fuzzy matching – context and testing
Random Tech Thoughts Blog
by Bob
1y ago
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, then the previous article introduced one way of doing that – the Levenshtein distance.  The Levenshtein distance knows nothing about the strings being compared, so can be de ..read more
Visit website

Follow Random Tech Thoughts Blog on FeedSpot

Continue with Google
Continue with Apple
OR