Last Updated: 27 Jun 2023

   |   

Author: dordal

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
processes:web-qa-testing [Oct 7, 2011 06:29 AM]
dordal
processes:web-qa-testing [Jun 27, 2023 04:51 AM]
dordal old revision restored (Jun 24, 2023 12:24 PM)
Line 1: Line 1:
 += Website + WebApp QA & Testing Procedures =
  
 +This is intended to be a brief overview of some of the things you need to do think about when doing QA/testing a website or web application. It is aimed more at the front-end than the back-end, and is **//not comprehensive//** (but should still serve as an excellent guide). 
 +
 +
 +Also be sure to see the [[web-launch-checklist|Website Launch / Relaunch Checklist]]. 
 +
 +== Overall Site Testing ==
 + * First things first: have someone (preferably a fresh set of eyes) click around the site or app and look for anything broken or strange. Possible items include:
 +  * Broken or mis-sized images (foreground & background)
 +  * Links that don't work (either because they go to the wrong place or because the Javascript they call isn't working).
 +  * Incorrect copy/information. No type-os, missing information, 'lorem ipsum' greek text, etc.
 +  * Interactive functionality working. 'Interactive functionality' is a broad term, but your tester should test all forms and data entry areas on the site/app to make sure they don't generate errors with standard information. They should also test any Javascript functionality to make sure it works as desired.
 +  * Back/forward button testing. If you're building an app, you //must// test what happens when you use the back/forward buttons on the browser. Using these can often result in duplicate data entries and all sorts of other issues if you're not careful coding.
 + * Make sure emails still work. A lot of sites have email images & copy in an 'emails' directory, e.g. ''/emails/acme_annoucement_29_march_2011/''. If you're doing a relaunch of your site, make sure this directory makes it over.
 +
 +== Cross Browser Testing ==
 + * You'll need to test the site/app on a variety of browsers. You should generally perform the same tests you did above, but in each of the popular browsers.
 + * As of **October 2011**, I recommend: **Firefox [Latest]**, **Safari [Latest]**, **IE 7**, **IE 8**, **IE 9** & **Google Chrome [Latest]**. By **[Latest]** I mean whatever version is the latest one being pushed out to users via the auto-update functionality. **IE 6** and **Firefox 3.6** should be tested from an 'its readable' standpoint, but not a 'pixel perfect' standpoint.
 + * Make sure layout looks good at a variety of monitor resolutions, from 1024x768 up to whatever the max resolution you have available is. The [[https://addons.mozilla.org/en-US/firefox/addon/60|Web Developer Toolbar]] for Firefox can help with this.
 +
 +== No Javascript, No CSS & No Cookies Testing ==
 + * Turn off Javascript and browse the site. Can you get everywhere? Does anything look really weird? Should it be fixed?
 + * Turn off CSS and do the same thing (or browse the site in a text based browser). Folks with screen readers will be browsing your site this way: does it at least make sense?
 +  * //Print the site.// Does it look good? Do you need a print.css aimed at printing the website?
 + * Clear & disable cookies. Does your site still work? If you need cookies to use your site, are the 'cookies disabled' error messages at least helpful?
 +
 +== SEO Testing ==
 + * See [[marketing-tech:seo:search-engine-optimization-basics|Search Engine Optimization Basics]] for full details on SEO, but at a minimum you should make sure each page has:
 +   * Correct title tag
 +   * Correct meta tag(s)
 +   * Proper SEO page structure (e.g. title information is in ''<h1></h1>'' tags, etc.)
 +   * ALT tags on images
 + * URL structure is good (e.g. you're using SEO-friendly URLs)
 + * If you're relaunching, you have [[#old-pagesite-testing|redirects from any old URLs]] to new URLs. 
 + * Make sure you have a [[http://www.sitemaps.org/|sitemap.xml]] file.
 + * Make sure you have a [[http://en.wikipedia.org/wiki/Robots_exclusion_standard|robots.txt]] file.
 +
 +== Analytics / Tagging Testing ==
 + * Is Google Analytics installed? If you look at the Net tab in [[http://getfirebug.com/|Firebug]], do you see GA calls being made? In order to test GA, you have to have your site on a real domain (e.g. ''http://staging.mywebsite.com/'' ). GA doesn't make calls if the site is local-only (e.g. ''http://mywebsite/'' )
 + * Is there any advanced Google Tracking you need to implement? Tracking [[http://code.google.com/apis/analytics/docs/tracking/asyncMigrationExamples.html#EventTracking|events]] or [[http://code.google.com/apis/analytics/docs/tracking/asyncMigrationExamples.html#VirtualPageviews|virtual pageviews]]?
 + * Will Google Analytics goals or e-commerce tracking change? Obviously you won't want to do this until launch, but you should be prepared to make the changes as soon as you go live.
 + * Do you need to do any other tracking/tagging? Adwords? DoubleClick tags? 
 +
 +== Test Data Entry Areas / Validation ==
 + * Test to make sure that data validation on data entry areas is working properly. Truly doing this properly is a big job, but at a minimum you should:
 +   * Enter non-allowed characters and data for each form entry. As a simple example, enter a letter in a field that should only take numbers. Of course, there's a lot more too it than that; search Google for details.
 +   * If you're using AJAX, manually make AJAX calls with bad data and see if you can get anything to break.
 +   * Turn off Javascript and submit your forms. Does the backend properly validate data as well, or did you do it in Javascript only?
 +
 +== Javascript/XSS Testing ==
 + * Make sure you do a XSS (cross site scripting) security test. Search Google for info on how to do this if you don't know how.
 +
 +== Application / Database Testing ==
 + * Test that characters are properly encoded before being stored in the DB, and properly decoded when coming out of the DB.
 + * Test for SQL injection vulnerabilities.
 + * Turn off your database. Does your app error gracefully if the DB is down?
 +
 +== Broken Link Checking ==
 + * Using a program such as [[http://peacockmedia.co.uk/integrity/|Integrity]] or [[http://home.snafu.de/tilman/xenulink.html|Xenu Link Sleuth]], test the site for broken links.
 +
 +== Old Page/Site Testing ==
 + * If you're pushing a new version of a site or app, make sure that any old pages are properly redirected with a 301 redirect (or other technique if appropriate). 
 + * The easiest way I've found to find out what is out there is to search Google for ''site:mysite.com''. Click on each link (replacing the URL of your live server with the URL of your dev server) and make sure it goes where you want it to.  
 +== Test Customer Communications ==
 + * Test that you (or someone) gets an email for every address on the site. Note that is //not// just good enough to send a message and make sure it doesn't bounce; you need to send a message that says 'please reply' and then **followup to make sure you actually get a reply**.
 + * Call every phone number on the site and make sure it is correct.
 +
 +== Code Validation ==
 + * This is optional, but you may want to make sure your pages validate against the [[http://validator.w3.org/|W3C Validator]].
 + * Run PHP with errors set on ''E_ALL''. That will make sure you don't have any ''E_NOTICE'' level warnings. Optionally, run it on ''E_STRICT''