Introduction
What is QA?
Testers QA flow
QA GeneralLevels 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…
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:
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:
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.
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.
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.
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.
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 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:
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
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