Friday, 24 July 2015

TESTING TOOLS HANDBOOK



Introduction

What is QA?
Testers QA flow

 

 

QA General

Levels of QA

Functionality testing
Compatibility testing
Integration testing
Performance testing
Security testing
Stress testing
Fail Over testing
Negative testing

Release Level Definitions

Conceptual
Alpha
Beta
Gold
Release Candidates

3rd Party testing

Benefits of outside testing houses (imitating
Customer feedback)

Web Testing

The HTML3 – HTML4 basics that help
Being creative in ways of breaking things

Browser Matrix Testing

Why?
Netscape
Internet Explorer
AOL
What is a good Browser Matrix?

What to Look for

Connection – speed, error types
Load time - 50KB rule
Java console Version
JavaScript is not Java
Global Functions or SSI
Database writing and reading
Cookies
Images
Bookmarks
Links, pages and link checkers
Forms
Resizing
Video and 3d plug-in rendering
Sound
Resolutions
Text problems – Font consistency, spelling errors, grammar errors, and CSS.
Alt Text
Alignment
Plug-ins
Consistency
Copyrights
Search Engines

Bug Tracking

Why? (Communication / speed)
Bug databases
Process / Flow

Writing bugs

Severity and definitions
Format
Do’s and Don’ts

Test Scripts

Why?
How to write

Lab Setup

Hardware
OS
Internet Connections
Clean VS Dirty systems
Ghost (how to make it work for you)












The Quality Assurance Web Tester’s Handbook

Dedication
To my Intel IWOS QA team…Don’t ever ask me a QA question again, it’s all in this handbook!

Introduction

This handbook has been written for the new QA web testers out there. Welcome to web QA! We all have a little bit of QA in us. If your not new to QA, I hope that you can at least learn one thing from it all and use it to your benefit. My suggestion is read it all the way through and then use it as your checklist for QA’ing your product. This is more of a fact and tips book or maybe a “Cliff Notes” handbook, so don’t expect to many details (maybe the next addition). In attempt to not make this handbook to long or extremely boring the following pages focus on the role of an actual QA tester and do not really get into QA management.

 In the following pages I have several examples and facts on web testing but keep in mind this does not cover every scenario. You’ll probably think of a ton of things that could be added. But I just want to briefly focus on the basic points of Web QA. Hopefully by putting all this stuff from my head into writing I can erase that QA mental checklist and add other stuff to my brain…maybe some more programming languages? Who knows? I just need more hard drive space up there and upgrading isn’t an option yet. Johnny Pneumonic where are you when I need you?

What is QA?
QA stands for Quality Assurance and is defined as: a planned and systematic pattern of all actions necessary to provide adequate confidence that the product optimally fulfils customer's expectations. This QA process has multiple levels, some handled by specific teams.  Each with a specific role in the process but all working together to achieve these nine items of quality measurement criteria:
1.   Correctness factor – Is the software achieving the things we wanted it to?
2.   Accuracy factor – Is the software achieving all it’s goals?
3.   Efficiency factor – Is the software running at peak performance levels?
4.   Reliability/ safety factor – is the software safe use?
5.   Maintenance factor – Is it possible to fix or take care of the software?
6.   Flexibility factor – Is the software easy to change and is it possible to reuse some of its parts?
7.   Testing factor - Is it possible to test the software.
8.   Computability factor – Is it possible to transfer between computers systems and openness to external environment?          

3rd Party QA
QA does not have to be done in house. Many 3rd party QA companies are available and have knowledgeable people (saves time, gets rid of the in house learning curve) and can usually provide instant manpower for small or large applications. 3rd party test houses usually have a wide hardware matrix to choose from if that is a factor in the testing needed (saves money).

What does a QA tester look like?

To fit the role of QA tester a person must love computers, have no social life, enjoy video games, wear glasses, smell of coffee, and have a nerdy laugh.
Or…
After being in the biz a little while and managing teams I feel the perfect Web QA Tester is somebody who is an up and coming programmer or a programmer period. Understanding the code underneath the web app you are working on is huge benefit and gives the tester great hacking/breaking skills. Most importantly you must love working with computers. Computers must be your best friend. If you can’t work with them all day WITH patience then you might be better off working in a different field. Hey, I heard Burger King was hiring!

QA Levels

The QA process is divided to provide and show proper QA coverage of a product. This allows teams to handle/focus on different areas individually, until all levels are complete. Once complete, the application/product QA process is complete.

Functional testing
Testing that ensures the application is working as planned. This includes testing for compatibility with hardware, OS, screen resolutions, transfer rates, and browsers. Looking at the functionality of an e-commerce site might raise such questions as:
·         Are all purchasing process working correctly?
·         Are all the item prices being calculated correctly?
·         Is the site responsive?
·         Is it taking orders?
·         Are the financial modules performing the right tasks?
·         Is the inventory being updated correctly?
·         Is your distribution working as promised?

Usability testing
Testing to make sure that the end user experience is positive and that the user interface is properly designed. High usability means a site is:
·         Easy to learn and remember (consistent).
·         Efficient.
·         Visually pleasing and fun to use.
·         Quick to recover errors.

Compatibility testing
Testing that ensures the application works appropriately on supported operating systems and browsers. Possible scenarios:
  • Double byte characters.
  • Differences between browsers.
  • Differences between OS’.

Link testing/Page audits
Testing that ensures all links of the application pages go to the correct locations.
·         Manual link testing
·         Link testing using a program like Linkbot Pro.

Regression
Testing that verifies that past bugs are fixed and old bugs stay fixed.

Localization testing

Testing that ensures that the English version of the application can handle input from different language browsers and systems.
  • Double byte characters.
  • Language specific characters.
  • Language writing styles.

Integration testing/Build Verification Testing (BVT)
Integration testing ensures that currently updated code flows/works with the old code. This happens when partial build/sections are integrated into the application. A BVT is a check on a whole site after a new build has been released, to ensure bug fixes have not affected other parts of a site.

 

Performance testing

Testing that ensures that the application works well using different connection speeds. A maximum time limit for page load should be set.
  • 56K modem testing.
  • LAN testing.
  • Cable/DSL testing.
  • Proxy testing.

Stress/Load testing
Testing that ensures the application works during peak load conditions. The maximum amount of simultaneous users that can use the application before the application breaks will be determined.

Fail Over testing
Testing that ensures that online servers back up plan initiates when the primary servers fail.

Negative testing
Testing that ensures the application gives appropriate messages and/or handles invalid input. The test cases should include boundary conditions as well as invalid input.

Information security testing
Testing that ensures the application is secure and unbreakable by hackers. This includes application level security as well as Network Security testing.
Possible risks:
  • Spoofing – Copying of existing pages to create illegitimate sites that appear to be published by established organizations. In fact, con artists have illegally obtained credit card numbers by setting up professional-looking storefronts that mimic legitimate business.
  • Unauthorized disclosure – When transaction information is transmitted, hackers can intercept the transmissions to obtain customers confidential information.
  • Unauthorized action – A competitor or disgruntled customer can alter your web site so that it refuses services to potential clients, or malfunctions.
  • Data Alteration – The content of a transaction can be intercepted and altered en route, either maliciously or accidentally. User name, Credit card numbers, and dollar amounts are all vulnerable to such alteration.



Release Levels

Conceptual
QA will hardly ever see an application during this level. Most of the time the app only exists on a whiteboard somewhere. If QA were to approach the application on this level it would mostly be with menu design and usability.

Alpha
·         Development/Testing site available.
·         No Catastrophic PR’s.
·         Ability to get to pages (may not be with correct links).
·         Base test plan complete
·         List of countries/languages supported.
·         Site is 33% complete??????

Beta
·         Feature complete (all further changes scheduled with Release notes).
·         All links work from the main page
·         Tested with primary rev of IE and Netscape.
·         Test case document done.
·         Site is 85% complete.??????

Gold/Release Candidates
·         All links work (pass link checker).
·         No show stopping or High PR bugs.
·         All supported browsers are tested.
·         Full grammar and spelling check done.
·         Stress testing is complete.
·         Site is 100% complete.


Web Testing

The HTML3 – HTML4 basics that help –Tags. Frames, layers, tables
Knowing what’s going on behind the scenes gives a QA tester more power in finding and writing bugs.
A little bit of HTML or JavaScript knowledge will take you a long way. Being able to portray a bug with sections of code or file names makes it really easy on the developer. Even if you are able to visually portray the site using HTML terms is very helpful. For example: “In the top left FRAME there is a table with 2 columns, inside the second table column is a broken image”. The developer will love you if you can portray the Web site bugs in this way. Guaranteed! The problem is you can’t really report this way if you don’t know HTML or JavaScript. The best thing to do is get your hands dirty. Try a little coding yourself. It’s not as hard as you might think. I promise that when you have just a small grasp of these languages you will take Web QA testing to next level (Database….Ooooooh GAWD!).

Creativity in ways of breaking software
You can follow all the suggestions in this handbook but there will always be new ways of testing or breaking things. You’ve got to pretty much leave it up to your imagination. Think like a hacker (that’s where HTML or scripting knowledge is useful).


Crying Wolf

One of the most common mistakes I’ve seen from new QA tester is what I call the “Cry Wolf Syndrome”. Medically I think, this syndrome is caused by an over stimulation of adrenaline on the brain causing testers to take a new found bug and run screaming to the nearest manager without first verifying the bug exists on other PC’s. Although this is a severe and problematic condition it is curable with a little self-discipline. Although it can be exciting to find a huge “showstopping” bug, if the bug is not verified on another machine or the details gathered you may be “Crying wolf” or just wasting peoples time with something that doesn’t apply to the situation. Here is an example scenario, starring Joe the rookie QA Tester:
While QAing for Microsoft, Joe was one day casually surfing the beta Microsoft.com site for bugs when his browsers GPF’d and smoke began to billow from the back of his computer. Joe jumped up and exclaimed “Microsoft has succeeded in blowing up computers via the web, I’ve got to tell the QA manager”. Joe hastily tracked down the extremely busy manager and asked for a few minutes of his time. Joe’s manager (being extremely busy) took a moment to test the proposed bug on his personal computer. Upon entering the site and same area, they both cringed waiting for the GPF and smoke but nothing happened. Joe’s manager became angry and exclaimed “Thank you for wasting my time, did you verify this before you came to me”? Joe answered “No” in a shaky, meek voice. Needless to say Joe learned his lesson and still to this day triple checks his bugs and gathers all details before reporting or submitting the bug to anybody else.

Browser Matrix Testing

As of 2/9/00, 33.6% of Internet users have Netscape for a browser, giving Internet Explorer 52.9% control, which leaves 13.5% belonging to miscellaneous browsers. Unfortunately Web QA testing has been made quite a bit harder due to the Netscape and Internet Explorer war. Neither will agree to HTML4 standard which affects many things like: Netscape uses JavaScript, while IE uses their own version -Jscript. Due to examples like this developers are forced to write browser specific code to make each browser function as expected. Not only do they have JavaScript differences, but they both work differently when it comes to rendering images, creating font details with CSS (Cascading Style Sheets), window resizing/refreshing, table rendering, frame rendering, etc…  The list goes on and on so this is why we have to set and test a specific range of browsers. Keep in mind the following matrix is intended for Windows operating systems (the headache gets a lot bigger if we start testing MAC or UNIX).

This matrix applies to a site that is 4+ compatible:
IE 4.01 - JavaScript 1.2 compatible
IE 5.0 - JavaScript 1.2 compatible
IE 5.5 - JavaScript 1.2 compatible
AOL 4 (IE4) - JavaScript 1.2 compatible
AOL 5 (IE5) - JavaScript 1.2 compatible
Netscape 4.05 JavaScript 1.2
Netscape 4.08 JavaScript 1.3 
Netscape 4.51 JavaScript 1.3
Netscape 4.7 JavaScript 1.3

This matrix applies to a site that is 3+ compatible:
IE 3.01 – JavaScript 1.1 compatible
IE 4.01 - JavaScript 1.2 compatible
IE 5.0 - JavaScript 1.2 compatible
IE 5.5 - JavaScript 1.2 compatible
AOL 4 (IE4) - JavaScript 1.2 compatible
AOL 5 (IE5) - JavaScript 1.2 compatible
Netscape 3.04 JavaScript 1.1
Netscape 4.05 JavaScript 1.2
Netscape 4.08 JavaScript 1.3 
Netscape 4.51 JavaScript 1.3
Netscape 4.7 JavaScript 1.3

Sometimes the browser matrix gets even easier, this is when the developer decides that the site will only support the latest version of each browser. This cuts the list down to 3; IE 5.5, Netscape 4.7, and AOL5.
If Netscape does not have any of these browsers easily accessible off of their site unfortunately they do not support them any more. So this must be taken into consideration by the developer and the tester during the Alpha stage. How does a tester find old browsers? Netscape and IE are pretty good about archiving 4.0 and up. If you surf the site pretty heavy you can usually find what you need. If you can’t find what you need then the next best alternative is find out the name of the install executable and do an FTP search for it. Still no avail? I hope you have some friends in high places! If these options don’t turn up anything for you then you’re usually out of luck.

What to Look for

When testing it is very easy to become overwhelmed and confused with the site and it’s bugs (especially when testing in multiple languages). The secret to success is using a checklist (like the one I’ve provided below) and checking each item on every individual page working from top to bottom left to right.  For example: The first item on your checklist is looking for image problems. Enter the site and surf the entire site looking for image problems (top to bottom left to right), reporting them as you find them. When images are done, move on to links…etc… etc… This may sound time consuming, and it is, but I promise this method will give you one of the highest bug counts on your team, along with a well QA’d Web site.

The following list contains suggestions of things to look for. Take these examples/scenarios and dream up more for the website your working on. All web sites are different which makes breaking them that much more fun!

Connection
A rule of thumb for developers as of 1999 is to keep a page below 50Kb to keep load time minimal, to keep the users attention. But sometimes a well-built page can still produce errors because of slow connection speeds or overwhelmed servers. A huge 500KB page will usually load, taking some time but a page on a slow server will sometimes time out and report errors. Errors such as DNS Server Error, or 500 Bad Request. This is a bug to be reported by QA. It’s definitely not a QA web page bug but a server performance bug. These types of problems are usually analyzed to the fullest extent by a QA Stress Testing team.

Content
Is the content meet the site criteria? Think of this as a movie rating system. ‘R’ or ‘PG” content isn’t going to fly on a ‘G’ site.
·         Look for the ability to post bad language on G or PG sites via login names, chat rooms, message boards, or top 10 game score postings.
·         Look for possibly offensive pictures. Naked statues or provocative poses.

JavaScript
JavaScript is not Java. Java is not coffee. Coffee is not the answer. NO-DOZE babeh!  Think of JavaScript as a slimmed down version of Java built into the browser. Usually when a JavaScript error occurs in one browser it will occur in other browsers that use the same version of JavaScript. For example looking at the following list we could deduce that if we found a JavaScript error within IE4, more than likely the error can also be found in Netscape 4.x or lower, but probably not in Netscape 4.08.
Versions:
Netscape 2.0 – JavaScript 1.0
Netscape 3.0 – JavaScript 1.1
Netscape 4.x – JavaScript 1.2
Netscape 4.06+ - JavaScript 1.3
Internet Explorer 4 – JavaScript 1.2
Internet Explorer 5 – JavaScript 1.2

Java on the other hand, can be processed by a browser via a Java Applet. The same type of version problems occur with Applets except there are far more versions of Java. Fortunately we see a lot less Java Applets than JavaScript.

Navigation
The world is flat! If you walk to the edge YOU WILL FALL OFF. The World Wide Web that is! Using a page or browser navigation menu can sometimes leave the user stuck in an unwanted place. Things to look for with web site navigation:
  • Back buttons that don’t take the user back to the expected page.
  • Forward buttons that move the page forward to page previously viewed.
  • Home buttons that do not take the user to the root of the site “Home”.
  • Bookmarks that when used do not take the user to the desired page.
  • Refresh button that refreshes the current page. Sometimes refreshing takes user back to HOME.
  • Can you reach a certain page from any point on the Web site? Does it have a global menu?

Cookies

Ahhhh…cookies… My favorite snack. No not Oreos. Web cookies. I like to break them and give them back to developers! Cookies are everywhere in web pages! Developers use this information to track information about you on their site. Simple things like dates, membership info, form info, or pages you’ve visited.
Ways to create cookie problems:
  • Mess with system dates (most cookies are set to expire on a certain date)
  • Delete the cookie and revisit the site. Do you have to re-sign up for membership?
  • Open the cookie. Is it encrypted? (Non-encrypted can be a security problem).

 

Images

Image problems are pretty simple because they are visual and obvious.

Things to look for with images:
  • Broken images
  • Poor image quality
  • Images that are to large in file size (long load time).
  • Misaligned images
  • Broken links within image maps.
  • Broken links within Flash movies
  • ALT text inconsistency or misspelling.
  • Repeating background images at high resolutions
  • Image maps with links

 

Bookmarks

Bookmarks are fun! HEEHEE! I want one with a pretty unicorn on it! Uh…oh. Where was I? Bookmarks are sort of a security threat on membership sites. So how do we test the? Start with the question: Can you bookmark a page that a user shouldn’t enter without going through a certain process?

Something to look for with bookmarks:
  • Can the user bookmark a page after logging into the site? Test this by deleting cookies and re-entering the site.
  •  Can the user bookmark a page that gives a special offer to get the special offer or free item multiple times?

 

Forms

Forms are pretty tricky and time consuming. Problems can occur in a variety places. Usually forms will submit to some sort of database/cookie or send an email. The testers job is to verify that the information input into the form is captured into the proper location and then (if available) is displayed or “confirmed” with the user. Privacy/Security is also a huge issue with form submission. Forms almost always contain sensitive information. It is QA’s job to make sure that information stays private.
What to test for in forms (most results occur after form submission):
·         Does the input information write to the database or cookie correctly?
·         Is the cookie encrypted if needed?
·         Is the transmission of the form encrypted?
·         Is the form on a secure server? (https://)
·         Does the database or cookie return the previously input information correctly on the confirmation page?
·         Does the database or application you’re submitting the form to understand ASCII characters?
·         Does the form accept a space as a character?
·         Can you enter invalid email addresses? (Tom.at.aol.com)
·         Does the form accept email addresses with 2 letter extensions (tom@bravo.cc)
·         Does the form accept and process capital letters?
·         In password fields, can the user enter a password and different confirmation password and submit the form without an error?
·         Can spaces be used in the password field?
·         What is the character limit of the field? Does it all save to the database? What happens when you input 100, 500, or 1000 characters?
·         How do check/radio boxes affect the submission of the form? Does it affect database entries?
·         Is it possible to overwrite existing data in the database or cookie on submission of the form?

Security Settings
Playing with the browser’s security settings can make a web site not function as intended. Most web sites are designed around default security settings, but the tester needs to look at what happens when the security settings are set to high. A good web site will detect these settings and dump the user on a page stating what the problem is and how to go about fixing it. Examples:
  • Turn off cookies, when an attempt to write a cookie occurs, what happens?
  • Turn off JavaScript, when JavaScript attempts to load, what happens?
  • Turn off JAVA, when an attempt to load a Java Applet occurs, what happens?
  • Turn off ActiveX, when an attempt to load an ActiveX control occurs, what happens?

Video and 3d plug-in rendering
  • Does video stream at an acceptable rate?
  • Is video pausing minimal?
  • Are the video players controls responsive?
  • Do the textures on 3D models display correctly?
  • Is 3D animation smooth?
  • Is sound uninterrupted and smooth?
  • Is default sound volume acceptable?

Links, pages and link checkers
Manual link checking is very important. All though link checking tools can check for 404 not found pages and various other errors, they can not tell you if a page goes to the correct URL.
Things to look for:
  • Does the link open the correct URL as labeled?
  • Does the link open the correct URL in the proper frame or window?

 

Sound

Sound testing with the web is pretty basic. Does it work? Does it work well?

  • Is the user able to turn off/on sound? (Flash – plug-in)
  • Does the sound pause or skip because of download speed or image rendering?
  • Is default sound volume acceptable?

Screen Resolutions

Resolutions affect the way a page is viewed. Most pages are designed for a minimum resolution. So before reporting bugs know what that minimum resolution is.
Things to look for with resolution settings:
  • If a web page is to large for a certain resolution, is it scrollable or does it get cut off?
  • At what resolution does the background start to repeat?

Browser Resizing
Sometimes when a browser is resized it will not resize the web page correctly, leaving pages cut off or improperly rendered. This is a very simple test. Simply resize the browser window by dragging the resize handle, minimize, or maximize the window.

Text problems
Text problems can be found within many parts of web page. You have the plain HTML text, text within Java, text within Flash or a plug-in, or text within an image.
Things to look for with text:
  • Spelling/Grammar errors. Copy the text and run it through a spell/grammar checker.
  • Left, right, center justification. Does everything line up correctly?
  • Do paragraphs appear to have a right margin?
  • Some text is in the form of an image, which sometimes causes distortion.
  • Is the font type and size consistent throughout the site?

Alt Text
ALT text only applies to images. It is a mouse over effect built into the browser. Things to look for:
  • Does the ALT text match or correspond with the image?
  • Spelling/grammar errors.
  • Inconsistency of the ALT tags. They appear with some images but not others

Search Engines
  • Can the – operator be used to prohibit words? Example: Santa –elves -reindeer
  • Can the + operator be used to prohibit words? Example: Santa +toys +Rudolph
  • Can wildcards be used? Example: *at   = possibly cat, rat, bat,
  • Can specific phrases be used? Example: “Santa’s Reindeer”
  • Are results displayed in a numbered order, even when entering the next results page?

Plug-ins
  • If a required plug-in is not installed does the site prompt or warn you about installing it?
  • If an older version of the plug-in is installed but the newer version is needed, does the site prompt the user to upgrade?



Consistency
Multiple people working on one site can affect the consistency. This usually happens because guidelines have not been set. This can create small or large problems.
  • Does the menu stay in a consistent location?
  • Is the font type and size consistent throughout the site?
  • Are framesets consistent?
  • Is copyright and legal information consistent?

Copyrights and Legal info
  • Is the Copyright date/year current?
  • Is a separate legal info page available?

Bug Tracking

No this section has nothing to do with hunting down ants with a magnifying glass. Bug tracking can be done via email, spread sheets or word documents but works best done with a database program. Because of a database’s effectiveness, the following list focuses on tracking the progress of web bugs within a database. Using a bug-tracking database gives QA the advantage of:
  • More Control over change process.
  • Highlights areas of concern.
  • Helps to prevent bug duplication.
  • Highlights areas that need testing – Locates problems in a specific set of ranges via queries.
  • Regular build process promotes control.
  • Methodical change request process tracking.
  • Database is central repository for “Change Requests”.
  • Better communication to help focus improvements in: What happens with bugs, management tracking process, and the history of problems.

Programs such as PVCS Tracker allow users to do the above mentioned. It gives users a professional environment where many people can work from the same database without affecting others. It allows bug checking in and out, submitter/owner assignment and email forwarding capabilities. Simply, PVCS is a very powerful tool that makes a QA tester’s bug reporting easier.

How to write a bug

The purpose of a bug is to convey a problem. Bug reports need to be concise and need to portray the severity of the problem. Keeping a general format and writing style for your bugs makes everybody’s life a little easier. Being consistent in these areas allows people who read your bugs on a daily basis to easily dissect your report because the format/style is the same the only thing that differs is the actual content or problem. Here is a picture of the “Perfect” bug report.


Steps in writing a bug report:
1.   Check the current database to ensure that the problem has not already been reported.
2.   Bug Title: State the problem in simple terms. A good approach is to emulate a newspaper article title. (Location + Operating Condition + Action = Symptom). Example: “On test.htm, In Internet Explorer when clicking on the blue button a JavaScript error occurs”. It doesn’t have to be ultra pretty, or in that specific order, just get all the info you can in one sentence.
3.   Description: Description is actually broken up into two parts; the actual detailed description of the bug and the listed steps to reproduce. Which pretty much sums it up. The description is the area to list the details of the bug (how, what, where, when) and the steps to reproduce include steps to recreate the bug from a starting location.
4.   Other information: This information is easiest via drop down boxes when it is actually built into the form you input your bugs into, because you’ll find yourself repeating this information over and over again. Fields may include:  Severity, status, language, component, category, operating system, browser, owner and submitter.


Tips on writing a bug report
·         Determine the fewest number of simple steps to reproduce the bug.
·         If the bug involves a detailed error message (GPF, JavaScript, or Database error) cut and paste the error message into the bug description.
·         It’s better to repeat information in the Title, Description and steps than not to have enough information.
·         If the end user effect is unclear, state it in simple terms at the end of the report.
·         Steps to reproduce, stated in simple form will allow anyone to recreate the problem.
·         If the problem is specific to on language, state the language as the first three letters of the Title.
·         Abusive language or opinion is the best way to make sure your bugs are ignored. Don’t go there.
·         If you are testing on multiple platforms/OS’ identify the one you are using.
·         Double-check your own spelling/grammar.
·         If possible provide a work around or suggestion.


How to determine the severity of a bug?
The 4 severities of a bug are low, medium, high and showstopper. All bugs are important but some are not as easily noticed than others. Developers start with show stopping bugs and work there way down. This is done in case deadlines are not met, site has to be launched. If the Showstopper and High bugs are resolved usually the site is pretty stable. But a lot of medium or low bugs may make the user’s experience unpleasant. We won’t talk about that because I may get shot by the developers.


Rules on rating a bug as “Showstopper”:
·         Product does not meet customer requirements.
·         Schedule impact risks FCS.
·         Stops progress for 25% or greater of the user base.
·         Does not meet legal requirements (Trademark and branding).
·         Reduces functionality and one or more of the following secondary failures exists on 10% or greater of the user base:
o   Causes the system to hang.
o   Causes a GPF fault or blue screens.
o   Cause loss of data or conveys wrong information to the user.
o   Product installation doe not install/load correctly.
Real World defect Severity examples for “Showstopper”:
·         404 Not found error.
·         403 Forbidden error.
·         Password protected URLs or sites.
·         VB Script errors preventing the user from going through the site.
·         JavaScript errors preventing the user from going through the site.
·         ODBC Database errors.
·         Image or text links that take the user to the wrong place.
·         Spelling or grammatical errors that may result in a lawsuit.
·         After plug-in installation the related plug-in media will not load.
·         Page is not scrollable but needs to be.
·         Language translation is incomplete.
·         Inputting 10,000 characters into a form text-box crashes the server.
·         Links to download do not download files.
·         Something that causes serious performance degradation under load.
·         Deleting cookies makes the user go into an infinite redirect loop when trying to log in.
·         System cannot handle projected user loads due to programming errors.
·         Hardware errors.


Rules on rating a bug as “High”
·         Stops progress for 10% or greater of the user base.
·         Schedule impact risks FCS.
·         Work around does exist.
·         Is a high annoyance/impact to user and the frequency of the occurrence is high
·         Reduces functionality.
Real World defect Severity examples for “High”:
·         Broken image.
·         JavaScript form checking doesn’t work.
·         Spelling or grammatical error.
·         Buttons that do not function as expected.
·         Text does not fit on page.
·         Windows do not operate as expected.
·         Image alignment is off/bad.
·         3D distortion within a plug-in.
·         Sound skipping or pausing.
·         Form text boxes will not hold enough characters.
·         Passing sensitive user info is unencrypted.


Rules on rating a bug as “Medium”
·         Problem can be worked around.
·         Annoyance/impact to the user, but the frequency of occurrence is low.
Real World defect Severity examples for medium:
·         ALT tags
·         Distorted images.
·         Page titles mislabeled.
·         Text describes that is not really there: “Click button below”, but no button.

Rules on rating a bug as “Low”
·         No schedule impact.
·         No loss of functionality.
·         Low annoyance/impact to the user.
Real World defect Severity examples for “Low”:

·         Proxy error.

  • Button mouse-over does not function.
  • Link appears twice (and it’s not supposed to).
  • Small Typos.
  • Usability problems.
  • Cosmetic issues.
  • Unexpected behavior/invalid test cases.












 

Process / Flow

The bug flow process is best understood visually. The following flow chart depicts the flow of a bug after submission (example 1). The second chart (example 2) depicts the flow of bug owners and bug status as it changes hands.

 
 
 
 
Example 1
 










































Example 2








































Test Scripts/Test Cases

Why?

Test scripts are written for testers to follow a certain process of testing to ensure that specific portions of a web site are covered. A good test script is actually a very detailed site map. A site map that even covers things that may not be apparent to user of the site, such as cookies, plug-in installations, Java installations, or database reading and writing. Once a test script is written to cover the features of a site, it can be handed on to others and they will not have to “re-discover” all the features of the site. With a finished test script, browser matrix testing can be quick and efficient. In summary it is a time saving document that ensures that all aspects of a site have been covered. A test script is also known to be a proficient “Butt coverer”. It’s a document that proves that all portions of a site were properly covered in case question should ever arise on errors that may be found after release.

How to write

Like mentioned previously a test script is a document that covers all or specific portions of a site. Your goal is to help other testers cover functionality and compatibility of a site with one big sweep. So where does one start? The first thing to do is familiarize your self with the site. Understand how the site flow works, how the site keeps track of you as a user (cookies/database), and what items are needed to view the site as intended (minimum resolutions, plug-ins, and browser requirements).

 Once you have a general feel for the site its time to start breaking it down into separate components. We do this by starting with the menu. The site is already divided for you via the menu and submenus. With this you can have a section of test script covering each menu/submenu area. Visualize your script as a site map.

Once you’ve divided the menu areas you can dissect each page working from left to right, top to bottom, documenting each item and what the expected behavior is when the item is clicked on. This is done for each page. This method covers the content in each page but does not test the flow of the site. So the last part of your test script should cover the special situations that may while navigating or entering the site. Situations like: Entering the site, registering as a member, receiving a cookie, exiting the site and reentering to verify the cookie allows you in as previous member. There are usually many special situations that need to be covered. Sometimes the situations seem endless and really only need to be verified once, so it not worth documenting in the test script to have many other people re-verify. This is a decision of the test case writer, but he/she should ask himself a basic list of questions to help decide whether it should be documented in the test script:

1)   Will this scenario possibly affect different browsers?
2)   Is the scenario really extensive and difficult? If it is, the possibility of error grows.
3)   Is this standard behavior for site navigation?
4)   Does the scenario utilize something on the back end (database, streaming media)?
5)   Doe the scenario utilize something other than standard HTML (JAVA, XML, PERL)?
6)   Would the scenario be a technical support call generator?

If you can answer yes to any of these you best bet is to include the scenario in the test script. With this basic list and some feelings from your gut, a test scriptwriter can usually make the proper call whether or not something should be included. Here is an example test script: INSERT SCRIPT OR URL HERE






Lab Setup

Hardware

Hardware plays two major roles in web testing: web connection and video.  Machine configurations should be a variety of connection of speeds and video configurations. Why different connection speeds? Different types of connection speeds are used to test user experience with slow VS fast and also Time testing.

With video cards a high-powered card that handles the largest resolutions is the ultimate setup. The more resolutions that can be tested on one machine the better. The only issue I’ve seen that concerns video cards on the web is the use of 3D plug-ins. Some cards do not render textures correctly.

Browsers

Every QA team has limited computer resources. The more computers the better, but lets face it having 30 different computers with different browser configurations is almost impossible because of cost of computers. But a starting point is 3. Computer one with IE4 and Netscape 3.04. Computer 2 with IE 5 and Netscape 4.01. Computer 3 with IE 5.01 and Netscape 4.51. This is a decent browser matrix and the tester has the power to upgrade the browser on each machine in an effort to solve a bug or problem. Or just move to the next machine to see if the bug is apparent on a different browser version.


Internet Connections

The speed of internet connection can affect a variety of things. A slow connection can create severe lag in video, or cause page requests to time out. Giving you false errors. When testing it is best to test as a consumer might. Matching the general connection speed of the public is the best bet. As of 01/20/00 we test with 56K. Cable and DSL are slowly taking over though!

Usually testing from larger corporations users are forced to test via the LAN. This creates problems in its self. Problem number one being; usually all http requests go through a proxy server. Sometimes proxy servers get over loaded which returns browser errors. Example errors caused by proxy servers are: 500 Bad Server Request, and 400 Bad Request.  Problem number two is speed. Although your company may have a fat Internet pipe to the building, 100 people surfing the web at lunchtime can bring your connection speed to a crawl, creating an invalid test.


OS

Operating system is important because each has it’s own default browser that may be different than the downloadable version. Examples:
Win95a IE 3.0
Win95b IE 4.0
Win95C IE 4.0
Win98 IE 4.01
Win98SE IE 5.0
Win2000 IE 5.5
Other instances that deal directly with operating systems are web pages that do an OS check and interact with the user using this information.


The importance of current driver releases:
Having the latest driver versions for all hardware in your PC is important. Having the latest and greatest creates one less possible variable when it comes to troubleshooting a problem.
Scenario #1:
Betty installed the Beatnik plug-in for her browser – IE4, but when she visits a site with some heavy Beatnik 3D work the textures on the 3D object don’t render.

Resolution:

9 times out of 10, dealing with video or sound distortion issues are related to old drivers. A simple hardware driver upgrade will usually solve the problem. If not…Upgrade DirectX and DirectX Media! If this doesn’t solve the problem is probably because your video card doesn’t support the 3D format that the plug-in uses.


“Clean” VS “Dirty” systems


The definition for a “Clean System” is as follows: “A system that has nothing but the default installation of the OS on the drive. No other programs installed (besides drivers)”. A clean system gives the user the benefit of an OS that has never had anything put on it which creates the most valid test case possible. If a problem is encountered the variables to test are very small. Usually the OS or the browser itself is the culprit.
Scenario #1:
Joe enters http://www.testme.com with a “Clean System” and encounters no errors. Betty enters the same site with the same configuration but encounters a JavaScript error. The only difference is that Betty has surfed the internet with her browser for the last 3 days.
Resolution:
We can probably count on the problem being something to do with his “Dirty System”. Like a cookie, or changed security settings. In order to verify that it is the “Dirty System”, retest the site on identical another “Clean system”. If it passes, then Joe’s buddy needs to use the process of elimination to figure out what his machine has that Joe’s doesn’t.



The definition for a “Dirty System” is as follows: “A system that has had other programs (besides the OS) installed on it, or has previously surfed the internet”. An error that is encountered with a “Dirty system” is harder to verify because there are more variables that may be causing the errors found. To test and diagnose an encountered problem the tester will usually have to use the process of elimination to nail down the culprit. But testing with a “Dirty system” is an essential part of QA because that’s what the real world user would have.
Scenario #1:
Joe has installed Norton Antivirus and Microsoft Office 2000 onto his system and every since he has not been able to log into his favorite web site.
Resolution:
Obviously one of the two programs is the culprit if this was the only thing done since Joe last logged onto his favorite web site. The way to resolve this is to use the process of elimination by uninstalling each one until Joe can log back into his favorite web site. Joe may also have to reregister with his favorite site to refresh any info that the web site dumps onto his system.




Symantec’s Ghost (how to make it work for you)

Ghost is a simple disk image program that allows the user to take an image (copy) of a disk or partition and compress it into one file. This program has cut down OS rebuilding time to almost nothing. Picture this:
A fresh install of Windows 98 takes about 250MB of hard disk space. Using ghost to take an “image” of the hard disk and then compressing it makes a ghost image file of about 150MB. It gets even better though. When you’ve decided to restore your OS with this image file it will take Ghost about 3 minutes to have your OS up and running. Another Ultra-Cool fact is that you can use the same ghost images for identical machines. So you can have identical machines with only one Ghost image (huge time saver). Lets take a look at some scenarios where Ghost can benefit the QA tester.

Scenario#1:
Joe was doing a little web site QA’ing with a “dirty” OS and encountered an error that seemed to be browser related.
Resolution:
Just to make sure the error is Browser related Joe needs to test for the error on a “Clean” OS/Browser. With this in mind Joe restores his OS with his “Clean” ghost image and his OS is up and running in around 3 minutes to conduct the test.

Scenario#2:
Betty is surfing the web and downloads an ActiveX control through her browser that corrupts her Windows 95 registry. Does this ActiveX control corrupt Windows 98’s registry or Windows 2000’s registry?
Resolution:
Since Betty is a good tester she took the time and setup multiple Ghost images all the OS’. She uses Ghost to restore the computer to Windows 98, tests the problem and then uses Ghost again to test the problem in Windows 2000. All within 15 minutes, on one machine! With a “Clean”  OS/Browser!

Setting up storage for your Ghost images

The ultimate setup has proven to be on a partitioned drive. Keep in mind Ghost can copy single partitions not just whole drives. Simply put: Put the OS on drive C: and all the Ghost images on drive D: . With this setup you can exit to DOS run ghost from the D: drive and refresh the C: drive. Other options for setup are to have Ghost images burned to CD and no partitioned drive. The only problem with this setup is that if you ever want to fix or update the Ghost image (which happens a lot), you would have to burn a new CD with your new Ghost image. A third option for setup is to store the image files on a separate machine somewhere on a network. But this method has a few problems. The first problem being Network lag can create faulty ghost images and the 2nd problem being that you must set up your machine to run on the network in DOS, which is a pain!

Batch files

A “Batch” of “Ghosts”? OOOOh! How eery! Ghost is great because it has it’s own little language that can be used in batch files. With a properly programmed batch file you can skip the whole Ghost menu and refresh setup process. Creating a batch file with a desktop shortcut pointing to it gives you the power of refreshing your system to a new OS with one mouse click! What makes this Ultra-Ultra Cool is that you can have multiple icons on the desktop pointing to different OS versions or languages.


Tweaking the OS to your liking before Ghosting the partition

It seems no matter how good you think your OS setup there is something you will always forget to change to your liking. Here’s a don’t forget list:

View all files in Explorer
English Keyboard layout (for international OS’)
Shortcuts to cache-cookie folders
Desktop backgrounds labeling OS and Browser configuration
Turning off Windows Power Management
Turning on the Java Console in IE
Browser proxy settings
Daylight savings disabled (when the time changes Windows prompts you to change every time you restore).
Set resolution and color depth to preferred level.
Enable QuickRes in the taskbar.
Put all your shortcuts to batch files/ghost images on the desktop.
Map heavily used network drives.
Empty the Recycle Bin.
Configure the desktop the way YOU like it.
Clear cookies (Makes browser ultra-clean and shrinks Ghost file size)
Clear temp file (Makes browser ultra-clean and shrinks Ghost file size)
Clear history in IE (Makes browser ultra-clean and shrinks Ghost file size)
Set browser home page to something useful.


How to automate a Ghost Refresh


1)   Using a text editor input this command: “ghost.exe –clone,mode=pload, src=d:\ghost~1\br98.gho”  (command lines can be found within the Ghost manual)
2)   Save the file as “br.bat” and put in your “D:\ghost images” directory.
3)   Create a desktop shortcut to this batch file.
4)   Right mouse click the newly made desktop icon and click properties.
5)   Click the ”Program” tab.
6)   Click the “Advanced” button.
7)   Check the box “MS-DOS mode”.
8)   Check “Use current MS-DOS configuration”.
9)   Click “OK” twice.
Now the Icon will run the batch file you’ve created in MS-DOS mode! Now you’ve got to create the BR98.GHO image that the batch file is pointing to. So use Ghost to copy the “Clean” OS partition (drive C:) to the “D:\Ghost Images” directory.


So think about this lab setup and the power you would have as a QA tester:
1)   A “D:\” drive with Ghost images of Windows 3.11, Windows 98, Windows 98SE, Windows NT 4, Windows 2000, Windows Millenium, and Linux.
2)   An image of Windows 98 with Netscape Navigator and IE 5.5
3)   An Image of Windows NT4 with IE5 and Netscape Navigator.
The options are endless, just set up the drive to make your testing convenient! And all just one mouse click away from your desktop. All you have to do is build and save the OS with Ghost one time!

No comments:

Post a Comment