Posted by: fijiaaron | February 29, 2012

Test First Isn’t

Here’s an essay I wrote several years ago but apparently never posted. It didn’t get where I wanted it to go, and turned into a bit of a rant. Hope you enjoy it as much as I still do.

Test first development isn’t testing. It’s development. It’s prep work for a developer. It doesn’t test anything. And as a matter of fact, if you could write tests first that work without testing before running them, you’re probably a perfect coder, and writing tests would be superfluous.

Now, running a test after the code is written is testing, but in the simplest possible sense. In about the same way that spell-checking is editing. Or rather, you could consider the spell checker the compiler, and the notoriously bad grammar checker equivalent to the also notoriously bad warnings a compiler gives. But no one considers a document even “proof-read” because Microsoft Word didn’t underline anything. Actually, a document of any length –say half a page or more– is probably unreadable if there are no squiggly underlines in it.

What would be your own unit tests (or even automated functional tests) that could be done to a document? Pretty difficult to come up with something useful, isn’t it?

But code is structured, you complain? Stop complaining, so is English. As a matter of fact, supposedly your code is just a much longer description of a specification written in English (or Swahili). It’s longer because computers aren’t as smart as people, and because of that, you have to talk down to them and use lots of little words and a lot more punctuation.

Let me help you out. There are some things that can be automated. Such as word count. Formatting guidelines. Header style. Beginning, middle, and end. You could come up with run-on sentence algorithms or text analysis. But the real trick is turning a document into an executable, because that’s what code does.

How are documents executed? By modifying them. The aforementioned word count can make sure the document length doesn’t change — or if it does, that the changes occur in an expected area. Or that formatting changes (margins, fonts, etc.) are changed across the board.

Fairly useless stuff, right? But that’s all automated tests can do for software. Granted, there are a lot of variables in software that aren’t in documents, and code changes happen even more. So there is value in REGRESSION tests being automated. Because a code change is like a document edit. You don’t want to edit one paragraph and expect the format (or word count) of another paragraph to change.

Now, I’m not arguing against automated testing (it’s what I do for a living), but I’m arguing in favor of knowing what it can do, so it can do it well. The biggest travesty in quality assurance is the so called “test first” methodology. It’s really just a cop out that says you’re not going to test.

Supposedly, the idea is to do the things first that you never have time to finish. You know, like washing the dishes. By the time you’ve fixed dinner and eaten it, it’s time for your favorite television show (or online chat game, for you WoWers), and there just isn’t time to do the dishes.

Here’s a novel idea — why not do them before cooking? Cooking is what takes up all the time, and the cutting and mixing and associated tasks. Cooking is Very Important. After all, without the cooks, there’d be nothing to eat. Therefore, of course, cooks are the most important people in the cooking process, right? As such, they don’t have time to do the dishes, so you need to find someone else (less important) to do them. And do them before you start cooking. Makes sense, right?

Okay, you could test (I mean wash dishes) while cooking. Every time a cook dirties a dish, a tester (I mean dishwasher) could wash it. Then, everyone could sit down to dinner and all the dishes would be done, and no one would miss Wipeout (or another quest to chop wood or fight squirrels).

Except of course the dishwasher, who’d also miss dinner. Because while a spoon can get washed after every use, that big pot of goulash can’t get cleaned until after everyone has been served (and served seconds, if the cook is any good.)

And of course, there’s the little problem the cook never thought about of all the dinner plates, silverware, and glasses. Those need washed too. If only they could be washed first, or iteratively.

Posted by: fijiaaron | February 18, 2012

How can a QA Site help you?

Here’s the follow up post to “What is a QA Site?.

You can see the original document at:
http://www.one-shore.com/docs/how-can-a-qa-site-help-you.pdf

How can a QA Site help you?

·     All your testing information together in one place

Your QA Site dashboard gathers information from the different tools that testers, developers, analysts, and project manager use into one place that increases project visibility and collaboration.

See project milestones and status, task completion, blocking issues, defects and resolutions, requirements changes, document updates, code check-ins,

automated builds, and test execution at a glance.

·     Integrate your existing tools & processes

Use your existing tools and integrate them with your dashboard.  Allow your testers & developers to work the way they want.

Your QA Site doesn’t try to change how your team works or dictate which tools they use.  It complements existing processes and enhances productivity.

·     Add the missing pieces to your QA toolset

What tools do you wish you had but you don’t have the time or resources to ad? Does your organization pass the “Joel Test“? Are some tools in silos that only some team members use?

Enable developers to see project goals, testers to use version control, and analysts to know what requirements are covered by tests.  Make your tools available anywhere with your QA Site.

·     No setup or infrastructure costs & no maintenance required

Your QA Site is a turn key package including everything you need from OS to software configuration.   Keep everything on site or hosted on your favorite cloud platform.

Training and support are available, and the system is maintained for you.

Request your QA site today

425-242-4304

Posted by: fijiaaron | February 17, 2012

What is a QA Site?

I’m working on developing a testing tool I call a “QA Site.”  It consists of a set of hosted testing & development tools and a dashboard user interface. I wrote the following in an attempt to describe it.  

The original document can be downloaded at
http://www.one-shore.com/docs/what-is-a-qa-site.pdf.  

What is a QA Site?

QA Site is a testing dashboard

that enables you to see at a glance your testing progress and project status.

Your QA Site dashboard is a home page that summarizes your QA efforts and provides links to your testing, development, and project management tools.

See project status, test execution results, defects, builds, and other notifications all in one place.

QA Site is a collection of software tools

that you use to improve quality and release with greater confidence.

Choose the tools you want to use, commercial and open source, working together.  No vendor lock-in.  You don’t have to change your existing infrastructure or processes.

Your QA Site can include:

  • Version Control
  • Defect Tracking
  • Test Cases
  • Automation
  • Continuous Integration
  • Code Analysis
  • Documentation
  • Project Management

QA Site is a hosted platform

that you don’t have to setup or maintain.

Deploy your QA Site on your favorite cloud platform or within your own network.  No setup or infrastructure costs.  No in-house expertise or maintenance required.

We will set it up and work to integrate your existing tools to build a custom dashboard & reports that fit your needs.

Training and support are available, and the system is maintained for you.

Request your QA site today

425-242-4304

Posted by: fijiaaron | February 2, 2012

Selenium QC integration update

My blog post about connecting to QC from a client side script was mentioned on the PushToTest tutorial about selenium for beginners.

Thanks the Frank Cohen of PushToTest for mentioning me.   Although to be strictly accurate, I don’t talk about using OTA to run Selenium tests, I talk about using OTA  to update test results in Quality Center from a Selenium test (or other test that is run via JUnit, etc.).  It may sound like splitting hairs, but I get a lot of questions about that from confused people.

I should probably draw a diagram and post it on my blog.  I had one on my whiteboard that I used to explain to a test manager the actual workflow.

I’ve written several other blog posts on the subject and have been meaning to put them together into a long article (or short book) on the subject (with source code):

Integrating JUnit tests with HP/Mercury Quality Center
Integrating JUnit with HP Quality Center part 2
Upload Selenium/JUnit test results to Quality Center
Updating test results in QC using the QC OTA APK explained
Getting a QC test coverage report from JUnit

I also have some example code on GitHub that can be used off the shelf to batch update test results in QC from a spreadsheet (though a small effort is required have your tests output their results in the expected CSV format):

https://github.com/fijiaaron/QCIntegration

If you’re looking to integrate Quality Center with your open source testing tools, give me a call  or write me a note.

I’d be happy to discuss what I can do for you.

Posted by: fijiaaron | January 30, 2012

Free website with CMS & shopping cart

I’m trying something new. I haven’t done a lot of retail web development but I thought I’d give it a try.

I’m offering a free website to the first responder whose concept I like. I’m willing to include a CMS, shopping cart, blog, forums, and custom code.

Potential CMS:: Drupal, Joomla, Django, SilverStripe, ModX or other
Shopping cart: Magento, ZenCart, osCommerce, OpenCart,  Prestashop, or other
Forum: phpBB, bbpress, vanilla, punBB, or other
Blog: WordPress or other

You don’t have to choose.  Just tell me your requirements and I’ll find the right tools to solve your problem.  But if you have a preferences, or already have an existing platform (.NET, PHP, Ruby, etc.) let me know.

It doesn’t have to be a CMS or eCommerce site. It can be whatever you like.   It could be a cool web based app.  The more interesting the concept, the better. I might even be willing to try a mobile app (iPhone or Android.)

It can even be a QA-site with version control, defect tracking, project management, test automation, continuous integration, etc. But that’s what I do best. If you want to make it interesting maybe ask me to deploy it on Azure or EC2 (though you’ll have to pay for that.)

In fact, that’s the one catch. You’ll have to pay for hosting, or any tools that aren’t open source, whatever your site. That includes the cost of setting up a payment gateway or merchant account for eCommerce, though I can take care of the details for you.

You may want to pay for graphic design too, since I’m no designer. I know some pretty good ones though, and I can manage that aspect for you — it just won’t be free.

Posted by: fijiaaron | January 26, 2012

Why not hire a remote QA Lead?

I saw this job posting for a  QA Lead at Nivio.

I thought they sounded like a cool company, and I used to mess with diskless remote boot Linux systems like LTSP back in the day so I totally get the idea.  Mix in broadband wifi and cloud computing and it gets really cool.

So I applied for the job.  

But I live in Ecuador, so I’d only be available via telecommute for at least the next 6 months.  I totally get it if that doesn’t work for them, but I had fun answering some (hypothetical) questions that went along with the job listing.

Here are Nivio’s questions and my answers:

1. Explain the concept of a database to your 8 year old nephew (don’t worry if you don’t have one – be creative!)

My nephew’s name is Matt. He loves motor bikes. His older brothers Sam & AJ each have one, and he wants his own.

I would take photos of his brothers bikes and cut out an ad for the one Matt has his eye on. Lining up the three pictures I ask him which bike belongs to who. Then I write each of their names on note cards and place the name next to the corresponding motor bike. Then I ask details about each motor bike — size, speed, etc. and write all that down on cards too.

Then I’d ask about other toys — his skateboard, the trampoline, etc. and write on more cards. Who owns the skateboard? Matt moves his own name on top of the skateboard card. Who owns the trampoline? After hesitating he moves his card and those of his brothers on top of the trampoline.

Do you think we could make a computer program that keeps track of these things? Matt nods his head.

That’s a database. How would you do it, I ask?

He explains that you could use pictures on the computer and words and drag them the same way we just did on the table. Exactly, I say, only the computer doesn’t need the pictures, just the words.

How can you tell the computer that the motorbike, the skateboard, and the trampoline all belong to you? I could make more cards with my name on it Matt suggests.

Or you could draw a line from your name to each of them (if your mom wouldn’t kill me for writing on her table with this marker.) He nods with a mischevious grin.

That’s basically what the computer does in a database.

2. Tell your grandma how cloud computing is going to change her world

Don’t worry grandma, it’s not really going to change anything.

Cloud Computing  just means that some of the information on your computer will be kept on someone else’s computer. You don’t need to know where, because your computer will still be able to find it. That means that you can put more pictures and recipes and stuff on your computer without it slowing down. And, when you come to visit, you can find the stuff that was on your computer by using my computer.

But I can do that already, she’d say.

Yeah, but it will make it easier for people like me to write programs that can do that. And I won’t have to keep calling you for your cookie recipes.

Well, I hope you’ll still call me.

I will grandma.

3. Give the two most likely outcomes when I role two dice (regular nothing funny!) and how the potential results change with n dice (maybe give us a formula)?

Both dice land on the table, or at least one of them rolls off.

Chances are (1 in 6, assuming the dice aren’t loaded), they’re going to total 7, since it occurs in 6 out of 36 possible combinations. 6 or 8 are next most likely totals (5 out of 36 each).

For each die you add, most likely total will shift towards the middle of the sum.

It’s simply averages. The most likely outcome is the middle of all possible sums (because there are more combinations that total the middle number.

For two dice, the probability of each sum is:
2=1,3=2,4=3,5=4,6=5,7=6,8=5,9=4,10=2,11=1,12=1 (out of 6*6)

For three dice, the probably of:
3=1, …, 10=8, 11=8,… 18=1 (out of 6*6*6)

To find the most likely outcome the formula is (I think):

(n*1 + n*6) / 2 (out of 6^n)

4. Write a formula to explain life – explain it is as much as you can… don’t worry there is no right answer.

garbage in = garbage out

5. Ask us the toughest question you can think of.. :)

Why not hire a remote QA lead?

Posted by: fijiaaron | January 17, 2012

Settled in to Cuenca

We’re settled into our new house in Cuenca in the historic central area of town. There’s lots of room for my office downstairs, a guest bedroom, and a play room for the kids. We don’t have much furniture yet, but we’re slowly accumulating stuff after purging almost everything before leaving the USA.

I haven’t had a lot of time to walk around since I hurt my foot and was out of commission for a few days, but last night we went to La Fornace, our favorite pizzaria and then visited the girls orphanage where they mobbed our kids and remembered us (despite Kelsey’s fears that they wouldn’t.) They also remembered my dad with his big belly and and red beard.  Girls I first met when they were 3 & 4 are 10 & 12 and so big!

We got internet on Friday, and I actually spent Monday working on design for a mobile app.

Today we’re shopping for a fridge and an office chair for me.  Kelsey and the kids are video chatting with friends from Bellevue and then it’s off to the mall.  Kelsey wants the cheap fridge but I want the expensive one and to shop around more.

We met a nice family from Texas at the park the other day and have run into them several times.  Harmon’s getting to be good friends their son who is the same age.  He even shared his Lightning McQueen with him today.  I showed them our favorite restaurant which is only half a block away & servers typical lunches (that are delicious) for $1.50.  They have a girl too that Harmon and Sammy played with after dinner on Saturday night.

Posted by: fijiaaron | January 16, 2012

Budgeteer iphone & android app

I’m developing a mobile app for budget management and expense tracking called Budgeteer.  It allows you to keep track of your total expenses, group them by category, and shows you if you’re getting close to or have already gone over budget.

It will be available for iPhone and Android and I’ll describe each step of development, iteratively from design to UI and API development and testing and release and customer feedback.

Look to read about it on http://blog.budgeteer.info

Posted by: fijiaaron | January 9, 2012

Estamos viviendo en Cuenca Ecuador

We made it!  After 3 flights totaling 12 hours and an 8 hour drive from Quito to Cuenca, we’re here in Ecuador.

Tres mil gracias a mis ninos.  Thanks to my kids for being such troopers and great travelers.  An epic journey that not many 2 & 3 year olds could make without going crazy or at least driving their mother insane.  Thanks also to their mother for not going insane — except when it was needed to get past American Airlines & TSA bureaucracy in Miami.

I will never fly American Airlines again.  It’s a good thing their going under, but a bad thing that the government is going to bail them out.  I’d rather not fly again at all, and we may just rip up our return tickets and sail back home — or at least back to Miami where our flight home to Seattle will be an Alaska Airlines codeshare.

Thanks to Alaska Airlines, by the way.  I had a great 6 months there working on the mobile project and test automation for their web services & Quality Center integration.  It was fun & challenging and the people were great to work with.  I’m definitely going to be delving deeper into mobile development & testing solutions while here in Ecuador in part because my work there.  I have an iPhone & Android that I’ll be tinkering with.  I’m also looking for another client with QC that would like to integrate with their open source automation stack.

We had a lucky draw in getting a great driver to carry all our luggage (10 checked bags plus carry ons)with a minivan from the airport to our friend’s house in Quito at midnight.  We liked Flavio so much we asked him to take us all the way from Quito to Cuenca, an 8 hour drive with amazing scenario, hairpin turns, lots of rain — and a few masked youth with ropes and chains and old tires trying to collect tolls.  Way to run the gauntlet, Flavio — hope you made it to Banos for your next pickup in time.  If you ever need a driver in Quito, let me know and I’ll pass on his info.

After 3 nights at a hostel, we’re hoping to sign papers today on a house for rent on Calle Larga — a primo location in Cuenca.  I’ll be setting up my office downstairs and maybe giving programming classes or opening a Spanish call center or something, and maybe a small tienda selling milkshakes & salchipan (TM)!  It’s in a safe neighborhood, close to our friends, and has a lot of tourist foot traffic.  It’s also right across from Kelsey’s favorite restaurant, El Maiz.

I’m going to be looking for graphic designers & programmers here in Ecuador to work with, and maybe look at building a testing team for a larger consulting contract.  Besides that, I’ll be working on my own development projects, doing some freelance web dev & QA work, and maybe a telecommute contract if the right opportunity comes up.

Kelsey will be helping OSSO and doing miscelleneous stuff for some other orphanages.  We’ll probably play soccer with the boys at one orphanage once a week.  Harmon loves it there already.   You should have seen his smile when he asked to go play with the other boys. And since another place has swings and a sandbox, he’s going to love going there too.  Glad we brought his Tonka dump truck & excavator.

We’re not settled yet, but it feels close.  We have phones, verified our bank account is still active, and gotten acclimatized.

Posted by: fijiaaron | January 1, 2012

2011 in review

The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.

Here’s an excerpt:

The concert hall at the Syndey Opera House holds 2,700 people. This blog was viewed about 29,000 times in 2011. If it were a concert at Sydney Opera House, it would take about 11 sold-out performances for that many people to see it.

Click here to see the complete report.

« Newer Posts - Older Posts »

Categories

Follow

Get every new post delivered to your Inbox.