"This project is different as it has no functional changes"

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!



Comments