QA Music: All The Doctor Who Themes

March 2nd, 2015 by The Director

You’re going to listen to or watch all twelve minutes.

It has been said that your first Doctor is your favorite. This is not true in my case; my first Doctor was Tom Baker, but my favorite is Colin Baker. And no, I haven’t seen the new ones with Tobey Maguire and Ed Norton as the Doctor.

Public Service Announcement

February 24th, 2015 by The Director

I know it’s a year old, but the topic of this article will never get old: Ways to Say ‘No’ More Effectively:

When asked to help or to do a favor, whether it is to donate money to charity, fill out a questionnaire or let a stranger use a cellphone, research has shown many people will say “yes” simply because saying “no” would make them even more uncomfortable. This is especially true when people have to give their answer face to face, rather than by email.

And even when people do say “no,” they become more likely to say “yes” to subsequent requests. “They feel so guilty about saying ‘no,’ they feel they need to salvage the relationship,” says Vanessa Bohns, assistant professor of management sciences at the University of Waterloo in Ontario, Canada.

The world could use more No.

QA Music: Thunderstruck

February 23rd, 2015 by The Director

“Thunderstruck” by AC/DC:

Yeah, I know. They’ve got a new album out. I’ve got it. But it doesn’t stick in my mind like some of the older stuff.

This song reminds me of a woman I coached in softball back when I was in college. She once put a woman in the hospital with an errant throw, so I nicknamed her Thunderball. Then she got shot down by muggers in front of her kids because she wouldn’t kneel for the muggers.

Doesn’t that brighten up your Monday?

10 Rules for Safety-Critical Code

February 19th, 2015 by The Director

NASA’s 10 rules for developing safety-critical code:

NASA’s been writing mission-critical software for space exploration for decades, and now the organization is turning those guidelines into a coding standard for the software development industry.

The NASA Jet Propulsion Laboratory’s (JPL) Laboratory for Reliable Software recently published a set of code guidelines, “The Power of Ten—Rules for Developing Safety Critical Code.” The paper’s author, JPL lead scientist Gerard J. Holzmann, explained that the mass of existing coding guidelines is inconsistent and full of arbitrary rules, rarely allowing for now-essential tasks such as tool-based compliance checks. Existing guidelines, he said, inundate coders with vague rules, causing code quality of even the most critical applications to suffer.

It’s not The Programmer’s Book of Rules, but it’s worth reading and considering even if your software can’t kill people.

A Defect In The Style Guide

February 18th, 2015 by The Director

The Wall Street Journal changes its capitalization of eBay depending upon where it appears.

For example, look at the print edition:

Different capitalizations of eBay

Or this article online: Carl Icahn Boosts Stake in EBay:

Carl Icahn slightly boosted his holdings in eBay Inc. by about $25 million in the fourth quarter, according to the activist investor’s latest quarterly filing.

Let’s look at the discrepancies and inconsistencies:

  • In the print edition headlines and drop quotes, only the E is capitalized.
  • In the online story, both the E and the B are capitalized in headlines.
  • When it appears at the beginning of a sentence, both the E and B are capitalized.
  • When the word appears in the middle of the sentence, it is appropriately capitalized as eBay.

This is a style guide issue, as the inconsistent capitalizations are consistent in where they’re inconsistently capitalized.

This doesn’t seem to be a bigger issue regarding trademark capitalization, as iPhone is capitalized correctly, at least online: ‘Staggering’ iPhone Demand Helps Lift Apple’s Quarterly Profit by 38%:

Apple Inc. surpassed even the most bullish Wall Street expectations for its holiday quarter with an improbable trifecta: selling more iPhones at higher prices—and earning more on each sale.

It looks as though the corporate style guide could use a little correction. How about yours?

QA Music: Showing You Where Forever Dies

February 16th, 2015 by The Director

Breaking Benjamin, “I Will Not Bow”

Wrong, In Context

February 13th, 2015 by The Director

On the front page of the September 9, 2014, Wall Street Journal, we find that GE has exited the kitchen with the sale of its appliance business:

GE Exits

However, on page B3 the same day, the drop quote in an article would seem to indicate otherwise:

GE buys a food company

Of course, General Electric is not buying the food company Annie’s; the headline makes clear that the General in this case is General Mills (stock symbol: GIS).

But there’s nothing in the drop-quote to indicate something is wrong within its own context. Maybe General Electric often pays premiums like that during an acquisition. Maybe the copy editor or whomever did this dropquote finished the GE story from page 1 just minutes before working on the General Mills story.

However, we’ve got to retain context when testing and proofreading.

Where does this come into play in testing?

The foremost example in my mind is when we’re doing things to trigger error conditions to make sure that an error message displays. It’s possible that the system will throw up the wrong error message and we’ll miss it. I once wrote automated tests that triggered error conditions and parsed the error message (mostly to make sure an error message applicable to the screen and operation displayed). However, I did not write it smart enough to compare the error message that displayed to the error message expected. So when the application started failing by displaying the wrong message for the occasion, the tests didn’t catch it.

So you’ve got to remember to see the forest and the trees–along with the underbrush, the soil, the other flora, and the carnivorous fauna–when you’re testing.

Maybe I’m Doing Conferences Wrong

February 12th, 2015 by The Director

Turn That Soul-Crushing Conference Into a Win:

You’ve spent days wandering the cavernous halls of a convention center, trapped in windowless rooms, drinking too much coffee and talking yourself hoarse. Does anyone ever emerge from a conference as the organizers intended, feeling recharged with new ideas, contacts and energy?

New York City marketing executive Stefany Stanley does. Among conference organizers she is known as a savvy convention-goer, someone with a strategy for rising above the dreary rounds of networking and breakout sessions. Ms. Stanley says she has gained valuable contacts, ideas and insights from the 15 conferences she has attended in the past five years.

The article goes on with tips and tricks to maximizing your meeting other people to sell your services to or to meet people who might help you get a leg up, basically.

I must be doing it wrong; when I go to conferences, I go to attend the sessions and to learn what the speakers have to offer as to professional insight. Maybe I’ll meet someone I know off the QAternet or something, but I don’t count on it, and if I don’t, I don’t think that I’ve lost something.

Of course, I don’t go to enough conferences and conventions often enough to have my soul crushed, and I don’t think of them primarily as mass in-person sales cold calls, so I’m probably doing them wrong when I do go.

But maybe you’ll find the article useful.

QA and the Motivational

February 11th, 2015 by The Director

I go to a dojo filled with positive, encouraging, uplifting people, from the kyoshi to the black belts to the other students. You want to talk about imposter syndrome, and I’ll explain how I feel when surrounded by nice people.

At any rate, members of the dojo often post motivational images to, well, motivate each other. And immediately, my mind works to find the condition where the assertion is not true. I must subvert it.

Like:

Your excuses get you 0% closer to your goals. Unless you’re writing a book about your excuses, I think.

I don’t know how my story will end, but nowhere in my text will it ever read… “I gave up.”

I think:

That, my friends, is the essence of the QA mindset: When presented with a proposition, you find some way to subvert or suborn it. Remember that the contradiction of All are…. is not Nothing is…. but Some are not….. (See also the Aristotelian Square of Opposition.)

Plan your tests accordingly.

Oh, Yes, Grammar Matters

February 10th, 2015 by The Director

Grammar Rules in Real Estate

Real-estate agents, better take out that red pen.

An analysis of listings priced at $1 million and up shows that “perfect” listings—written in full sentences without spelling or grammatical errors—sell three days faster and are 10% more likely to sell for more than their list price than listings overall.

On the flip side, listings riddled with technical errors—misspellings, incorrect homonyms, incomplete sentences, among others—log the most median days on the market before selling and have the lowest percentage of homes that sell over list price. The analysis, conducted by Redfin, a national real-estate brokerage, and Grammarly, an online proofreading application, examined spelling errors and other grammatical red flags in 106,850 luxury listings in 52 metro areas in 2013.

Think it applies only to real estate and not your product interface? Are you willing to take that gamble?

You’d better make sure your Web labels, error messages, and helpful text are grammatically correct, or you won’t be able to quantify how many people don’t use your software because they thought it was written by third graders. Because they won’t be your users.

(Yes, I know the story is nine months old, but I’m between contracts right now and have a little time to catch up on my newspapers for the last year.)

QA Music – I Want My….

February 9th, 2015 by The Director

“Mr. MTV” by Nothing More

Now That’s A Tech Blog I Would Read

February 5th, 2015 by The Director

IT Droll

Alas, ITDroll.com is not droll musings on the computer industry after all, apparently.

Why Would They Call It A ‘Hot’ Key If Nobody Stole It?

February 4th, 2015 by The Director

Over at Medium, they discuss how the intersection of Polish typing custom, Microsoft Windows custom, and user interface colluded to create a defect: The curious case of the disappearing Polish S:

A few weeks ago, someone reported this to us at Medium:

“I just started an article in Polish. I can type in every letter, except Ś. When I press the key for Ś, the letter just doesn’t appear. It only happens on Medium.”

This was odd. We don’t really special-case any language in any way, and even if we did… out of 32 Polish characters, why would this random one be the only one causing problems?

Turns out, it wasn’t so random. This is a story of how four incidental ingredients spanning decades (if not centuries) came together to cause the most curious of bugs, and how we fixed it.

It’s hard to test for the conditions to recreate this bug unless you’re Polish. It’s also a humbling example of how we’re going to miss things because of our (as yet) limited omniscience.

(Link via IDisposable tweet.)

Book Report: The Programmer’s Book of Rules by George Ledin, Jr., and Victor Ledin (1979)

February 3rd, 2015 by The Director

Book coverThis book is forty-five years old. I realize I’m doing some of Quality Frog‘s schtick here, reading old computer books to glean the lost knowledge of the ancients, but bear with me.

This book really does contain a set of rules for programmers to follow: The left pages have the rules in large font, and the right pages have the rules explained in a paragraph or two. The book focuses not only on programming best practices, but also on software development best practices, and these are much more applicable to modern programming than the pre-object oriented programming lessons.

For example, first and foremost are the rules about making sure your program answers the users’ needs. Rules like:

  1. Fit your program to your users’ needs.
  2. Aim your program at the widest circle of users
  3. Explain to your user how to use the program
  4. Make it easy for the user to run the program

Other rules cover interface design, such as Display results with pertinent messages which are just as relevant now as it was when the interface designed displayed only green or amber text.

Even the discussion of loops, variables, and breaking your program into sections has a sort of relevance because it discusses these things philosophically, at a high level, in a way that programming how-to books and online language tutorials do not.

It’s a quick read or browse; although it’s roughly 220 pages (which is still slim by modern, $60 computer book standards), it’s really less than that since the text is not densely packed on the pages as described above, and it’s worth the time for the insights not only into the crystallized rules but also in the recognition of some software development problems and goals predate the Internet, which I am pretty sure some of our younger co-workers don’t know.

Books mentioned in this review:

QA Music: Song for the End of a Contract

February 2nd, 2015 by The Director

“Fly By Night”, Rush

I just ended a twenty-six month contract, and I’m excited to start something new. Which is TBD, but still exciting.

Like Every Michelin Commercial Ever

January 27th, 2015 by The Director

Job posting:

A developer's job in an auto garage?

Can improved automobile tyres really make the world a better place? Should we trust developers the one to change the tyres?

To be honest, probably better than me: the last time I changed a tire, I cross-threaded two of the lug nuts and then snapped one of them off (with only a lug wrench, sir; I was motivated to remove that bolt). BECAUSE I BREAK THINGS.

QA Music: An Old New Song

January 26th, 2015 by The Director

Howard Jones “New Song”. Which is thirty-one years old, but never mind that.

Full disclosure: The mime in chains following the rock star around inspired me to get into QA.

Your Web Site’s Undergarments Are Showing

January 22nd, 2015 by The Director

Keep in mind your invisible meta tags display when a user shares the link in various social media forms:

I see London, I see France, I see your Web site's wrongminded meta data

In this case, I think we can agree it’s a QA fail.

Waiting for One of Two Things To Appear on a Page in Java Selenium

January 20th, 2015 by The Director

I’ve been working on a Java Selenium test automation project, teaching myself Java and Selenium WebDriver along the way.

I ran into a problem that I didn’t see solved on the Internet elsewhere, but my skill at searching StackOverflow is not that good.

The problem is conducting an operation that might yield one of two results, such as success or an error message. Say you’ve got an registration form or something that can succeed if you put the right data in it or will fail if you put the wrong data in it. If the user successfully registers, a welcome page displays. If the user fails, an error message displays. And, given this is the Web, it might take some time for one or the other to display. And the implicit waits didn’t look like they’d handle branching logic.

So here’s what I did:


public int waitForOne(WebDriver driver, Logger log,
                      String lookFor1, String lookFor2){
  WebDriverWait wait = new WebDriverWait(driver, 1);
	
   for (Integer iterator = 1; iterator < 60; iterator++){
     try{
         WebElement element = 
            wait.until(ExpectedConditions.elementToBeClickable(By.id(lookFor1)));
         return 1;
        }catch (Exception e){
				
      }  // try 1
      try{
          WebElement element = 
             wait.until(ExpectedConditions.elementToBeClickable(By.id(lookFor2)));
          return 2;
         }catch (Exception e){
      } //try 2
  } //for loop
}// waitForOne

You could even create a longer list of events to wait for one of them to occur by passing in an array of strings and then using a For-Each loop to run through the list.

This sample looks for a Web element by its ID, but you could change it to use another By parameter, such as CSS Selector (cssSelector). Or, if you're feeling dangerous, you could pass in the By parameter as a string and parse it in the method to determine whether to use ID, CSS Selector, or a mix therein. But that's outside the simplicity of this example.

Also note that the For loop that limits the waiting for a total of sixty iterations, which in this case will max out at 120 seconds (at 1 second per attempt for 2 items a maximum of 60 times). You could pass the max in as a parameter when calling this method if you want. That's especially important if you're using a list of possible elements to look for. If you're passing in five elements, suddenly you're at a maximum time of five minutes if it times out completely. You might not want your tests to wait that long, especially if you're using the check multiple times per test.

I'm sure there are more elegant solutions for this. Let's hear them. Because, frankly, I'm not very good at searching StackOverflow, and I'd prefer if you'd just correct my foolishness here in the comments.

QA Music: I Am Machine

January 19th, 2015 by The Director

It’s been a while since we’ve had some Three Days’ Grace, so here is “I Am Machine”:

It’s been a while since we’ve had anything, actually. Perhaps I should post something.