Blogs

Testing Weasel Words

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to cut away. -- Antoine de Saint-Exupéry

Manual and automated software tests often include redundant and unnecessary words which can distract the tester from the real purpose of the test. We're so accustomed to seeing them that they often pass unnoticed.

Consider the following generic test description:

General error: 126 Incorrect key file for table

Saw this error in Magento admin:
SQLSTATE[HY000]: General error: 126 Incorrect key file for table '/tmp/#sql_7397_0.MYI'; try to repair it

Solved it by increasing the tmp directory space on the MySQL server.

Declare or Impair

A topic that crops up often on the Cucumber mailing list is whether it's best to write BDD tests in imperative or declarative style.

Set-up TestMaker

I'm pretty clueless when it comes to setting things up. I always prefer the "Standard Installation" to the "Custom" one. I usually can't mess things up that way (but you'd still be surprised)! Here's the steps for setting up TestMaker (once installed) and recording a new scenario/test:

1.With TestMaker open, click on the New Functional Scenario button.
The TestMaker Editor window should open with a new scenario started.

2. Click Use Cases tab.
Here you can add multiple tests to your scenario by the “Add test” link.

3. Click the Design button.

TestMakers and TestTakers

I hate tests. I do! Maybe it's a Homeschooling thing, I don't know. But taking tests has never been forte. I'm just not a "test taker."

Now, with that confession out of the way, I must also admit that I love being a "test maker." Oh, the power of the test maker! There's got to be a really emotionally-charged poem out there somewhere about how good it feels to be the person writing the test! If not, then there should be...

The Perils of Trying to be Clever

  • Narrator: Tyler, you are by far the most interesting single-serving friend I've ever met... see I have this thing: everything on a plane is single-serving...
  • Tyler: Oh I get it, it's very clever.
  • Narrator: Thank you.
  • Tyler: How's that working out for you?
  • Narrator: What?
  • Tyler: Being clever.
  • Narrator: Great.

While working on Vittles today, I had a facepalm moment, preceded by an hour of desperate confusion.

Call to undefined function money_format

While setting up a local copy of a Magento based e-commerce site on my Windows machine, I was presented with a number of messages stating, "Fatal error: Call to undefined function money_format()." After a little research I was able to discover that this particular PHP function is not available on the Windows platform.

In order to get access to a version of the function that would be available from anywhere in the site's php code, I used the Apache auto_prepend_file directive in my php.ini file:

The Zens of Python and Ruby

I've had this idea kicking around in my head for a while that someone ought to rewrite The Zen of Python from a Ruby perspective. Despite their many similarities (very high-level, multi-paradigm, interpreted and dynamic), Python and Ruby have nearly opposite design principles in many areas. Similarly, programmers of the two languages seem (to me anyway) to have different attitudes about readability and documentation, and what constitutes "cleverness" in programming (and whether cleverness is good or bad).

Syndicate content