I Said Something Clever, Once

March 19th, 2014 by The Director

Talking about automated testing once, I said:

Automated testing, really, is a misnomer. The testing is not automated. It requires someone to build it and to make sure that the scripts remain synched to a GUI.

Quite so, still

How Low Can You Go?

March 18th, 2014 by The Director

I think I have found the source of the problem:

Google Error #000

I expected some sort of enlightenment when I got all the way back to error 000, but that’s not the case, actually.

Or is Google denying there’s an error here?

Fun fact: 000 is 000 in binary. It is one of 10 numbers that are the same.

QA Music: About Your User Stories

March 17th, 2014 by The Director

Do you really know what it’s like to walk a mile in their shoes?

Or are your organization’s concepts of what the user wants or needs based on the speculations of twenty-somethings with computer science degrees who’ve known nothing but working with computers their whole lives?

Your Site’s Next Registered User

March 12th, 2014 by The Director

Nobody would ever do that: Dunedin man changes name to 99-character monster:

A Dunedin man has changed his name to the longest legally allowed, after apparently losing a bet five years ago.

The 22-year-old man from Normanby is now legally known as ‘Full Metal Havok More Sexy N Intelligent Than Spock And All The Superheroes Combined With Frostnova’ – just one character shy of Department of Internal Affairs’ (DIA) 100 character limit.

Which proves the man is not in QA; otherwise, he would have renamed himself with a 101-character name.

Unsub

March 7th, 2014 by The Director

Unsub, as you fellow fans of the all-too-brief David Soul television series know, means Unknown Subject in television law enforcement, or it did briefly in the first Bush administration.

In the IT world, it could refer to Unknown Subcontractor. And while it’s not a crime, it’s unethical.

Have you ever sat in on a conference call with a developer who talks a good game at a high level, but when asked specific questions, he defers and dissembles? Someone who is not very responsive to issues: when you call him or email him about something in the morning, you can’t reach him, but the problem is solved (or is taken a stab at) overnight?

You know why he’s like that? Because he’s not the one doing the work. And sometimes, contractors hide that they’re subcontracting from their clients.

We use only the most highly trained subcontractors
This cat will test your application for t4/hr.
On the Internet and in remote/distributed work environments, nobody knows you’re a cat or if you’re using a cat as a subcontractor

I can see how it would happen semi-innocently. You’ve been working with a bunch of clients, and they’ve all got tasks that suddenly overlap. So you reach out to a colleague and offer him a couple dollars less just this one time. That works out, so you think, “Hey, maybe I’ll use Joe for this client….” and suddenly someone’s running a clandestine contracting company without the client or clients knowing.

It’s unethical to present your resume to a client and then to use someone else to do the work. It’s okay if you plan to do this at the outset and make sure your client understands you’ve got staff that will handle the work. That’s about the only way a day laborer like an IT consultant can grow a business. But if you say or hint that you’re going to do the work but don’t, that’s lying.

Our mobile testers try everything
This hidden subcontractor is testing your mobile app for t4/hr. (Four Treats an hour).

If the ethical considerations don’t stop you, consider the practical risks. One day you’re a beloved national treasure of a composer, the next you’re an embarrassment with a ghost composer. Or you’re a highly respected scientist/politician who ends up on a Cracked.com list because your behind-the-scenes temporary hires are lazy.

Don’t do it. And if you’re hiring or contracting the work out, make sure to ask, “So you will be doing this work, won’t you?”

QA Music: The Proper Mood

March 3rd, 2014 by The Director

Software development has broken our hearts. It’s time to burn down the trailer park:

On a personal note, when I lived in a trailer park, we were in a trailer larger than an Airstream, but 12″ by 60″ is about the smallest you can get in an actual mobile home. And burning down an entire trailer park would take more effort than you think.

QA Music: You’ve Got Another Thing Comin’

February 24th, 2014 by The Director

Gather round, children, and listen to the music your parents would have listened to if your parents were awesome:

That’s Judas Priest. Go look it up in your history Kindles.

A Car Guy’s View of Software Development

February 18th, 2014 by The Director

In this case, the development of software automobiles:

Once upon a time, software was written by people who knew what they were doing, like Mel and his descendants. They were generally solitary, socially awkward fellows with strong awareness of TSR gaming. They were hugely effective at doing things like getting an Atari 2600 to run Pac-Man or writing operating system kernels that never crashed, but they weren’t terribly manageable and they could be real pricks when you got in their way. I once worked with a fellow who had been at the company in question for twenty-three years and had personally written a nontrivial percentage of the nine million lines of code that, when compiled, became our primary product. He was un-fire-able and everybody knew it. There were things that only he knew.

This kind of situation might work out well for designing bridges or building guitars (not that Paul Reed Smith appears to miss Joe Knaggs all that much, to use an inside-baseball example) but it’s hell on your average dipshit thirty-five-year-old middle manager, who has effectively zero leverage on the wizard in the basement. Therefore, a movement started in the software business about fifteen years ago to ensure that no more wizards were ever created. It works like this: Instead of hiring five guys who really know their job at seventy bucks an hour each, you hire a team of fifty drooling morons at seven bucks an hour each. You make them program in pairs, with one typing and the other once watching him type (yes! This is a real thing! It’s called “extreme programming”!) or you use a piece of software to give them each a tiny bit of the big project.

This is what you get from a management perspective: fifty reports who are all pathetically grateful for the work instead of five arrogant wizards, the ability to fire anybody you like at any time withouiret consequence, the ability to demand outrageous work hours and/or conditions, (I was just told that a major American corporation is introducing “bench seating” for its programmers, to save space) and a product that nominally fulfills the spec. This is what you get from a user perspective: the kind of crapware that requires updates twice a week to fix bugs introduced with the previous updates. Remember the days when you could buy software that simply worked, on a floppy disk or cartridge, with no updates required? Those were the wizards at work. Today, you get diverse teams of interchangeable, agile, open-office, skill-compatible resources that produce steaming piles of garbage.

He doesn’t speak about xth generation languages, which allow the software to be badly written far away from and with little knowledge of the hardware it’s running on by developers without knowledge of it and who are forgiven by advances in that underlying hardware (and now virtual hardware) that can cover-up some poor design and coding practices, third-party components of dubious provenance relied on for core processing, and Internet cut-and-paste.

But, other than that, he explains very well why my next car is going to be a Mercedes. A Mercedes 35 hp.

(Link via.)

This Is Too Simple To Be A Tip, Isn’t It?

February 11th, 2014 by The Director

In my automated test scripts, I always put one-line comments at the end of loops and methods that show what is closing. For example, in Ruby, it looks like this:

    puts("Waiting for delete confirmation")
    sleep(1)
  end #until
end   #click_delete_yes

It makes it just a little easier to figure out where I am in the code, and it also makes sure I close the loops and functions appropriately.

That’s so simple and obvious it can’t possibly be a helpful tip, coud it?

Seahawks-Tested (Almost)

February 4th, 2014 by The Director

A game player tries to score 1000 points in Madden NFL 25, but instead finds a defect at a common point:

About 10 minutes into the game, I had scored 262 points. The above score is actually wrong. We’ve run into this problem before: once you get to 255 points, Madden stops counting correctly. Not that it doesn’t try.

At the bottom, it says the Seahawks have scored 255 points. At the top, 266. Neither was correct, and I was pretty amused that a computer could attempt the most basic of tasks — addition — and come up with two kinds of wrong.

From what I saw of the actual Superbowl yesterday, this is uncannily accurate.

Remember, friends, in QA numerology, 256 is a magic number. You should try it out even when there’s no explicit boundary stated for an action or a variable. Along with magic numbers like 1025, 65537, and other talismanic digital sequences.

(Link via tweet.)

QA Music: An Ode to the Itinerant Tester

February 3rd, 2014 by The Director

Five Finger Death Punch, “Battle Born”:

My Kind of Manager, Too

January 31st, 2014 by The Director

Bill Gates sez:

An essential quality of a good manager is the desire to seek bad news rather than deny it. An effective manager wants to hear about what’s going wrong before he or she hears about what’s going right. You can’t react appropriately to disappointing news if it doesn’t reach you soon enough.

You concentrate on bad news in order to get started on the solution quickly.

That’s my philosophy, too. And I share bad news willingly.

Get Ready for Some New Top-Level Domains

January 24th, 2014 by The Director

Beginning next week, your software users might bring with them some new email addresses and URLs as new top-level domains become available:

Starting Jan. 29, the first of hundreds of new top-level Web domains—the suffixes that appear at the end of website addresses like .com and .net—will become available for the first time in more than a decade.

Seven Web domains will be released next week, including .bike, .clothing and .singles. The new domains are expected to draw interest mainly from entrepreneurs and small-business owners seeking Web addresses that more closely relate to the products and services they sell than the Web addresses that are currently available to them.

This means that any part of your application that validates email addresses or URLs might need to get a little exercise.

QA Music – Wild Boys

December 9th, 2013 by The Director

Duran Duran, “Wild Boys” from 1984, which is before the internal clocks of many of our compatriots in this industry began, the damn kids.

In 1985, I wanted to look like Simon Le Bon. In 2013, now that he’s 55, I’m closer than ever.

Two Out Of Four Ain’t Bad in Development

December 5th, 2013 by The Director

I clicked through a retweet to an article entitled “Which Programming Language Should I Learn First? on Lifehacker.

And then I almost fainted when I saw the sample code they included for Hello, World programs.

As you know, gentle reader, I’ve often thumped tubs about how any program used to teach students and that outputs Hello World is teaching the youngsters to program defects at the outset because, as “World” in this instance is a noun of direct address, it should be offset by a comma (Hello, World).

So when I saw the sample code included, where the programs for Java and C have that very comma in them, I was amazed. I had to immediately tweet about how it changed my life.

But then I looked closer: In addition to Java and C, the article includes samples of Python and Perl. And the commas are missing.

It was the best of Hello, Worlds, it was the worst of Hello Worlds

So I guess it’s more of a crash course in development than the writer intended.

It’s a collection kludged together, and nobody’s going to think to check consistency or know if there’s a problem in different areas of the software except for QA. Because the milestone and the deadline were met.

The Draw Test

November 26th, 2013 by The Director

In North American football, the offense sometimes runs a draw play, which is a delayed handoff that gets the moving parts of the defense to act before the offense turns the ball over to its running back:

The idea behind a draw play is to attack aggressive, pass-rushing defenses by “drawing” them downfield. This creates larger gaps between defenders and thereby allows the offense to effectively run the ball. Draw plays are often run out of the shotgun formation, but can also be run when the quarterback is under center. These types of draw plays are sometimes referred to as “delayed handoffs”. The running back will most often run straight downfield through the “A-Gap” (the space between the center and the offensive guard), although there are more complicated variations.

Now, in our deadline-driven software development world, we often find ourselves typing and clicking as fast as we can to get as much test coverage as we can in our allotted time. In a way, we’re playing to software that’s trained to be aggressive linebackers, running toward our software’s operations as fast as possible. Kinda like I started charging into this metaphor too quickly and find myself off-balance, unable to elegantly segue to my point.

Within applications, you can sometimes find defects by delaying actions. If your software integrates with other software or services asynchronously, the expectations of the code might not match how fast–or slow–a user might interact with the software.

For example, a shopping cart piece of e-commerce with distinct units might mark those units as Hold, Wait For Payment if a user adds it to the shopping cart and starts the payment process. If the hold has a timeout associated with it–an expectation that, if the user does not complete the payment within five minutes (or two minutes, or twenty minutes) that the payment has been abandoned and the system should remove the hold. However, in the case of paying with PayPal, the PayPal window itself can linger for that duration and more, ready to accept your login and confirmation of payment, at which time PayPal will send a payment received message to your system. For an item whose hold might have been relinquished and might not be available any more. How will you know unless you hold onto that ball for a a couple of seconds and let all the integrated software make their plays?

Another example: Financial software that uses two stages of authentication. The first time you log in from a browser, it prompts you for your user name and then directs you to a security question; after you answer that correctly, it prompts you for your password. If you log in and don’t do anything for ten minutes, your session times out. But what happens if it takes you longer than ten minutes to answer your security question? What happens if you answer the security question but don’t enter a password in those ten minutes?

The draw test is a valid line of testing because your users don’t live to fill out your forms. In their real lives, they’re called to meetings, go to lunch, minimize the browser window when a co-worker comes in, or otherwise temporarily delay their activity in a fashion that might put their next actions beyond your software’s expectations. If you take a little time, you can identify the places where your system might allow this and to make sure your software handles delayed action on your user’s part elegantly.

QA Music: Helpful Advice for Developers and QA

November 18th, 2013 by The Director

Developers, listen to the kind man Frank Hayes as he explains you should never set the cat on fire:

QA: Do just the opposite of what he says except for the first verse and the cat thing.

QA Music: What Kind of Animal Would You Be If You Were An Animal?

October 28th, 2013 by The Director

I wish someone would ask me that question in an interview just so I could say, “A squirrel.”

A half-crazed Mississippi squirrel.

As Seen in Time Magazine

October 24th, 2013 by The Director

Not me, and not really the magazine. It’s only the Web site, but it is Ben Simo:

Nearly 20 million Americans have now experienced the broken Obamacare website first hand. But Ben Simo, a past president of the Association for Software Testing, found something more than a cumbersome login or a blank screen—clear evidence of subpar coding on the site.

Congrats, Ben!

Cracked Steals My Tone

October 15th, 2013 by The Director

Cracked (I put the name in italics because it was a magazine in my day, sonny, and I fancy myself the IT world’s Sylvester P. Smythe) has a piece entitled 5 Reasons Tech Companies Make Bad Gadgets (An Inside Look) that you might want to read.

It’s not about software per se, but it looks awfully familiar.