Software Testing

The blurry line between test and development

One of the themes I talked about during my presentation in Wellington was the blurry line between test and development in a distributed environment like Automattic.

I was recently having trouble with a complex method in our e2e test page objects, so I used my skills as a developer and wrote a change to our user interface which adds a data attribute to the HTML element.

This meant our page object method immediately went from this:

showOnlyFreeThemes() {
	const self = this;
	self.driver.getCurrentUrl().then( ( url ) => {
		if ( url.indexOf( '/themes/free' ) > -1 ) {
			return true;
		if ( url.indexOf( '/themes/premium' ) > -1 ) {
			const newUrl = url.replace( '/themes/premium', '/themes/free' );
			return self.driver.get( newUrl );
		if ( url.indexOf( '/themes' ) > -1 ) {				const newUrl = url.replace( '/themes', '/themes/free' );
			return self.driver.get( newUrl );
		throw new Error( `Could not determine the themes URL to show only free themes. Current URL is '${url}'` );
	} );
	return this.waitUntilThemesLoaded();

To this:

showOnlyFreeThemes() {
	driverHelper.clickWhenClickable( this.driver, by.css( 'a[data-e2e-value="free"]' ) );
	return this.waitUntilThemesLoaded();

It’s obvious which code I prefer to maintain 😉

I’m a big Scott Adams fan, and his suggestion in his rather excellent book How to Fail at Almost Everything and Still Win Big is that you can be more successful it you’re merely good, not extraordinary, at more than one skill.

Good + Good > Excellent

“Successwise, you’re better off being good at two complimentary skills than being excellent at one.”

Applying this to software testing, successwise I believe you’re better off being a good tester and a good developer, over being an excellent tester with limited to no development skills.

So as testers, we don’t need to be getting better and better at testing, we need to be getting good at development as well.

8 replies on “The blurry line between test and development”

Good post. I’d extend that to more than just (basic) development. Having knowledge in any of the areas of database, operations, IT, DevOps, tech/full stack, data analytics, technical writing/editing helps as well.

I think that for a long time we’ve all been taught that “jack of all trades – master of none” was something that you shouldn’t push for because you should instead be focused on a highly specific skillset. In today’s digital world though where we look at roles that are blended (such as software testing) the ability to understand something and make a change for the better based on the knowledge you have of that other subject is paramount. Good testers do understand good software development and, likewise, a good developer should understand and be proficient at testing. Thanks for the post – subbed for new posts too!

Thanks for your comment.

I agree that specialization has been more valued at some point but having general skills is really valuable. I think the key is to be good at a lot of things, not just mediocre.

Leave a Reply

Your email address will not be published. Required fields are marked *