Recap: Design Patterns for Scalable Test Automation (Webinar)

June 17th, 2016 by Bill McGee

Thanks to everyone who joined us for our recent webinar, “Design Patterns for Scalable Test Automation Using Selenium and WebdriverIO”, featuring Continuous Delivery and Quality Architect Sahas Subramanian.

In this webinar, Sahas gave an explanation and showed examples of design patterns that can help you build stable and scalable automated tests using Selenium, WebdriverIO and Sauce Labs. The presentation also covered:

  • Rationalized automation – when to use WebDriver and browser-based automation technique
  • Patterns & practices
  • Test, Page Object, UIMap and their respective roles
  • Dealing with asynchronous behavior without using thread.sleep
  • Sharing UI map, Page Objects, and how to avoid redundant code

To learn more about WebdriverIO, check out this recent blog post from Sahas, “Accelerate Multi-browser Testing Using Sauce Labs and Webdriver.io“, as well as this in-depth post that complements the Design Patterns webinar.

Access the recording HERE and view the slides below: 

Security and Testing

May 19th, 2016 by Michael Churchman

Is your test environment secure? Do you know who has access to your test data, your source code, your design specifications?

There was a time, back in the days of stand-alone test systems and networks that were strictly local-area, when those questions would have been easy to answer. A co-worker or two might have been looking over your shoulder, but that would have been about it.

These days, however, applications are exposed to the public web, and such questions can have serious implications for your software’s security and your company’s bottom line. Software and IT companies may still have physical locations, but much of the development and testing is done off-site, by employees, contractors, and services that transfer data over the Internet, such as cloud-based testing solutions. That is why picking one who cares about your application security is important. Lets look at the risks, then at what a good solution looks like. (more…)

Testing and Continuous Integration: Making Everything Work Together

May 17th, 2016 by Hemant Jain

Continuous integration (CI) has emerged as one of the most efficient ways to develop code. But testing has not always been a major part of the CI conversation.

In some respects, that’s not surprising. Traditionally, CI has been all about speeding up the coding, building, and release process. Instead of having each programmer write code separately, integrate it manually, and then wait until the next daily or weekly build to see if the changes broke anything, CI lets developers code and compile on a virtually continuous basis. It also means developers and admins can work together seamlessly, since the programming and build processes are always in sync.

Unfortunately, the quality assurance team does not necessarily reap the same benefits. While CI assures that your app keeps building successfully as the code is continually updated, it doesn’t automatically test how new builds behave within different types of environments. An otherwise well-run CI operation might require app testing to be done separately, on a non-continuous basis, instead of building it into the rest of the process.

This poses real problems for an organization. Unless you add automated testing to your CI mix, you could end up with an app that users can download and install properly, but which suffers from critical usability issues in certain browsers or operating systems. Arguably, an app that installs successfully but frustrates users due to lack of testing is worse than one that doesn’t install at all. (more…)

Waiting for Green

April 12th, 2016 by Ashley Hunsberger

Every now and then, you may encounter a time when you need to stabilize your automated UI tests (for myself, that time is now). Although you don’t want to add to a framework that you are stabilizing, you probably don’t want to halt development on new features. (Warning — telling your leadership team no one is allowed to add more tests until everything goes green might not go over well.)

What do you do in the meantime? The answer is simple, and I look to some practices in Behavior Driven Development (BDD) as a guide – build a test skeleton into your current framework.

The First Rule of Stabilization: Don’t Create a Manual Test Suite

While you may temporarily need to revert to manual execution, it does not necessarily mean you’ll want to go back to a manual test suite for a couple of reasons: (more…)

Changing Development Culture to Become Quality Focused

January 25th, 2016 by Joe Nolan

How many project teams have you worked on where the accepted culture was to rely on the QA members to bear the load for quality? As the leader of a QA meetup, I still constantly hear stories from my members about developers’ assumptions that it is QA’s responsibility to find bugs. Not only is this attitude demoralizing for QA, it is also not in the best interest of the team. How can a team change development culture to one that is quality focused for the entire team?

From the Top Down

The answer seems obvious — Management needs to declare that all team members will have a hand in quality. This truly is critical to a successful culture change! Besides empowering dev managers and Scrum Masters to direct team activities (such as enforcing unit tests), it will give QA members the confidence to push the team as well. (more…)

Consider Your Application’s Home: Designing for Resiliency

January 21st, 2016 by Eric Jeanes

I am a firm believer in taking a cross-discipline-based approach to technology — taking something learned in one subject area and applying it to a problem in our everyday work. The political philosopher John Rawls, in his seminal work A Theory of Justice, provides a construct that (surprisingly) has a place in specific stages of application development.

When building systems, we are constantly held back to some degree by technical debt (the time wasted by repetitive tasks, and the bug fixes required to keep systems up and running). Not only is this time costly, but it is also typically less interesting than designing and constructing new systems (naturally). (more…)

Planning Quality Architecture for 2020

January 11th, 2016 by Greg Sypolt

I was inspired by Denali Lumma (@denalilumma) when she delivered a glimpse of the future in her talk about 2020 testing at the Selenium 2015 conference. The session was an excellent introduction that compared many scenarios of the minority testing elite versus the more common development team. The elite companies consider infrastructure FIRST, and the majority thinks about infrastructure LAST. It got my wheels turning regarding the future of software development. I don’t have all the answers right now, but I want to be part of the movement to plan and build architecture with quality. A few words come to mind when thinking about quality architecture — automation, scalability, recoverability, and analytics.

Build a culture

When building a culture, avoid too much control. You want a culture that embraces freedom, responsibility, and accountability. Why is building a culture like this important? It allows passionate employees to innovate and find big-time solutions. You can’t plan for innovation. It naturally happens. When you give passionate employees an inch, they’ll take a mile. The future team culture needs to push the envelope and step outside their comfort zone. (more…)

Re-Energize Your QA Career With Automation and DevOps

January 7th, 2016 by Joe Nolan

It’s time for you to stop being content with the status quo and re-energize your QA career with Automation and DevOps — otherwise, you might find yourself fading away like Marty McFly! I’m talking to YOU, manual tester! And YOU, QA manager! Oh, and YOU TOO, automation engineer! Every one of you who has a vested interest in your career growth needs to familiarize yourself with automation and DevOps tools.

Of Course You Need to Understand Automation

Let’s face it: In this day and age of software development, speed is the key to survival. In order to achieve clean builds, Continuous Integration, Continuous Delivery, and Agile development, manual testing just ain’t gonna cut it.

Everyone with the QA title needs to continuously build on their skill set, just like a developer. Even if you aren’t actively writing automation code, you still need to understand the capabilities and benefits of each type of automated test, especially the ones written by your development team. The team is relying on your expertise to guide them with acceptance criteria for stories, while bringing QA concepts to the table. (more…)

The Importance of a Triage Team

December 30th, 2015 by Joe Nolan

I grew up watching shows like M*A*S*H, and Emergency!. Doctor and paramedic characters would perform triage of injuries and determine which ones were critical and which could wait. If you think about it, bugs in a feature are like injuries to your code, and when they are discovered, they too need to be triaged. Without triage, bug tickets can add time to your development process and even cause invalid fixes. Every development team should triage their bugs!

Just What Does a Triage Team Do on a Development Team?

How many times have you worked on a bug that says something like “this feature is broken”? You might think this is an exaggeration, but it’s really not too far off. Especially if your team conducts bug bashes with users who don’t normally write tickets. This will either start a round-and-round process of different team members clarifying the ticket, or worse, a developer will take it upon him or herself to fix what he or she THINKS is implied. All of this is a time suck to the team.

On the other hand, how many times have you wondered why some tickets are being worked while more critical tickets are just sitting there? How frustrating is that? This happens frequently if tickets are not prioritized and put into the backlog.

A good triage team prevents all of this!

(more…)

Free (and Almost Free) Training for QA Engineers

December 17th, 2015 by Joe Nolan

Do you have a manual QA team that needs training to become automation engineers, but you don’t have the budget? Many of us are facing this same obstacle in a time of scarce talent. If you are a QA manager looking to upgrade your team, or a QA analyst looking to make the career move into automation, here is a guide to free and cheap online classes that can help.

Make Use of (Almost) Free Knowledge!

I am constantly amazed by just how many people in our industry are not aware of all of the valuable resources at their fingertips (literally). Google and YouTube can provide you with instant answers and demonstrations, but if you’d like a deeper understanding of tools and languages, I recommend (sometimes) free, online classes.

I first delved into this arena with Lynda.com when I wanted to take some basic refresher classes. I love this site and still have about 2-3 active classes in progress at any given time. I have found that I need multiple teaching methods to get lessons through my thick skull. Sometimes I find myself not quite grasping a concept. I sometimes watch a video over and over, but something might not quite click. In my search to enhance the subject I stumbled on even more course offerings in many different formats. It turns out there is a whole online course world where you can spend your time chasing your technological fountain of youth.

Let’s categorize them into four course types:

  • Subscription-Based – pay a monthly or yearly fee and have unlimited access to all courses
  • One-Time Charge – buy a course or a series of courses
  • Classroom-Based – free online courses based on actual college degrees
  • Free Online – anything from tutorials to videos and free curriculum

(more…)