QA blog postings

QA Postings - Page 10

Earliest: November 26, 2017Latest: September 21, 2021Total: 163
August 12, 2019

QA is not Medical Science

In a job interview that I had many years ago at a popular software company, my future boss told me this:

"If bugs happen that's ok, this isn't Medical Science. No one will die because a bug made it into Production. "

Whoa. What?

I was surprised by her comment and took it as the wrong attitude towards excellence in testing. Isn't your goal to make sure bugs don't make it into production?

Medical Science

QA Realistic Goals

However, over the years I have learned she was right. In a fast pace environment, QA can't always deliver 100% bug-free releases. When bugs do make it to production - it's important to avoid the blame game.

QA should focus on how to respond to fixing bugs in production. Once the issue is fixed, QA then needs to find out how it missed the bug - so that it doesn't happen again.

Bugs will happen, but it how you respond to getting the bug fix determines how good of a QA you are.

August 5, 2019

False Positive

In testing, a False positive happens when a particular test passed when in fact that it should have failed. This usually happens when tests are not clearly written to catch errors.

Having a lot of failures missed by automation will certainly question the overall value automation brings to the team.

While most people think of False Positive in software automation or medical tests. Here?s a unique perspective to False Positive.

Haunted Mansion Rides

Haunted Mansion Ride Example

At Disneyland Haunted Mansion, Disney has a lot of sensors all over the ride. They are set up to make sure foreign objects are not thrown from the doom buggy. When an object is detected the ride stops to alert security.

Every once in a while, someone manages to throw something into the graveyard without the sensors going off.

The false positive in this situation is that the motion sensors indicate everything is fine and the ride should continue.

The situation is usually fixed within 24-hours but the person responsible got away with it.

Audit Tests that pass

If tests are consistently passing you may want to audit them. Perhaps the test is too specific and may need some additional validation statements to help make the test more efficient.

July 29, 2019

QA Memes

On vacation this week, so I thought I would keep things simple by posting some recent QA memes.

Bart Simpson Q A
I will let QA know before pushing to Production

585a4e0a90996eef9a77f1569751022b
Trust QA

Next Week we?ll return with some more quality QA postings.

July 22, 2019

Test Strategy

A Test Strategy document conversion the overall test approach and goals to a project. A test plan covers how specific features/functionality will be tested.

A test strategy is useful reference project document to highlight the testing coverage of a major new feature. A test strategy should be done with every major project. Small projects and bug fixes are not something that needs a test strategy document.

Test Strategy

Test Strategy Topics

Here are the main categories of a Test Strategy Document:

  • Goal - What is the goal of the particular test strategy
  • Sign-Off - Have some sign-off by the QA Lead, Dev Lead, Business Owner and Project Architect
  • Scope - Identify the product features and risk areas. Include important milestones.
  • Test schedule - Know when the project is going live and any rollout plan.
  • Release Testing - Cover testing that will be performed at each release deployment. Good to keep a history for tracking purposes.
  • Schedule Risks - What are areas of the project that could impact the release of the feature. Example might be third party support, special configurations, account settings.
  • QA Resources - Who should people contact if there are issues?
  • Timeline - Similar to the Test Schedule, but more focus on the project, what's QA involvement in the release of the feature.
  • Jira Tickets - List of the story tickets for this project.
  • Project Library - Links to the important documents to this project.
  • Competition - List of similar features that are done in other companies. This is useful to understand how consumers may view this product.

Three Tips on Test Strategy Document

This is a live document and the QA Lead should be updating the document - at least once per week. Timelines and releases are areas that get the most updates.

Once the Test Strategy document structure is in place, the document should be shared with the project stakeholders Once it's been signed-off then the document should be shared with other QA Members.

Once the project is completed - usually when the project maintenance has been completed, the document should conclude with a "Transition Plan." This is when the test cases become part of the general release testing. Usually the QA Lead would go through the test cases to tag items that should be automated for regular regression.

July 15, 2019

Test Plan Guidlines

A test plan provides a detailed outline of testing for a particular project in a particular release.

Q A Test Plan2019
Having a carefully well written test plan can help ensure a feature gets well tested at every release cycle.

There are several key parts of the Test Plan:

Testing Considerations

This is where the QA Lead identifies various conditions which makes it possible to test the functionality.

Assumptions

This is where you list the conditions that can't be known a for sure ahead of time, which you have to make assumptions. These need to be stated so that QA can evaluate whether they are reasonable.

Example Assumptions

  • Database contains the correct data.
  • SQL Integration Service validates the data being inserted into the database.
  • Users can only setup one category for the Employee Update page.

Dependencies

Dependencies that this test plan has on external conditions.

Example Dependencies

  • Nightly backup of external HTML XML Feed data
  • Intranet User Authentication

Risks & Issues

Conditions that add risk to the quality of the functionality or that may impact the accuracy of the test plan.

Example Risk Points

  • SQL Server Integration Service is unable to read the XML Feed
  • Poorly written specs
  • The business owner is not clearly defined for this project.
  • The current database schema is not available.
  • QA isn't aware of the technology being use to display the data on the page.

Feature Description

In several paragraphs explain in detail the feature that is being tested. Links to external spec documents and technical documents should be referenced here.

A list of project/developers should be listed here. These are the people that should get tickets of any bugs found when testing this product.

Testing Outline and Summaries

This section should list all the test cases title summary. It would be good to sort the test cases by some sort of topic.

Example Test Case Summaries

Data Validation
  • Validate that the XML passes the XML validator test ?
  • Validate that the intranet page is loading after the nightly XML update ?
  • Validate that the intranet page loads if there are no new hires ?
  • Validate that the intranet page loads if there are no upcoming anniversary dates ?
  • Validate that if a user hasn?t set a configuration, the page still loads ?
July 8, 2019

False Negative

According to the National Institute of Health:

A false negative is a test result that indicates a person does not have a disease or condition when the person actually does have it.

In Quality Assurance Automation testing, the National Institute of Health example could be rewritten as:

False Negative happens when a test is run and returns a success when the actual test should have failed.

False Negative

Why Good Test Produce False Negatives

This can happen because of various reasons:

Hard Coded Information

Sometimes an automation test case may be written to use a specific datasets and/or urls. This type of test case doesn't take into account of actual path that users may use. Taking shortcuts may seem like a good idea, but are risky since they don't take into account the true paths users may take.

Real Life Example

If someone changes a button link url reference, and automation just goes to the URL, without clicking on the button, it will miss that change. The test will pass, but it should have failed.

Not Checking for Errors

In some instances, an error might be thrown to the user - or the browser console during an automation run. Since this isn't directly impacting the flow of the test case, it's considered a "pass."

Real Life Example

A login page test is run. however, a necessary JavaScript file is not found by the browser, and throws 404 console error. Some parts of the page - not directly related to the test - looks weird. This particular automation test case doesn't see it because it's not part of the test.

Not a Challenging Test Case

I have seen some test cases take the soft route of testing. The test case doesn't check for data validation. Some test cases assume too much and don't intentionally thrown an error - such as entering too much data in a text field.

Real Life Example

A simple test case runs the critical path of a registration process. However, the test case doesn't check to see if the email address field validation is working. Thus when someone made a global JavaScript file change it didn't catch the field validation stopped working.

Ways to Avoid False Negatives

Four ideas to help reduce the chances of test cases returning False Negatives:

  • As a clean up step in automation, check the console logs for errors.
  • If using Ghost Inspector, watch the video in some of the critical path testing to see if there's anything out of the ordinary.
  • Code review automation test cases.
  • In one of my previous jobs, if an Automation test passes for 3-consecutive releases, it's a candidate for an audit. The audit should be done by someone who didn't write the initial case. The audit should think about ways the test could be more productive.

Automation Encountered a New Feature
Ideally the Automation team should get a "heads up" on a new feature being shipped in the current release and areas of impact. Every once in a while, the automation team will be left off the code review or show-me meetings.

Poorly Written Test
The automation steps didn't take into accounts of other situations that may happen when the test are run.

Infrastructure Issues
Something happen that cause the server to behave weird - such as a slow network or disk space full. These types of issues are unavoidable.

July 1, 2019

Best Cheap Beer Social Event

All work and No Play makes QA Testing job boring. One of the popular social events that one of the companies I worked at had was something called the "Best Check Beer Social Event."

The goal of this popular event is to do a taste test to find which of the cheapest beers taste the best. Participants would buy their own been and someone would pour them into plastic cups so that people can do a blind taste.

This is a fun social event to get people to think about what makes beer taste good - and to try to figure out what beer they are tasting.

Cheap Beer Event

Simple Instructions

Here?s what to do:

  1. Choose your favorite selection from [Beer Advocate's Bottom 100 Beers](https://www.beeradvocate.com/lists/bottom/) (or something else? doesn?t really matter? just has to be cheap)
  2. Let the organizer know what you plan to bring so there's no overlap.
  3. Bring in a 6-pack of your beer on taste day (if it only comes in 4-pack, then get two)
  4. We?ll have a blind taste test and give each beer a 1-10 rating in the following categories:
  • Appearance
  • Smell
  • Taste
  • Mouthfeel
  • Overall

Then we?ll get someone in product to make some charts and graphs with the results.

Samples Beers Tried in the Past

Here's a list of some of the beers people have brought in the past. I won't give away which beer has been the winner, but I will say that Keystone Light voted pretty well in the blind taste test.

  • Landshark
  • Miller 64
  • High Life
  • Miller Light
  • Miller Fortune
  • The Beast
  • Steel Reserve
  • Corona
  • Natty Light
  • Keystone Light
June 24, 2019

Dynamic Bookmarklets

Did you know that you can create dynamic bookmarks using Bookmarklets?

Dynamic makes it easy when you want to go right to a site using a predefined date. This is done by using a JavaScript date function and passing the results to the browser. You're not limited to just date functions, you could use any type of JavaScript condition to build the URL.

Some "Real World" Examples:

Atlassian Jira - Show me all the new issues created in the past 7 days. (This could easily be set up as a Dashboard widget - but that's a post for another day.)

Atlassian Jira - Show me all issues that have this week tag, where the tag format tag might look like: deployment-2019-01-07

Google Photos - Show me all photos taken on this day of the year or you can get fancy and say "Show me all photos taken 90-days ago."

Change the URL Server - you can check to see what day it is and change the URL to point to production on release day.

Bookmarklets Code

Sample Code

Here's a sample code


javascript:function url() {
 var date = new Date();
 var y = date.getFullYear(); 
 var m = date.getMonth() +1; 
 if(m < 10){m = '0' + m;}
 var d = date.getDate();
 if(d < 10){d = '0' + d;}
 var date = y + "-" + m + "-" + d;

 return 'https://www.company.com/analytics/web/?date'+ date +'/';

} window.open(url(),"_blank");
June 17, 2019

Engineering Liability of Code

Some QA Engineers thinks that once a product hits production that they no longer have any ownership. They would be wrong.

As for Engineers, they own the change until the product actually ships. So during test periods, QA would assign any issues related to the change to that particular developer. They certainly can deferrer the bug to someone else, but in most cases, they should be a single point of contact of the change.

In my experience, I have found that developers will celebrate when code gets merged into the release branch. However, it isn't over yet. There still could be bugs/issues related to the change not discovered by initial testing.

Think Twice Code Once
Found this graphic on the WallpaperFool.com website. Imagine how much better code would be if all developers followed this?

Always be Updating the Test Case Repository

QA has ownership long after the product hits production. After a product/feature ships, it's the QA Engineer job to update the regression tests around the change.

If the change was small, such as a cosmetic image change, then there's no reason to go all out on automation and manual regression.

However, if the change is big, then the QA engineer responsibility is to make sure that regression test cases and manual test cases are updated. If they aren't other QA Engineers that run the tests may report the change as a bug.

When to Update Automation?

I believe that Automation should be updated once the feature is merged into the branch that's being shipped. (In some companies this would be the 'Master' branch.)

This way the automation test cases can still be run and may discover other issues that may be missed by manual QA.

Note: This topic came about when a developer once told me that they aren't responsible for a bug because it was merged into the release branch with no issues. Wrong! You own it because you made changes. This doesn't mean that you have to fix it, but you should figure out how/why a bug was discovered.

June 10, 2019

Incognito Filter

A question that I often ponder: Is there a way to force Bookmarks to open in a secure window or as a different profile?

This is because there are some situations where I don't want to store cookie data. I want to access the site if I am a new customer and see how the website functions.

Unfortunately, due to security rules, this is not possible. There is a work around.

Incognito Filter

Incognito Filter to The Rescue

Incognito Filter is a Chrome extension that will force a pre-defined set of URLs open up in Incognito mode instead of a new tab or regular browser window.

You can define the URL simply by clicking on the extension icon and then clicking on the "Add Website."

Bonus Configuration

You can get fancy by trigging Incognito Filter functionality by adding a regular expression, such as qarocks$. To add, simply go into Incognito Filter and then click on "Show Options" button and then type in qarocks$ and then the "Add RegEx" button.

What this does is that any URL that ends with qarocks$ will open in an incognito window.

Now with that set, simply edit any bookmark that you have and add the qarocks$ at the end of the url.