December 30, 2016

A Facebook Ad for Ministry of Testing - Boston

Subtly was never my strong point...

"Hrm... I wonder what this Facebook ad is trying to tell me?"

Hopefully, this Facebook ad, which will be running for the next seven days, will let me know if people will click on it and possibly share it. This trial run has a small budget of a few bucks a day for the next week, focusing just on people in the immediate Boston and Cambridge area who have "software testing" or "QA" as keywords.

If it seems okay, I'll re-up the ad two days before the Meetup with a bigger budget.

Let's see how this turns out...

Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

Made it to the Best of TechBeacon 2016 for "Switching Careers in QA: From manual testing to automation development"

From Best of TechBeacon 2016: Performance Revs Up (12/30/2016):

"Trends like exploding mobile app use and test automation tools are transforming the role of performance testers and QA staff everywhere. The field continues to offer plenty of opportunities for career growth—for those who know how to adapt and respond to the changes that are happening around the discipline [...]

"Switching careers in QA: From manual testing to automation development
"Some people believe that manual test engineers are an endangered species. If you are a manual tester, and you're looking to break into the testing automation space to stay relevant, here are a few things you need to keep in mind, starting with the fact you’ll be doing a lot of actual coding. T.J. Maher, an automation developer with Adventures in Automation, outlines from first-hand experience just what you can expect when making the switch".
... It's been an amazing year for me professionally, with a lot of ups-and-down in my career.

  • Finally getting settled in as a newly-minted automation developer, publishing an article about the experience, the first article I have ever published. 
  • That job getting up-ended in a management shift, publishing an article about that painful job search, and what I learned from it. 
  • Turning that job-searching article into a thirty-minute talk, the first one I have ever given. I presented it to the Greater Boston QA and Testing Meetup. 
  • When the Greater Boston QA and Testing Meetup rebranded itself as Ministry of Testing - Boston, the founder of the group invited me to be a co-organizer. 

Here is what to expect with Adventures in Automation in 2017:

  • Part 4 and 5 of Testing The-Internet with Geb + Groovy + Spock.
  • An Introduction to Nightwatch.js, a Node.js and JavaScript framework. 
  • Notes and highlights from Ministry of Testing - Boston Meetup events I am organizing.
  • Behind-the-scenes glances as I try to use the skills I picked up doing event planning for the Nerd Fun - Boston Meetup and use them as a new co-organizer for Ministry of Testing - Boston.


Happy Testing, and have a Happy New Year!

-T.J. Maher
Twitter | LinkedIn | GitHub

December 29, 2016

The Ministry of Testing - Boston is looking for a permanent home!

I am happy to say that I have been made the co-organizer of the newly rebranded "Ministry of Testing - Boston" Meetup group, formerly the Greater Boston QA and Testing Meetup, at https://www.meetup.com/ministry-of-testing-boston. We are now under the Ministry of Testing umbrella.

My first task as co-organizer? Try to find Ministry of Testing - Boston a home!

Right now, the group is in the first year of its existence and is still in the nomadic stage. We always need to find a new location from month to month. In spite of this constant switching of locations, we do seem to get a high attendance rate of around 30 - 40 people per Meetup, with over 350 members.  

A friend of mine is checking to see if there is room at Google's Cambridge, MA office for our organization to meet once a month. If there isn't room, I need to find a back-up location!

Leave me a message below, or say hello to me at Twitter at @tjmaher1.

Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

December 22, 2016

Hello, Ministry of Testing: Boston! Goodbye, Greater Boston QA and Testing Meetup

It looks like the Greater Boston QA and Testing Meetup, a software testing group I spoke at a few months ago about How to Pass a Coding Interview as an Automation Developer, has been rebranded!

Conrad Holloman < @hollomancer >, founder of the group, sent our this email yesterday:
Hi, I'm very happy to announce that the Boston QA Meetup is joining Ministry of Testing (http://www.ministryoftesting.com) as a sub-chapter!

The Ministry of Testing aims to change and lead within the software testing world. They are doing this through a strong focus on learning, collaboration and resources. You are part of the story too, and we hope you can join us along the way!
As part of this change:

We are looking at opportunities to host longer-form QA and testing events, and possibly something focused on the New England region!

We will be merging our Slack chat with the global Ministry of Testing community!

Additionally, we are still looking for hosts and speakers for the first quarter of 2017. Contact me if interested!

-Conrad
Go to https://www.meetup.com/ministry-of-testing-boston/ and sign up!

I love the Ministry of Testing! I've been enjoying their testing feeds for years, and I blog irregularly for their Software Testing Club subgroup, at http://www.softwaretestingclub.com/profile/TJMaher­

Hrm... I wonder if that means that TestBash - Boston might be coming to Massachusetts? I wonder if they need any help organizing?



Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

December 15, 2016

This week at work: The hard part of learning Nightwatch.js

This week, at work, I've been attempting to compose a new end-to-end test using libraries that other coders at my workplace have written.

It's a simple test: When you process a patient using Component A, and register them using Component B, in the database you should see status code C.

A + B = C.

Lucky for me, another developer already wrote libraries of Nightwatch.Js tests for Component A and Component B. I am just making logical assumptions on what parts I need and glueing them together, hoping it all works out. Then, I'm using the PostgeSQL library that Node.js provides to get the status code C that I need.

Sometimes, it doesn't all work out.
If something goes wrong, and I need to RTFM, which M should I look at to increase my understanding of how the code works? Where is the code from? Is it from:


Let me tell you, I am having the time of my life trying to figure our how things fit together! :)

My favorite thing has always been attempting to figure things out by burying myself in independent research and taking a hella lot of notes. And more notes equals more blog entries!

When I come up for air in January, after this month's deep dive, expect to see a lot more projects involving Nightwatch.js, an automated testing solution geared towards Node.js projects.

Until then, Happy Testing!

... Wow. I can't believe how happy I am at work, with my new position as a Software Engineer in Test. Great company! Great co-workers! And a really, really great job. Let's hope I can get up to speed quickly.

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

December 3, 2016

#AmIASoftwareEngineerYet?

In other news, at work...

... Of course, I made sure to give Joe Purdy full credit. Thank you for the Yeoman generator!

Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

Hello, Russia?

Well, that's interesting... I just noticed a huge jump in traffic on this blog.

Range: Dec 3, 2016 

Pageviews by Countries

Graph of most popular countries among blog viewers
EntryPageviews
Russia
2391
Japan
193
United States
97
Ukraine
43
India
20
United Kingdom
15
Germany
11
Australia
5
Canada
4
France
4

... How the heck are you all finding this web site? Has someone's bot program run amok? :)

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

December 1, 2016

It's twinkly like a Christmas Tree! Deloitte's diagram of the "Agile Umbrella"

I just can't stop looking at this Agile diagram that Chris Webb, former Directory of Consulting at the Deloitte Consulting Company in Australia, put together.

Chris Webb's Agile Umbrella Diagram. Click on it to zoom in a bit. 


If you want to see the full size image, go to the Deloitte blog, entry, Navigating the Agile Landscape, written by Chris Webb  back in March 7, 2016. In it, he talks about all the different practices and frameworks that fall under what he calls, "The Agile Umbrella".

November 29, 2016

What I am Thankful For...

Two years ago, I thought I was doing quite well, career-wise, not realizing just how precarious my situation really was at my job.

Within four years, I had worked my way up at this past company to acting as a QA Lead, supervising an offshore team of manual testers manually testing mobile applications. The week after a productive meeting with my boss to see how I could work my way to being a QA Manager, this company laid off all but a few manual testers, myself included, since I hadn't coded since grad school, ten years before.

Since then, it's been a mad scramble. A desperate three month job search where I spent a good fifty to sixty hours a week either studying automation development, or prepping for automation development interviews. My research notes became this blog.

When I finally found a company willing to take me on and train me in automation based on my coding portfolio I managed to assemble, I still spent a good fifty to sixty hours a week studying Selenium WebDriver + Java automation development.

Then it was another desperate three month job search when my two years of automation experience didn't live up to the vision of a new manager. It was tough, but I survived.

I've now been at my new job, working with my nose to the grindstone for the past two months, working with REST Assured to test RESTful APIs, Nightwatch.js for our Node.js projects, and trying to teach myself Geb + Groovy + Spock for future Groovy projects, trying not to get swept away by the current like so many of my manual QA co-workers.

Somehow, I managed in just two years, to go from being just a manual tester, to an automation developer,  to a software developer in test. But that is not what I am thankful for...

What I am thankful for, this Thanksgiving season, is my brilliant wife, who has supported me, stood by me, rooted for me, and coached me all throughout this turmoil... Thank you, sweetie!

Happy Testing to all, and to all a Good Night!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

November 17, 2016

Testing The-Internet with Geb + Groovy + Spock: How did Yeoman set up the tests to run in Gradle?

Part 3 of 5. Need to read from the beginning

For the past few weeks, we've been examining in this blog how to build an automation framework with Geb + the Groovy Language + the Spock Framework, something I have been experimenting with in my new job as a Software Engineer in Test.

One of the developers at my workplace putting together a Geb + Groovy project heard about Yeoman, an open-source tooling application sponsored by the Google Chrome Developer Relations team. This series of blog posts have been examining the software design tool.

Yeoman creates the basic scaffolding for your projects, right out of the box. Instead of re-inventing the wheel, a basic template for the project is produced, depending on what Yeoman generator we picked.

We are using Chris Hluchan's Geb Generator. We will be testing against Dave Haeffner's site, The-Internet, at https://the-internet.herokuapp.com/, taking a look at his Login Page.


Examining the Build.Gradle Configuration File 


If you don't wish to install and configure Node.js, update npm, install and configure Yeoman, and install and configure the Geb Generator, I took the source code that was generated, and placed it as-is on my GitHub site.

Here's an original name! "Geb Project Generated By Yo".

We will be kicking off a few of their built in tests, and examine the build.gradle file and surrounding files to see how they are kicked off.

The next blog article we will be starting to look at the tests themselves. For now, we are focusing on...

Setting Up The Build.Gradle File

When we explored setting up a WebDriver development environment a few months ago, we talked about how, instead of using Maven to handle third-party dependencies, such as ChromeDriver we were going to be looking at Gradle.

November 5, 2016

Learn a Programming Language by Contributing to an Open Source Project! One trick to remember if working on an old Maven project.

I just started a new job as a Software Engineer in Test three weeks ago. The main task right now is to try to get to know the product as a whole where our SET team will be writing an automated test framework.

What I Have Been Doing For Work


I've been spending the past few weeks executing huge stack of manual test scripts, asking the QA Engineers for help executing the test steps, getting to know both the system, how the system is being manually tested, and the system's documentation at the same time. I've also been creating onboarding documentation for any other new SET hires that come after me. If being an Software Engineer in Test doesn't work out (heaven forbid!) and every single manual QA job is phased out, I can start my third career in the software industry as a tech writer.

What I haven't been doing yet is coding. The team narrowed down the automation stack to be Geb + Groovy + Spock, so I have been trying to learn that during my nights and weekends with little side projects.

My Ongoing Side Projects: Learn Geb + Groovy + Spock


Side Project #1: Investigating Yeoman


... This might take me another week to finish up.

Side Project #2: Contributing Geb + Groovy Tests to Open Source project

  • Contributing to someone else's open-source automation project. I noticed there are automation examples in Java, Ruby, and sometimes C#... but there aren't any in Geb + Groovy + Spock. I wonder if I could learn that tech stack by helping out? 
... Why this side project? ... 

Why Contributing to an Open Source Project is a Great Learning Tool -- Code Reviews!


As an automation developer, the real learning begins...

... Not when I am researching how to code the first draft of an assignment...
... Not when I am actually writing the code to get the darned thing to compile...
... It happens during the code review...

Imagine writing a research paper. You spend a few days gathering research materials. You sketch out an outline. You spend four or five hours writing a good rough draft, and submit it to the teacher for review... and it is returned to you, covered with annotations and corrections written in red ink. After the first, second and third draft, you find out all about incorrect grammar, poor sentence structure, etc. But through the process you become a better writer.

The same exact process happens when coding. The first time someone reviews your code, you might be getting more lines of comments than there are lines of code! It may be painful to go through, having to re-write everything again and again, but it is helping you up your game.  

I've spent the past two years being paid to contribute to a closed-source automated test framework for an eCommerce platform accessible worldwide. I've made hundreds of contributions to that project and, let me tell you, going through a code review is never is easy. Over time it becomes easier. It is all about trying to meet the team's wants and expectations. Over time, you learn. 

This will be my first time contributing to an open-source project. If you want to learn how to do the same, I have written up instruction on,...

Setting Up an Open Source Project On Your Local Machine 


Let's say you found on GitHub an open-source project looking for contributors, and you want to contribute:

  • Sign up for an account on GitHub. Me? My account is @tjmaher.
  • Are you familiar with the command line interface? If not, install GitHub for Desktop
  • Not familiar with GitHub, repositories, branches, committing changes or pull requests? Follow this Hello World walkthrough that GitHub has created.
  • Not familiar with forking other people's repositories into your own GitHub repository? GitHub has a forking tutorial, too. 
  • Go to the GitHub project and create a fork of their project, copying it to your own account on GitHub. 
  • Go to your local computer. Pick a folder or directory to download the open source project. I created a subfolder called "code" in my Home directory, so on my Windows 10 PC, I download everything into C:\Users\tmaher\code 
  • Clone or Download the project. Set it up to download it using GitHub for Desktop. 
  • Think about what micro-additions or subtractions you want to make the project. Make a new branch for that project. Are you done with that small task? Commit your code for that branch. Want to do another task? Commit that code, too.
  • Done with the contribution? Create a pull request for your branch. It will start the code review process.
  • You will start hearing corrections, both major and minor, from other contributors. Listen to what they are saying, and learn from them. 

So, I Tried Opening The Project In IntelliJ...

I love using IntelliJ as an IDE! It has a free Community Edition, suitable for any Groovy, Gradle, or plain ole Java project. If you want you can download it here. I have the latest version, IntelliJ IDEA version 2016.3.

The project I wanted to contribute to was a few years old, still written using Apache Maven to handle all the dependencies ( Read More). When I opened the project in IntelliJ, and tried to set the project up to recognize the pom.xml file that was handling all the dependencies... I found out that I couldn't! Maven just didn't exist in IntelliJ! I couldn't figure it out! And I couldn't download it as a plugin...

What the heck? Did IntelliJ switch over completely to Gradle?

Oh... wait a minute... I found the answer...

Here is a little Public Service Announcement:



Happy Coding!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

November 2, 2016

(Video: 10/17/2016) "How to Pass a Coding Interview as an Automation Developer" @ Greater Boston QA and Testing Meetup

I was invited to give a talk to the Greater Boston QA and Testing Meetup, based on my recently published TechBeacon article, How to Pass a Coding Interview as an Automation Developer. I've given internal talks about QA and informal training sessions to small groups of fellow co-workers before, but this was was my first public talk in my twenty year software testing career! Thank you Conrad Holloman!


Boston QA Meetup: How to Pass a Coding Interview as an Automation Developer
Speaker: T.J. Maher
Date Given: Monday, October 17, 2016
https://youtu.be/GIrO8PWTfDc

Slides from Presentation:



The slides are slightly fuzzy in the presentation. I altered them slightly and placed them on my account on SlideShare.net/tjmaher1 so you could get a better look at them.


If you really want more information, make sure to read the original article!

Want me to give this talk to your local Boston Meetup? A more polished presentation should be ready by January. Contact me on Twitter, @tjmaher1!

Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

October 26, 2016

Take courses in Java for free! The world of edX and Moocs

Are you a manual tester trying to learn the Java Programming language, but you just can't get it?

Have you tried picking up the programming language from books such as:


You can also take a look at the free Java Tutorials that Oracle provides:

"The Java Tutorials are practical guides for programmers who want to use the Java programming language to create applications. They include hundreds of complete, working examples, and dozens of lessons. Groups of related lessons are organized into 'Learning trails'"
  • Getting Started—"An introduction to Java technology and lessons on installing Java development software and using it to create a simple program."
  • Learning the Java Language—"Lessons describing the essential concepts and features of the Java Programming Language."
  • Essential Java Classes—"Lessons on exceptions, basic input/output, concurrency, regular expressions, and the platform environment."
Need a bit more hand-holding? Have you ever heard of MOOC.org?

According to Wikipedia, "The term MOOC [Massive Open Online Course] was coined in 2008 by Dave Cormier of the University of Prince Edward Island in response to a course called Connectivism and Connective Knowledge (also known as CCK08). CCK08, which was led by George Siemens of Athabasca University and Stephen Downes of the National Research Council, consisted of 25 tuition-paying students in Extended Education at the University of Manitoba, as well as over 2200 online students from the general public who paid nothing [...]

"Other cMOOCs were then developed; for example, Jim Groom from The University of Mary Washington and Michael Branson Smith of York College, City University of New York hosted MOOCs through several universities starting with 2011's 'Digital Storytelling' (ds106) MOOC. These early MOOCs did not rely on posted resources, learning management systems and video lectures, instead using structures that mix the learning management system with more open web resources.[MOOCs from private, non-profit institutions emphasized prominent faculty members and expanded existing distance learning offerings (e.g., podcasts) into free and open online courses".

"Alongside the development of these open courses, other E-learning platforms emerged - such as Khan Academy, Peer-to-Peer University (P2PU), Udemy and ALISON - which are viewed as similar to MOOCs and work outside the university system or emphasize individual self-paced lessons".

I just received this email from edX, Harvard and MIT's Mooc. There are now three new Java Courses available:

Don't want to wait? There are on edX a lot of Self Paced Introductory courses on Java already!

Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

October 24, 2016

Slides from last week's Boston QA and Test Meetup, Coding Interviews for Automation Developers


Last week, I gave my first talk to the Greater Boston QA and Testing Meetup.

That was fun, but nervewracking!

 If you feel like it, you can take a look at my slides. I reformatted the slides for SlideShare, adding a few anecdotes I told during the presentation I hadn't captured.


How to pass a coding interview as an automation developer talk - Oct 17 2016 from Thomas F. "T.J." Maher Jr.


Thank you, so much, Conrad Hollomon for inviting me!

T.J. Maher @ Pixability - Coding Interviews for Automation Developers

Are you becoming Senior in your field?

Start writing articles about what Software Quality Assurance and software testing means to you!

Try to see if you can come up with your own 15 to 30 minute talk at a local Meetup.

Support your local software testing community!

Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

October 19, 2016

Testing The-Internet with Geb + Groovy + Spock: Installing Yeoman and the Geb Generator

Part 2 of 5. Need to read from the beginning

To get more familiar with the Geb Framework + Groovy Language + Spock Framework, I was planning on figuring out how to automate Dave Haeffner's Login page on his test site, The-Internet.

A few days ago, I talked a bit about scaffolding a project, laying out the basic groundwork, and the history of Yeoman.io. With this blog post, we will walk a user through downloading and installing Yeoman through the Node Package Manager.

The installation will be done on the command line: the Mac's Terminal or the Windows Command Prompt.


We will be using a Geb Generator created by Chris Hluchan ( LinkedIn ), a Software Engineer at Google, formerly at Oracle.

You can take a look at the generator’s source code on GitHub at https://github.com/chluchan/generator-geb#readme

We will be borrowing heavily from "Let's Scaffold a Web App" written by Mehdy Dara ( Github: zckers ).

Want to see what the boilerplate source code the Geb generator produces? I have uploaded it to my GitHub site at https://github.com/tjmaher/geb_project_generated_by_yo .

The next few blog posts, we will be comparing that to the official Geb + Groovy + Spock Framework documentation to figure out how it works.

First, we need to figure out how to install everything.

October 18, 2016

"Dear TJ: How can one become an expert in automation?"

"Dear T.J., 

"I am regular follower of your blog and it has really, really, really awesome info for testers who wants to move towards automation.

"I would like to know a few things :
  1. "Sometimes you talk about Selenium WebDriver with Java
  2. "Sometimes you talk about about Groovy with Rest WebServices
  3. "Sometimes you speak about SDET roles with algorithms
  4. "Sometimes you talk about protractor with java script
"I just wanted to understand... it is really difficult to get expertise on all these things.

"Please guide me how to understand this?

"Thanks & Regards
"S.J."

Dear S.J.,

It is VERY difficult for me to get experience in all of these things.

I am not an expert. I may become an expert if I try real hard for the next two or three years, but by then, a brand-new automation toolset will come out, and I will be a newbie, a novice, just like before.

I am still not used to programming. I have only been doing it on-the-job for two years. There is so much to learn! I always feel like I am about to drown in all the information that I need to know. Somehow, I have managed to keep my head above water, and I am very thankful for that.

The reason why my blog jumps from topic to topic is because my job does, too. A new manager, a new job, a new direction leads to a new automated toolset to learn. Coming up with sample code for my blog is how I scramble to catch up.

I have to tell you, I have never had more fun in my twenty year career as I am having right now in my adventure in automation!

I hope you are having fun, too! If we all keep at it enough, one day, we all will become experts!

As always, Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

Testing The-Internet with Geb + Groovy + Spock: About Yeoman, scaffolding, and other build tools

Have you ever needed to set up a brand-new project but were not sure where to start? I am like that right now!

For the past week, I have been trying to figure out how I wanted to set up the file and folder structure for a new Geb + Groovy + Gradle + Spock project. I was going to go back to Dave Haeffner's test site, The-Internet ( link ) and take a look at writing a test for his login page:

  • Geb (pronounced "jeb") is a mash-up of jQuery, Selenium WebDriver, with the Page Object Model, Reporting, and taking Snapshots built in. 
  • Groovy is a scripting language language that I covered before in my blog, specifically when talking about using Gradle for build.gradle configurations. 
  • Gradle does a lot more than handle installing third-party dependencies such as Chromedriver when you want to spin up a new Chrome browser on your local machine. With Gradle, you can set up tests to be kicked off on the command line, just waiting to be fed into a continuous integration environment such as Jenkins.  
  • The Spock Framework follows a Given / Then / When / Expect framework found in Cucumber's Gherkin language format that is usually paired with Ruby
But how do I set all these tools up if I want to test ? How to get them all to work together?

Should I just repurpose Sauce Labs Test Framework, Groovy-Geb-Spock-Selenium at https://github.com/saucelabs-sample-test-frameworks/Groovy-Geb-Spock-Selenium?

A new co-worker of mine referred me to a tool he had heard of at a previous job that may help: Yeoman.io.




In the next blog article, we will be borrowing heavily from "Let's Scaffold a Web App" written by Mehdy Dara ( Github: zckers ) to walk through setting up your Mac or PC for Yeoman. We will also walk through installing a Geb Generator for Yeoman created by Chris Hluchan ( LinkedIn ), a Software Engineer at Google, formerly at Oracle. This will set up the project's scaffolding.

Later articles will talk about about:

  • Diving into the scaffolding code that has been generated, figuring out how it works
  • How to set up the Gradle configuration file to be able to run tests in parallel
  • Customizing the scaffolding to work with a login page
  • How Geb works with Selenium WebDriver: entering text, clicking buttons, and capturing web elements in page objects. 
This blog article will talk a bit about the history of the Yeoman tool. 


October 17, 2016

Stop by Tonight! 10/17/2016: T.J. Maher gives a talk in Boston, "How to Pass a Coding Interview as an Automation Developer".

Tonight, I am giving a talk at the Greater Boston QA and Testing Meetup. I've been rehearsing all weekend, and I still am not "off-book" yet. Ugh! I hate public speaking, but it is something I really, really need to learn how to do.
I'll probably just be reading off my speaker notes.

Feel free to view the slides on my SlideShare account at http://www.slideshare.net/tjmaher1.

Unfortunately, SlideShare doesn't do animations, so the slides will look a little crowded.

If I have three bullet points, I usually reveal them one-by-one with animations... yeah, that doesn't work on SlideShare.

Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

October 13, 2016

New job, new title: Software Engineer in Test at Good Start Genetics

I just started a new job on Monday at Good Start Genetics.

Along with the new job came a new title: Software Engineer in Test.

It's the first time in twenty years that I do not have the words "QA" in the job title. It's a brave new world.

The funny part is that it was supposed to be another Senior QA Engineer position. By my personal timetable, I didn't think I would be able to make that leap for another three years.

It was the coding test that did it.

For the past two years, I have been coming up with random Programming Projects, trying to reinforce what I have been learning on the job, doing independent research, trying to put the tools and technology I was learning in the larger context of the software testing industry.

The weekend before, I was playing around with Protractor, trying to introduce myself to the Node.js / JavaScript automation ecosystem. When it came time to figure out how to add a few end-to-end browser tests to an already running Nightwatch.js project, I found out there were a lot of similarities to what I had done for the previous week's take-home coding test.

Thank you for all the friends and family -- especially my wife -- who supported me during the last two months of intense job searching.

Thanks goes out to Fitbit for setting me out on the path to being an automation developer. Thank you, James Moore for bringing me onto your team two years ago, setting up a month's worth of study sessions in Selenium WebDriver and Java. And thank you, Lark and Joon for coaching and mentoring me. And thank you, Steve, for giving me a two month head start to job search.

And to all the manual testers who are trying to switch to automated testing...

Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

October 6, 2016

Beginnings of a new slide deck: "How to pass a coding test as an automation developer"

I haven't had this much fun drafting this new slide deck since my student job as a Graphic Artist / Desktop Publisher back at Bridgewater State's Davis Alumni Center!

Back then I loved helping organize events, plan promotional campaigns, draft flyers, create T-Shirts and logos, plaster flyers I designed all around campus, and volunteer to set up chairs and join the student ushers.

I never spoke at these events. I may have been a Computer Science Major / Theater Minor, but when I was on-stage, I was safely in the middle of the chorus as a performer, or backstage where my crippling stage-fright wouldn't kick in. I may have been able to goof around on stage in cute community theater productions in elementary school and junior high, but when I was in high-school competing for parts with budding professionals, I knew where my true talents lie.

Oddly enough, I am pretty comfortable giving end-of-sprint product demos, no matter how many people are in the room. Let me have my cue-cards so I can keep the talk tight and on-track, and I am fine. Oh, I might need to spend a few years working through Toastmasters before I am anywhere near TED Talk standards.

My slide deck should be finished in the next day or two. I have a rough script for the 30 minute talk that I will go over twenty or thirty times in the next week. I know the material, first living it and then organizing the information to create the article on which the talk is based. I think I will do fine...

What do you think of the draft of the cover page and the title page? Leave your comments below!

Draft: Cover Page

Draft: About the Speaker page

... This Speaker Page was for people who are reading along at home, after the fact on Slideshare at http://www.slideshare.net/tjmaher1.

I was going to upload the slides to my Slideshare account before the lecture.

  • Mention to the audience when I reach this page that these slides are stored on Slideshare.net/tjmaher1. They can enjoy the lecture and don't need to take notes if they don't wish to. 

Hrm... I think "About the Speaker" and "About the Talk" should go on two separate pages. Thank you Gustavo Adolfo Rivera Yeomans!



Thank you very much!

Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

October 5, 2016

New speaking engagement: Monday, October 17, 2016: "How to Pass a Coding Interview as an Automation Developer"

I have a new speaking engagement coming up on Monday, October 17th, 2016 at a local QA Meetup here in Boston.

I am in the process of condensing my latest TechBeacon article: "How to Pass a Coding Interview As An Automation Developer" into a 30 minute talk.


This is fun! Hectic, but fun!

Thank you, Conrad Holloman ( @hollomancer ) for inviting me!



Until next time, Happy Testing!

-T.J. Maher
Twitter | LinkedIn | GitHub

// Sr. QA Engineer, Software Engineer in Test, Software Tester since 1996.
// Contributing Writer for TechBeacon.
// "Looking to move away from manual QA? Follow Adventures in Automation on Facebook!"

October 2, 2016

Learning JavaScript

I want to become fluent in JavaScript.

Not that I am fluent in Java yet, mind you. I found out the hard way that knowing how to use Selenium WebDriver with Java and being able to sketch out Java code on a whiteboard are two different things. But I have been getting better.

Why tackle JavaScript before solidifying what a Software Development Engineer in Test working with Java might need to learn?

Web application development is shifting from heavy-weight or "high ceremony" languages like Java, to Node.js style JavaScript frameworks. Automation development is racing to catch up.


Back when I spent my 2014 Christmas break taking Alan Richardson's famous online course on Selenium WebDriver with Java and dreaming about switching from being a manual to an automated tester, the rule of thumb was to pair the automated test framework (what used to be called a "test harness" ten years ago) with the web application.

September 21, 2016

How to pass a coding interview as an automation developer!

Teaser for my new TechBeacon article: How to pass a coding interview as an automation developer!

Are you an automation developer looking for a new position? Let's simulate the experience of a coding interview:

  1. Open up a browser and Google the keyword "stopwatch."
  2. Take out a blank piece of paper and a pen.
  3. Press the "Start Button" on the stopwatch web app, then attempt to answer the following question:
"Using your favorite programming language: Write a method that checks to see if a given word is a palindrome. Example palindromes: 'noon' and 'racecar'."
Ready? ... GO!

Yes. Seriously. Attempt to answer the question. I'll wait.

Try this exercise for at least a good 60 seconds, even if you think you can't do it. Don't give up!

... Time's up! How well did you do?

If you had trouble with this question, if your paper is mostly or completely blank, if your forehead is covered in flop sweat, or if your first thought was, "Why are you forcing me to do this? I'm an automation developer, not a coder!" this article is for you.

What is an automation developer?



A software quality assurance engineer is an end-user advocate, crafting the software testing process so it ensures quality—meeting and exceeding the wants and needs of the stakeholders on the project.

One of a QA engineer's responsibilities is software testing, validating whether the new features added to a web or mobile application meet the designated requirements and design specifications.

September 15, 2016

What is Your Strategy for Writing an Automated Test Framework?

I have been giving this particular question a lot of thought in the past couple of months. The question is:
"What is Your Strategy for Writing an Automated Test Framework?" 
There are a lot of moving parts when it comes to assembling an automated test language:

A way to write and execute the tests, such as TestNG or JUnit in a Selenium WebDriver / Java based framework. A way to display to display what passed and failed. Detailed logging telling what the test is actually doing. A way to rerun failing tests. A way to run tests in a continuous fashion, whether once a day, or once an hour, or anywhere it between. A way to spin up multiple browsers and platforms...

You can easily spend a good six months putting the perfect framework in place and not have time to create a single test... and that is the problem.

How can you tell if your automation framework is fitting the needs of the people who are using it: The manual testers trying to figure out what tests are covered with the automation regression test suite, the developers who need to see what the automation finds, the QA Manager who is attempting to assess what the tests are covered by automation and where manual testers should fill in the gaps?

If you are trying to build a testing framework that fits the needs of so many stakeholders... why not use the same process that you are using to construct the web app you are building: Use Agile.

Make it an iterative process:

  • Sprint 1: Bad code. Good tests. Run from local browser. No CI/ CD.
  • Sprint 2: Good code. Good tests. Run from local Selenium Grid. Investigate setting up CI/CD locally.
  • Sprint 3: Better code. Better tests. Good building blocks for tests assembled? More tests, faster! Work with DevOps to get Selenium Grid and Jenkins server remotely.

... What is your strategy for building an Automation Test Framework? Leave comments below!

Happy Testing!

-T.J. Maher
Sr. QA Engineer

// Software QA Engineer since 1996.
// Working with Selenium WebDriver since 2014.
// Follow Adventures in Automation and Like us on Facebook!