Ewww, no. The programmer should have run their unit tests, maybe even told you about them. You should be testing for edge cases not covered by the unit tests at a minimum and replicating the unit tests if they don’t appear to be very thorough.
My units and integration tests are for the things I thought of, and more importantly, don’t want to accidentally break in the future. I will be monumentally stupid a year from now and try to destroy something because I forgot it existed.
Testers get in there and play, be creative, be evil, and they discuss what they find. Is this a problem? Do we want to get out in front of it before the customer finds it? They aren’t the red team, they aren’t the enemy. We sharpen each other. And we need each other.
I think that the main difference is that developers tend to test for success (i.e. does it work as defined) and that testers should also test that it doesn’t fail when a user gets hold of it.
Love this, 100% accurate. QA people are amazing, protect us from ourselves in so many ways we didn’t even think of.
I wish our test team was like that. Ours would respond with something like “How would I test this?”
Programmer should have written all the test cases, and I just run the batches, and print out where their cases failed.
Ewww, no. The programmer should have run their unit tests, maybe even told you about them. You should be testing for edge cases not covered by the unit tests at a minimum and replicating the unit tests if they don’t appear to be very thorough.
This.
My units and integration tests are for the things I thought of, and more importantly, don’t want to accidentally break in the future. I will be monumentally stupid a year from now and try to destroy something because I forgot it existed.
Testers get in there and play, be creative, be evil, and they discuss what they find. Is this a problem? Do we want to get out in front of it before the customer finds it? They aren’t the red team, they aren’t the enemy. We sharpen each other. And we need each other.
I think that the main difference is that developers tend to test for success (i.e. does it work as defined) and that testers should also test that it doesn’t fail when a user gets hold of it.
But they still don’t think of all common user possibilities. I like this joke:
A software tester walks into a bar.
Runs into a bar.
Crawls into a bar.
Dances into a bar.
Flies into a bar.
Jumps into a bar.
And orders:
a beer.
2 beers.
0 beers.
99999999 beers.
a lizard in a beer glass.
-1 beer.
“qwertyuiop” beers.
Testing complete.
A real customer walks into the bar and asks where the bathroom is.
The bar goes up in flames.
Bathroom testing was not in scope.
This one’s on management.
Most of the best QA folks I’ve worked with had teenage children.
I imagine dealing with developers is similar.
I love working with competent QA engineers. It’s always a humbling experience.
I learned more about how computers work from them than I did in all my schooling.
Hey! My company just fired ours today!
Yes, I second this. QA has caught so many things that did not cross my mind, effectively saving everyone from many painful releases
It’s also the system administrator and SRE mindset.