Recently we had some late new requirements that needed to get into the system. We rolled them out after our latest major release of the software. There was a hasty test cycle before shipping the software out the door. And guess what? There are a lot of problems with the code in the Production environment.
The good news is now that we are fixing the problem, our internal test team is better equipped and has more time to verify our changes. A recent set of changes has failed internal test a couple times. Seems I have made a number of invalid assumptions about the data in the system.
A lot of the good testing comes from the fact that the tester assigned to my code is actually an old developer. He used to sit next to me in my cubicle on a past project. Somehow he got moved to the test organization. And now he is taking test to a whole new level.
This reminds me of another tester from a couple years ago. Let's call her "SJ". She astounded me and my team when she first started verifying out fixes. SJ has a deep technical understanding about the changes we were making. Sometimes she even dug down and showed me where I had made mistakes in the code. When I asked SJ how she was able to figure this out, she said that she too was a developer in a past life. She wanted something different and was doing testing now.
Not all testers have to be developers at heart. But I have found that it certainly helps.
A Little Bit of Crypto - I have been trying to figure out to "collision resistant" some of these standard hash functions are. It is a tough concept to get my head around. I figure...