Agile Testing

by Stan Taylor

Not a maker

by Stan on 2015/01/25, no comments

I recently met with a friend of a friend to offer some ideas on a career change. This guy has a BA in English and has worked in retail management for 26 years. It has worn him out and he is looking for something new. When he heard that I work in software development, he initially didn’t imagine I had much to offer him since the only job he knew of was coding. During our talk, I outlined to him all the different roles involved in software development and sales–not just programming, but QA, tech writing, product management, business analysis, sales, sales engineering, partner management, etc.–and I briefly outlined the desired skills sets of each of these roles.

I would say that his is a typical view of software development: it’s all about the coding. When I read Debbie Chachra’s essay, Why I Am Not a Maker, it immediately struck me that what she describes is exactly what goes on with high tech in general: “As Kate Losse has noted, coders get high salary, prestige, and stock options. The people who do community management—on which the success of many tech companies is based—get none of those.” Substitute any of the job roles I mentioned above (and many others I overlooked) for ‘community management’ in that sentence and you get what I mean.

Debbie Chachra’s essay focuses on the ‘caregiving’ behind making, and in many ways, I don’t think that aspect of her thinking applies to QA and the other roles in software development. On the other hand, it’s usually the job of some non-coding member(s) of the software development team–QA, scrum master, program manager, etc.–to make sure that the processes are followed: bugs get tracked through correctly through their lifecycle, the team board accurately reflects work in progress, etc. You could certainly consider these to be caregiving roles. To cite Debbie’s example, the team members who get those tasks are the mothers who make sure that the housecleaning takes place–if not doing all the housecleaning themselves. Interesting.

Update: There’s a very long and thought-provoking MeFi discussion about this essay. For instance, “[P]rogrammers (I’m one of them) tend to over-estimate how hard their primary skills are and under-estimate skills others learn for their roles, as well, as you note, the half of the population that is “naturally” expected to be better at them (also in that half.)” On the one hand, it’s true that being a programmer typically requires more specialized training than many of the ‘supporting’ roles in software development. On the other hand, programmers overestimating the difficulty of their primary skills is a product of an environment where that work has been given preference over other work since it was dominated by males. It’s a self-reinforcing circle.

Perks in the high-tech workplace

by Stan on 2014/06/11, no comments

My friend Rafe Colburn and his Etsy coworker Melissa Santos have written an insightful article on perks in high-tech companies in which they explore a lot of issues that I’ve thought about over the years. Their thesis:

In an industry where culture is often allowed to be defined by perks, managers need to [be] mindful of the fact that for many people, perks underscore the differences between members of the team rather than bringing them together. They also need to think about what a company’s perks indicate to potential employees about the culture.

I’m one of those employees who often feels ambivalent about company perks–especially team-building events, and within that category, especially events that take place outside of work hours. Balancing my responsibilities to my family with my work responsibilities is hard enough when work is confined to defined hours and expectations. An after-hours event often just adds to that delicate balancing act.

Placeholder text goes here

by Stan on 2014/02/24, no comments

content-loremEarly on in my career as a software tester, I learned–the hard way–not to use profanity in my test text when an executive asked me to demo our software to someone outside the company and I had to use my test environment. In the same vein, Rian van der Merwe has collected  instances of placeholder text that have unintentionally  made it into the real world–both in new and old media. It’s great.

Assigning colors to a BIRT stacked bar chart based on series values

by Stan on 2013/04/04, no comments

This has nothing to do with QA, but I’ve been writing a lot of BIRT reports lately; I just solved this problem and wanted to make sure my solution is out there for others who need it.
This is the stacked bar chart that I created:
TestStatusBarChart.png
There are three possible values: PASS, FAIL and NOTRUN, and I wanted to make sure that each value got a specified color: green for PASS, red for FAIL and grey for NOTRUN (not tests showed this value on the chart that I used for this post)
The solution was to select the chart, click on the ‘Script’ tab and enter the code below. The beforeDrawDataPoint function draws the bars. the beforeDrawLegendItem function draws the legend:

/**
* Called before drawing each datapoint graphical representation or marker.
*
* @param dph
* DataPointHints
* @param fill
* Fill
* @param icsc
* IChartScriptContext
*/
function beforeDrawDataPoint( dph, fill, icsc )
{
var Condition = dph.getSeriesDisplayValue();
if(Condition == "PASS") {fill.set(0,153,0);}
if(Condition == "FAIL") {fill.set(255,0,0);}
if(Condition == "NOTRUN") {fill.set(204,204,204);}
}
/**
* Called before drawing the legend item.
*
* @param lerh
* LegendEntryRenderingHints
* @param bounds
* Bounds
* @param icsc
* IChartScriptContext
* @since Version 2.2.0
*/
function beforeDrawLegendItem( lerh, bounds, icsc )
{
var Condition = lerh.getLabel().getCaption().getValue();
if(Condition == "PASS") { lerh.getFill().set(0,153,0);}
if(Condition == "FAIL") { lerh.getFill().set(255,0,0);}
if(Condition == "NOTRUN") { lerh.getFill().set(204,204,204);}
}

Often overlooked test automation challenges

by Stan on 2012/08/08, no comments

The company I work for develops several different products as part of a unified offering. These products need to work with each other and with products from other companies. Each product development team has its own manual QA and automation team, and we have a solutions testing team that ensures interoperability between our products and others. The company has been pretty ‘siloed’–each product’s automation team has worked mostly in isolation from the others.
Until now, the interoperability testing has been all manual, but the manager of that team has embarked on an effort 1.) to get the different automation teams familiar with each other and their work, and 2.) to leverage the automation efforts of the various product teams in the interoperability testing effort.
To that end, we’ve started holding a weekly cross-team automation meeting, with run by the interoperability testing manager with a representative from each product’s automation team. The agenda consists of the following:

  1. Product configuration automation
  2. Test lab usage management (automated check out/in of lab resources
  3. Automation strategy
  4. Test management and reporting

What’s striking is that each product automation team has put in significant effort to address all four of these functions (with a lot of duplicated work!), yet when we think about test automation, we typically only think about #3, the actual automated tests themselves.
Just an observation. When we think about test automation, we need to remember that there are several complex components to it besides the tests themselves.

Clever job-hunting move

by Stan on 2012/08/02, no comments

I can’t say I condone this, but it’s a clever way to see how you stack up against the competition:

After a fruitless job search — endlessly scanning Monster.com and Craigslist and tweaking resumes and cover letters — he grew more curious about his competitors. So he created a fake Craigslist ad for an administrative assistant position and, in one day, received 653 responses from applicants with a wide range of education and experience.

Sneaky. Not ethical. But sneaky.

Important note to recruiters

by Stan on 2012/05/02, no comments

I frequently received requests to connect on LinkedIn from recruiters I do not know. I decline all connection requests from people I don’t know.
If you’re a recruiter and you want to contact me, please either use the ‘send a message’ functionality on LinkedIn or just send me an email.
When I asked a recruiter friend why so many recruiters used connection requests instead of messages, he pointed out that it costs money to send more than a handful of messages per month. If you’re a recruiter, pay the money to get the messages functionality. It doesn’t seem very professional to me to have you misusing LinkedIn functionality because you’re too cheap to pay for the appropriate functionality.
</end of grouchy old man rant>