(O T H E R B L O G S: )
Recently I read a very interesting message on Twitter about software testing. In it, was a picture of how you should look at software testing and how formal or informal the tests could be executed.
But when I see such pictures, sometimes I inherently think:
'Am I the only one who thinks this is a bit "shortsighted?"
This is not the complete picture. This is only a certain % of the total view of how it should be looked at.'
#1: One of the most important things to understand is: that this overview is very dynamic. It's not a solid state.
So keep in mind you should see the picture more like this:
#2: is that: you're not testing just 1 requirement or functionality of the software.
It's important realize that requirements are connected.
It's important to realize that: requirements have hierarchical connections. Some have high priority, some have low priority. Some are connected to a small amount of others, some are connected to everything.
But they are all connected to eachother in some way.
So this is more in line with how you should see it in overall.
Example: You're testing software: It has requirements. You start with play and test the most important requirement there is. Then you start to machine check the damn thing. You discover a bug. A new requirement is written, that requirement becomes the new top priority. Could be connected to almost nothing, could be the new most important requirement...
#3: Realize that more formal or more informal testing is something very dynamic regarding to the test object!
Realize that, now we've underlined that fact. That we have left out all other aspects that determine how you should test.
So for example: is a requirement more 'security testing' related?
is it more 'performance testing' related?
None of that is yet mentioned in my extension (personal view) on the image 'formal - informal'.
#4: I'm not even mentioning the fact that insights in time regarding a requirement many times change... (what looks like a bug becomes a feature) (which makes it (the pyramid of connections, and how to test it) even more complicated)
Somtimes you need to adjust the strategy of the project. (for example: more A.I.)(or, add other types of software testers for example testers with knowledge of A.I.)
Sometimes you need to adjust the strategy of the tets object.
Sometimes you need to adjust the strategy on some requirements (or bugs, I will get back to that later (in English)!).
Sometimes you need to adjust the strategy on 1 single requirement. (Realize that testing 1 requirement can cause a change of strategy for the.... [ (project, test object, etc...yes it's that complicated! ) ]
and so forth, and so on....
So if you have a picture in your head of a test object (software code) that matches something that is static!?
It is NOT!
A testobject is something very DYNAMIC!
(so in the future, when your "manager" asks: 'why is testing taking so long?' you show him this picture and say: 'because THIS! is what we are testing!'):
Ohw by the way, once you see a test object as something very dynamic, it also is immediately clear why it can be so difficult (time consuming) to automate everything, right?
I'd like to end this blog with a quote:
Uw banner ook hier?