I recently spent about two weeks trying to figure out why an intercontinental connection between two of our sites was broken. Not really my job, I just care about application level, but the network guys were beyond useless.
In the end I had the problem isolated to a specific network segment in India, which made them look at the right system and fix things. The reason? “We put up a firewall the day your problems started which blocks everything, if we allow your connection it works”.
“If we allow your connection, it works”
Oh, surprising
The one I hate? Your unit tests pass when run locally, and in your sandbox environment, and in dev, and in UAT, but prod? Fuck that, failing with reckless abandon.
Unit tests or integration tests?
Yes
Are you kidding me? Tests in prod? Hopefully that means you didn’t fully roll out. That means someone didn’t get a 3am page.
This sounds like a god-damned resounding success.
Ahhh my favorite way to fix a broken test: just remove it!
Mark it as intended-to-fail, that way if someone fixes your bug it’s their test failure.
Working at a company with no automated tests. There’s not even a collection of regression tests or anything to follow. I was wondering if anyone could share or point me towards a good template to start building out test cases as a first step?
I think this is something you’re gonna have to just jump into and start since you don’t have anything to work off of. it’s going to take a lot of work, but at least you’ll be able to work off your own ATFs once you finish. good luck…
I mean, start with trivial cases of the core functionality of what your system does. Then build upon it based on your own findings and what your clients report.
E.g. if your system loads images then put in a tiny 5x5px solid square or checkerboard pattern and see if it loads. Then try putting multiple images, different formats (webp, gif, png, tga) etc. see if that breaks anything, keep building out.
It probably really depends on the project, though I’d probably try and start with the tests that are easiest/nicest to write and those which will be most useful. Look for complex logic that is also quite self-contained.
That will probably help to convince others of the value of tests if they aren’t onboard already.
if there are zero automated tests, things probably weren’t written with (automated) testing in mind, so there may be a lot of coupling… starting off with integration tests just to validate existing behavior is a good start. hopefully the existing applications aren’t also inextricably bound to environments that are run on pet servers and managed by other teams…
Thankfully, the team has full control without external team dependencies
I’m in this meme right now.
I just made a tiny change that somehow broke a major feature in testing. The disbelief is real.
Rollback, tests still fail.
Flip a table.
sometimes it is the unit tests.
Wait! US-EAST-1 is dead (Shia surprise)
Oof I am here right now, which is why I’m procrastinating on socials…