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.
Running frequent tasks is one of the important parts of the Infrastructure team. The tasks vary from deleting files in the /tmp folder to running nightly reports.
The most popular tools for running scheduled tasks is cron.
It's important for QA to know the frequency of certain tasks and if that is the intended results. For example, should the task be running at 2 pm every other day, or is it at 2 pm every other week?
It's hard to remember the proper syntax to use. Fortunately, there is help.
Crontab.guru is an awesome site that helps you write and identify proper cron syntax. Simply put in a cron syntax and you'll get examples of how it would run.
This site also has a nice learning area. You can learn all the various crontab syntax options, the examples page has great example of different schedule options. (Such as setting up a cron schedule to run a cron job every even hour.)
Remember once you set the Cron job to test it! There some good tips over at End Point.
Website Cookies are small files that are used to for websites to store information on your browser. Website owners will tag a cookie to a browser for tracking purposes. Cookies are one way that a website knows that you visited it before and can auto log you in to make the experience better.
Occasionally the Quality Assurance team has to verify cookies have been set or to manipulate an existing cookie. This can be a bit tricky to do in Chrome Console panel.
I like how the cookie is separated by name, and if you want more information, simply click on the header to find more information. Making it easy to scroll through all the cookies.
EditThisCookie is open source. Check out the source code at GIT Hub
Blocked Cookies are ways to prevent a cookie from being created. You may do this to stop websites from tracking you online. (Hi Google!)
Protected Cookies is a feature to lock the value of a cookie. This will prevent a site from changing the value of a preset cookie. This is a good way for QA to test how cookies interact with the site.
Chrome Profiles vs Icognito Mode
As part of testing, Quality Assurance engineers usually switch to Incognito mode to verify functionality. For example, to see how a website behaves without the cookie setting.
If you don't want Google Chrome to remember your activity, you can browse the web privately in Chrome's Incognito mode.
Instead of switching to Incognito mode, have you considered setting up a separate profile for testing? For example, you can set up a profile for Dev, Staging, and Production:
Instead of launching Incognito mode to test production, you might be better off creating a Chrome Profile.
Each Chrome Profile is an isolated environment. Think of each Person as a separate Chrome application - each with its own Extensions, Bookmarks and Cookies.
This means you can enable extensions and other settings for that particular environment.
In addition, you get a unique Bookmark bar specific to that Profile. Now you can have special bookmarks that you would use for Staging and Production.
When you go Incognito mode you only get the bookmarks for the current profile. In most cases, all the extensions are disabled. Profiles are a bit more powerful.
Unfortunately there is no keyboard shortcut to switch between profiles. You will have to use the profile switcher. However, There is a way to create a new Dock Launcher to fire up a different profile.
Creating a Profile
It's very easy to create a new profile. Simply select the People menu, and then 'Add Person' or select your name on the top right of the current browser window and select "Manage People" then click on "Add Person"
There is no limit on the number of people you can have, and you can always remove the profile.
Tip: Set up a temporary profile for that big project that your working on.
Imagine having bookmarks to the Current Product Specs, Jira Parent Ticket and the QA Wiki Reference page in the Bookmark Bar. Once the project is done, delete the profile.
A Google profile is a good way to manage a large project.
MacOS: Create a Profile Specific Dock Launcher
To launch Chrome with a specific profile, you pass through the profile-directory parameter. The profile number is based on the order it was created on the computer.
- open -a "Google Chrome" --args --profile-directory="Profile 4"
- open -a "Google Chrome" --args --profile-directory="Profile 1"
If you want to create an Application Shortcut, use the Automator Tool. Simple copy/paste the command into the "Run Shell" command window:
- Launch the Automator application
- Create a new Document
- Select Application as the Type of Document
- In the Search command, to the right of Variables, type in Shell
- Select the 'Run Shell Script'
- Paste in open -a "Google Chrome" --args --profile-directory="Profile 2" (Change the profile to the one you want.)
- Test the command by typing Command R
- Save the Application to someplace, and then drag/drop it in the Dock.
Learn More about Google Profile
Read all about Google Person functionality on the "Share Chrome with Others" page.
The Vivaldi is a great secondary browser for QA. It's built on the same platform ( Blink ) as Google Chrome, with some extras that QA will appreciate.
Why Use Another Browser?
Having another browser is a good way to isolate testing. You can use the secondary browser to test certain third-party extensions for compatibility issues.
In addition, Chrome doesn't always make things easy. It's good to expand the horizons and see how other browsers make testing Web Applications easier.
Three cool Features
Here are some built-in features in Vivaldi that are not regularly available in Chrome.
Quickly access Twitter, Facebook or any Dashboard to find out what's going on. If the site is using responsive programming, the web panels will display the site as if your viewing it from a mobile device.
Web Panels are customizable tabs which allow you to keep your favorite sites easily accessible on the side Panel of Vivaldi. Opening a Web Panel will allow you to simultaneously view its content alongside the tab(s) in your main window.
For QA, this makes it easy to access social networks or system dashboards to quickly check to see if services are down.
Built-in Screen Capture
Need a get a browser screenshot? Vivaldi makes it super easy to get a simple browser screenshot or a full-page shot.
There are three ways to get this done:
- Page Action
- Quick Command
- Keyboard Shortcut - create your own shortcut in the settings.
While there are plenty of awesome extensions that are available in Chrome, none have the multiple access that's built in Vivaldi. The quick command and customize keyboard shortcut come in handy.
Quick Commands is a tool for users that like to keep their hands on the keyboard. To access the Capture tool via Quick Commands:
- Open Quick Commands by pressing x2318 E.
- Enter "Capture" to filter the list of available commands.
- Use the arrow keys to navigate the list of Capture commands.
- Press Enter to issue selected command, or
- Close Quick Commands by pressing Escape key.
Status Bar Page Actions
On the bottom of the browser window is an action bar. One of the cool features is page actions. Here you have the ability to make quick changes to the existing site.
Functionalities available include: Content Blocker, CSS Debugger, Filter Black and White, Filter Grayscale, Filter Intensity, Filter Invert, Filter Obscure, Filter Sepia, Fonts Monospace, Highlight Focus, Highlight Hover, Reader View, Skewed Images, Transformed 3D, Transitions Forced and Transitions Removed.
You probably think that they aren't useful, but it can help with debugging issues. In addition, combined with the screenshot functionality and you can use these actions to highlight features that may not be obviously broken.
Check out Vivaldi
It doesn't cost anything to check out Vivaldi. There's lots of exciting features on their Features page.
More more thing... Vivaldi has built-in Apple Script support. So you can run all sorts of actions against the browser.
Zero Downtime in QA
When people think of Zero Downtime, they usually think about servers and networks. They don't want their websites to go down. Something along this quote:
Zero Downtime in QA
In QA, there's always something to do. There never is a "downtime." Sure when there's no ticket to test, or in between release cycles, it can seem like downtime. Truth be told there's always something to do in QA.
It's important to keep busy, even when there's nothing new to test.
Nine Things to do in a QA Downtime
This is a general "what to do" when engineering has completed a sprint and there's nothing new in the queue for QA.
- Update Manual Testcases - Every release brings new changes to the application. Make sure the test cases are always kept up to date.
- Update Manual Testcases Execution - What test cases are being run every release? Do they still need to be run? Check out the priority of weekly regression test cases to see if they are still relivent.
- Writing Automation - Automation writing is a continuous process. Where it's to fix application changes, or support new browser features - its a never ending process. In addition, its good to find ways to make the automation process go faster.
- Update Wiki - Make sure that online documentation is updated based on the latest release. (Deployment Cycle, Lessons learned from the testing)
- Review Tests - Was there hiccups during the last test cycle? What could have been done better to prevent the issues from occurring in the future?
- Review Documentation on upcoming projects - Get a jump start on the next project by reviewing the product/technical specs.
- Usability Testing - Go through the application and see if there's any bugs/issues that aren't being reported by customers. Sometimes features/functionaries that were deployed in the past are not working today and missed by manual testing because people are testing for functionality rather than seeing from a customer prospective. (QA Should watch some Usability testing to get an idea how customers really use the application.)
- Application Testing - Learn more about the Developer tools in Chrome and/or FireFox. Some techniques that you learn today may help with a future project - such as how to capture screenshots in the Developer tools.
- Continuous Learning - When was the last time you touch up on JQuery, SQL or HTML5? Check out some of the training on UDemy or lynda.com.
QA Word Cloud
I ran the above items in a word cloud generator and came up with the following.
Test Case Repository
A Test Case repository is where QA keeps test cases use for various test situations. You should be able to find tests for Weekly Regression, Performance Testing, Security Testing and Acceptance Testing.
Seven Things I Learned About Using A Test Case Repository
- Always Update! Systems Change, Browsers change. If a test case hasn't been updated in 3 months something is clearly wrong with it. (If it's a manual test case, then it might be a good candidate for automation.)
- Negative Tests are Good! QA can learn a lot about negative test cases in a separate part of the project. Helps come up with ideas on
- Focus on the 80/20 rule. Don't clutter the Test Case Repository with useless tests that people would not execute because they were relevant during the development stage of a project.
- Prioritize Tests. There should be more High Priority / Critical Tests in the Test Case Repository than low-level ones. Chances are the low-level ones won't get executed very often, try combining the tests so QA isn't overwhelmed by the number of tests to run.
- Product Managers Should be in the Know. Share access to the Test Case Repository to Product Managers so they are aware of what tests are run on a weekly bases. They may offer feedback on an additional test that should be run - or change the priority on existing test cases.
- Write Good Practical Test Cases. Test Cases should be easily understood and executed. There should never be a need to contact the original author. It's a good place for new QA Engineers on a project to start. In addition, QA Managers should point out well-written test cases to inspire everyone to write well.
- Audit Often. Take a good look at the Test Case Repository often. During downtime, check to see if the test cases are relevant. If it's not be executed, find out why and decide if it's a relevant test.
It's not the quanity of the test cases that matter it's the quality of the tests.
Negative Test Cases
In QA testing, Negative Tests are used to make sure the application behaves when actions are performed outside of expectations.
An example would be to enter Unicode characters in a phone field. Sure you may test for alphanumeric values - but what if someone accidentally typed in a Unicode value?
Negative Tests are a good way to see how solid the code is written. Did the developer think of all the edge cases? An example did the Developer account for not allowing a single space in a required field (users do this so they don't have to put in information - such as phone numbers.)
Thoughts About Negative Test Cases
In your Test Case Repository, you should have a lot more Positive Test Cases than Negative test cases. You should be testing more than a positive outcome will happen than negative ones.
When testing a new product, you should have more Negative Test Cases than Positive ones. QA should be making sure that there are no bad surprises when the product is launched.
You won't account for all the scenarios but can learn a lot from past projects and the way that certain developers write the code.
Most companies have done a very poor job of identifying and documenting negative test scenarios.
A good source of Negative testing data is the Bug Magnet browser extension.
Happy Path Testing
Happy Path defines the success of every QA test - the user should be able to run through the functionality without having to encounter any errors.
Defining the Happy Path
The QA Project lead should start out building out a test plan that defines the happy path. While the path may seem obvious - it does help identify risk area.
Only One Happy Path?
Some QA Experts will say that there's only one Happy Path in a project. I'll argue that many paths may exist, for example in eCommerce you may have a Happy Path for existing customers and one for new customer.
Real World Example
A good real-world example of a happy path is going to the grocery store and getting everything on your shopping list.
Can you think of ways that a Happy Path would not be accomplished?
Some things that could cause an unsuccessful Happy Path
- Store isn't open
- Department is closed (Deli or Bakery is closed)
- Product isn't available
- Product is hard to find or not reachable
- Shopping is taking too long
- Checkout can't accept Credit Card transactions
Figuring out all the possibilities that could prevent someone from having a Happy Path is a good way to build test cases.
When starting out testing a new product, QA brainstorm ways that could prevent users from successfully completing their tasks.
On release day, all new products should have a successful Happy Path.
When working with the product team, it's helpful to share how a particular site looks in different browsers. Getting a screenshot can help confirm or raise display issues that may be unique to a certain browser configuration.
That's when Browserstack Screenshot comes in handy for QA.
Browserstack's Screenshot website is a useful tool to create screenshots of websites on different platforms. You simply enter the URL and in minutes see what the site looks like in 30 different possible settings.
There are plenty of browser configuration to choose from - 11000+ browser combinations. However, you can only select 25 browser combinations at a time. (Seriously why would you need more than 25?)
When you first arrive at the site, your automatically selected the most popular browser configuration available. So, in most cases, you simply put in a URL and then go.
After the images have been completed, You can download the collection and attach it to a Jira Issue. The filenames have the OS, Browser Version, example: macelc_firefox_45.0.jpg
This is useful for non-login testing, basically to make sure the general site loads.
You can't configure if you want an only the visible part of the page or the full page. In my test, the page size was 1024''-9819.
The Local Testing functionality works really well, you simply run a small program that you download from their site. Then browse around like normal.
QA Meme Pictures update
There's still no good graphics library for QA. It would be great if there was a library go to find that perfect image.
I have about 200 files in my Evernote Graphic library. I thought I start sharing some of the graphics that I use.
New this week are six graphics that I created/found for Quality Assurance. These images help add a bit humor when things get a little stressful.
This is a sample of some of the graphics that I added to the collection.
Release is Delay
If QA finds an issue, it's good to let the team know that there's going to be a delay.
When Release Management has been quiet about the release. Wake them up with the Adele Meme.
Ship It and Revert
When the release deployment just didn't go as planned. It is time to roll back and try again.
Checkout the QA Graphic Library
If there are any images that you would like to see added, let me know. I'll added it to the collection.