QA Graphic

QA Image Library

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

February 15, 2022

QA Info Bar Bookmarklet

When testing a webpage, sometimes I want to add additional information before taking a screenshot. While I can always use Snagit to add text post screen capture, there can be a better way to do this in the browser.

In a recent test, I wanted to add the Domain and screen size to the screenshot - for general reference. I thought it would be good to use a Bookmarklet to get this accomplished.

Kasper Mikiewicz wrote a cool Bookmarklet to "Debug window width & height" on Coderwall. This bookmarklet adds a window reference to the bottom right corner. I decided to modify it and add the domain name of the page:

Q A Bookmarklet Garvin

Drag Code to Your Bookmark Bar

Select this text and drag it to your bookmark bar:

javascript: var debug=document.createElement('div');debug.id='#debug-window';debug.style.font='16px/1.5 Arial';debug.style.color='#fff';debug.style.zIndex=2147483005;debug.style.textAlign='right';debug.style.background='#1aa260';debug.style.padding='.5em 1em';debug.style.position='fixed';debug.style.bottom=0;debug.style.right=0;debug.style.borderRadius='3px 0 0 0';(document.getElementsByTagName('body')[0]).appendChild(debug);window.onresize=function(){debug.innerHTML=window.location.hostname+' | '+window.innerWidth+'x'+window.innerHeight+'px';};window.onresize();

Demo This Bookmarklet - You can also "drag and drop" that link to your bookmark bar.

When you click on the link in the Bookmark Bar you'll see a new box on the bottom right of the webpage.

This is really useful when you are testing responsive design because the height/width will change as you resize the browser.

I added the Z-Index so the "QA Info bar" appears on top of any other object.

More Bookmarklets

Some more bookmarklets that I shared in the past:

Check out the Browser Badge Bookmarklet. - Add a logo to your page to show you tested in Chrome.

Create Dynamic Bookmarklets - make Jira searches practical.

Quick Editor - Create a blank page for a quick note.

February 8, 2022

Blue Green Deployment

The Blue/Green deployment is when release engineering stages up a new instance of a production environment and they slowly move traffic to the new instance. Once the traffic is 100% on the new environment the old one gets taken down.

This is usually done to implement a zero-downtime deployment. Configurations to get this done is usually done using a Loadbalancer.

Blue Green Deployment

Some QA Notes About This

Production Only Many organizations will not put a Blue/Green deployment in the staging environment - usually because of cost and other logistics. This adds some risk to the release as QA isn't able to test the changeover.

Real World Example

We have several automation scripts that run at each release to test critical featured that have broken in the past during production deployment. We are at "All Hands on Deck" at release time.

Downtime may still be needed. There has been times when we had to do a major database upgrade and the Blue/Green deployment makes the process more complex than it needs to be. In those times, we alerted customers of the downtime - usually off hours and put together a plan to minimize the downtime.

Real World Example

Whenever we do a major database change, we would schedule some downtime for backup and as a precaution. An example of a major change would include a DB upgrade.

Patching Still Possible! You can still implement code patches in the Blue/Green model. The developer needs to commit the code change to "master/main" so that it gets implemented in the next release. We found that JavaScript changes were harder to patch than "basic" code changes.

Real World Example

Unfortunately we did a lot of patching. They would be easy to implement. In most cases, the Developer would have to provide a diff of their changes against the current production build. The infrastructure team would be responsible to update the code on the servers.

Safe Production Testing There might be times when you need to test certain features in the Production environment. Using the Blue/Green Deployment the Infrastructure team can load up an instance but not make it public. QA can go through a specific URL to test before the stack is live.

Real World Example

There are some third party changes that may not be testable in a QA environment. We had an API change that depended on the URL/Domain and testing some functionality wasn't possible in the QA or Staging environments.

February 1, 2022

PyTest Install

PyTest Install Icon

The popular pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries.

Python is a good language to learn. According to the TIOBE and PYPL index, Python is the top programing language with C and Java closely behind.

If your application is Python base, QA Engineers may find that writing automation in Python may lead to a better understanding of the code logic - which in turn will result into better testing.

If your installing PyTest on your local MacBook Pro at work, you may run into issues with permissions. The local IT department may have your computer locked down and some of the installs will require Administrator permissions.

Here are the install instructions if you have limited rights.

PyTest User Install

Use Python3 -m pip to install PyTest and Selenium:

python3 -m pip install pytest --user

python3 -m pip install selenium --user

Sample Test File

Here's a simple code sample to validate the install worked:

#!/usr/bin/env /usr/bin/python3
# Verify the Pytest was installed
import pytest
from selenium import webdriver
import sys
import requests
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from time import sleep
 
def test_google():
	global chrome_driver
	chrome_driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))    
	chrome_driver.get('https://www.google.com/')
	title = "Google"
	assert title == chrome_driver.title
	pageSource = chrome_driver.page_source
	gateway = "Carbon neutral since 2007"
	if not gateway in pageSource:
		pytest.fail( "Google Changed their Webpage")
	chrome_driver.close()

Save this file on your computer, I would recommend saving it in ~/pytest/google.py

Execute Test

To execute this test, open up Terminal:

cd ~/pytest/
pytest --no-header -v google.py
January 25, 2022

QA January Memes

In honor of Burn's Night, here are some QA Memes in poetry form.

Poems

QA Bar Joke

QA Bar Joke 2

if-you-cant-fix-it-feature-it
Gregory Boyle's advice, "If you can't fix it, feature it."

quality-is-cost-and-cost-is-quality
John Deere has a saying - Quality is Cost and Cost is Quality

quality-said-i-thing-of-performanceoutperformance
I created this using a poem generator.

The Buggy And Risky Code

A Poem by qa

Whose code is that? I think I know.
Its owner is quite happy though.
Full of joy like a vivid rainbow,
I watch him laugh. I cry hello.

He gives his code a shake,
And laughs until his bellyaches.
The only other sound's the break,
Of distant waves and birds awake.

The code is buggy, risky and deep,
But he has promises to keep,
After cake and lots of sleep.
Sweet dreams come to him cheap.

He rises from his gentle bed,
With thoughts of kittens in his head,
He eats his jam with lots of bread.
Ready for the day ahead.

January 18, 2022

BostonGhost.com Email

A long time ago, I purchased the BostonGhost.com domain to use for testing. I never did anything with it, but still have the domain thanks to a hosting provider that I worked at.

Every once in a while I would get business inquiries about the domain. Usually, it's a sign of mass mailing, and the sender doesn't pay much attention to the potential client.

This is one such email that I recently got:

Boston Ghost Email Spam

QA Fails the Email

Here's are four reasons that QA fails this email:

  1. Why would I trust an email coming from gmail.com? Do they not have a legitimate business? Shouldn't the sender be using their domain name? If you are so good, wouldn't you have a domain name-
  2. Nice generic hello statement. You couldn't capitalize the domain name-
  3. "Hope Your Doing Well?" Like you really care how I am doing?
  4. Nice that you keep the variable placeholder in the email. That clearly shows that you pay attention to your emails. I certainly want to trust my Social Media Optimization and SEO to your company.

We All make Mistakes

I didn't call out the name of this company. We all make mistakes.

You should always test your email campaign before sending it out. At least have a second set of eyes to offer some constructive feedback.

Want to know why your conversion rate is low? You're not testing.

January 11, 2022

QA Fail: Natick Mall Exit Sign

Natick Mall is one of the busiest Malls in Massachusetts. You can find all sorts of interesting stores and eating places.

If your drive eastbound on Route 9 heading to the Natick Mall, it can be a bit tricky since there's no direct exit to the mall.

You can't take a left at a light to go to the Mall.

When you get to the Mall, you may see this sign:

N Atick Mall Road Sign

QA Fails this sign

Not sure who this sign is for - it's pretty small and easily missed with all the other distractions.

The sign is incorrect. The next "exit" is a traffic light and taking a left will put you in Sherwood plaza across the street from the Natick Mall.

You need to be in the right lane to get to the Natick Mall which is on the left side of the road. You can't turn left at the lights - where you would think you would. The sign is too close to the light - so a car in the left lane would have to cross a couple of lanes to take the proper exit.

Oh, if you miss your exit? It's a 1-mile penalty to do a U-Turn back to the Mall.

Map to Show The Way

Here's a map to show the proper way to get to the Natick Mall parking lot:

Natick Mall Map Way

Basically you have to drive by Sherwood Plaza and take the Speen St. Exit and the take the 9 West Framingham route. You'll end up making a U-turn and positioning yourself to several parking areas at the Natick Mall.

January 4, 2022

Google Cloud Termination Email

Recently I was test Google Cloud to see how it compares to the features of Amazon Web Services. This was using a self training program that I did for work.

I created a personal account so that I had more flexibility.

I only used Google Cloud during the trial period and was not required to put in a card for the trial - which was good because I really didn't have any intentions to make a purchase.

A couple of weeks later I get this email:

Google Clould Email

Text of the email:

Action required

Dear Google customer,

You are receiving this email because you are a Google Cloud Platform, Firebase, or API customer.

Your billing account XXXXX has been terminated for failure to provide a valid payment instrument or for not making all overdue payments. In addition the related Project(s) and/or Service(s) have been terminated.

If you wish to request reinstatement of your billing account and to pay all amounts past due and to update your account with valid payment information, follow this link: https://console.cloud.google.com/billing

If you have any questions please contact us using this form: https://support.google.com/code/contact/cloud_platform_billing

Why QA Failes

This email sounds very threatening and somewhat demanding. I had no files in the Google Cloud.

Why mention, "pay all amounts past due" when there wasn't anything to payback? I was using it during the allowed trial period.

Once someone is done with the trial, or if I feel that it isn't for them, there should be a way to cancel.

I never got a "Termination" email from Amazon Web Services. My account was just moved to the AWS Free Tier.

December 28, 2021

QA Memes that Sum up 2021

These are the Six QA memes that pretty much sum up 2021.

Romantic Candlelight Dinner'

/ Production Bug
http://www.cryan.com/qa/graphics//ProductionBug.jpg

Working from Home means that you're always on the clock. There's nothing like getting a critical text message or phone call of an issue in Production.

Added Logging

/log4j Meme
http://www.cryan.com/qa/graphics//log4jMeme.png

December was looking quiet until the log4j issue blew up. Who knew that having logging could cause some vulnerabilities? Logging in Production used to be good, not anymore.

Using Jira doesn't make you agile

/ Jira Agile
http://www.cryan.com/qa/graphics//JiraAgile.jpg

Where I work, Agile sprints are sometimes confused with Waterfall sprints. You can be productive using Agil, just make sure to stick with the program.

Modern Testing Meme

/ Modern Testing Graphic
http://www.cryan.com/qa/graphics//ModernTestingGraphic.jpg

This year I learned a lot about Modern Testing and how it can help improve the sprint velocity of any team. Modern Testing moves the ownership of testing to Developers where QA focuses on Quality.

Stand Back "Back to the Future" - Testing in Production

/meme-stand-back-test-in-production
http://www.cryan.com/qa/graphics//meme-stand-back-test-in-production.jpg

Lots of testing in Production in 2021 - at least on various projects that I worked on this year. There's so much risk of testing code in Production - but sometimes you don't have that choice.

Going to QA

/ Going To Q A
http://www.cryan.com/qa/graphics//GoingToQA.jpg

In 2021, getting code to QA is a big deal. Developers seemed to be confident that if it passed code review, it should have smooth sailing in QA. That wasn't always the case as QA tend to test functionality more than logic.

Send it to QA, what could possibly go wrong?

December 19, 2021

QA Meme Additions

Here's this month's Meme collection for Quality Assurance testing. Enjoy,

Make sure to check out all the QA Memes collection in the QA Graphic Library.

Yes Correct
Yes, You Are Correct
http://www.cryan.com/qa/graphics/YesCorrect.jpg

Bernie Sanders A W S
Bernie Sanders asking for AWS to be back up
http://www.cryan.com/qa/graphics/BernieSandersAWS.jpg

Release Moratorium
Release Moratorium
http://www.cryan.com/qa/graphics/ReleaseMoratorium.jpg

Scrollof Truth
The Scroll of the Truth
http://www.cryan.com/qa/graphics/ScrollofTruth.jpg

Change My Mind Log Jam
LogJam in Early 2021
http://www.cryan.com/qa/graphics/ChangeMyMindLogJam.png

Woo Hoo Devis Ready2021
Homer is Happy Dev is Ready
http://www.cryan.com/qa/graphics/WooHooDevisReady2021.jpg

October 26, 2021

QA Memetober #4

Here's the final entry for QA Memetober. There are four more included in the QA Graphic Library.

/ Happy Release Day
Happy Release Day
http://www.cryan.com/qa/graphics/2021/HappyReleaseDay.jpg

/ Moments Before Release
Moments before a Release
http://www.cryan.com/qa/graphics/2021/MomentsBeforeRelease.jpg

/ Bug Free Build
Bug Free Build
http://www.cryan.com/qa/graphics/2021/BugFreeBuild.jpg

/ QA Cycle
QA Test Cycle
http://www.cryan.com/qa/graphics/2021/QACycle.jpg

Remember to check out all the QA Memes in the QA Graphic Library. (Quite Possibly the Largest QA MEME collection online!)