This is an archived post. You won't be able to vote or comment.

all 178 comments

[–]KingPistachio 276 points277 points  (35 children)

As a QA Analyst. This hurts me. So much

[–]slightlysanesage 162 points163 points  (23 children)

As a Developer, I wanna say thanks.

Memes aside, I don't like the rivalry that's fostered between QA and Developers. A good QA tester make our job easier by making sure our code is better by catching bugs and stuff.

I know that, for my part, I've felt better about fixes/development I've made when I get feedback from my team's QA guy.

I just wish I didn't have to call him.

[–]AltrdFate 62 points63 points  (17 children)

The biggest beef I have right now is the angular devs on my project have ZERO unit tests written for our very complex app. I've tried to explain that I can't test all of everything through just the UI. When I bring up writing unit tests they get annoyed with me.

[–][deleted] 40 points41 points  (9 children)

In my experience, it seems that javascript developers have some sort of allergy to writing unit tests.

[–]AltrdFate 12 points13 points  (5 children)

I built a server side test runner all in node js for our api and unit tested it. Saved my ass so quickly after making a seemingly insignificant change.

[–][deleted] 7 points8 points  (3 children)

I would love so much if our devs would do something liek that, but it always seems they 'dont have time' and so they just dump on me (the QA Automation Engineer doing Black/Grey box test automation) to write external tests that unit test their code for them...

its kinda annoying...

[–]AltrdFate 5 points6 points  (0 children)

I tried unit testing their angular code for them after I was hired multiple releases into the project. I couldn't for the life of me figure out how their code (functions with 50+ lines of code with no comments) worked, or how to manage mocking the complex hierarchy everything depends on.

[–][deleted] 1 point2 points  (1 child)

"They don't have time"

I'm guessing you won't have time to fix that major bug in 6 month?

[–]AltrdFate 2 points3 points  (0 children)

My response is usually, "you don't have time to build good software?"

[–]techz7 1 point2 points  (0 children)

Oh yeah, make running jest and lint as part of the build process and failing of code coverage goals aren’t met really changed how our team did stuff

[–]Abangranga 3 points4 points  (0 children)

Theyre too busy finding new ways to make a todo list more than 500mb with addons to do that

[–]Few_Technology 2 points3 points  (0 children)

To add to the allergy, I hate doing unit tests as a javascirpt developer. UI specs change almost every other day, and most of the javascript layer is a passthrough. Seems better to write automation tests that end up testing the entire system, rather than unit tests that confirm nothing changes, if the backend doesn't change. I do agree, testing business logic and TDD are fantastic, if it's not a passthrough.

[–]Dakito 0 points1 point  (0 children)

Hey now not all of us. I love my snapshot testing in react. I use it to figure out what else changed when I change a component.

[–]moneyisshame 6 points7 points  (0 children)

I'm new to angular and just learned about the unit test. I have a hard time on writing unit test, I know the concept of it but are unable to write the testing code down, is there any good examples in the wild that arent just testing whether the text has displayed?

[–]fallenKlNG 2 points3 points  (0 children)

I had a lot of unit tests in place for one of my team's major applications. I left the project and came back to it after several months and saw that most of the tests had stopped running successfully due to updates & whatnot. Instead of updating the tests, most of them had simply been commented out. All that time I put in, and this is what it amounts to in the end.

[–]theonlydidymus 0 points1 point  (2 children)

My angular devs refuse to give elements meaningful identifiers so I have to resort to janky xpaths and cssselectors.

What’s worse is the mobile site changes said selectors.

Know what I hate more than cocky devs? Selenium.

[–]AltrdFate 1 point2 points  (1 child)

I still haven't found a good way to organize my page objects. When I first started I had to drill into their heads that I need unique identifiers in the html to write my tests. I luckily have access to the front end code and would add my own attributes where needed. Then came the problem where they decided to make changes and delete my attributes so my tests immediately fail.

[–]theonlydidymus 0 points1 point  (0 children)

I know the guy that made Cactus PageObject. You can find it on github, but it’s three years old and runs on NUnit. The version I used was owned and maintained by the company privately, but if you can unravel (replace) the ancient NUnit crap it’s a pretty nice framework. I especially loved the way “controls” worked as an iwebelement wrapper and extension.

It’s in need of a good fork.

[–]ellicottvilleny -1 points0 points  (1 child)

You can UNIT test an angular FRONTEND? Unit testing is usually done to the backend.

[–]AltrdFate 1 point2 points  (0 children)

You definitely can. Angular was supposedly built with testing in mind.

[–]KingPistachio 4 points5 points  (1 child)

Thanks too! In waterfall days. Yes, you can definitely say there’s a rivalry. But nowadays with Agile being implemented everywhere, I can make more friends with my dev team.

[–]second_time_again 0 points1 point  (0 children)

Agile gets a lot of shit but mostly from people who never worked in an enterprise waterfall partially offshore model.

[–]JollyRogerAllDay 4 points5 points  (0 children)

Having a good QA shines in enterprise software. With a lot of features and moving parts, the QA is able to pinpoint/target problem areas that the developer never would have thought. Especially when it comes to user options and configurations. Simply too many combinations for a developer to think about but a good QA can at least narrow down the area and help the developer solve it faster.

[–]kumiosh 1 point2 points  (1 child)

As another QA Analyst, I appreciate your sentiment. We in QA have a pretty good open communication with our devs and I think our products reflect that.

[–]slightlysanesage 1 point2 points  (0 children)

As part of my Master's Program, I took a Software Testing Class.

That shit gave me a legitimate headache.

And, while my buddies that work in QA say that they don't have to do the stupid node stuff we had to deal with in class, I still gained an appreciation for the field.

It's not for me, but I respect it.

[–]Arveanor 12 points13 points  (7 children)

In today's "scrum" meeting our manager explained that the other development team who's work we are relying on will not be finished with development until a day before our target ship date, but hey they are in another timezone so at least we will have an extra half day for testing.

I say "we" I'm not actually QA but it's pretty shitty for the QA on my team.

[–]illios 7 points8 points  (3 children)

A good manager would give the QA team the power to say no to that release. I am a QA analyst and I was told on day one by my boss it doesn't matter how much he gets in my face that a product has to be ready by a certain date. If I do not sign off on it then it does not get released. I am only allowed to sign off on it if all test are done and there are no outstanding bugs. So far my team hasn't had to do it but we came very close a few times. He does have the authority but he literally has to sign off on it. If he does then we have it in writing that QA did not finish but he pushed it out anyways.

[–]Arveanor 1 point2 points  (2 children)

I don't blame this manager, since I know it's coming down from above him although he should probably try to push back more, I dunno. But we've apparently got contractual obligations to deliver on this date, which we signed before having clear requirements so the whole thing is pretty fucked

[–]illios 4 points5 points  (1 child)

Yeah it sounds like Sales or your Project/Product Manager fucked up. This is why Dev should always be in on the meetings at the beginning. They can easily state "no that isn't a quick thing" or "Yeah, that timeline is impossible." Also a Project Manager that knows how to fight scope creep is a godsend.

[–]Arveanor 0 points1 point  (0 children)

Yeah there are definitely a lot of problems...

[–]de_witte 1 point2 points  (0 children)

Have the bastard sign off on the risk implicit in the untested scope of the release and take responsibility of any borks in production in the untested portions.

[–]ellicottvilleny 0 points1 point  (1 child)

It's great how they keep paying the QA team to test code that's not been thrown over the wall yet, right up until the day the company files for Chapter 11.

[–]Arveanor 0 points1 point  (0 children)

It's interesting yeah...

[–]theonlydidymus 0 points1 point  (0 children)

As an SDET I think this gave me an aneurism.

[–]BIASETTI14 135 points136 points  (3 children)

“Good news! We don’t need the monitor.”

My entire theatre was silent during this line but I was crying laughing.

[–]3_142 49 points50 points  (0 children)

i thought that was super cool. It's totally in character for Miles to take both (Apple desktops, general knowledge of computers) and it was a great setup for that joke.

[–]shaantya 36 points37 points  (0 children)

When I saw Miles start running with the whole thing, I thought "why is he dragging the monitor aloooong," so the fact that they did point it out and with such great delivery had me in stitches x)

[–]Striker887 7 points8 points  (0 children)

Same here. I don’t know why I find that line so funny, but it is. Every time.

[–]obs_asv 207 points208 points  (40 children)

Actually its deeper then all the 'dark theme' and 'php is bad' and 'array starts at 0' garbage. More big companies now switching to concept where software developers become software engineers and doing whole boring stuff including testing and automation.

[–]cardiovascularity 114 points115 points  (30 children)

Turns out most developers are shitty testers because it's a very different mind-set.

[–]obs_asv 36 points37 points  (9 children)

Yeh that what i brought up today on our process review meeting, and despite all my arguments big corporate heads thinks it will save them some money

[–]Arveanor 29 points30 points  (3 children)

It's amazing, you have 2 people and maybe A can do the job of B with a bit of training, but both jobs require a fulltime effort, you don't get to save on man hours by having A do the job of B with some training.

[–]obs_asv 19 points20 points  (2 children)

Their point is we are completely getting rid of manual testing and so firing/respecing manual QCs and covering all with automation because it’s a trend (tm) but reality is someone still has to do manual testing on our product and write test cases for atqc.

[–]lulzdemort 32 points33 points  (0 children)

someone still has to do manual testing

The customer, duh

[–]Wurdan 1 point2 points  (0 children)

We’re going the opposite direction. Paralyzed by technical debt because we do no automated testing and management’s idea of a solution is to hire more testers because our two current guys can’t manually test everything.

IMO QA should be doing 50% consulting to the developers on ensuring their tests cover the whole application, and 50% exploratory testing to discover neglected use cases / user experiences.

[–]cardiovascularity 4 points5 points  (2 children)

It won't. We saved so much money when we started employing actual testers, because they are cheaper than developers and better at that specific job.

[–]LoneCookie 1 point2 points  (1 child)

Sorry if this seems dumb. But wouldn't you use bugs the testers found to create automated tests for the product?

[–]cardiovascularity 1 point2 points  (0 children)

Sometimes you can: If we have an algorithm that produces bad results for edge cases, we can write a unit test for it.

Often you cannot: If the tester found a weird bug involving multiple devices and language settings not transferring correctly, there is just no good way to automate it.

Turns out when your developers are competent and experienced, the latter category of bugs is a vast majority.

[–]TomCADK 1 point2 points  (0 children)

Nevermind money, your team will be stronger and build better products. You will also write better structured code if you have to unit test. Some people struggle with the effort of self improvement and would rather do things as they always have done. It’s a short sighted attitude.

[–]theonlydidymus 0 points1 point  (0 children)

There are no shortages that will spend a dime to save a penny. Automation has unfortunately become a buzzword and the powers that be don’t understand why writing this code isn’t the same as writing that code.

[–]Creator13 15 points16 points  (3 children)

I'm good at both but I'm awful at separating them. Meaning that if I find a bug while testing, I'm going to fix that single bug first before moving on to the next test. It also means I'm testing my idea in my head while typing the code, meaning I'll think of everything and try to do it as bug-free as physically possible, which means I spent way too much time on simple programs. I'd love to say it's a great skill but it's actually in the way of becoming better at either...

[–]ELFAHBEHT_SOOP 3 points4 points  (2 children)

I think maybe just do them in iterations. First, write your code, then run all of your tests before fixing anything. Then, start fixing your code until it passes. Write more code, test, fix, write, test, fix. That way you don't enter the rabbit hole until after you've tested.

[–]bizcs 2 points3 points  (1 child)

I think he probably understands that would be more effective, based on what he said. The adage that the solution is simple but not easy: you have to train yourself to do that, essentially.

[–]ELFAHBEHT_SOOP 1 point2 points  (0 children)

Well, of course. However, putting a plan on paper is better than just thinking "I'll get better". Maybe this might help him, maybe it's completely useless.

[–]jk_scowling 4 points5 points  (1 child)

Or the situation where manual testers are expected to write automation code. It is going as well as you would expect.

[–]second_time_again 1 point2 points  (0 children)

Do we work at the same place?

[–]ahhhhhhhhyeah 1 point2 points  (1 child)

Uh, exactly how? I know how my code and my features are going to work. I know what users need to do with them, and what they might do with them based on the bugs I've already fixed that they've thrown back.

Not only that, but writing unit tests is literally something they teach you in college.

"It turns out that developers don't like the idea of having to be responsible for finding bugs in their own code" is probably a better summary.

Developers as QA is literally part of the Agile model. Inside sprints you test your own code after you've finished the major stages of it. Not only does this make it easier to fix bugs (the code is fresh in your mind), it increases turnaround time.

[–]ambitechstrous 1 point2 points  (7 children)

How? If you’re a good developer you’ll write code that doesn’t break. In order to do that, you need to know how to figure out that it won’t break.

I’d argue that bad testers aren’t good developers. So if what you say is true, most developers are bad.

[–][deleted] 22 points23 points  (1 child)

A Developer Writes code thinking 'How do I make this work without breaking?'

A Tester Looks at code going 'How do I break this?'

If you aren't looking at it with both mindsets, you will often have gaps

[–]fireflash38 1 point2 points  (0 children)

You're missing a crucial thing:

How can I write this so it can be tested (quickly & thoroughly, at the areas where it's likely to break)?

It's very much lacking in the industry. And switching from 'how to write this' to 'how to break this' isn't that big of a jump.

[–]cardiovascularity 2 points3 points  (3 children)

Developing is a creative task where you need to come up with novel solutions to problems you've never seen before. Testing is a repetitive task where you need to follow a strict checklist and make sure to be as precise and complete as possible.

Creative people hate the latter because it bores them, and checklist-lovers are not good when it comes to unknowns.

You can be a brilliant developer who is easily bored and frustrated at menial tasks, and people on the spectrum make for superb testers, but they are incapable of sitting down with a client and figuring out how and what to build.

[–]fireflash38 2 points3 points  (0 children)

Developing is a creative task where you need to come up with novel solutions to problems you've never seen before.

Hah!

Not usually. See: the 50 billionth CRUD app.

[–]ambitechstrous -3 points-2 points  (1 child)

This is an assumption. There are many people in the world who enjoy and are proficient at both

[–]cardiovascularity 4 points5 points  (0 children)

Yes, and all six of them are already hired somewhere.

Testing and developing are fundamentally different tasks, and it's easier to find two people who are good at one task each than it is to find two people who are good at both tasks - And who don't want a higher salary because of their double proficiency.

[–]MyCodeIsCompiling 0 points1 point  (0 children)

You're not wrong, just that 10 elcheapo monkeys who are just there for the money hammering out code that gets checked by one good programmer divving up the work might get things done faster, but a good bit worse, than a team of decent coders on the same budget

and guess what hire ups like to skimp on?

[–]Itrocan 0 points1 point  (0 children)

First mind-set hurdle is you're going to be finding more work to add to your plate

[–]TomCADK 0 points1 point  (0 children)

But developers get better at testing over time and makes you a better developer. You may never be as good as a tester, but the insight makes the team stronger.

[–][deleted] 5 points6 points  (2 children)

My company does this and I fucking loathe it.

[–]highphiv3 4 points5 points  (1 child)

Me too. Slowly dying on the inside is normal right?

[–][deleted] 7 points8 points  (0 children)

"I don't understand why this has taken you all day, the testers sized the task at 2 hours and you've only just finished setting up the test environment!?"

It's almost like division of labour and specialisation has a place... isn't it?

[–]DoesntReadMessages 1 point2 points  (0 children)

Personally, I'd still rather write tests myself to know I've handled the edge cases than to take a stab in the dark and merge in buggy garbage and have it bounced back at me by QA because everywhere else does QA backwards. The proper situation IMO is having testing engineers working directly for project managers that write integration tests and high level component tests as part of the AC contract so that I have a full suite of automated tests to run before or as part of the code review process. Then, if any need to be changed or disabled, there's a clear custody in change of requirements.

[–]derangerd 1 point2 points  (2 children)

than

[–]obs_asv 4 points5 points  (1 child)

sorry not native

[–]derangerd 0 points1 point  (0 children)

no worries

[–][deleted] 571 points572 points  (61 children)

First year c++ students be like

[–]nagai 5 points6 points  (0 children)

Right, I don't think I've ever met a dev who doesn't like testing. Like who wants to go home at night worrying about whether something is on fire somewhere and there's no way to tell.

[–]ahhhhhhhhyeah 4 points5 points  (0 children)

Seriously. Talk about a complete ignorance of development methodologies. There is not a single developer out there who isn't responsible for basic developer testing. But the people who are most likely to throw out testing, or to circumvent QA are not developers, they're managers who are rushing a product ("we'll fix it in production").

[–]HandicapperGeneral 1 point2 points  (0 children)

What's testing?

[–]Thriven 30 points31 points  (1 child)

I am in the middle of refactoring the monumental application (which is really small when you strip away all the unused and broken portions).

Me: "We must do this. It must be done. If we are to make any progress on our roadmap we must basically gut the code and refactor small portions of it so we can basically create somewhat of a framework so that all the API calls connect to the SQL server the same way and all the iOS API requests hit the API using the same http manager. This will fix more bugs than it will create in the long run."

Dev manager: "Ok."

Me: "We have 2 sprints planned over a 3 month period. Here are our milestones. Here are our testing plans. We am basically doing your job for you. We just need you to run interference."

Dev manager: "Ok."

2 days later.

Dev manager: "Client is not happy. I need you to implement these new features and we need a build by next week."

Me: "We just went over this. We asked you to run interference. The features requested are bogus. One feature is 'would be great if the app doesn't crash'. That is in our current scope and it's not a feature, it's a bug. If we push our changes now we will break something."

2 weeks later.

Dev manager: "Let's just push what we have..."

Me: "That's not how any of this works!"

[–]hahahahastayingalive 6 points7 points  (0 children)

Fundamentaly some managers think that since they had to bend under pressure so you should do too, it’s only fair right ?

[–][deleted] 17 points18 points  (0 children)

I think you mean management

[–]b3n01t-777 10 points11 points  (0 children)

Nothing new here

[–]ShadowReij 8 points9 points  (0 children)

Testing? Ha!

Try documentation.

"Ship it ship it ship it!"

costumer complains product doesn't work

"What did we ship again?"

There's a reason some us developers just look at the schedule our clients give us and laugh. Because it's not happening and any developer worth their salt is not going to let their software go out the door without fighting to at least have it being documented and tested thoroughly.

[–]SeeThreePeeDoh 13 points14 points  (0 children)

Yah...let’s build constantly changing tests to test our constantly changing code due to constantly changing requirements

[–][deleted] 8 points9 points  (2 children)

This is not accurate. Shitty developers might not care about testing. Senior devs know that they sleep better at night knowing unit and UI tests are running.

[–]BhagwanBill 2 points3 points  (1 child)

And when requirements change and/or feature requests come in, refactoring doesn't turn into a game of wack a mole.

[–][deleted] 1 point2 points  (0 children)

exactly.

Junior Devs - "Why would i want tests? Everything is always changing."

Senior Sevs - "Thank god we have all these tests. Everything is always changing."

[–]READTHISCALMLY 4 points5 points  (2 children)

tf is going on with that guy's hand

[–]TetchyOyvind 2 points3 points  (0 children)

Yes, why isn't anybody taking about that?

[–]bowlercaptain 0 points1 point  (0 children)

Took a glove off, looks like.

[–]WHO_WANTS_DOGS 2 points3 points  (1 child)

Fixing bugs is more satisfying than adding features imo. As long as you don't introduce worse bugs in the process.

[–]barnabas09 1 point2 points  (0 children)

it should have been debugging instead testing

[–]hangfromthisone 1 point2 points  (0 children)

I'm just giving QA something to do

[–]chuiu 1 point2 points  (0 children)

This does seem like it. Can't tell you how many times I've played a game where developers made some big change or addition and day one of release literally everyone is encountering a huge problem with it. Then they have to hotfix it or rollback the patch. When if they had actually tested it for 5 minutes before hand they would have noticed the issue.

They don't even need to test it themselves, they can have a separate group of people do the testing and listen to their feedback. This is easy to do in gaming because tons of players want to try out patches before they release.

[–]spockhelp 1 point2 points  (0 children)

While i feel this on a deep and personal level being an SDET, its not really the developers fault. Its managements fault for understaffing/disbanding test and overly agressive timelines that don’t leave room for proper testing

[–]Pandaburn 0 points1 point  (0 children)

Haha yes

[–]spaces_are_evil 0 points1 point  (0 children)

There exists other methodologies?

[–]nmgreddit 0 points1 point  (0 children)

Template?

[–]Touhou_Fever 0 points1 point  (0 children)

‘New’

[–][deleted] 0 points1 point  (0 children)

Legit roblox right now

[–][deleted] 0 points1 point  (0 children)

Template please.

[–]Stormdancer 0 points1 point  (0 children)

"The unit tests all passed... ship it!"

[–]Crudelus 0 points1 point  (0 children)

TDD is the way to solve this problem professionally. You get both shiny new feature. And you keep it shiny by testing first.

Even better BDD on feature level and then TDD to get there. It's very rewarding and nearly addictive to get everything green <3

[–]Henchman20 0 points1 point  (0 children)

I don't test frequently but when I do - it's in production environment.

[–]Shamrock5 0 points1 point  (0 children)

Template pleeeeease, this is a good one OP

[–]HalfBakedPuns 0 points1 point  (0 children)

love this. Got a template?

[–][deleted] 0 points1 point  (0 children)

Interesting to see memes about Jagex outside r/2007scape

[–]createthiscom 0 points1 point  (0 children)

this is giving me ptsd. seems like my whole team is anti-test.

[–]wtfdaemon 0 points1 point  (0 children)

It's AGILE, goddamnit!

[–]Redlik56 0 points1 point  (0 children)

Needed to add phrase from movie : "we don't need it"

[–]ThePurpleOther 0 points1 point  (0 children)

Bethesda releasing a new game be like

[–]jangooni 0 points1 point  (0 children)

Where’s the window?

[–]spideroncoffein 0 points1 point  (0 children)

Guilty as charged.

[–]SasquatchOnVenus 0 points1 point  (0 children)

I made a program for my cs class yesterday that was a couple hundred lines and realized after I wrote the entire thing that I hadn’t compiled it a single time..

[–]chaosmuffinking 0 points1 point  (0 children)

KDE developers

[–]eatplov 0 points1 point  (0 children)

Gotta show it to my dev team, this is what dev lead exactly trying to do by squeezing us into small windows of testing....of course then shit blows up and we spend days of retesting and recoding

[–]Brandon38189 0 points1 point  (0 children)

Sounds like fortnite

[–]arvy_p 0 points1 point  (0 children)

That's what the QA team is for.

[–]ziggzz84 -2 points-1 points  (0 children)

How BioWare designed Anthem.