QA Blog Posts

QA Image Library

Check out the growing QA Image Library. This is my personal colleciton of Slack Images for that perfect QA Moment.

October 21, 2019

What is Testing?

Explain Testing Chalk

Last week someone Tweeted this:

Explain testing without using the word testing.

Seems like an easy challenge:

The job of a Quality Assurance Engineer is to make sure that the product delivered works exceptionally for customers.

Customer can be any group: paying customers, prospects, employees - you get the idea.

Alternatively it could be written as:

A group of engineers that constantly challenge the Engineering team that code complete is working as per specification.

October 14, 2019

Best QA Advice

On Twitter, someone asked, "What's the best testing advice you've ever heard?" I thought it was an interesting question, so I thought I share my "Top 5 QA Advice" that I have gotten over the years.

Best QA Advice

Top 5 QA Advice

Here are some of the best advice I have learned over the years.

"Never assume the assumption is true." - Kind of weird advice. But it was given to me when I was assuming too much when reading the testing steps of a ticket. My manager at the time said this to me so that I would try to think outside of the box and challenge the assumption that was given on the ticket. (For example, what if the user forgot the email address that they used in a "Forgotten Password" test.)

Pay attention to the details - Always make sure to check the little things when testing tickets. Because when customers are looking at the final work, they will notice the small details - especially if it doesn't seem quite right.

Learn SQL really well - Given to me by a manager a long time ago. He really stressed to make sure that I knew all the tricks of making a SQL Select statement. This not only helped me debug issues but also build some interesting QA Dashboards.

Document Everything - The manager would go on to say, "You never know when you may get hit by a bus." He was being funny. But his point was to make sure that test documents were updated and more importantly useful. This was a key thing. If I wasn't writing things down.

Always end an automation run with a validation statement. - Someone on the automation team gave me this advice when code auditing my automation. "What good is your test if you don't finish it with some validation statement." This is pretty good advice that I give to other people.

October 7, 2019

QA Off Cycle Duties

Usually the QA team is busy testing. However, there are times during the sprint cycle where there is nothing to test.

This isn't a break for QA. Rather it's a shift in QA duties.

Eight Things QA Does in the Off Cycle

A Combination of tasks that QA can do when there's "nothing to do."

Test Case Repository - Always be contributing to the test case repository. It's critical for QA to keep the content fresh and accurate.

Documentation - Update Wiki pages on testing techniques and test plans. Make sure that the Wiki has the most up to date information. Some things to think about: Critical Path Testing, Local Functionality Smoke Testing, Production Account information, Release Schedule, Staffing and so much more.

Review Previous Releases Testing - Self evaluation of how testing could have been done better. Think of ways that bugs and issues could have been caught early in the test cycle.

Performance Testing - How are typical tasks being performed in Production? Are new releases helping the performance of the application or hurting it? Review the findings with the product team on a frequent bases.

Load Testing - Is the website working well when it's being hit 1,000 times? There are a lot of tools and techniques on how to do load testing without impacting customers.

Error Log Monitoring - Are there any errors that are being caught in various log tracking alerts?

Domain Knowledge - what's going on in the industry. Are there any testing trends that QA Bloggers are talking about?

Audit Testing Functionality - What testing techniques can be done more efficiently using a different set of tools. If you haven't changed your testing tools in a year - your running on an old version of the QA Operating System. (A play of words on why Apple updates their OS every year.)

September 30, 2019

Red Herring in Test

A Red herring is is when an irrelevant topic is introduced during an argument to divert the participants from the original issue. Sometimes this is used to make false assumptions. This is commonly used in books and drama TV to mislead the viewer of the actual issue.

Red Herring in Test

In testing, a Red Herring is when multiple issues are found around common functionality. The multiple issues are the Red Herring. The core feature is what should be addressed.

Example Situation #1

Roxana is testing a new login page, and notices that the Credit Card field is not doing any server-side validation. In further testing, it is discovered that users can submit an form with an empty name and zip code. Separate tickets are filed for those issues.

The important question in this situation is the form field validation. What are the requirements and why are the "basic" functionality not set up.

Example Situation #2

During weekly testing its discovered that the local server keeps running into issues. The Release Engineering team fixes the issue and QA is able to move forward.

When testing, Its important for QA to look at the big issue and not get caught up with Red Herrings that can be distracted from the main issue.

September 23, 2019

QA Manager Task List

Things that QA Managers should be doing on a constant basis:

  • Planning, prioritization of all the test-related tasks (use proven project management tools such as the Waterfall or Scrum methodology)
  • Writing the world's best test strategies
  • Reviewing the test plans with Product and lead engineers
  • Taking the responsibility of certain designs if people have not the required competencies
  • Automation Code reviewing
  • Spreading expertise and good usage of tools such as bug-tracking database or data capture for automation
  • Delegating...
  • Having people judgment skills to hire the right people
  • Writing performance review
  • Evaluating the previous release - what went well, and ways that QA could have done things better.

What makes a good QA Manager

  • Being a good QA engineer - Be an excellent tester and delegate testing.
  • Effective communication - Let the team know what going on and make sure there are no bad surprises as code freeze approaches.
  • Having and spreading the "customer-focus" vision - Always make sure that that the customer is happy.
  • Developing people - Encouraging people to learn more about the software and industry
  • Bringing out the creativity in others - Asking open-ended questions in meetings to generate a good team discussion.
  • Motivating people - Everyplace: Meetings, Hallways and Slack channels.
  • Team Building - Make sure that everyone on the team works together. Always look for ways to involve several team members in testing functionality.
  • Enabling Changes - Constantly looking to improve the testing strategy and techniques. If you're using the same test case repository for the past five years - you're not enabling change.
  • Decision Making - Make key decisions about if a feature is ready for release. Sometimes the decision is easy, many times it may get some push back from Engineering, Product or Marketing.
September 16, 2019

CASL Testing

CASL stands for Canada Anti-Spam Law. The goal of the law is to protect Canadians from unwanted emails.

Under the law, Websites that serve Canada Citizens are required to have consent before sending a commercial electronic message. Failure to get consent means the company will have to pay a $48,000 fine and develop a compliance program that includes staff training and policy changes.

Configure the Browser as a Canadian User

One way to trick a browser's actual location is to change the browser's default language. Many sites use this to determine if the CASL message should be displayed.

Chrome Language

Configure Google Chrome

Simple steps to change Google Chrome settings. You may want to set up a different profile (Canadian User) for future testing purposes.

  • Go to Preferences
  • Search for Language
  • Click on Language
  • Click Add languages, search for Canada and select English (Canada)
  • Click Add
  • Click on the 3-dots to the right of English (Canada) and select "Move to top"

I would recommend restarting the browser so the setting takes effect.

Fire Fox Language

Configure FireFox

Simple steps to change the default browser settings to be Canadian English.

  • Go to Preferences
  • Search for Language
  • Select the pull down "Search for more languages"
  • Click on the "Select a language to add..." and look for English (Canada)
  • Move "English (Canada)" to the top, then click "OK"

I would recommend restarting the browser so the setting takes effect.

September 9, 2019

Couple of Console Tricks

Here are a couple of little known Google Console tools that might assist with testing websites. These are in the Rendering section of the Google DevTools section.

What's weird is that Google doesn't provide much information about these tools. In 2016, Rendering was hidden from general Developer view.

Rendering

Highlight Ad Frames

This should be enabled so that you can see what areas of the page that have the potential to being blocked by AdWare tools. While it won't catch 100% of the instance that a piece of content may get blocked, it's good to have as a "hey check this out."

Emulate CSS Media

With this enabled, you can save some steps and see what the page looks like when printed.

In addition, this makes it so much easier to debug a problematic page. For example, if a test position, you can list the exact issue in the bug report - saving time for everyone.

September 2, 2019

Letter to the QA Manager

A letter to the QA Manager. This seems appropriate on this Labor Day:

Dear QA Manager,

I love my job and I think you are a good quality assurance manager, but there are some things I would like to hear from you and some things I would like you to do.

I want you to give me praise. I want to know when I have done a good job. Don't let the only time you have a serious conversation with me be when I have done something wrong. Let me know when I have helped make the release a success.

Tell me what my job is, how to do it and what QA rules I need to follow. I want to clearly understand what my job is, how you want me to do it and what policies I need to follow. Be specific and give me clear instructions.

I want to be excited by my work. I don't want a dull, boring job where I never know what is going on. Get me excited about what my role is, what our project is, about our department and our company. Show me how I fit into the plan.

Challenge me. I don't want to keep doing the same job each day. Give me something new to do. Challenge my skills and my mind. I can contribute more than you think.

Give me opportunities to improve myself. I am a good worker, but I want to be a better one. Train me in something new, send me to a class, let me learn a new skill from a coworker. Help me develop my career. Help me to be better able to help you.

Delegate to me. When you need something done, let me do it. Let me prove that I am capable of doing more. Trust me to get the job done right and on time. It will build my confidence and respect that you can trust me with a task.

Deal with my coworker. You explained the policies I must follow, but you need to back it up by enforcing those policies. Be fair and treat everyone equally. It kills my morale when a coworker is not disciplined for consistently breaking the rules.

Inspire me. Show me you are passionate about your work, about our team, about our project. Share your vision for our department and our team. Tell me what our mission statement is and why it is important.

Ask for my opinions and ideas. I have worked here for a long time and I know what works and what doesn't. Ask me how things can be improved and what we can do to make our team and our department more productive and successful.

Improve my work environment. My desk and chair are good. My computer is old and slow. I need a new one with a monitor that does not hurt my eyes. You need to remodel our break area. I will be happier and be more productive in an improved work environment.

August 26, 2019

Fake Referer for Testing

This is a sample QA task that I had many years ago:

A customer website wanted to acknowledge a particular set of users that found the website via a link on a partner site. They wanted me to test that users from one website saw one version of the site and everyone else got the typical content.

To perform this task, I used the Unix curl tool to get the job done.

-

This "hack" is useful when you want to fake a referer from a particular website, you can "dump" the results as an HTML file to verify the results was a success. It also helps if you have access to the apache logs to verify the referer was pass through.

CURL Config File

-

curl --config test.txt

-

In the config file:

-
# --- Example file ---
url = "http://www.cryan.com/Boston/"
output = "cia.html"
referer = "http://www.cia.gov" -
user-agent = "superagent/1.0"
# and fetch another URL too
url = http://www.cryan.com/Boston/"
output = "yahoo.html"
referer = "http://www.yahoo.com"
# and fetch another URL too
url = "http://www.cryan.com/Boston/"
output = "bing.html"
referer = "http://www.bing.com"

Sample Output

This is what you see when you run the command:

curl --config sample.txt
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
100 10813    0 10813    0     0  35677      0 --:--:-- --:--:-- --:--:-- 35686
100   315  100   315    0     0   3924      0 --:--:-- --:--:-- --:--:--  3924
100   311  100   311    0     0   3905      0 --:--:-- --:--:-- --:--:--  3905

Learn More

You can learn more cool tricks with CURL on the "man" page: curl - How To Use

August 19, 2019

Location Guard

Testing software may involve testing certain locations. Chrome uses various means to track your location and pass that information to websites. Some of the data is based on Wifi and browser settings.

Location Guard allows you to fake your location. This makes it easy to test the functionality of the site against various locales around the world. For example, Canada has rules about requesting email on websites.

Product Description

Location Guard is a browser extension that allows to protect your location while using location-aware websites, by adding controlled noise to it.

Latest updates to Chrome might have made this extension non-working. According to many reviews, the extensions are not working 100% of the time.

I'll test it against Google Maps and other sites to see if it still not working.