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