May 3, 2016

Notes on Accelerating DevOps Collaboration with Sauce Labs & JIRA

Name: Accelerating DevOps Collaboration with Sauce Labs & JIRA
Date: Tuesday, May 3, 2016, 2:00 pm
Webinar HostSauce Labs

About the Webinar:


"Software Development teams are looking for ways to speed up their development process while maintaining high quality applications. In order to help meet this challenge, Sauce Labs is proud to announce the release of the first automated test cloud integration with Atlassian's JIRA.

"The Sauce Labs Plugin for JIRA allows JIRA users to increase the speed of their development cycles while maintaining quality and reducing cost. The plugin seamlessly connects the rich testing metadata that Sauce Labs provides with an organization's JIRA instance. Teams who are looking to adopt DevOps/Continuous Delivery practices for the first time will find this tool especially compelling".

April 30, 2016

Why do Manual Testers Still Exist?

In the April 28th edition of the Sauce Labs blog, Joe Nolan ( @JoeSolobx ) Mobile QA Team Manager and founder of the DC Software QA and Testing Meetup posted an article, "Why is Manual QA Still So Prevalent?" In the article, Joe argues, "With the importance of catching bugs early, and the ability to automate all testing, why do companies and projects resist the investment in [Continuous Integration] and test automation?" and talks about an "automation first" strategy, building automation as the product is being built.

Joe then list reasons why not all companies have embraced automation, such as:
  • Management -- except for the QA Manager -- doesn't articulate support for automation
  • The development team hasn't giving the buy-in to be responsible for developing automation as they develop the product
  • The QA Analyst has trouble committing the time to learn automation, doesn't know where to start learning, and not given a chance to apply knowledge once learned.
I agree with these points, especially the last one. After a long career as a Manual QA Engineer and a newly minted one as an Automation Developer, I don't know how I would have been able to manage in my new role -- although I was decade ago -- had I not finished grad school for software engineering.

My problem with the article is that I believe a manual tester should never be obsolete!

April 28, 2016

April 19, 2016

Why Use a Builder Pattern? Examples of Telescoping Constructors when storing Address data

Let's say you wanted to fill out the Billing Address of a form that has the following fields:
  • Name
  • Street Address 1 
  • Street Address 2
  • City
  • State
  • ZipCode
  • Country

If you wanted to store this information into an Address object, the class could look like:

Address.java:
     

public class Address {

  private String name;
  private String streetAddress1;
  private String streetAddress2;
  private String city;
  private String state;
  private String zipCode;
  private String country;
  
}

How would we set these fields?

April 13, 2016

Elemental Selenium code examples are being written in Java!

I love reading Elemental Selenium, automation development tips written by Dave Haeffner -- who I have written about in this blog.

Archive of Dave's Weekly Newsletter of Automation Tips!

The only problem has been that Dave's language of choice for the code examples is in Ruby. Since I only have been just getting back into coding, I have had difficulty converting the code into Java, what I am using on the workplace.

There is hope! If you take a look on Dave's ( @TourDeDave ) GitHub site, you can find the corresponding Elemental Selenium Tips source code.


April 8, 2016

Switching Careers in QA: From manual testing to automation development

"Are you a manual tester? Are you attempting to switch careers in the software industry? Are you trying to break into automation development? In this article, I will outline how I made the transition from being a manual quality assurance engineer—a technical position that deals with next to no actual coding—to an automated testing position, where I am programming in Selenium and Java daily.

"This transition didn't come overnight. It took years to lay the groundwork for this career shift. Because I found the transition difficult, I'd like to share some pointers with other software testers who are in a similar situation in order to make their career shift easier than mine was".


March 9, 2016

Uncle Bob Martin: The Agile Manifesto, 15 years later

If you have ever wondered about the history of Agile Software Development ( which I have written about in this blog ) you should check out the new article published in TechBeacon, "Uncle Bob Martin: The Agile Manifesto, 15 years later", written by Malcolm Issacs.
"Robert 'Uncle Bob' Martin is one of the 17 software development visionaries who met at The Lodge at Snowbird ski resort in Utah in February 2001 to discuss the various lightweight development methods of the time. The result of that meeting would become known as the Agile Manifesto [...]

March 6, 2016

Let's compare notes on how we write an automated test framework!

Good day! I was wondering if I could bother you for a bit. I was working on two projects, one for creating an automated testing framework for an eCommerce site, and one for testing a REST API endpoint:



... I coded them as I would at my workplace.

I'd like to recruit other automated developers in the software industry to possibly take a look at it and give me their feedback.

Let's compare and contrast what we do in their own workplace.

Maybe we could compare notes?

Thank you very much for your time!

-T.J. Maher
  Sr. QA Engineer, Fitbit

 // Software tester since August 1996
 // Automation developer for [ 1 ] year and counting!

March 2, 2016

Automation Development Experience: Level Up!

[ T.J. Maher has reached Automation Development Experience: Level 1]

* ding! *

I can't believe I have now been an automated developer for a whole year!

I've had some experience executing before my current position executing other people's automation scripts. I've done lot of coursework with Alan Richardson's Selenium 2 with WebDriver. There is no substitute, though, for on-the-job experience, especially at the breakneck pace we are working at.

When I started off at my job, the Sr. Automation Engineer gave myself and another QA resource three weeks of private instruction for the next on how Selenium WebDriver / Java was used. Within just seven months I went from writing automated tests to writing an automated test framework. And just last month, I started writing API tests.

I owe a lot of my success in automation to this blog. I asked permission early on to blog about the automation code I am writing. As long as I just focus on the automation, it's fine. To deepen my understanding of what I am doing, I've been able to come up with little side projects, posting my code in my portfolio at GitHub.  So far, I've done:


Are you an experienced automation developer? I was wondering if you could take the time to look at a few of the projects I have been working on and review the code? I'm still at the stage where because I don't have experience backing me up, I am just making it up as I go along. If you have the time, I would love to get your advise!

... Want to keep updated with what I am working on?

  Subscribe to the Blog: 

I am looking forward to the next twelve months. Who knows what fun projects I will encounter? All I know is that when it comes to writing automation, I am having the time of my life! 

Happy Testing! 

-T.J. Maher
 Sr. QA Engineer, Fitbit
 Boston, MA

// Automated tester for [ 1 ] year and counting!

Please note: 'Adventures in Automation' is a personal blog about automated testing. It is not an official blog of Fitbit.com

February 28, 2016

RESTful Testing with Stripe: From JSON to Object using GSON

This post is fifth in a series of six. Need to go back to the beginning?

With RESTful Testing with Stripe: Using UriBuilder, HttpGet and other Apache HttpComponents, we focused on laying groundwork for communicating with the Stripe API endpoint, sending messages and retrieving data.
  • JSON response was retrieved
  • JSON was converted it into a JSON string
  • Google's GSON library was used to place it in a data object we created.
... But how exactly did this process happen?

Let's simplify things and set all the charge object data to null in our JSON file.