Ah yes, the Edge Case Saloon. A fine establishment.
September 30, 2018 1:01 PM Subscribe
Pentester Bill Sempf refurbed an old joke for a current problem he was working on:
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers. Orders a sfdeljknesv.Twitter responded.
What sammyo said. (Ex QC/QA here)
posted by speug at 1:23 PM on September 30, 2018 [2 favorites]
posted by speug at 1:23 PM on September 30, 2018 [2 favorites]
As someone who is completely not in this field, how do you come up with edge cases? Like, do you test stuff based on what you understand are the shortcomings of the programming languages used and the shortcuts programmers often take (like having only 7 characters for names). Or are there commonly used edge cases across the board?
posted by shapes that haunt the dusk at 1:31 PM on September 30, 2018
posted by shapes that haunt the dusk at 1:31 PM on September 30, 2018
I miss the days when the QA team (which was bigger than most modern dev teams I've worked on) all literally signed off on a giant scroll to signify that the software about to be boxed-and-shrink-wrapped was good by us. Then we had a big party once it was really shipped. Then we had months (months!) to ramp up to starting the next version of the software.
My lawn, you can stay, but you'll have to listen to the stories.
posted by kokaku at 1:33 PM on September 30, 2018 [44 favorites]
My lawn, you can stay, but you'll have to listen to the stories.
posted by kokaku at 1:33 PM on September 30, 2018 [44 favorites]
how do you come up with edge cases? Like, do you test stuff based on what you understand are the shortcomings of the programming languages used and the shortcuts programmers often take (like having only 7 characters for names). Or are there commonly used edge cases across the board?
a bit of both seasoned heavily with the experience of what you and your teammates and other projects have been burned by before
posted by kokaku at 1:34 PM on September 30, 2018 [13 favorites]
a bit of both seasoned heavily with the experience of what you and your teammates and other projects have been burned by before
posted by kokaku at 1:34 PM on September 30, 2018 [13 favorites]
@shapes - the ones listed above are classic edge cases for something like a text box in an application or webpage. After that, one sort of thinks about how stupid people are and tries everything one can think of. "This is taking to long, what happens if I click on this box here?" There's a real knack to creative edge case development tho, a sort of nihilism combined with curiosity.
posted by fiercekitten at 1:40 PM on September 30, 2018 [27 favorites]
posted by fiercekitten at 1:40 PM on September 30, 2018 [27 favorites]
I feel like the respondent Andreas Beer (@tuexss) might have missed an opportunity to describe some very specific edge cases for this particular user story from their own personal experience.
posted by merlynkline at 1:42 PM on September 30, 2018 [2 favorites]
posted by merlynkline at 1:42 PM on September 30, 2018 [2 favorites]
My team's QA, half the time: Walk into the bar. Order a beer. Receive a cider. Go ask non-technical product owner if getting a cider is okay. PO says they like cider. Sign off on ticket. Come back three weeks later to ask why this process produces cider when new feature expects beer.
I would kill to work with many of these testers.
posted by Sequence at 1:43 PM on September 30, 2018 [61 favorites]
I would kill to work with many of these testers.
posted by Sequence at 1:43 PM on September 30, 2018 [61 favorites]
I once had a job doing various technical stuff for an online, text-based multiplayer RPG. I got an emergency call once that players were able to create infinite money at the in-game bank.
It turned out you could deposit negative amounts of cash, because the only test was whether the amount was less than what you were carrying. Try to deposit -10,000 gold, and the bank happily subtracted -10,000 from your pockets and added -10,000 to your bank account. Sure it balanced out, but that didn't matter because you could keep depositing negative money regardless of what was in your account.
posted by Foosnark at 1:46 PM on September 30, 2018 [12 favorites]
It turned out you could deposit negative amounts of cash, because the only test was whether the amount was less than what you were carrying. Try to deposit -10,000 gold, and the bank happily subtracted -10,000 from your pockets and added -10,000 to your bank account. Sure it balanced out, but that didn't matter because you could keep depositing negative money regardless of what was in your account.
posted by Foosnark at 1:46 PM on September 30, 2018 [12 favorites]
QA Engineers are who make all the other software engineers look good.
posted by nickggully at 1:46 PM on September 30, 2018 [13 favorites]
posted by nickggully at 1:46 PM on September 30, 2018 [13 favorites]
Keeps ordering beers & covering them with Saran wrap.
posted by scalefree at 1:51 PM on September 30, 2018 [2 favorites]
posted by scalefree at 1:51 PM on September 30, 2018 [2 favorites]
how do you come up with edge cases? Like, do you test stuff based on what you understand are the shortcomings of the programming languages used and the shortcuts programmers often take (like having only 7 characters for names). Or are there commonly used edge cases across the board?
It's called fuzzing. There's whole libraries, frameworks & applications built around automating the process of giving unexpected inputs to software.
posted by scalefree at 2:00 PM on September 30, 2018 [8 favorites]
It's called fuzzing. There's whole libraries, frameworks & applications built around automating the process of giving unexpected inputs to software.
posted by scalefree at 2:00 PM on September 30, 2018 [8 favorites]
Keeps ordering beers & covering them with Saran wrap.
Punctures a hole in the Saran wrap so it leaks a slow drip if inverted.
posted by scalefree at 2:03 PM on September 30, 2018 [4 favorites]
Punctures a hole in the Saran wrap so it leaks a slow drip if inverted.
posted by scalefree at 2:03 PM on September 30, 2018 [4 favorites]
As someone who is completely not in this field, how do you come up with edge cases?One specific technique is using an analysis tool which looks at how much of your code executes when you run tests and then adding new ones to cover every branch. Last week I fixed a number of cases where a contractor never tested the error handling paths - the code only worked if the inputs were perfect.
A more general technique is to write down your starting assumptions and then ask what would happen if one is broken.
There are varying degrees to which these can be automated. Modern languages are good at preventing some classes of error (e.g. Python 3 forces text to be Unicode so American programmers don’t forget about things like accents being valid, Python has for many years silently converted numeric types to larger ones when they overflow so your program gets slower but not incorrect when you add one to the max value a 16 or 32 bit type can hold, Rust prevents compiling any program which doesn’t handle all of the possible types of thing a function can return, etc.) but this is still an active research area.
One technique which can be counterintuitively effective is fuzzing: just feed any possible input into a program and see when it crashes or fails to produce an expected response. A high quality implementation can find all sorts of very hard to notice problems this way, such as when afl-fuzz relatively quickly produced decodable JPEG files.
The important thing to know is that when you see the frequent stream of bugs from Google, Amazon, Microsoft, Apple, etc. it’s because they’ve skimped on staffing or allowed project managers to blow it off. Very few of the problems I see on a daily basis are novel or hard to find if you have remotely respected QA staff.
posted by adamsc at 2:05 PM on September 30, 2018 [31 favorites]
An engineer friend of mine tells stories about a professor/mentor who twice crashed entire inflight entertainment systems pulling shit like this.
posted by Navelgazer at 2:05 PM on September 30, 2018 [17 favorites]
posted by Navelgazer at 2:05 PM on September 30, 2018 [17 favorites]
Foosnark: KoL infinite meat bug?
posted by deezil at 2:08 PM on September 30, 2018 [6 favorites]
posted by deezil at 2:08 PM on September 30, 2018 [6 favorites]
An engineer friend of mine tells stories about a professor/mentor who twice crashed entire inflight entertainment systems pulling shit like this.
That's kind of not OK, as a form of in-flight self-amusement
posted by thelonius at 2:21 PM on September 30, 2018 [9 favorites]
That's kind of not OK, as a form of in-flight self-amusement
posted by thelonius at 2:21 PM on September 30, 2018 [9 favorites]
thelonious: agreed unless it was kind of an accident followed by the realization that you’d caused it. My iPhone crashed Ford & IIRC Kia’s consoles prior to somewhere around 2016 because it had more tracks than they had memory to index. It took me a reboot to realize that plugging in via USB was fatal.
posted by adamsc at 2:25 PM on September 30, 2018 [5 favorites]
posted by adamsc at 2:25 PM on September 30, 2018 [5 favorites]
how do you come up with edge cases?
You might be interested in Andy Hertzfeld's story about The Monkey, an automated QA tester for the original Macintosh.
posted by clawsoon at 2:27 PM on September 30, 2018 [12 favorites]
You might be interested in Andy Hertzfeld's story about The Monkey, an automated QA tester for the original Macintosh.
posted by clawsoon at 2:27 PM on September 30, 2018 [12 favorites]
That's kind of not OK, as a form of in-flight self-amusement
All depends on whether you have permission. Somewhere or other I have pictures taken inside a corporate G5 I was tasked with trying to hop from its in-flight WiFi to the ARINC 429 bus controlling its avionics. For the record, I could not.
posted by scalefree at 2:32 PM on September 30, 2018 [5 favorites]
All depends on whether you have permission. Somewhere or other I have pictures taken inside a corporate G5 I was tasked with trying to hop from its in-flight WiFi to the ARINC 429 bus controlling its avionics. For the record, I could not.
posted by scalefree at 2:32 PM on September 30, 2018 [5 favorites]
such as when afl-fuzz relatively quickly produced decodable JPEG files.
adamsc, that link was way more interesting than it sounded at first. Thanks!
posted by clawsoon at 2:40 PM on September 30, 2018 [1 favorite]
adamsc, that link was way more interesting than it sounded at first. Thanks!
posted by clawsoon at 2:40 PM on September 30, 2018 [1 favorite]
Orders a Treaty of Westfalia.
posted by glonous keming at 2:40 PM on September 30, 2018 [10 favorites]
posted by glonous keming at 2:40 PM on September 30, 2018 [10 favorites]
And there are collaborative efforts like the big list of naughty strings. But it's still hard to beat the weirdness that happens when you accept input from the Internet. I learned some painful lessons about my bank and input validation after successfully setting my password with illegal characters, and I wasn't even trying to mess with them.
I'll go back to swapping semicolons and Greek question marks now...
posted by Wrinkled Stumpskin at 2:41 PM on September 30, 2018 [7 favorites]
I'll go back to swapping semicolons and Greek question marks now...
posted by Wrinkled Stumpskin at 2:41 PM on September 30, 2018 [7 favorites]
Lifehack: if you don't document your requirements, QA has nothing to validate against, and can't file bug reports!
posted by blue_beetle at 2:41 PM on September 30, 2018 [32 favorites]
posted by blue_beetle at 2:41 PM on September 30, 2018 [32 favorites]
Clawsoon: glad you enjoyed it. AFL is one of those tools which really deserves more credit. Everyone “knew” fuzzing was too slow to find complex, subtle bugs right until it wasn’t.
posted by adamsc at 2:45 PM on September 30, 2018
posted by adamsc at 2:45 PM on September 30, 2018
My first QA role was for a small, seat-of-the-pants software developer in the early 90s. I had absolutely no training in software QA at all, but the coders (of which the company President was one) needed sonebody to review and stress test our very large edutainment product before it was released to the publisher for retail distribution.
But, we had literally zero QA budget. So they asked me to do some testing because, as the technical writer for the content, most of my project work was finished.
I took the latest build home for the weekend and tested it on one Mac and one PC (because those were the ones I owned). I came back on Monday with a list of over 400 bugs or other issues I’d found.
The list was not happily received. I recall the meetings in which I explained how I caused some of the problems went something like:
Me: “So if I click on the Print button and then immediately click on the Save button before it prints, it locks up.”
Senior Coder: “Well, you’re not supposed to DO that!”
After the denial phase passed, they had to delay release by three weeks while fixing the problems, during which I found another hundred or so issues by testing on other teammates’ computers in the office.
Eventually, all but about 40 of the problems were fixed, and I got “QA Coordinator” added to my job description, with no increase in pay. Learned an awful lot from that experience.
posted by darkstar at 3:13 PM on September 30, 2018 [44 favorites]
But, we had literally zero QA budget. So they asked me to do some testing because, as the technical writer for the content, most of my project work was finished.
I took the latest build home for the weekend and tested it on one Mac and one PC (because those were the ones I owned). I came back on Monday with a list of over 400 bugs or other issues I’d found.
The list was not happily received. I recall the meetings in which I explained how I caused some of the problems went something like:
Me: “So if I click on the Print button and then immediately click on the Save button before it prints, it locks up.”
Senior Coder: “Well, you’re not supposed to DO that!”
After the denial phase passed, they had to delay release by three weeks while fixing the problems, during which I found another hundred or so issues by testing on other teammates’ computers in the office.
Eventually, all but about 40 of the problems were fixed, and I got “QA Coordinator” added to my job description, with no increase in pay. Learned an awful lot from that experience.
posted by darkstar at 3:13 PM on September 30, 2018 [44 favorites]
Wait, do you mean to say that all this time there was a job that basically amounts to "Get drunk and try to break shit" and no one saw fit to tell me? Those are two of my core strengths right there.
posted by Grangousier at 3:24 PM on September 30, 2018 [29 favorites]
posted by Grangousier at 3:24 PM on September 30, 2018 [29 favorites]
As someone who, multiple times, has had an IT person say "I have never seen this happen before!" or "It should not be possible for you to break it this way!" I feel I have missed my calling.
I do my best software breaking when I am in a fugue state at work, get distracted, and click on The Wrong Thing or The Wrong Order of Things.
Once I discovered that having a particular music player active while trying to use InDesign made my Mac lock up. The IT guy refused to believe that was the problem, so I just quietly deleted the player. No more problems.
posted by emjaybee at 3:44 PM on September 30, 2018 [10 favorites]
I do my best software breaking when I am in a fugue state at work, get distracted, and click on The Wrong Thing or The Wrong Order of Things.
Once I discovered that having a particular music player active while trying to use InDesign made my Mac lock up. The IT guy refused to believe that was the problem, so I just quietly deleted the player. No more problems.
posted by emjaybee at 3:44 PM on September 30, 2018 [10 favorites]
Grangousier: Wait, do you mean to say that all this time there was a job that basically amounts to "Get drunk and try to break shit" and no one saw fit to tell me? Those are two of my core strengths right there.
Seriously. I am on my second glass of wine and I feel like I would be a QA natural. I could break computers and file detailed complaints about how broken they are all night long, if only somebody was willing to pay me for it. Complaining about how computers don't work right is practically a second job as it is.
posted by Anticipation Of A New Lover's Arrival, The at 4:58 PM on September 30, 2018 [4 favorites]
Seriously. I am on my second glass of wine and I feel like I would be a QA natural. I could break computers and file detailed complaints about how broken they are all night long, if only somebody was willing to pay me for it. Complaining about how computers don't work right is practically a second job as it is.
posted by Anticipation Of A New Lover's Arrival, The at 4:58 PM on September 30, 2018 [4 favorites]
Breaking software is absurdly easy and literally anyone can do it all day long, but QA is much more than just breaking things. It's predicting how something will break before it's been created, being able to choose what to break first, breaking it in a repeatable fashion, isolating how something breaks worst, arguing for the right broken things to be fixed, knowing when a given solution will cause worse breakage, being able to tell when the person fixing it isn't doing it right, and saying No with a titanium alloy spine in the face of tremendous pressure to say Yes. And that's just the easy stuff.
Anyone can do it, but not many can do it well, and very few people do it for a long time.
Now, if you'll excuse me, I have some more Cassandra prayer candles to order.
posted by Revvy at 5:24 PM on September 30, 2018 [40 favorites]
Anyone can do it, but not many can do it well, and very few people do it for a long time.
Now, if you'll excuse me, I have some more Cassandra prayer candles to order.
posted by Revvy at 5:24 PM on September 30, 2018 [40 favorites]
My personal edge case testing story... I worked at a retail store many years ago and was trying to print out labels, but the computer seemed to freeze up. So I did what anyone would do and hit ctrl-alt-del. It turned out that computer ran all of registers, and take them all down while it rebooted. My manager was not pleased.
posted by drezdn at 5:37 PM on September 30, 2018 [6 favorites]
posted by drezdn at 5:37 PM on September 30, 2018 [6 favorites]
These tweets are not funny.
Closed / Won't Fix / Does Not Reproduce
posted by GuyZero at 6:00 PM on September 30, 2018 [7 favorites]
Closed / Won't Fix / Does Not Reproduce
posted by GuyZero at 6:00 PM on September 30, 2018 [7 favorites]
how do you come up with edge cases?
I mostly don't because years of experience have taught me that no one gives a shit. "Ok, file that bug and we'll put it in the backlog and fix it the sprint after never".
posted by octothorpe at 6:11 PM on September 30, 2018 [12 favorites]
I mostly don't because years of experience have taught me that no one gives a shit. "Ok, file that bug and we'll put it in the backlog and fix it the sprint after never".
posted by octothorpe at 6:11 PM on September 30, 2018 [12 favorites]
If this is a riff on an old joke can someone tell me what the original is? Cause I thought this was the original.
Also I’m a ux designer and I like to do this when I’m designing. I like to set up my designs so I can click through and see what happens when I don’t click in the order I expected a second ago. My fellow designers don’t understand why I do this and my software engineer bosses see it as “thinking that I need to build it myself and not understanding my own role as a designer” so. It’s great.
Also the original post reminded me of that old famous essay about the fallacies that white male software engineers believe about how names work.
posted by bleep at 6:27 PM on September 30, 2018 [3 favorites]
Also I’m a ux designer and I like to do this when I’m designing. I like to set up my designs so I can click through and see what happens when I don’t click in the order I expected a second ago. My fellow designers don’t understand why I do this and my software engineer bosses see it as “thinking that I need to build it myself and not understanding my own role as a designer” so. It’s great.
Also the original post reminded me of that old famous essay about the fallacies that white male software engineers believe about how names work.
posted by bleep at 6:27 PM on September 30, 2018 [3 favorites]
There's no way this is the original "XXX walks into a bar" joke.
posted by quaking fajita at 6:46 PM on September 30, 2018
posted by quaking fajita at 6:46 PM on September 30, 2018
OH. Haha! I thought they meant it was a riff on “the old “QA guy walks into a bar” joke”. I’ve definitely heard this one before.
posted by bleep at 6:52 PM on September 30, 2018
posted by bleep at 6:52 PM on September 30, 2018
Joss Whedon and George R.R. Martin walk into a bar. A program you love crashes.
posted by Johnny Wallflower at 6:52 PM on September 30, 2018 [13 favorites]
posted by Johnny Wallflower at 6:52 PM on September 30, 2018 [13 favorites]
Also the original post reminded me of that old famous essay about the fallacies that white male software engineers believe about how names work.
I’d love to read this but can’t seem to find it with this amount of information—please share a link, title, or author’s name!
posted by ejs at 6:58 PM on September 30, 2018 [1 favorite]
I’d love to read this but can’t seem to find it with this amount of information—please share a link, title, or author’s name!
posted by ejs at 6:58 PM on September 30, 2018 [1 favorite]
My career up until now included a lot of QA for DVD and Blu-ray. When I worked QA I loved finding bugs; when I worked dev I loved my testers who found weird bugs.
My favorite bug was a games console bug for Blu-Ray that would crash the player app when there was a Dolby lossless audio component to a transport stream that had a longer duration than the video. I drove three multinationals crazy with that bug, while implementing a workaround that pleased the client.
The three multinationals eventually introduced their own workaround piece-by-piece, but I know there’s an increasingly-common edge case that will likely cause the same failure, and I’m saving that little nugget of QA lore for a future job interview.
posted by infinitewindow at 7:02 PM on September 30, 2018 [5 favorites]
My favorite bug was a games console bug for Blu-Ray that would crash the player app when there was a Dolby lossless audio component to a transport stream that had a longer duration than the video. I drove three multinationals crazy with that bug, while implementing a workaround that pleased the client.
The three multinationals eventually introduced their own workaround piece-by-piece, but I know there’s an increasingly-common edge case that will likely cause the same failure, and I’m saving that little nugget of QA lore for a future job interview.
posted by infinitewindow at 7:02 PM on September 30, 2018 [5 favorites]
Metafilter: a sort of nihilism combined with curiosity
posted by spacewaitress at 7:04 PM on September 30, 2018 [9 favorites]
posted by spacewaitress at 7:04 PM on September 30, 2018 [9 favorites]
I’d love to read this but can’t seem to find it with this amount of information—please share a link, title, or author’s name!
Could it be Falsehoods Programmers Believe About Names June 17, 2010 by Patrick McKenzie ?
posted by mikelieman at 7:13 PM on September 30, 2018 [7 favorites]
Could it be Falsehoods Programmers Believe About Names June 17, 2010 by Patrick McKenzie ?
posted by mikelieman at 7:13 PM on September 30, 2018 [7 favorites]
Oh sorry about that for leaving out the cite. I think this is the original. But google has a bunch now under the terms in this title.
posted by bleep at 7:15 PM on September 30, 2018 [3 favorites]
posted by bleep at 7:15 PM on September 30, 2018 [3 favorites]
Me: "This product that delivers 8 amps at 8kV doesn't turn on the audible alarm during calibration."
Devs: "Uh. That's operating as intended."
Me: "It set fire to my desk."
Devs: "As. Intended."
posted by cowcowgrasstree at 7:18 PM on September 30, 2018 [23 favorites]
Devs: "Uh. That's operating as intended."
Me: "It set fire to my desk."
Devs: "As. Intended."
posted by cowcowgrasstree at 7:18 PM on September 30, 2018 [23 favorites]
Hey guys I fixed it
// TODO tests were failing
// QA Engineer walks into a bar. Orders a beer. Orders 0
// beers. Orders 999999999 beers. Orders a lizard.
// Orders -1 beers. Orders a sfdeljknesv.
// Twitter responded.
posted by qxntpqbbbqxl at 7:21 PM on September 30, 2018 [16 favorites]
// TODO tests were failing
// QA Engineer walks into a bar. Orders a beer. Orders 0
// beers. Orders 999999999 beers. Orders a lizard.
// Orders -1 beers. Orders a sfdeljknesv.
// Twitter responded.
posted by qxntpqbbbqxl at 7:21 PM on September 30, 2018 [16 favorites]
QA: This sucks.
PM: Working as designed.
QA: Design sucks, too.
posted by Revvy at 7:30 PM on September 30, 2018 [20 favorites]
PM: Working as designed.
QA: Design sucks, too.
posted by Revvy at 7:30 PM on September 30, 2018 [20 favorites]
Devs: Our models show our design works up to 60 degrees C!
Me: Then let me put it in an oven.
Devs: ... no.
posted by cowcowgrasstree at 7:32 PM on September 30, 2018 [5 favorites]
Me: Then let me put it in an oven.
Devs: ... no.
posted by cowcowgrasstree at 7:32 PM on September 30, 2018 [5 favorites]
I got “QA Coordinator” added to my job description, with no increase in pay. Learned an awful lot from that experience.
Which, the experience of being the one to find all the bugs, or the experience of getting a new title and responsibilities without a corresponding pay bump?
posted by fedward at 7:37 PM on September 30, 2018 [4 favorites]
Which, the experience of being the one to find all the bugs, or the experience of getting a new title and responsibilities without a corresponding pay bump?
posted by fedward at 7:37 PM on September 30, 2018 [4 favorites]
WIZARD. NEEDS. BEER. BADLY.
posted by BiggerJ at 7:39 PM on September 30, 2018 [4 favorites]
posted by BiggerJ at 7:39 PM on September 30, 2018 [4 favorites]
First Release -
QA: I found a serious bug
Dev: It's too late to fix in this release
Next Release -
QA: I found this bug again
Dev: Well it's a known issue and no customers have complained so we're not going to fix it. Go find some new bugs
QA in two weeks: There's this new bug
Dev: It's too late to fix in this release ...
Rinse and repeat until the heat death of the universe.
posted by octothorpe at 7:39 PM on September 30, 2018 [26 favorites]
QA: I found a serious bug
Dev: It's too late to fix in this release
Next Release -
QA: I found this bug again
Dev: Well it's a known issue and no customers have complained so we're not going to fix it. Go find some new bugs
QA in two weeks: There's this new bug
Dev: It's too late to fix in this release ...
Rinse and repeat until the heat death of the universe.
posted by octothorpe at 7:39 PM on September 30, 2018 [26 favorites]
Me: So, is it true that management tied dev bonuses to on-time delivery?
Devs: No.
Release candidate software: **crashes on powerup**
Devs: Maybe.
posted by cowcowgrasstree at 7:50 PM on September 30, 2018 [16 favorites]
Devs: No.
Release candidate software: **crashes on powerup**
Devs: Maybe.
posted by cowcowgrasstree at 7:50 PM on September 30, 2018 [16 favorites]
Worth noting this is from 2014. Fun as hell, but even the responses are years old.
posted by aurelian at 10:00 PM on September 30, 2018 [1 favorite]
posted by aurelian at 10:00 PM on September 30, 2018 [1 favorite]
Metafilter: a sort of nihilism combined with curiosity
A tattoo in cursive font on the inner forearm.
posted by bongo_x at 12:40 AM on October 1, 2018 [2 favorites]
A tattoo in cursive font on the inner forearm.
posted by bongo_x at 12:40 AM on October 1, 2018 [2 favorites]
try: beers = engineer.order_beer(0) beers = engineer.order_beer(999999999) beers = engineer.order_beer(Lizard()) beers = engineer.order_beer(-1) beers = engineer.order_beer('sfdeljknesv') except Exception: beers = 1Fixed it! Pub time.
posted by Mr. Bad Example at 1:35 AM on October 1, 2018 [4 favorites]
Also the original post reminded me of that old famous essay about the fallacies that white male software engineers believe about how names work.
White male US engineers. People have a (one) middle name. Not zero. Nor two or more. Five is right out. Surnames are a single word, without any punctuation. Countries have states. Cities have streets with houses having street numbers. They appear to have had some sense of how those things might be different outside the US beaten in to them, but it it had been a long time coming.
Tough shit if you were Spanish, Portuguese, German, Dutch or some other non-US nationality with a different naming scheme, and especially nobility. People have changed their names to DaSilva or DeBoer because software could not deal with the correct spelling.
posted by Stoneshop at 5:23 AM on October 1, 2018 [7 favorites]
White male US engineers. People have a (one) middle name. Not zero. Nor two or more. Five is right out. Surnames are a single word, without any punctuation. Countries have states. Cities have streets with houses having street numbers. They appear to have had some sense of how those things might be different outside the US beaten in to them, but it it had been a long time coming.
Tough shit if you were Spanish, Portuguese, German, Dutch or some other non-US nationality with a different naming scheme, and especially nobility. People have changed their names to DaSilva or DeBoer because software could not deal with the correct spelling.
posted by Stoneshop at 5:23 AM on October 1, 2018 [7 favorites]
Kind of tested the joke to destruction.
posted by Segundus at 5:24 AM on October 1, 2018 [3 favorites]
posted by Segundus at 5:24 AM on October 1, 2018 [3 favorites]
Yeah, I've ordered stuff from the US with the order form insisting that I put something in the "State" field. It's not how addresses work in Norway, so I usually put a hyphen there.
posted by Harald74 at 5:40 AM on October 1, 2018 [3 favorites]
posted by Harald74 at 5:40 AM on October 1, 2018 [3 favorites]
Awwww, just ship it.
Fine, but first we should agree on whether it's #beergineer or #engibeer
posted by solotoro at 6:07 AM on October 1, 2018 [2 favorites]
Fine, but first we should agree on whether it's #beergineer or #engibeer
posted by solotoro at 6:07 AM on October 1, 2018 [2 favorites]
QA: I found this bug againMy favorite part of this cycle is when this eventually does reach senior management after a customer finds it. Having filed that bug officially makes it a lot harder to play the we had no idea / QA missed it game.
Dev: Well it's a known issue and no customers have complained so we're not going to fix it.
posted by adamsc at 6:20 AM on October 1, 2018 [6 favorites]
My last job had literally thousands of open bugs stored in Jira that had been carefully migrated from Bugzilla, some of which had been logged almost fifteen years earlier. QA kept lobbying to jettison or at least archive them because they were never going to be fixed and they just created noise in our searches but management would always say "well you should retest those bugs to see if they're still extant" a task which we were never going to have time for. I left there five years ago and I'm sure all those bug reports are still in Jira.
posted by octothorpe at 7:51 AM on October 1, 2018 [5 favorites]
posted by octothorpe at 7:51 AM on October 1, 2018 [5 favorites]
This reminds me of how in the early 90s SCO's[*] development group in Watford (doing Xenix/UNIX kernel and userland work) had a reasonably-staffed QA team.
This was back in the day when your Unix-family OS didn't come with a built-in TCP/IP stack by default; it was a for-money add-on (indeed Xenix as a System 7 derivative didn't do TCP/IP at all, as I recall). The folks in Watford were integrating a third-party stack with SVR 3.2 and I swear the QA team used the need to test it as an excuse to spend 12 weeks playing XTank (hey, lots of packets going hither and yon!).
Management found out eventually ...
[*] Obligatory disclaimer: this was back in the days when SCO was a real software company, not a patent litigation zombie.
posted by cstross at 8:26 AM on October 1, 2018 [4 favorites]
This was back in the day when your Unix-family OS didn't come with a built-in TCP/IP stack by default; it was a for-money add-on (indeed Xenix as a System 7 derivative didn't do TCP/IP at all, as I recall). The folks in Watford were integrating a third-party stack with SVR 3.2 and I swear the QA team used the need to test it as an excuse to spend 12 weeks playing XTank (hey, lots of packets going hither and yon!).
Management found out eventually ...
[*] Obligatory disclaimer: this was back in the days when SCO was a real software company, not a patent litigation zombie.
posted by cstross at 8:26 AM on October 1, 2018 [4 favorites]
Foosnark: KoL infinite meat bug?
Nah, DragonRealms. (Reading that article was weird; my involvement with it ended some time ago and I had no idea about the "DR2" or "DR3" updates. And let's just say the names credited for the game's creation weren't entirely equal in their contributions. And the whole "leveling=circling" thing was totally unofficial back in my day -- "level" was official, players hated it because it sounded too much like a game, but then the second generation of staffers were former players who'd always called it "circle". Damn kids, lawn etc.)
posted by Foosnark at 8:31 AM on October 1, 2018
Nah, DragonRealms. (Reading that article was weird; my involvement with it ended some time ago and I had no idea about the "DR2" or "DR3" updates. And let's just say the names credited for the game's creation weren't entirely equal in their contributions. And the whole "leveling=circling" thing was totally unofficial back in my day -- "level" was official, players hated it because it sounded too much like a game, but then the second generation of staffers were former players who'd always called it "circle". Damn kids, lawn etc.)
posted by Foosnark at 8:31 AM on October 1, 2018
I got “QA Coordinator” added to my job description, with no increase in pay. Learned an awful lot from that experience.
...the most important lesson being something about compensation and titles in my opinion.
In other words,
"It's a job interview, not a flea market."
-- Dwight Schrute
Also, I feel all your pain, I was on the SCM/DBA team at a company that wrote time and billing software. I watched QA folks work themselves into a frenzy and be ignored only for the code to push out to me at 11pm on the day it was promised to release only to be recieved by our userbase as shitty and full of bugs that QA wasn't allowed to press for fixes lest said release day push further down the line. *sigh*
posted by RolandOfEld at 8:37 AM on October 1, 2018 [1 favorite]
...the most important lesson being something about compensation and titles in my opinion.
In other words,
"It's a job interview, not a flea market."
-- Dwight Schrute
Also, I feel all your pain, I was on the SCM/DBA team at a company that wrote time and billing software. I watched QA folks work themselves into a frenzy and be ignored only for the code to push out to me at 11pm on the day it was promised to release only to be recieved by our userbase as shitty and full of bugs that QA wasn't allowed to press for fixes lest said release day push further down the line. *sigh*
posted by RolandOfEld at 8:37 AM on October 1, 2018 [1 favorite]
Ironically I posted on this thread on the very day when I discovered that omitting a crucial WHERE clause five months ago broke a thing at work that I've been trying to fix all day. Yaaayyyy.
posted by Mr. Bad Example at 8:47 AM on October 1, 2018 [3 favorites]
posted by Mr. Bad Example at 8:47 AM on October 1, 2018 [3 favorites]
White male US engineers. People have a (one) middle name. Not zero. Nor two or more. Five is right out. Surnames are a single word, without any punctuation. Countries have states. Cities have streets with houses having street numbers. They appear to have had some sense of how those things might be different outside the US beaten in to them, but it it had been a long time coming.
In college I briefly dated a girl who had no middle name, because her parents had only come up with one boy name (say, Adam Bob) and one girl name (say, Alice Barbara), not knowing her mom was pregnant with twins. Instead of asking for more time when the hospital asked for names for the birth certificate, her mom gave each girl half the name. She was Alice; her twin sister was Barbara.
I've ordered stuff from the US with the order form insisting that I put something in the "State" field.
A couple jobs ago I inherited some address "validation" code that did some nightmarish things to try to work around every new address edge case that had popped up over the life of the site. The code that figured out if a given country should require a value in a "state" field was only a minor mess compared to the 4000 lines of postal code validation that turned out to have been copied and pasted into a total of six similar-but-not-identical modules that didn't all use the same function syntax. Whenever I fixed a bug in that validation code, I'd inevitably get the report bounced back to me because I hadn't fixed the right file out of the six. Eventually I spent a week writing a single new module to validate postal codes, refactoring all the calls to each of the six old modules, and in a couple places writing new wrapper functions that preserved the old calling syntax but called the new validator under the hood. Even with the new wrappers the 6 × 4000 lines of code reduced to about 800. (That's not even counting all the regular expressions that hadn't actually done what the author thought they did that I fixed while refactoring the code).
posted by fedward at 8:58 AM on October 1, 2018 [4 favorites]
In college I briefly dated a girl who had no middle name, because her parents had only come up with one boy name (say, Adam Bob) and one girl name (say, Alice Barbara), not knowing her mom was pregnant with twins. Instead of asking for more time when the hospital asked for names for the birth certificate, her mom gave each girl half the name. She was Alice; her twin sister was Barbara.
I've ordered stuff from the US with the order form insisting that I put something in the "State" field.
A couple jobs ago I inherited some address "validation" code that did some nightmarish things to try to work around every new address edge case that had popped up over the life of the site. The code that figured out if a given country should require a value in a "state" field was only a minor mess compared to the 4000 lines of postal code validation that turned out to have been copied and pasted into a total of six similar-but-not-identical modules that didn't all use the same function syntax. Whenever I fixed a bug in that validation code, I'd inevitably get the report bounced back to me because I hadn't fixed the right file out of the six. Eventually I spent a week writing a single new module to validate postal codes, refactoring all the calls to each of the six old modules, and in a couple places writing new wrapper functions that preserved the old calling syntax but called the new validator under the hood. Even with the new wrappers the 6 × 4000 lines of code reduced to about 800. (That's not even counting all the regular expressions that hadn't actually done what the author thought they did that I fixed while refactoring the code).
posted by fedward at 8:58 AM on October 1, 2018 [4 favorites]
Obligatory XKCD reference to Little Bobby Tables.
posted by inflatablekiwi at 8:59 AM on October 1, 2018 [9 favorites]
posted by inflatablekiwi at 8:59 AM on October 1, 2018 [9 favorites]
Yeah, I've ordered stuff from the US with the order form insisting that I put something in the "State" field.
Especially when that state field only accepts two characters. Try entering Baden-Württemberg, Noord-Brabant or Møre og Romsdal and see the form barf.
posted by Stoneshop at 9:38 AM on October 1, 2018 [9 favorites]
Especially when that state field only accepts two characters. Try entering Baden-Württemberg, Noord-Brabant or Møre og Romsdal and see the form barf.
posted by Stoneshop at 9:38 AM on October 1, 2018 [9 favorites]
As someone who is completely not in this field, how do you come up with edge cases?
Some processes take a long time to run so you are sitting there twiddling your thumbs so edge cases and boredom rules the day. Also occasionally QA testing is like a chess match, where you want to 'win'.
posted by The_Vegetables at 9:49 AM on October 1, 2018 [1 favorite]
Some processes take a long time to run so you are sitting there twiddling your thumbs so edge cases and boredom rules the day. Also occasionally QA testing is like a chess match, where you want to 'win'.
posted by The_Vegetables at 9:49 AM on October 1, 2018 [1 favorite]
Surprised I had to go nearly all the way down the comments before someone ordered a bear.
posted by rhamphorhynchus at 10:51 AM on October 1, 2018 [10 favorites]
posted by rhamphorhynchus at 10:51 AM on October 1, 2018 [10 favorites]
Fallacies that people who don't know the first thing about software development believe about software development: Programmers are massively powerful and highly respected members of software development organizations and the same management that hands them a vague or ill-thought-out specification loves it when programmers push back. They always delay the project the months it would take to get it right, and then give the programmers big fat raises.
posted by Zed at 11:13 AM on October 1, 2018 [7 favorites]
posted by Zed at 11:13 AM on October 1, 2018 [7 favorites]
Me: “So if I click on the Print button and then immediately click on the Save button before it prints, it locks up.”
Senior Coder: “Well, you’re not supposed to DO that!”
When I started with a big defense contractor, they gave me the release build and said to play around with it to see how it worked etc. It crashed if you click the wrong button, etc., I say something and am told "this will be used by highly trained Marines, they won't click the wrong button, ever. Highly Trained"
Oh man, I didn't get out of that project fast enough.
posted by k5.user at 11:22 AM on October 1, 2018 [12 favorites]
Senior Coder: “Well, you’re not supposed to DO that!”
When I started with a big defense contractor, they gave me the release build and said to play around with it to see how it worked etc. It crashed if you click the wrong button, etc., I say something and am told "this will be used by highly trained Marines, they won't click the wrong button, ever. Highly Trained"
Oh man, I didn't get out of that project fast enough.
posted by k5.user at 11:22 AM on October 1, 2018 [12 favorites]
My last job had literally thousands of open bugs stored in Jira that had been carefully migrated from Bugzilla, some of which had been logged almost fifteen years earlier. QA kept lobbying to jettison or at least archive them because they were never going to be fixed and they just created noise in our searches but management would always say "well you should retest those bugs to see if they're still extant" a task which we were never going to have time for. I left there five years ago and I'm sure all those bug reports are still in Jira.
We have that at my current job, only with our backlog of enhancements.
A few years back my manager and I were tasked with going through around 1100 tickets, some up to 8 years old, to determine if they were relevant. Tickets for our previous POS application that we no longer used, tickets for our current version of POS only something that had been fixed years prior. Tickets for wishful thinking of an Operations Director that had left the company 3 years ago.
We got it down to about 200 tickets over the course of about 3 months.
posted by Twain Device at 11:24 AM on October 1, 2018 [2 favorites]
We have that at my current job, only with our backlog of enhancements.
A few years back my manager and I were tasked with going through around 1100 tickets, some up to 8 years old, to determine if they were relevant. Tickets for our previous POS application that we no longer used, tickets for our current version of POS only something that had been fixed years prior. Tickets for wishful thinking of an Operations Director that had left the company 3 years ago.
We got it down to about 200 tickets over the course of about 3 months.
posted by Twain Device at 11:24 AM on October 1, 2018 [2 favorites]
Me: “So if I click on the Print button and then immediately click on the Save button before it prints, it locks up.”
Senior Coder: “Well, you’re not supposed to DO that!”
I have a coworker who has told the following story many times:
While working as a support engineer for a large software vendor, he received a case from an office in France complaining about the system becoming unresponsive and crashing under normal use. Attempts to replicate the crash based on described usage did not replicate the issue. Literally months went by, emailing back and forth with the French office to try to determine the root cause and get it fixed. Finally, the company sprang for flying an engineer to the office in question to work with them to replicate the problem. Engineer goes in, starts using the software, no issues. The guy from the French office goes "No, that's not how you do it!", grabs the mouse from the engineer, and starts frantically moving the mouse back and forth and clicking at a machine gun pace and, sure enough, 10 seconds later, everything's locked up tight.
So, yeah. Never be surprised at what users are doing.
posted by hanov3r at 11:52 AM on October 1, 2018 [13 favorites]
Senior Coder: “Well, you’re not supposed to DO that!”
I have a coworker who has told the following story many times:
While working as a support engineer for a large software vendor, he received a case from an office in France complaining about the system becoming unresponsive and crashing under normal use. Attempts to replicate the crash based on described usage did not replicate the issue. Literally months went by, emailing back and forth with the French office to try to determine the root cause and get it fixed. Finally, the company sprang for flying an engineer to the office in question to work with them to replicate the problem. Engineer goes in, starts using the software, no issues. The guy from the French office goes "No, that's not how you do it!", grabs the mouse from the engineer, and starts frantically moving the mouse back and forth and clicking at a machine gun pace and, sure enough, 10 seconds later, everything's locked up tight.
So, yeah. Never be surprised at what users are doing.
posted by hanov3r at 11:52 AM on October 1, 2018 [13 favorites]
Senior Coder: “Well, you’re not supposed to DO that!”
One software tester (they were called that, back then) in the department I once was assigned to as sysadmin, started his, otherwise automated, test runs by slamming his hands on the keyboard, or leaning his elbows on it.
Quite often that cut short any further testing.
posted by Stoneshop at 12:28 PM on October 1, 2018 [10 favorites]
One software tester (they were called that, back then) in the department I once was assigned to as sysadmin, started his, otherwise automated, test runs by slamming his hands on the keyboard, or leaning his elbows on it.
Quite often that cut short any further testing.
posted by Stoneshop at 12:28 PM on October 1, 2018 [10 favorites]
Finally a joke I can participate in:
QA person walks into the bar, walked right out to build their own simulation of a bar with matchsticks and putty and Lego figurines.
posted by of strange foe at 12:51 PM on October 1, 2018 [2 favorites]
QA person walks into the bar, walked right out to build their own simulation of a bar with matchsticks and putty and Lego figurines.
posted by of strange foe at 12:51 PM on October 1, 2018 [2 favorites]
... order piñata*. Order Smörgåstårta**. Order BèéêëÈÉÊŔŕŖŗŘř.
* Real world example: a data query for Doña Ana County came back with nothing, because the ñ wasn't recognized, even though the data was there, and many people are rather insistent about including the tilde (distraction: the logo of CNN en Español is fantastic, in my non-Spanish estimation).
** Another case in point: URL for Smörgåstårta is metafilter.com/176810/Smrgstrta -- it got dïsëmvõwled.
posted by filthy light thief at 1:02 PM on October 1, 2018 [6 favorites]
* Real world example: a data query for Doña Ana County came back with nothing, because the ñ wasn't recognized, even though the data was there, and many people are rather insistent about including the tilde (distraction: the logo of CNN en Español is fantastic, in my non-Spanish estimation).
** Another case in point: URL for Smörgåstårta is metafilter.com/176810/Smrgstrta -- it got dïsëmvõwled.
posted by filthy light thief at 1:02 PM on October 1, 2018 [6 favorites]
Ooh! I'm the #3 response tweet in there, and I still find it getting a like every few weeks or so. :)
I really do enjoy doing QA - I love both breaking things in fun ways, especially with the reactions I can get from the devs, and knowing I'm helping make sure that our product works solidly. Especially as it's for kids, and I don't want them having miserable experiences because they're doing things the "wrong way" and we didn't make sure that works too.
I've learned well and good the areas where things are more likely to break, and what assumptions tend to be baked in during development. I've also learned a lot about User eXperience in my time as a QA, and that's come to be very important to me too. That not only does it work, but it makes it easy to see and understand what you're supposed to do. On the other hand, getting familiar with UX makes the world more and more frustrating, because of how often it's ignored.
I will say that I'm also working somewhere where QA is truly appreciated. I've never had a developer get upset with me for finding something, or someone try and say "they're not going to do that". Though I did receive a "that's what you get" response after one particularly lucky time that I managed to unpause, and then move the mouse to re-click the pause butting during the couple frames of animation where the dialog was zooming out, only to find it hung our app. :)
posted by evilangela at 1:23 PM on October 1, 2018 [8 favorites]
I really do enjoy doing QA - I love both breaking things in fun ways, especially with the reactions I can get from the devs, and knowing I'm helping make sure that our product works solidly. Especially as it's for kids, and I don't want them having miserable experiences because they're doing things the "wrong way" and we didn't make sure that works too.
I've learned well and good the areas where things are more likely to break, and what assumptions tend to be baked in during development. I've also learned a lot about User eXperience in my time as a QA, and that's come to be very important to me too. That not only does it work, but it makes it easy to see and understand what you're supposed to do. On the other hand, getting familiar with UX makes the world more and more frustrating, because of how often it's ignored.
I will say that I'm also working somewhere where QA is truly appreciated. I've never had a developer get upset with me for finding something, or someone try and say "they're not going to do that". Though I did receive a "that's what you get" response after one particularly lucky time that I managed to unpause, and then move the mouse to re-click the pause butting during the couple frames of animation where the dialog was zooming out, only to find it hung our app. :)
posted by evilangela at 1:23 PM on October 1, 2018 [8 favorites]
k5.user:
"this will be used by highly trained Marines, they won't click the wrong button, ever. Highly Trained"
Oh man, I didn't get out of that project fast enough.
Heh, I hear you. I've also worked for a defence contractor, but both I and a lot of people in management were veterans, so there the discussion was more like "so, how do we infantry proof this thing?"
posted by Harald74 at 12:50 AM on October 2, 2018 [6 favorites]
"this will be used by highly trained Marines, they won't click the wrong button, ever. Highly Trained"
Oh man, I didn't get out of that project fast enough.
Heh, I hear you. I've also worked for a defence contractor, but both I and a lot of people in management were veterans, so there the discussion was more like "so, how do we infantry proof this thing?"
posted by Harald74 at 12:50 AM on October 2, 2018 [6 favorites]
Back in my printer days, one of the testers logged a bug that only happened when he put his coffee cup on the spacebar and left for the weekend.
posted by chazlarson at 7:27 AM on October 3, 2018 [9 favorites]
posted by chazlarson at 7:27 AM on October 3, 2018 [9 favorites]
I'm a tech writer, and a considerable part of my job is watching the software guys and the QA guys argue it out, while I twiddle my thumbs waiting to know what to write.
We make medical devices that go in ambulances. Recently, the writers got to visit a local firehouse, and the EMTs showed us how they used our equipment. As they prepped the ambulance for the shift, they casually tossed one of our products into the back. (It it a backboard type thingy with computers in it used on someone who is receiving hard CPR thrusts.) They saw us watching and said "heh, last week when your engineers were visiting, they saw us toss it into the ambulance, and totally flipped out, and tried to tell us not to do that. I told them they should see what else happens to it."
posted by Melismata at 8:51 AM on October 5, 2018 [7 favorites]
We make medical devices that go in ambulances. Recently, the writers got to visit a local firehouse, and the EMTs showed us how they used our equipment. As they prepped the ambulance for the shift, they casually tossed one of our products into the back. (It it a backboard type thingy with computers in it used on someone who is receiving hard CPR thrusts.) They saw us watching and said "heh, last week when your engineers were visiting, they saw us toss it into the ambulance, and totally flipped out, and tried to tell us not to do that. I told them they should see what else happens to it."
posted by Melismata at 8:51 AM on October 5, 2018 [7 favorites]
That rings super true, Melismata. If your tool is supposed to be used in the field but it can't be kicked, thrown, dropped onto concrete, and left out in the rain—over and over again—it's fucking unfit for purpose. I had to use a rather nice brushless impact driver as s hammer the other day.
posted by Anticipation Of A New Lover's Arrival, The at 4:52 PM on October 5, 2018 [3 favorites]
posted by Anticipation Of A New Lover's Arrival, The at 4:52 PM on October 5, 2018 [3 favorites]
People have a (one) middle name.
Slight derail, but I always find it funny that the pages of French people in the English Wikipedia always begin with all the official given names of the person, rather than with the single given name that is actually used (ie the page about Emmanuel Macron starts with Emmanuel Jean-Michel Frédéric Macron). The French Wikipedia pages don't do this because those extra given names are completely irrelevant in practice and nobody in France outside Macron's immediate family is aware that there's a "Jean-Michel" and a "Frédéric" on his ID card. Americans being confused by French names is not a new problem: for instance, Marshal Philippe Pétain was (and often still is) called Henri Pétain, Henri-Philippe Pétain or even Henri P. Pétain in the US media (and later in history books, databases etc.) because his first given name was Henri, in spite of Pétain insisting on being called Philippe. And then there's the amusing camel cases...
posted by elgilito at 6:36 AM on October 16, 2018 [1 favorite]
Slight derail, but I always find it funny that the pages of French people in the English Wikipedia always begin with all the official given names of the person, rather than with the single given name that is actually used (ie the page about Emmanuel Macron starts with Emmanuel Jean-Michel Frédéric Macron). The French Wikipedia pages don't do this because those extra given names are completely irrelevant in practice and nobody in France outside Macron's immediate family is aware that there's a "Jean-Michel" and a "Frédéric" on his ID card. Americans being confused by French names is not a new problem: for instance, Marshal Philippe Pétain was (and often still is) called Henri Pétain, Henri-Philippe Pétain or even Henri P. Pétain in the US media (and later in history books, databases etc.) because his first given name was Henri, in spite of Pétain insisting on being called Philippe. And then there's the amusing camel cases...
posted by elgilito at 6:36 AM on October 16, 2018 [1 favorite]
« Older The Movie Assassin | At first glance, the idea seems bizarre. Newer »
This thread has been archived and is closed to new comments
posted by sammyo at 1:10 PM on September 30, 2018 [10 favorites]