Forensic QA: The Cat Power Case
Isarian sends in this screenshot to the Yahoo! Music page for a band called Cat Power and asks, “See the “{$” at the very end of the Biography section. Looks like they were trying to insert a string?”
First of all, the question I have is Does Isarian actually listen to a band named Cat Power? Brother, if you want to really get into QA, you’ve got to listen to real music. Heavy metal. Like Tragedy.
Aside from that, let’s delve into the problem he notes. It’s a little game I like to call forensic QA. It’s definitely an intriguing problem. I don’t know that they’re trying to insert a string here. I assumed it would be the remnants of some internal database metadata tag or placeholder for a link. I say this because you don’t get them when the word breaks cleanly, like the entry for the band Camera Obscura:
It doesn’t occur when it breaks cleanly after a person’s name, such as in the entry for Blonde Redhead:
But it does break in the middle of the word in a band name, such as Belle & Sebastian:
Or in the middle of the name of one of the band members, such as on the New Pornographers:
Meanwhile, you don’t get the strange breaks in the complete biographies on Yahoo!, such as this complete bio for the New Pornographers:
But wait a minute: what does that say at the bottom?
Written by Heather Phares & MacKenzie
No, no, that’s a completely different issue with Yahoo! Above that:
Heather Phares & MacKenzie Wilson, All Music Guide
So what does it look like on All Music Guide?
Those band names and whatnot with the stray characters are hyperlinks in the original source on All Music Guide. Yahoo! is failing to scrub them correctly in the miniature biography but does so on the complete biography page.
I will even go so far as to suspect that the application uses two methods here: the first, call it removeHyperlinks, goes in and removes the enclosing brackets that tell All Music Guide to insert a hyperlink, but removeHyperlinks only recognizes hyperlink notation that includes both an {$ and its closing counterpart. The second method, call it truncateBiography, grabs a number of characters for the mini bio blurb and truncates after a certain number of characters. However, the page calls truncateBiography before it calls removeHyperlinks, which means that it will truncate the biography and then look for hyperlinks, but in certain cases, such as where the biography is truncated in the middle of a link, removeHyperlinks won’t see the last thing as a hyperlink because the ending bracket has been lopped off.
The greater lesson here lies in a common mistake. Obviously, Yahoo! has fallen into the common mistake of not knowing where the output displays in all cases and only handling it in some places correctly. Friends, you need to know where all the input comes from and validate it in all cases and you need to know where all the output goes and make sure it displays correctly there. Otherwise, in my eyes anyway, you’re just another Yahoo!







