April 19, 2019

Long time no see!

Long time no see! How have you been?

I've been good. My nine-month old son is utterly adorable. My wife and I just love getting on the floor and playing with him. He's now crawling around so fast, we can barely keep up with him! He's also standing, pulling himself up on anything he can get a hold off. Kitchen cabinets. Walls. Shelving units. His Dad's hair. His Dad's ear. And somehow he is sprouting a third and fourth tooth!

Work has been amazing! I cannot believe how supportive everyone has been for this new father! Since we last spoke, I am on a new development team, focused more on the back-end, testing Threat Stack's many microservices that run the SecOps product.

Last year, I was creating a UI Automation framework from scratch, using Capybara + Ruby as a wrapper for Selenium WebDriver, and ThoughtWorks Gauge as a test framework.

To deepen my knowledge of Capybara and Gauge, I created a few demo projects:

Last September, I even volunteered writing a chapter of a software testing book "How to Gauge What Your Tests Are Doing" for Eran Kinsbruner's Continuous Testing for DevOps Professionals.

This year? I wrote an Introduction to Capybara course! It took a few months, and a lot of sleepless nights, but it was worth it. It is still being finished up. Watch this space. More details to come! 


Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

February 8, 2019

January 31, 2019

Four Years of Adventures in Automation!

When I started this blog, it was before I ever found my first automation development position. This blog was a way for me to keep up the good fight, journaling my experience.

Four years and 321 blog posts later, I have been on teams building testing frameworks in Selenium WebDriver + Java, NightwatchJS + NodeJS,  Capybara + Ruby, and now ScalaTest and Scala. The Programming Projects section of this site captures my experiments with many others.

This blog acted as a springboard for me to start publishing articles, contributing to software testing books, and giving talks at online conferences. You can read more about it in the Media section of this blog.

I don't get as much time to write on this blog as I used to. The main reason?

T.J. Maher and his son, Tommy.
... After work, I seem to be otherwise occupied in baby giggles, baby cuddles, and baby snuggles.

I wanted to thank you, dear reader, for all your help. This blog has been a magnificent conversation started with many a hero in the software testing field. Thank you so much, Alan Richardson, Bas Dijkstra, Jim Hazan, Matt Hutchinson - Testing Curator, Joe Colantonio, Lisa Crispin, and most importantly Angie Jones.

So far, in four years this blog has received 730,089 pageviews, with 70% of the visitors going "Software Testing? Automation? The hell?? This isn't what I Googled!" and promptly going back to wherever they came from.

If you want to drop a line to say hello, I am on Twitter, and I am always online!

Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

December 21, 2018

Basic Capybara-Gauge: Review the Ruby code with Rubocop

This is the seventh part of a series of blog posts. Care to go back to the beginning

Tinkering with Ruby only for the past year, Rubocop, a "Ruby static code analyzer and formatter, based on the community Ruby style guide" according to their Github site is both a blessing and a curse for someone new to the language. It is blessing that it is so detailed with output. The curse is that if you are new, it is going to take a lot of random Googling to figure out what all the errors thrown actual mean!

There is a lot of content in the Ruby Style Guide...

What is the Ruby Style Guide?

From the Ruby Style Guide README: "This Ruby style guide recommends best practices so that real-world Ruby programmers can write code that can be maintained by other real-world Ruby programmers. A style guide that reflects real-world usage gets used, while a style guide that holds to an ideal that has been rejected by the people it is supposed to help risks not getting used at all—no matter how good it is. [...]

"There are some areas in which there is no clear consensus in the Ruby community regarding a particular style (like string literal quoting, spacing inside hash literals, dot position in multi-line method chaining, etc.). In such scenarios all popular styles are acknowledged and it's up to you to pick one and apply it consistently".


Basic Capybara-Gauge: Add Chrome and ChromeDriver logging capabilities

This is the sixth part of a series of blog posts. Care to go back to the beginning

Want to view JavaScript errors in Chrome? Or see if your Selenium WebDriver instance is throwing any errors? Check out the Logging Preference Capabilities from the Chromium project.

With this article, we will demonstrate how to get these logs set up in your Capybara-Ruby project, and what to add in the spec_helper.rb file we created.

Basic Capybara-Gauge: Setting Up Specs and Step Implementations

This is the fifth part of a series of blog posts. Care to go back to the beginning

So far, we have written test specifications to test Dave Haeffner's The-Internet, and we have set up the Gauge-Ruby environment. We managed to get Chrome to run a simple Capybara test, and figured out how to make the test run in Headless Chrome. Our test we created last time...

specs/Navigation/Navigation.spec
# Navigation: Go to The-Internet Login Page

## NAVIGATION: Visit The-Internet
* LOGIN: Visit the Login Page
* LOGIN: Verify the heading is "Login Page"

... For this entry, we will be building upon that, figuring out how to get our Capybara-Gauge framework to execute the following:

Authorization: Validate logging into and out of The-Internet
  • Scenario #1: Authorization: Successfully log into and out of the secure area 
  • Scenario #2: Authorization: Verify alert error is shown when entering a blank user name and password.

December 20, 2018

Basic Capybara-Gauge: Set Up Headless Chrome

This is the fourth part of a series of blog posts. Care to go back to the beginning

We've come up with test specs for Dave Haeffner's The-Internet. We've set up a Ruby environment to run the tests, and configured Chrome to open the Login page.

With this entry, we will be activating Chrome in Headless Mode, i.e. running Chrome but without a visual interface, allowing the tests to run faster.

About Headless Chrome


According to Eric Bidelman's article, Getting Started with Headless Chrome, the new option of running Chrome in Headless mode started with Google Chrome version 59, released in May 2017.

Before, you had to use something such as PhantomJS to emulate the Chrome browser if you wanted to run Chrome in a place where the processing power to bring up a visual window would be a waste, such as running it with an automated test script running in a continuous integration environment. Now, it is built right in.

December 19, 2018

Basic Capybara-Gauge: Setting Up Capybara to Open a Chrome Browser

This is the third part of a series of blog posts. Care to go back to the beginning

So far, we have written test specifications to test Dave Haeffner's The-Internet, and we have set up the Gauge-Ruby environment.

Now, we need to set Capybara up to be integrated with the Gauge test framework. 

December 18, 2018

Basic Capybara-Gauge: Setup Ruby Environments for The-Internet

This is the second part of a series of blog posts. Care to go back to the beginning

With the last entry, we analyzed the App Under Test, Dave Haeffner's The-Internet and came up with some test specifications. With this entry, we will be setting up the Ruby environment that will be running the Capybara-Gauge tests.

Although I am developing this project on my Macbook with this example, it is possible to install Ruby, Gauge on a Windows Machine.  See my article, Intro to setting up a BDD framework with VS Code + Gauge + Ruby.

December 16, 2018

Video Talk: How Software Testers Can Work With Developers

Joe Colantonio, creator of the absolutely awesome software testing podcast TestTalks.com, started in an entire series of Guild Conferences: The Automation Guild, the Testing Guild, and the AI Guild.

Back in January 2018 I was invited to speak as part of the Automation Guild 2018. I gave a talk How to Pass Coding Interview as an Automation Engineer.

I was invited again to speak for Joe's Testing Guild in June 2018. Although automation is all the rage, sucking up most of the oxygen out of any conversation about testing, I decided to give a talk getting back to basics:

How Software Testers Can Work With Developers
June 20, 2018
https://youtu.be/m3nenJ-hAOM

"T.J. Maher has been a software tester for over twenty years since before the concept of Agile software development existed. He believes the relationship between developers and testers should not be one of artist and art critic. Instead, it should be one of a writer and a copyeditor, each working together to create a quality product. T.J. will be sharing his experiences working with developers pre-Agile, working with them on Agile teams, and his insight gained by shifting to automation development".
Enjoy!

And, as always, Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

December 15, 2018

Basic Capybara-Gauge: Analyzing The-Internet

Basic Capybara-Gauge: Analyzing The-Internet


For the past year, my job at work has been to create an automation framework that monitors daily our web-based application, putting it through its paces. This project will be showcasing tools and technologies used to compose the framework, but most importantly, the thought process analyzing the site to determine what to test.

Our application under test for this project will be an old favorite of mine: The-Internet, created by Dave Haeffner, author of the SeleniumGuidebook.com -- which comes in C#, Java, JavaScript, Python, and Ruby editions -- and the very helpful blog ElementalSelenium.com.

The tools we will be using:
  • ThoughtWorks Gauge, to set up the tests in a human readable fashion
  • Capybara, to handle interaction between the tests and the browser
  • Ruby, the programming language of the framework
  • Bundler, to help manage Ruby's gem files


December 11, 2018

What software design principles do you use writing UI automation frameworks? Do you use SOLID?

When crafting automation frameworks, do you use SOLID software design principles in your work? If so, could you provide some examples?  

Ever since I've been tasked to create a Capybara + Ruby UI automation framework, I've been reading  books such as Robert "Uncle Bob" C. Martin's Clean Architecture: A Craftman's Guide to Software Structure and Design (2018) and his Agile Software Development, Principles, Patterns, and Practices (2002), trying to glean some insight on how to improve what I am doing.

The SOLID object oriented design principles, a mnemonic created by Michael Feathers based on principles Uncle Bob had collected are a bit beyond me at the moment. Attempting to study about the Single responsibility principle, Open/closed principle, Liskov substitution principle, Interface segregation principle and the Dependency inversion principle, trying to see how I can apply them is giving me a headache.

I fully recommend Angie Jones' webinar, Applying the Pillars of Object Oriented Frameworks to Test Automation for anyone who needs a refresher on Encapsulation, Inheritance, Polymorphic and Abstraction. I wish there was something like this for SOLID design principles!

Here are some of the principles I follow when writing automation frameworks:

DRY
  • Don't Repeat Yourself.  Instead of copying-and-pasting code, I factor out commonly used code snippets, placing the block of code into a library I can then reuse. 

YAGNI
  • You Ain't Going To Need It. Instead of plotting out every single selector on a page that locates a web element in a user-interface, I focus on just what I need for the current two week sprint. Every single time I try to plan ahead, priorities change, shift, reshape, and by the time I finally get back to the prepwork, everything has changed.

Abstraction
  • If there is a Login screen, I create a Login page object, which stores all the locators that interact with the web elements such as the username & password textbox, and the Login button. It also would have a LOGIN method where a test could pass in a username and password and be logged into the System Under Test.

Encapsulation
  • Within Page Objects, I declare public methods that then interact with the private variables storing the selectors for the web elements on the page. 

Inheritance
  • Are there commonly used elements on the page? I create a Base Page Object which contain commonly used methods that other pages can inherit.
These principles? I find them easy to understand and use. SOLID Principles? Not so much.

Any help that you could give would be much appreciated. I will craft a response blog post from the answers I receive. 

Oh, and don't get me started on how lost I am about the Gang of Four's Design Patterns: Elements of Reusable Object-Oriented Software (1994)!



Happy Testing?

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

November 28, 2018

Tomorrow, November 29, 2018: Angie Jones gives a sneak peek on Test Automation University

Angie Jones will be giving a sneak peek at her latest project, Test Automation University!

Register at https://go.applitools.com/181129-Test-Automation-U-Unveiled.html

"Test Automation University is open for enrollment! This free, community-driven educational program identifies, aggregates, and amplifies strategies and techniques helping test automation teams succeed more often. Led by Applitools newcomer Angie Jones, ‘Test Automation U’ will be a vital tool helping people along their path to test automation success.

"In this live session, Angie will unveil the project, how it works, and outline courses from experts like Dave Haeffner, Jonathan Lipps, Amber Race, Joe Colantonio, and Elisabeth Hocke, just to name a few. Angie will also share a sneak peek into her first 7-chapter course, titled "Setting the Foundation for Successful Test Automation", including chapters:
  • "How to Design an Automation Strategy
  • "Future-proofing your Test Automation Efforts
  • "Quantifying and Sharing the Value of Test Automation
  • "And more..."
Happy Testing! And make sure to sign up for Angie Jones' newsletter.

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

November 27, 2018

Tomorrow, November 28, 2018: Webinar with Lisa Crispin: Modeling Your Test Automation Strategy

Tomorrow, November 28th, 2018, Lisa Crispin, from AgileTester.ca, will be giving a webinar on modelling an automation strategy, brought to you by Mabl, a sponsor of the Meetup I run, the Ministry of Testing - Boston.

"Test automation has been a controversial subject for decades. In this new age of continuous delivery, it’s safe to say that most teams will not succeed with frequent delivery to production at a sustainable pace without automating at least some significant part of their regression testing, as well as other types of testing such as performance and reliability. In this three part webinar, we’ll explore how your team can use visual models to formulate and implement a test automation strategy that will achieve your goals.

"In Part I, we will look at why teams struggle to get traction on test automation, and how using a visual model can help them get past the painful parts of an automation journey. We’ll start with the classic test automation pyramid from Mike Cohn, and explore some of the interesting variations that have grown out of it".

Register Here: https://www.mabl.com/blog/webinar-modeling-your-test-automation-strategy-exploring-the-pyramids




Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

November 7, 2018

Jason Ioannides, API Testing: From Entry Level to a PhD in 40 mins

What an amazing webinar! Today I watched an Association of Software Testing (AST), API Testing: From Entry Level to a PhD in 40 mins with Jason Ioannides. With a name like that, I expected to get a lot of information, but not the level that I actually received!

About the Webinar

From the Webinar Site:

"Have you seen a recent job posting for a Tester or QA Engineer? The majority of job descriptions have some requirement for API Testing experience. That’s how important and in-demand the skills are for testing (let alone automating) an API. What do you do if this is all new to you? What about if you have some experience but are looking to level up? Look no further.

"Jason Ioannides from API Fortress will quickly walk through the basics of what an API is, and then dive into what parts of an API can break, some real world examples, and a list of good practices to add to your checklist. This talk is for everyone from beginners to the more advanced user of Postman/SoapUI/REST-Assured". - API Testing

API Testing: From Entry Level to a PhD in 40mins

https://youtu.be/KfQ95yLi58Y


November 3, 2018

MOT Boston - Matt Wynne Talks About How To Fail at BDD - Nov 1 2018

Thursday, November 1st, 2018 Matt Wynne of Cucumber.io spoke to the Ministry of Testing - Boston while he was it town teaching his BDD Kickstarter class at SmartBear Software.

Watch the YouTube streaming video below:

Bring on the BDD @ SmartBear Software
https://youtu.be/JyZO-GnpYyI

Want to see other MOT Meetups near you? Check this out!


October 23, 2018

MOT Boston - Lisa Crispin hosts testing webinar in DevOps, Wed. Oct. 24th @ 6:00 pm EST

Lisa Crispin, the newest event organizer of the Ministry of Testing - Boston Meetup, is putting together her first Meetup event -- an Ask Us Anything about testing in DevOps!

Can't make it to Boston? Register for the Zoom webinar! It will be held on Wednesday October 24, 6:00 pm EST.

Register now!
"Join Lisa, along with John Kinnebrew, Tamara Yu and Geoff Cooney from the mabl engineering team for a fun Ask Me Anything session. Bring your questions about anything to do with DevTestOps, and the vital role testers and testing play to give teams confidence to release frequently to production. We’ll share our experiences, and if we don’t have the answers we’ll give you recommendations for where you might find those answers. We also welcome questions about how AI and machine learning technology can help with continuous delivery and testing.

"Lisa Crispin is a testing advocate with mabl. With Janet Gregory, she co-wrote More Agile Testing: Learning Journeys for the Whole Team (2014), Agile Testing: A Practical Guide for Testers and Agile Teams (2009), the LiveLessons “Agile Testing Essentials” video course, and “The Whole Team Approach to Agile Testing” 3-day training course. Lisa was voted by her peers as the Most Influential Agile Testing Professional Person at Agile Testing Days in 2012".

Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

October 20, 2018

September 26, 2018

Video Talk: How to Pass a Coding Interview as an Automation Developer

I gave my first talk, ever, outside of the local software testing Meetup group I run, back in January 2018, as part of the Automation Guild, basing it on a TechBeacon article I wrote when I was looking for new positions in Boston in the Summer of 2016.

Enjoy!

How to Pass a Coding Interview as an Automation Developer
https://youtu.be/fgT3Q9vJ74s

Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

September 22, 2018

Excerpt: How to Gauge What Your Tests Are Doing

Excerpted from Continuous Testing for DevOps Professionals (2018), featuring stories from over twenty software testers. Order your copy now!

How to Gauge What Your Tests Are Doing


Introduction

Every software development team struggles with answering two questions:
  • How can the entire team, from business analysts to developers to testers, determine how your product should behave? 
  • How can you gauge how your software product is truly behaving? 
Dan North, as an answer to those questions, came up with the concept of Behavior Driven Development (BDD). Phrasing the Testing part of Test Driven Development (TDD) as a Behavior, it transformed BDD from a testing tool into a communication tool.

With BDD, the entire team as a whole can brainstorm together on how the product should (and should not) work. By breaking down behaviors into small, simple, and understandable sentences, the documentation being created can be used as a product specification, as a blueprint developers and testers can use and as acceptance criteria the business analysts can evaluate.

September 10, 2018

Continuous Testing for DevOps Professionals - Launch date September 12!

September 12th, Continuous Testing for DevOps Professionals, the first book I have ever contributed to, will be launching!

"The Continuous Testing for DevOps Professionals book, is a definitive guide for DevOps teams covering practices required to excel in implementing and sustaining continuous testing (CT) in each step of the DevOps pipeline. The book was developed in collaboration with industry experts from the DevOps domain, that includes CloudBees, Tricentis, Testim.IO, Test.AI, Perfecto, and many more.

"The book addresses all the DevOps practitioners including software developers, testers, operation managers, and IT/Business executives.

"[...] All profits from this book will be donated to code.org to support kids that wish to learn programming".

Find more information here!

What a fun project! I am thrilled to have been asked to contribute.

Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

July 14, 2018

Blogging about software testing has been temporarily interrupted on account of baby related cuteness

Here, I wanted to start a new software testing project for this blog...


Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

July 12, 2018

Release Date of Project Tiny Human: July 6, 2018 -- Welcome to the World, Tommy!

Project Tiny Human is a success! 

Project Tiny Human has been released to production July 6, 2018!

The initial release date was July 4, 2018, and everything was on track up to the last minute... but you know how dates for production release can slip.

My wife has been acting as Product Owner and Head Developer for the entire project. I have volunteered for daily production and overnight support.

Thomas "Tommy" Edmund Maher was born July 6, 2018 at 2:16 pm to Melissa and T.J. Maher.

  • Weight: 8 lbs, 12 oz
  • Length: 19.7 inches long

"Hello world!"

#firsttimefather #proudpappa #GeekDad



-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

July 2, 2018

Stop Compromising Quality: Setting Automation Up for Success - Angie Jones, Ministry of Testing - Boston

Missed last Wednesday's Ministry of Testing - Boston Meetup, hosted and sponsored by SmartBear? Where Angie Jones, SDET at Twitter, provides metrics that help her decide what to automated at Twitter?

Have no fear! SmartBear live-streamed the conference. It starts at the 52 minute mark.

Stop Compromising Quality: Setting Automation Up for Success https://youtu.be/WAu1gWmKp5w


Thank you so much Brianne Cordima and Bria Grangard of SmartBear for setting up this event as the Ministry of Testing - Boston's event organizers!


Slides:Which Tests Should We Automate? - Angie Jones


July 1, 2018

Notes: Day Two of Agile Testing Days USA - Wed. June 27, 2018

This is Part Two of Two. Care to go back to the beginning?

Lean Coffee


Unicorn Held For Ransom


I noticed there was something different on Day Two of the Agile Testing Days USA conference immediately. Where was the giant inflatable unicorn??



June 30, 2018

Notes: Day One of Agile Testing Days USA - Tues. June 26, 2018

I had such a wonderful time at Agile Testing Days USA, a European-based software testing conference that came to the United States for the first time this June, held up north of Boston, up in Danvers, Massachusetts.

Ever since I became a Meetup Organizer of a local Boston area software testing group, I have been having the most fun running many a social media campaign on LinkedIn and Twitter, reaching out to the software testing community to recruit speakers, hosts, sponsors, and members.

With Agile Testing Days, Tuesday June 26th - Wednesday June 27th, 2018, I managed to meet many of my favorite text-based life forms face-to-face!

My experience started out on a very high note: I met Lisa Crispin and Janet Gregory face-to-face!



June 18, 2018

Intro to setting up a BDD framework with VS Code + Gauge + Ruby

With Integrated Development Environments (IDE), I am quick to adopt whatever the rest of the developers on the team use. For Java development, I like IntelliJ IDEA Ultimate Edition. For JavaScript, Atom.io. And for writing the Capybara + Ruby framework, I have also been using Atom. The problem is that the BDD framework we are using at work -- Gauge -- has plugins that help refactor Gauge tests written in Java, but hasn't had anything for refactoring Gauge tests written in Ruby... until now.

With this blog article, I will be investigating Visual Studio Code -- commonly known as VS Code -- and how it helps refactor tests.

Why am I currently using Ruby for my automation framework if the BDD Framework hasn't supported it? Both Chef.io -- what I use to spin up virtual environments -- and GitLab.com -- the code storage / continuous integration environment also uses Ruby.

I've written a bit about Gauge and drafted a quick-and-dirty Gauge + Ruby + Selenium project, on this blog. With this experiment, we will be editing Gauge's built in project, setting up everything on my Windows 10 machine at home.

If you want to view a summary what the gauge-vscode can do, view the official docs on GitHub.

June 13, 2018

Basic Chef + Test Kitchen: Setting up Ubuntu with Vagrant + Virtual Box + the Test-Kitchen Ruby Gem on a MacBook

Let's say we wanted to test something out on Ubuntu, a popular Linux distribution, on a MacBook: How would we be able to set it up locally, configuring the workstation? We set it up in Docker before. What other ways are there?

One way to do it is with a Chef.io tool to spin up a test environment, Test-Kitchen, and its Ruby gem. And, yes, this cooking metaphor is extended all throughout the Chef toolset with its cookbooks and recipes for environment configurations.

Adventures in Automation started looking at The Ruby Behind Chef, the History Behind Test Kitchen, and exploring the free tutorials that Chef provides, the extensive Learn Chef Rally.

For this article we will be using:
  • Test-Kitchen on GitHub as a primary source: builds a Vagrantfile, allowing you to create or destroy the instances of your virtual machines
  • Vagrant: "a tool for building and managing virtual machine environments in a single workflow. With an easy-to-use workflow and focus on automation, Vagrant lowers development environment setup time, increases production parity, and makes the "works on my machine" excuse a relic of the past".
  • Oracle's VirtualBox: "VirtualBox is a cross-platform virtualization application. What does that mean? For one thing, it installs on your existing Intel or AMD-based computers, whether they are running Windows, Mac, Linux or Solaris operating systems. Secondly, it extends the capabilities of your existing computer so that it can run multiple operating systems (inside multiple virtual machines) at the same time."

June 7, 2018

See a Two Minute Promo of My Talk: "How Software Testers Can Work With Developers"

The TestingGuild.com released the first two minutes of my talk "How [Software Testers] Can Work With Developers" as a promo for their online conference!

T.J. Maher - How to Work With Developers (TestingGuild Promo)
https://youtu.be/pGppCmUNMI4

Each TestingGuild.com speaker submits a pre-recorded 30 minute talk, then gives a live 30 minute session. Joe Colantonio, the man behind the TestTalks.com podcast organized this online conference and the AutomationGuild.com one that I spoke at back in January.

This is awesome! I've been a fan of Joe's since I worked at Fitbit. A fan of SauceLabs.com automation webinars, I booked a conference room, and the entire automation team and I watched Joe give his talk, Test Automation Trends for 2016 and Beyond: Staying Employable in Changing Times,  predict what 2016 was going to look like when it came to automation toolsets. I've been chit-chatting with Joe on Twitter ever since then.

What I love is that Joe express exactly the insecurity we all sometimes feel dealing with the fast paced software industry. During that talk, Joe admitted that because he was at the same workplace for a bit over a decade, he was feeling out-of-touch with how fast the software testing field was growing. Joe  started a testing podcast and started interviewing industry leaders as a way for him to keep up with the times.

Me, I was tickled when I heard this. That's why I started this blog over three years ago. To keep track of my progress as I tried to keep up with the software testing industry. 

Once, I was even supposed to be a guest on his show! Sometime's after I published my first Techbeacon article about switching from manual testing to automation development, we set things up. I had massive stage fright and cancelled the thing after the first five minutes... Which is why I am surprised he tapped me as a guest last November to be a guest speaker on the AutomationGuild.

Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

May 30, 2018

Video has been shot, edited and submitted for the TestingGuild!

Think you know your stuff in regards to testing software? There is no better way to level up than attempting to explain what you think you know to others.

I have learned so much blogging these past three years about automation projects I have been working on, writing articles for LinkedIn Pulse and my Medium account, shooting video for my YouTube account, and getting paid to write articles on TechBeacon

The process of writing an article or a script for a video forces me to organize my thoughts and double check what I think I know. Are there gaps in my knowledge? Oh, I certainly find out if there are! If I am fuzzy on something, I make sure to do more research.

The best part has been all the connections that I have been able to make, and all the wonderful discussions I have been having on LinkedIn and Twitter. The software testing community is extremely supportive for people who put themselves out there, even to newbies like myself. It's hard for me to believe, but I've only been doing automation for the past three years.

This year, to try something different, I started giving talks at online conferences. The founder of TestTalks.com, the software testing podcast, Joe Colantonio, invited me to speak at two of his online conferences:
I suck at public speaking. I get so nervous, speaking out as if I am at a TED Talk. If only hiding behind podiums was still in fashion, reading off a script! I could do that. Trying to give a talk, remembering the exact phrasing as I had planned? It is so nerve-wracking for me.

An online conference is just my speed! All I had to do was shoot thirty minutes of video with my iPhone, edit it, and that was the basics of the talk. There is a 20 minute Q & A session after each talk, but I haven't a problem answering questions from an audience.

I am so glad that it is finally done! It has been hanging over my head for the past few months. All my energy has been sapped by either my new job -- which is why I haven't been posting weekly these past few months -- or reorganizing my life due to the new bouncing baby boy due July 4, 2018.

I am going to be a father! I am so excited. I cannot wait!

So, if you don't hear from me in July or August, you'll know why!

Thank you for all your support, and Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

May 12, 2018

I'll be speaking in June at the TestingGuild.com!

This June, I will be giving a talk at the online software testing conference run by Joe Colantonio, creator of the TestTalks.com podcast. Thank you, Joe, for giving new (and inexperienced) speakers a chance at the TestingGuild.com!

I love it! I am writing a script write now for the 30 minute talk. That's the conference: each speaker gives a 30 minute pre-recorded talk, plus a live Q & A session.I can do take after take to my heart's content!

This will be my second time giving a talk. In January 2018 I gave a talk at the AutomationGuild.com.


Catch my talk at the TestingGuild.com!

See you there!

Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

April 28, 2018

Setting up Ubuntu Linux with Docker

Let's say that I only have a Windows 10 system at home, and I wanted to take a refresher course, Michael Hartl's Learn Enough Command Line to Be Dangerous. There are many ways to get Linux on a Windows machine. The easiest I found? Docker. Besides, they use Docker at work, so I need to practice that, too.

There are some technologies that keep on popping up again and again in my short career as an automation developer. One of those is Docker. "Docker is a software platform that allows you to build, test, and deploy applications quickly. Docker packages software into standardized units called containers that have everything the software needs to run including libraries, system tools, code, and runtime", according to AWS's article, What is Docker?

Back in July 2016, I was doing some weekend work to see if my company might be able to set up Docker with the new Docker Toolbox, with me working with our DevOps team, implementing a Selenium Grid using Docker-Selenium to possibly offload some of the cost of Sauce Labs, which can get pricey. I was inspired by a Selenium Conf India 2016 talk, "Testing as a Container". The month before, I was also tinkering with Setting up a Virtual DEV environment with VirtualBox, Vagrant and Docker, based on a Test Driven Java Development book I was reading. The projects were nixed, and I moved onto other things.

Years later, in March 2018, I would revisit this project, Starting a Selenium Grid using AWS + SeleniumHQ Docker images and Docker Compose.

That's how it goes jumping from gig to gig the past few years: from workplace to workplace the technology stack changes. Hopefully with my current full time permanent gig I can stop tinkering, settle down for five or six years and actually get good at some of this stuff, instead of always feeling that I am paging through the book "How To Skydive" while I am in free fall.

With this blog article we are not doing anything so fancy. All I want to do is bring up a Docker image containing Ubuntu. You see, as much as I love my work Macbook, at home I always use a Windows machine. Every few months I am tinkering with a new tool or technology, installing the Windows version of whatever I am tinkering with. It gets cluttered with half-forgotten tools. Maybe if I use Docker, I can start using a real Linux environment while at home instead of the half-baked hybrid I have been using.

Yeah, I could Start a Linux Machine with Amazon Web Services Free Tier, which I researched back in January of 2018 ... but between you and me, I worry about leaving a process running, and being stuck with a hefty monthly bill. Luckily, Docker for Windows would work just as easily!

Docker Community Edition



April 9, 2018

So You Want To Be An Automation Developer - Guest Post on Blog.SmartBear.

Last week, SmartBear.com -- the company behind TestComplete, ReadyAPI, QAComplete, SoapUI, and Swagger -- tapped me on the shoulder. Did I want to write a guest post on their blog? How about something that manual testers could use as a guide to switch to automation?

It took me three hours, but I came up with an article: So You Want To Be An Automation Developer.

 "Are you a software tester trying to break into automation? Need pointers to get your first job? Although I only have three years of experience as an automation developer, I may be able to point you in the right direction.

"Step One: Take a Coding Class

"When you are writing automation, you aren’t simply tinkering with a new toolset or technology. You are writing software in order to test software. It will definitely help you if you start learning how to code. With your first job, you won’t need to know how to write clean code or refactor tests right away, but if your job interviews are anything like the ones I had, you will have to demonstrate some knowledge of a programming language during your job interview.

"My biggest recommendation if you are brand new to coding? Check out your local community college to see what programming classes they offer. Testing and developing are completely different mindsets. Learning from and interacting with a teacher, bouncing ideas off of students, and forming up study groups will help with the ever growing frustration as you are learning this brand new skill. You will hit wall after wall trying to understand the basic concepts. Your study group can be your wrecking crew. It also helps that everyone in the class are tackling the same concepts at the same pace".

Read more here.


Thank you so much, SmartBear for publishing my article! Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

March 29, 2018

Starting a Selenium Grid using AWS + SeleniumHQ Docker images + Docker Compose

With this blog post we will be exploring how to start a Selenium Grid using an Amazon Web Service (AWS) instance the SeleniumHQ Docker images, Docker and Docker Compose. For this example, I will be using a Macbook, so the Terminal will be my Command Line Interface.

Need more information? Check out the official Amazon Web Services documentation:
We could use the "Amazon Elastic Container Service" and using AWS Fargate to run containers without managing servers or clusters ... but since I am tinkering, I want to make sure that I am using only free services provided by the Amazon Free Tier that I signed up for last month.

We are going to be starting off by following along with the official docs by Amazon, AWS Docker Basics.

March 21, 2018

Watch Seb Rose Talk About the Big Ideas Behind BDD

Couldn't make it to Day One of Seb Rose's "BDD Kickstart" course, held Tuesday March 20th, 2018 from 9:00 to 4:30 pm at the SmartBear.com Assembly Square, Somerville, MA office? Man, that was fun! Hear him summarize the class in his talk he gave the Ministry of Testing - Boston Meetup, live streamed and recorded!

Catch me give a brief intro in the video!

The Big Ideas Behind BDD 
Ministry of Testing - Boston Meetup: 3/20/2018
https://youtu.be/hQyXgKENDtg

Want to view his slides?



The Ministry of Testing - Boston at SmartBear.com
Thank you SmartBear for being such a wonderful sponsor for my Meetup!

Seb Rose, Cucumber.io
Thank you, Seb, after a long day teaching your class for speaking to our group!

Brianne from SmartBear, hard at work managing the live streaming
Thank you, Brianne, our newest event organizer at the Ministry of Testing - Boston for organizing the event, setting it up, managing the live streaming, and acting as emcee!

Seb Rose & T.J. Maher, Meetup Organizer of the Ministry of Testing - Boston

I just really love the Ministry of Testing - Boston. It has been so much fun the past year-and-a-half running the group!

Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

March 17, 2018

Getting to Know GitLab and How They Test the UI

The past three years as an automation developer, I have worked with many different continuous integration platforms such as Jenkins, TeamCity, and CircleCI, hooking up my automation to it so the tests can be run once an hour, nightly, or every single time is checked in.

Threat Stack uses GitLab for its Continuous Integration / Continuous Deployment (CI / CD) pipeline. Why? You should ask Pete Cheslock, head of DevOps. He is currently writing about his experience in our company blog:
With GitLab, I am more concerned with finding out what it does in general. Lucky for me, they give YouTube tours such as this one shot back in November 2017, Idea to Production with GitLabs.


This video gives you a good idea of using GitLab to do issue tracking, planning, committing to the repo, testing with CI, debugging in the terminal, deploying to production, scaling an application and application performance monitoring.

The History of GitLab

According to https://about.gitlab.com/history/

"2011: Our CTO Dmitriy needed an great tool to collaborate with his team. He wanted something efficient and enjoyable so he could focus on his work, not the tools. He created GitLab from his house in Ukraine. It was a house without running water but Dmitriy perceived not having a great collaboration tool as a bigger problem than his daily trip to the communal well. [...] So together with Valery, he started to build GitLab as a solution for this. This commit was the very start of GitLab.
"2012: GitLab.com: Sid saw GitLab for the first time and thought it was natural that a collaboration tool for programmers was an open source so you could contribute to it. Being a Ruby programmer he checked out the source code and was impressed with the code quality of GitLab after more than 300 contributions in the first year. He asked Hacker News if they were interested in using GitLab.com and hundreds of people signed up for the beta. In November 2012, Dmitriy made the first version of GitLab CI".

Wait a Second... GitLab Uses Ruby?

Oh, that is interesting! GitLab is coded using Ruby! The Test Engineering  team picked the Ruby language for its automation framework because Chef and Test Kitchen use Ruby. As a Ruby Newbie, I have been finding it helpful to review the great work the Gauge.org people have done creating examples using their BDD framework with Capybara.

What I find more fortunate is that it appears that GitLab uses for its UI tests what I am attempting to use: Capybara + Ruby + Headless Chrome.

I need to check out Mike Greiling's article, "How GitLab switched to Headless Chrome for testing: A detailed explanation with examples of how GitLab made the switch to headless Chrome".

As Mike put it, last year, "news spread that Chrome 59 would support a native, cross-platform headless mode. It was previously possible to simulate a headless Chrome browser in CI/CD using virtual frame buffer, but this required a lot of memory and extra complexities. A native headless mode is a game changer. It is now possible to run integration tests in a headless environment on a real, modern web browser that our users actually use!

"Soon after this was revealed, Vitaly Slobodin, PhantomJS's chief developer, announced that the project would no longer be maintained".

And all of the source code for GitLab's Community Edition is stored on GitLab. Awesome!

At my job there are so many things that are new to me:

  • I am new to Gauge.org
  • I am new to Ruby
  • I am new to Capybara
  • I am new to GitLab
  • I am new to Headless Chrome. 
... For the last week, since I was placed on Threat Stack's UI team, I've written a few UI tests, but they all run locally, on my own computer, but I was stumped when it came to using CI with GitLab. I've been searching for a model to base my new framework on.

Looks like I found one. This should be fun! 


Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

March 16, 2018

Use 20% Discount Code ATDTJ for Agile Testing Days in Boston, Coming Late June!

Did you know? The Ministry of Testing - Boston has a group discount code for Agile Testing Days! Want to borrow it? I checked with Techwell, and they said it was okay to share! Use the discount code ATDTJ to get 20% off the already discounted "super early lobster" pricing which is running until April 27th, 2018. 

The conference is running June 25 - 29th, 2018 and will be held in the DoubleTree Hilton up in Danvers, MA.

Prices before the 20% discount:
There also will be a class "Python for Testers" run by Kristoffer Nordstrom.

Wow. It's like my Twitter feed come to life!

... I wonder how many people I can get recruit to come to a Ministry of Testing - Boston? So far, we already have had:
  • Angie Jones speak to our group in a Google Hangout last Spring.
  • Claire Moss, organizer of the Ministry of Testing - Atlanta brought Llewllyn Falco, to run a Lean Coffee last year.
  • When MoT-Boston invaded last year's TestBash Philly, we heard Ash Coleman, and Paul Holland speak.
  • Andreas Grabner will be speaking to us in April.
  • I've been trying to recruit Lisa Crispin since last summer to give a quick Q & A in a webinar to us, but we've haven't been able to do it yet.

This should be fun! If the baby doesn't come early, I think I should be there!


Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles

March 8, 2018

Ministry of Testing - Boston: An Origin Story

For most of my twenty year career, I have been searching to become a part of a software testing community. To find myself running one after so long of a search absolutely astounds me. 

Ever since I became the Meetup Organizer of the Ministry of Testing - Boston I have been having the time of my life! I really have given my all to the group, having a heck of a lot of fun planning events, meeting people, and trying to build a community of software testers here in Boston. I love the challenges of growing the membership, running fun social media campaigns, finding interesting speakers, and making connections here in Boston. And all of this has been in the past year! 

So much has happened since we moved from being the Greater Boston QA and Testing Group to under the umbrella of Rosie Sherry and Richard Bradshaw's Ministry of Testing:

February 12, 2018

Are You a Gauge Expert? How Do You Graft On a Fluent Selenium-Ruby Framework?

Are you an expert in Gauge, the BDD framework? ( See a Brief Overview of Gauge ).

I have a question: How do you work with selenium-ruby?

I was planning on working towards what Dave Haeffner has in ElementalSelenium.com creating a library of:
I am brand-new to Gauge and using Selenium-Ruby. So far I only have used Selenium-Java.

It looks like Gauge strongly advocates against page objects calling them an Anti-Pattern. Er... Um... burying a page's locators in code, as they do in the blog makes me worried. I am looking for other solutions.

February 10, 2018

"How Machine Learning Helps Test Software" - Ministry of Testing - Boston - Feb. 6, 2018

On Tuesday, February 6th, 2018, the Ministry of Testing - Boston was invited by Mabl to hear John Kinnebrew and Sergei Makar-Limanov describe how mabl "uses machine intelligence to automate visual insights and make tests more adaptive".

With their AI, you can train mabl to go on a "user's journey". Much like Selenium IDE, the record-and-playback device, you walk the agent on what you as a tester would like it to focus on. What you want it to know. What you want it to ignore. It then learns and adapts, learning how you like to test.

Their product should be launching a free public beta in a few weeks. I can't wait to try it out!

Thank you so much, mabl for having us!

Intelligent Testing with mabl: Adaptive tests and automated visual insights
John Kinnebrew and Sergei Makar-Limanov
February 6th, 2018


About John Kinnebrew:

https://johnkinnebrew.com/

"John is building intelligent tools that enable developers to create better software at mabl. He received his B.A. in Computer Science from Harvard University and his Ph.D. in Computer Science from Vanderbilt University. His research interests include machine learning, combinatorial optimization, intelligent agents, and coordination in multi-agent systems.

"At Bridj, he led the research and data science group with a focus on machine learning and AI optimization techniques applied to transportation modeling, prediction, and optimization for improving mass transit. His research at Vanderbilt focused on the design of intelligent pedagogical agents and machine learning techniques to model important learning behaviors, including metacognition and self-regulated learning strategies, from activity traces of student interaction in educational systems".


Happy Testing!

-T.J. Maher
Sr. QA Engineer, Software Engineer in Test
Meetup Organizer, Ministry of Testing - Boston

Twitter | YouTubeLinkedIn | Articles