I’ve heard this statement a few times.
“There are no functional changes to the system, just a bunch of non functional updates to hardware and software.”
Huh?
What I really hear is:
“We are changing broad areas of the system, but we’re not adding any buttons/fields/pages/widgets so we’re going to classify this as a non functional project.”
This sort of assumption needs to be challenged. If you are changing the foundation of a system, there cannot not be any functional changes! The reaction and interaction of a systems users dictates function. For clarity a user can be a human or another system in this context.
Do the following count as ‘change?’
- System changes speed: If the system responds slower or faster, those using it will respond to that. Improving your performance can have negative impacts on the consumers of your system, if the user expects a certain speed of response.
- Systems inherent fragility changes: If the system has more or less availability this will change interaction. Expectations will rise (or fall), so might volume!
So, next time someone says “there’s no functional change”, as a tester remember that there is more to a system than the functionality it contains, its behaviour has a profound effect on its stakeholders.
Remember, if you convert your teapot to be made from chocolate, its function is the same but it’s behaviour is pretty different!