• About
  • Giving Back

aclairefication

~ using my evil powers for good

Monthly Archives: July 2012

Wedding Crashers

27 Friday Jul 2012

Posted by claire in Experiences, Testing Humor

≈ 1 Comment

There comes a time in every woman’s life when her friends announce their engagements. The joy she feels about the momentous occasion of the wedding carries her through the mundane details of choosing what to wear and shopping for a gift to wish the newlyweds well. With wedding showers appearing on the horizon, I knew it was time to go back into the fray of shopping at the mall.

American custom encourages couples settling down into a life together into a frenzy of spending. Aside from the gorgeous dress, lovely ceremony, and honeymoon in some secluded far away place, couples select the accoutrement needed to establish their joint household. For younger couples who have not had long to establish their own independent living situations, these gift registries can be quite extensive. Even for couples in which the man and woman have been on their own for a while, there’s the temptation to upgrade furnishings or to plan for the grand entertaining they will do together in the future.

Granted, not all of the domestic needs are so thrilling as fine china. A house needs brooms, wastebaskets, and the like to function well, so some kind friend or wedding guest is likely to select these items as practical assistance. While it might not make for a thrilling hunt, for me it has always been an adventure to find the right items, in the right price range, in the right store.

Last night was one such quest. I steeled myself for the arduous task of tracking down registry items and then plunged in. Wielding my trusty laptop, I expertly navigated to the wedding website and found the registry links. Although I only had experience with single-retailer registries, I encountered the innovation of aggregate registry websites in all their glory, allowing couples to gather treasures from far-flung places together into a unified whole. After some contemplation, I decided upon some likely candidates and clicked the links to review the items more closely.

One aspect of registries that makes them so appealing is the automated coordination of purchases. Since so many well-wishers like to provide gifts a couple really need or want, some items are more likely candidates than others. Desired quantities, purchased quantities, and quantities remaining abound, requiring real-time accurate updates. It has been my experience that these quantities are seldom correct and that the updates are slow and unreliable. Therefore, I resolved to pursue a defensive shopping strategy.

First, I found the item of interest on the registry site. Then, I searched for the most convenient location with the item available. Next, since I would rather not venture out after work only to fruitlessly tug on locked doors, I carefully read over the store hours. As it turned out, the online registry location functionality for this particular retailer’s site did not synchronize with their regular location search and the selected store’s open and close times were both listed as “none”. Having recently arrived at a local bookstore only to find that it had closed for good that week, I had no desire to drive around trying to find an open location. Fortunately, the regular store location search was working, revealing the actual hours of operation as well as the handy main phone number.

As I worked my way through the phone tree to an actual human, I was transferred several times incorrectly and ended up needing to redial, which was a small price to pay to avoid driving all over creation to find the gifts. Eventually, the helpful staff member listened to the numeric item identifier as I repeated it over the phone and manually entered it into the system. However, being a savvy saleswoman, she also knew better than to trust the inventory displayed at her terminal and actually pulled the item from the floor for me, holding it at the counter since I was heading right over to purchase it.

Upon arrival, I wound my way through the various displays and discovered the item in the expected department of the store where the saleswoman found me. The transaction went relatively smoothly, aside from the obligatory sales pitch of the retailer’s branded credit card finding no purchase – though they did sneak me onto their mailing list by offering to email me a receipt. I was all set to head on to the next location when I realized my error: while I had remembered to ask for a gift receipt – granted only after the transaction was tendered – I had entirely forgotten to mention the registry! She directed me to the wedding consultants and the heart of the store.

I tentatively crept past the immaculate displays of place settings I couldn’t afford and that would never be practical with small children in the household until I found the wedding registry consultant with the power to correct my mistake. She was an older woman with neat fingernails, adequate computer skills, and familiarity with my problem. She started the registry software whose interface looked like it had been designed in the early ’90s and struggled to recall the process. She pulled out a notebook scrawled with her somewhat indecipherable handwriting and flipped through trying to find her tips & tricks for this particular task. She resorted to pulling out a large binder that was a mashup of store policies and user manual and found the page of instructions.

Not wanting to rush her but slightly impatient to venture on to the next mall for additional purchases, I read the instructions upside-down from across the desk. They were relatively straightforward but clearly not routine for this user. She looked up the bride’s name, found the registry, and eventually unearthed the screen that allowed altering the quantities for desired, purchased, and received and edited them directly. Before sending me on my merry way, she caught her own deviation from process and navigated to a different window where she again scrolled through a dense grid of product data before finding the item I purchased. She entered my name as the purchaser and the price I paid before attempting to save. An error message popped up and I could tell that this was not meant for human consumption, referring to some internal error code. When she tried again, a different error occurred, resulting in application crash. She fell back to hardcopy, scrawling the details for a later second attempt.

Having thus far survived my shopping ordeal, I doggedly drove to the next mall and planned my rapid strike and escape. This store wasn’t in the mall proper, removing some of the harrowing details or the earlier endeavour. Inside, I wandered until I found the item and then stood dutifully in line until a helpful saleswoman heard me mention the registry. I was pulled out of line to visit a separate kiosk that did not recognize the bride’s name or the groom’s name. After some reflection, the saleswoman mentioned that aggregate registries did not interface with individual retailer registry systems, preventing me from automatically reporting this sale. I forked over the money and toted my prizes back to the car, knowing that I was not yet finished, with the troubleshooting of reporting the bricks & mortar sale to the online aggregate registry system remaining ahead of me.

Still, upon reflection, discovering a bug in the online system and crashing a desktop application without even touching it is all in a day’s work for a software tester, so I can wrap my hard won gifts, don my party frock, and go off to celebrate the wedding with the satisfaction of a job well done.

Image source

Favorite moments from TCC and CAST

23 Monday Jul 2012

Posted by claire in CAST 2012, Experiences, TestCoachCamp 2012

≈ 1 Comment

I have so much information swirling in my head from the past week that there’s no hope of writing about it all at this time.

Instead, I present you with my favorite unexpected moments – in no particular order – from Test Coach Camp and CAST 2012:

  • My first conference talk! (Video in case you missed it live)
  • Bizarre kinetic airport sculptures
  • Putting faces to so many Twitter handles
  • the MRS BOND hummer
  • Wade Wachs coaching me on juggling
  • Brian Lawrence teaching me to make gigantic bubbles
  • Late night brainstorming of tester pick up lines
  • Paul Holland‘s interpretive dance
  • Sustainable (fake) grass on Stanford campus
  • Playing Set with lots of testers in the evenings
  • Quiet drinks around the outdoor fire (see image above)
  • Tridentine mass
  • Congenial heckling with the BBQ restaurant waiter
  • Nerdy T-shirts, especially those about testing – and expanding my collection!
  • Comparing family trees (mind maps?)
  • A very merry unbirthday to me! dinner
  • Discussing trees with my sister
  • Finding the facilitated discussion cards that were special (e.g. 42, pi, tau, NaN)
  • Sharing testing war stories, as is tradition
  • Foodie time: unagi pizza, yuzu ceviche, monkfish liver, beef tongue, mead tasting, fresh made tortillas from a street farmers’ market, The Growler, real ramen, potato grenade, “wolf turds”
  • Brushing up on my Dutch
  • Unique identifying elephants (for better automation!)
  • Drive-by sightings of offices of many big names in software
  • Finishing my zombie cross-stitch
  • Marine fog attack
  • Random wheeled office chair in the parking deck
  • Blissful exhaustion poolside
  • Bachelorette party en route to Vegas
  • My first AST board meeting
  • Bird perched on a sculpture inside the airport

See me live!

16 Monday Jul 2012

Posted by claire in Agile, CAST 2012, Context, Experiences, Experiments

≈ Leave a Comment

CAST is online streaming the keynotes and Emerging Topics track again this year.

Last year, I was haunting the interwebs watching, Tweeting, and chatting. This year, I’ll be coming to you live through the magic of technology. (This is the first reason I’ve had to crack open PowerPoint so it should be entertaining!)

Catch my agile software testing emerging topic talk Big Visible Testing at 10 AM PDT today!

Again, here’s the link to watch me:
http://www.ustream.tv/channel/CASTLive

Update: Recording uploaded to YouTube

Image source

Ruby Anniversary

14 Saturday Jul 2012

Posted by claire in Automation, Experiences, Experiments

≈ Leave a Comment

A year ago this week, I first picked up Brian Marick‘s Everyday Scripting with Ruby and gave it a whirl. This week saw me branching out past automating web application checking to creating my own Ruby application.

I haven’t been a code monkey in many a moon, but my company’s recent innovation week gave me the perfect opportunity to try an alternate role. I anticipated either glorious success or failure – and as a tester I’m seasoned at failing gloriously so I was set to be happy whatever the results.

This time around, anyone in the company could propose an idea, perhaps even customer requests of suitable scope. The projects had to be related to our core business but the Lab Days crew encouraged us to try new teams or even new team roles.

Getting to hear and understand ideas from of our team and our customers. Small things that are annoying, new things that will open the door for a myriad of other possibilities and things I never would have thought would complement our existing solutions are all displayed during Lab Days. — Concetta

Since I had only a week of development time available, I chose a project with limited scope: a small utility that would detect information in the data warehouse and email an interested party about it. I planned to develop the simplest thing that could possibly work, which was important working as a team of one. I did not have any software developers to help me with structuring the program, though I did describe my plan to my regular product team folks, who also estimated that it would achievable.

Test-driven development was one of my goals for this project and this was my first time trying it as a programmer. Granted, I have been writing RSpec stubs for my web automation for a year, but I didn’t have to build all of that from scratch on my own. This time around, I began as usual for a story in our Scrum sprints by writing out the tests that I knew would indicate success before delving into the code mines.

As a result of coding solo, I spent quite a bit more time evaluating and troubleshooting Ruby gems than I would otherwise. While this was frustrating at times, I had a chance to form a better impression of the Ruby community and the problems they were trying to solve, gleaned from the gems tailored to different purposes. As it turned out, there aren’t a lot of Rubyists working with MSSQLServer in a Windows environment, as I was trying to do. I even went down the rabbit trail of evaluating Rails development until self-taught MVC under a tight deadline sounded questionable to me.

Undeterred, I dug up some promising leads and made some experiments, most of which failed. I learned a lot of ways not to solve my problem! However, for success you only need one and I found a way. Once I was able to communicate with my data and my email, all that remained was the business logic. Granted, by this time I was halfway through my week, but I had my infrastructure and I had my tests as goals.

I began with familiar code structures I’d used formerly in pseudocode, Visual Basic, and Java. However, I knew Ruby had its own interesting expressions, as I had noticed while studying my pickaxe. At this point, I decided to learn a bit more about the Ruby idioms and so cracked open an ebook version of Why’s Poignant Guide. This made for an entertaining intermission and pointed me in the right direction to enhance my code to be Ruby-style. I’m sure my Rubyist friends would still cringe, but I wasn’t expecting to have production-ready results as a Ruby newbie.

One-by-one my tests went from red to green. All of this gave me much more confidence that my changes were stable, which turned out to be essential. The morning of the competition presentations, I discovered a fatal flaw in my project: although it worked as designed, the data warehouse SLA for the data I was analyzing had a lag of 24 hours rather than the real-time I had anticipated. With the help of some coworkers in the know, I went to the source and found the real-time data. Fortunately, this last minute coding was an alternate implementation of the database interface and did not affect my program’s overall structure. Here here for modularity and DRY principles!

Out of time but satisfied with my progress, I was able to live demo the first solution against the data warehouse. However, I knew that what I really wanted was an end-to-end test from the source application all the way through to the email account, so I continued working and completed that while the competition voting period was still open. While I didn’t get a chance to present my enhanced code to the group, I had the satisfaction of knowing that my tracer bullet had found its target. And what’s more I had a backlog of enhancements needed for production-readiness prepared for the next iteration – if there is one. Anticipating that this project will become a product in the future, I also completed a proof of concept using tests against an API for the source data that’s in the works, applying some of my learning from Alex Kell‘s recent interface testing presentation to the Agile Atlanta group.

While my project did not find a place in the innovation week competition winners circle, I felt like a winner for having the drive and execution to complete even a small application on my own. Since I learned more about my company’s product suite, data warehouses, interface testing, Ruby, and TDD through RSpec in the process, I call the experiment an unquestionable success. I carry forward all these skills to my day-to-day work and can plan my usual testing with much more context.

So while Ruby and I are still in the early stages of our relationship, I think our first anniversary together was a shining moment.

Image source

♣ Subscribe

  • Entries (RSS)
  • Comments (RSS)

♣ Archives

  • November 2024
  • October 2019
  • September 2019
  • August 2019
  • March 2019
  • February 2019
  • November 2018
  • August 2018
  • June 2018
  • May 2018
  • March 2017
  • August 2016
  • May 2016
  • March 2015
  • February 2015
  • February 2014
  • January 2014
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • May 2013
  • April 2013
  • February 2013
  • December 2012
  • November 2012
  • October 2012
  • August 2012
  • July 2012
  • April 2012
  • March 2012
  • February 2012
  • January 2012
  • November 2011
  • October 2011
  • September 2011
  • August 2011
  • July 2011
  • June 2011
  • May 2011

♣ Categories

  • #testchat
  • Acceptance Criteria
  • Agile
  • Agile Testing Days USA
  • Agile2013
  • Agile2018
  • AgileConnection
  • Approaches
  • Automation
  • Better Software
  • CAST 2011
  • CAST 2012
  • CAST 2013
  • CAST2016
  • Certification
  • Change Agent
  • Coaching
  • Context
  • DeliverAgile2018
  • Design
  • Developer Experience
  • DevNexus2019
  • DevOps
    • Reliability
  • Events
  • Experiences
  • Experiments
  • Exploratory Testing
  • Hackathon
  • ISST
  • ISTQB
  • Lean Coffee
  • Metrics
  • Mob Programming
  • Personas
  • Podcast
  • Protip
  • Publications
  • Retrospective
  • Scrum
  • Skype Test Chat
  • Social media
  • Soft Skills
  • Software Testing Club Atlanta
  • Speaking
  • SpringOne2019
  • STAREast 2011
  • STAREast 2012
  • STARWest 2011
  • STARWest 2013
  • Tea-time With Testers
  • Techwell
  • Test Retreat
  • TestCoachCamp 2012
  • Tester Merit Badges
  • Testing Circus
  • Testing Games
  • Testing Humor
  • Training
  • TWiST
  • Uncategorized
  • Unconference
  • User Experience
  • User Stories
  • Visualization
  • Volunteering
  • Weekend Testing

♣ Meta

  • Log in

Proudly powered by WordPress Theme: Chateau by Ignacio Ricci.