Bug said:
ROFLMAO!! I was just going through this thread, so sorry for quoting from so far back, but this is classic! I really am a software tester (also been a developer in my distant past) - obviously Bonj isn't or he wouldn't have posted such an inane comment.
no, i'm not a tester no, but i was made to carry out testing duties in this particular job I once had.
Bug said:
How are you supposed to know how to test something, Bonj? The same way that you knew how to write it in the first place. That is that someone took the customer's requirements
ok, that's assumption number one - that the customer knows what his requirements are, but carry on...
Bug said:
...which were then turned into a number of (potentially) high and low-level design documents from which you would have written the code.
yeah right.


Bug said:
Coming from the design, and linked through to the requirements would have been test conditions and use cases which describe the functional and non-functional aspects of the system to be tested. These test conditions would feed into test cases which would then be implemented by test scripts. As a developer, you would most likely have only performed the unit testing, and as such would have used white-box techniques (boundary value analysis, partitioning, etc) to have performed your testing.
Theoretically, the unit tests should be written
first, before the code that passes them. But in this particular company the tests were written so they could say to auditors "we test our software!" and tick a box that earns them ISO9001 accreditation. ISO9001 is a nightmare, I might add, for exactly that sort of reason.
Bug said:
Testing ultimately proves two questions 'have we built the right system' and 'have we built the system right'. Your approach to testing would have done neither and would have just been a complete waste of time.
Tell me about it...

Not really MY approach, I was just the monkey implementing it. It was normally a case of, I'd get told to write tests to cover a huge chunk of the app preferably before the end of the day, so I'd examine each bit, come to the conclusion that "the bloke downstairs that uses it has probably already seen this bit and hasn't bitched about it yet, and it doesn't look wrong, so that's good enough for me" - write a test to make sure it does that. Auditor's box ticked, job done, everybody happy.
Bug said:
Using the existing code as a test condition is a newbie's mistake and one that no serious software development organisation would let you get away with making.
Now now, surely you aren't going to assume you need to tell me why that sort of practice is wrong in principle.
FWIW, they can't have been 'serious' then.

Come to think of it, they did at least try and pretend to be 'serious' (unlike the next company after that I worked at that didn't even bother pretending), but I could quite clearly see they didn't do things properly. Getting things 'out the door' was more important, as it is all too often. You might be surprised as to how much of the software in the world that does quite important jobs is written using imperfect methodologies.
If you think it's easy to implement good practice in an organisation that doesn't recognise the value of good practice, and to make them think "wow - so
that's what we should be doing!

" then I'm afraid I don't envy you.