Quality Assurance and Software Testing: A Brief History

July 12th, 2016 by Chris Tozzi

Developers have been testing software since they first started building software following World War II. And quality assurance as a whole has a history that stretches back much further than that, of course.

But have you ever wondered how we got from the early days of programming – when developers relied on ad hoc methods for finding bugs in their code – to the modern world of Selenium and cloud-based testing?

Keep reading for a (brief and totally non-exhaustive) history of quality assurance and software testing.

The Origins of Quality Assurance

I could start by describing quality assurance processes in preindustrial societies, long before anyone had ever heard of software. But that would actually require writing a book.

So I’ll just quickly note some things that are probably obvious if you think about them, but that you might take for granted. Before the Industrial Revolution and the advent of modern capitalism, the calculus of quality assurance was a bit different than it is today. Markets were usually monopolized by guilds. Without free market competition, assuring quality wasn’t necessarily important for keeping customers happy. And in the absence of strong governments, attempts by the state to prevent defects in products tended to be rare or ineffectual. (more…)

Why is Manual QA Still So Prevalent?

April 28th, 2016 by Joe Nolan

This past week I casually heard comments alluding to the imminent death of the QA Analyst or Manual Tester. (To be clear, I am not referring to the QA Automation Engineer, who builds test automation.)

Not only does the function not seem to be going away, recruiters are still out their hunting testers down. Out of curiosity I did my own review of randomly selected job posts from Monster and Indeed for average QA positions, and discovered that there are still a lot of jobs available for manual testers.

With the importance of catching bugs early, and the ability to automate all testing, why do companies and projects resist the investment in CI and test automation? I will explore the reasons why now, and whether the resistance is good or bad. (more…)

Mobile vs. Web: Which is Harder to Test?

April 19th, 2016 by Joe Nolan

Have you ever worked on a web-based test team and switched to a mobile team and wondered if your life is about to get easier or harder? There are significant differences between testing mobile vs. web, and yes, one is MUCH harder than the other. Want to guess which one? Read on and see if you guessed correctly.

Let’s Compare

The table below shows the different facets of testing and where its execution is most challenging. (more…)

Test Faster and Smarter by Testing in Production

April 14th, 2016 by Chris Riley

You may dread the term testing in production (TiP). The thought of potential loss of data, downtime, and a damaged reputation to organizations can be daunting. But things need not be that way. In fact, today, testing in production is used by some of the biggest organizations with much success. But can it become a reality for your team?

Accident or Intentional?

Testing in production is not a completely new concept. In fact, you’ve probably seen it in action more often than you imagine. Think of an app that you’ve released or one that you know of that was poorly tested. You likely spent the next few weeks firefighting, and got it to be functional faster than you thought possible. In this case, you were forced to test in production. But, what if you could hone the art of testing in production and use it to your advantage? What if you could spot and fix issues so much faster than you do today? What if you could influence development from start to end? What if you could do all this without risking the reputation of your team or organization? That’s the promise of TiP, and it’s worth a second glance. (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…)

Women In QA

February 23rd, 2016 by Ashley Hunsberger

I’ve been in QA a little over a decade now, and there is so much to learn as the field constantly evolves. To stay current, I have to carve time to learn, read, and see how others are adapting to our changing world. With so much material available, let me point you to some of the people I like to keep up with. And since next month is Women’s History Month, let’s take a look at the ladies in QA!

Women to Follow

Lisa Crispin. Janet Gregory. Two of the more prominent names in the testing world. They are two women I like to follow in the QA world, whether through their books, conferences, blogs, or tweets.

Lisa Crispin, a tester at Pivotal Labs, is perhaps one of the most well-known testers in the world. She specializes in helping testers find their place in Agile teams, and guiding development with business-facing tests. As with many others in QA, she started testing to fill a need while in tech support, and has been a huge contributor to the testing world ever since. (more…)

Paired Testing: Two Is Better Than One

January 27th, 2016 by Ashley Hunsberger

Paired programming brings two developers together to produce higher quality code compared to those same two engineers coding separately. Just as paired programming has someone writing code while another person reviews the code as it is being written, paired testing has someone doing the testing while another person takes notes, asks questions, and spots/reports bugs. I’ve personally found paired testing to foster creativity, maintain focus, provide a new way to teach others, and help release better software in general. Two testers are better than one.

Pick a partner!

It’s probably important to note that not all people actually like to pair up. Let’s face it, many of us work in a world of introverts. Some people just don’t like to talk, or share their personal space. That said, there are a few good pairings you can look at: (more…)

A Functional Tester Looks at Performance

January 15th, 2016 by Ashley Hunsberger

Even if you aren’t directly responsible for performance, it is important to consider it under the umbrella of quality. As a tester, how do you move forward and help drive performance quality (especially when you are new to this area, like me)? What are the ramifications of not considering performance within QA? Let’s take a look at what performance is, the questions QA can ask during design and implementation, some of the types of testing that can be done, and making performance part of your acceptance criteria (and, therefore, part of your Definition of Done).

What is software performance, and why is it important?

As an end user, I think of performance as just how fast or stable something is. If I click on something, does it take forever to load in a website? Does my app crash every time I try to open it or submit something? Do I give up and find a better solution to meet my needs? Of course we want a feature to work, but do we think about the system holistically?

(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…)