Thursday, July 23, 2009

Change Your Browser Homepage and See Something New Everyday

When it comes to choosing a homepage for the browser, we all have different preferences. Some people prefer a blank start page (as it loads immediately), some may be using a search engine for the home page while others may have set multiple homepages as it helps them check all their favorites sites in one go.

The only problem is that these are all static start page so you will always see the same website every time you open the browser. If you find this setting boring or monotonous, here are some web addresses that will show you something new and interesting each time you open the browser.

1. Flickr Photos - This will load a random set of most interesting pictures from Flickr, the photo sharing website.

2. Wikipedia - This will open some random article from the Wikipedia Encyclopedia - replace "en" in the URL to see articles in your own language - de for Deutsch, es for EspaƱol, it for Italiano and so on.

3. Digg - This will load a random web page that was also popular on Digg. This will work even if you hide the Diggbar.

4. Delicious - This will open a web page that has recently gone popular on Delicious, the social bookmarking website. You can also tweak the delicious URL to load web pages related to your own interests. For instance, will only show cricket related websites in the start page.

5. Dictionary - Learn the meaning of some new English word every time you load the browser. Available for most other popular languages as well including Arabic, Hindi, Chinese, Persian (Farsi), etc.

6. StumbleUpon - This will open a random website that is popular among members of the StumbleUpon community. You can also add topics or URLs to the StumbleUpon bookmark to limit the level of randomness.

For instance, will only display pictures from while will show web pages that are under the "business" category.

Just drag any of these URLs to the browser’s home icon and prepare yourself to see something unexpected each time you open the web browser.

Surf the Web Faster on Slow Internet

1. Turn off web images, the Adobe Flash plug-in, Java Applets and JavaScript from your browser settings as these files are often the bulkiest elements of any web page.

2. Increase the size of your browser cache. If the static parts of a site (like background graphics, CSS, etc) are stored in the local cache, your browser can safely skip downloading these files when you re-visit the site in future thus improving speed.

3. Sometimes the slow DNS server of your ISP can be a bottleneck so switch to OpenDNS as it can resolve website URLs into IP addresses more quickly. If you aren’t too happy about OpenDNS redirecting your Google queries, follow this simple hack.

4. Finch can serve a light-weight version of any website in real-time that is free of all bells and whistles. For instance, the New York Times homepage with all external resources can weigh more than a MB but Finch trims down the size by 90% so the site loads more quickly on a slow web connection.

5. Flinch (mentioned at #4) is good for reading regular websites but if you just need to check the latest articles published on your favorite blogs, use BareSite. This service will automatically detect the associated feed of a website and render content quickly inside a minimalist interface.

6. The Google Transcoder service at can split large web pages into smaller chunks that will download more quickly on your computer (or mobile phone).

7. Monitor your Internet speed to determine hours when you get the maximum download speed from the ISP. Maybe you can then change your surfing schedule a bit and browse more during these "off peak" hours.

8. You can use a text browser like Lynx or Elinks for even faster browsing. It downloads only the HTML version of web pages thus reducing the overall bandwidth required to render websites.

9. When searching for web pages on Google, you can click the "Cache" link to view the text version of a web page stored in the Google Cache. Alternatively, install this GM script as it adds a "cached text only" link near every "Cached" link on Google Search pages.

10. Move your web activities offline as far as possible. You can send & receive emails, write blogs and even read feeds in an offline environment. Also see: Save Web Pages for offline reading.

11. You can interact with websites like Flickr, Google Docs, Slideshare, etc. using simple email messages. Uploading a new document to Google Docs via email would require less bandwidth than doing it in the browser because you are avoiding a trip to the Google Docs website.

12. Applying the same logic, you may also consider using tools like Web In Mail or Email The Web as they help you browse websites via email. Just put the URL of a page (e.g., in the subject field of your email message and these services will send you the actual page in the reply.

13. Bookmarklets are like shortcuts to your favorite web services. You neither have to open the Gmail Inbox for composing a new email message nor do you have to visit Google Translate for translating a paragraph of text. Add relevant bookmarklets to your browser bar and reduce the number of steps required to accomplish a task.

14. Use the netstat command to determine processes, other than web browsers, that may be secretly connecting to Internet in the background. Some of these processes could be consuming precious bandwidth but you can block them using the Firewall.

15. Use URL Snooper to determine non-essential host names that a website is trying to connect while downloading a web page. You may block them in future via the hosts file or use Adblock Plus to filter out advertising banners on web pages.

16. If you don’t want to spoil your web surfing experience by stripping images and other graphic elements from a web page, get Opera Turbo. It will first fetch the requested web page on to its own server and then send it to your machine in a compressed format. Opera Turbo won’t change the layout of a web site but can lower the image resolution so that they load faster on slow Internet.

17. Change the user agent of your desktop browser to that of a mobile phone like Apple’s iPhone or Windows Mobile. This will help you browse certain web sites like Google News, WSJ, etc. much faster because they’ll serve you a light-weight and less cluttered mobile version of their sites thinking you’re on a mobile phone.

Thursday, July 2, 2009

Top 10 Negative Test Cases

Negative test cases are designed to test the software in ways it was not intended to be used, and should be a part of your testing effort. Below are the top 10 negative test cases you should consider when designing your test effort:

1. Embedded Single Quote - Most SQL based database systems have issues when users store information that contain a single quote (e.g. John's car). For each screen that accepts alphanumeric data entry, try entering text that contains one or more single quotes.

2. Required Data Entry - Your functional specification should clearly indicate fields that require data entry on screens. Test each field on the screen that has been indicated as being required to ensure it forces you to enter data in the field.

3. Field Type Test - Your functional specification should clearly indicate fields that require specific data entry requirements (date fields, numeric fields, phone numbers, zip codes, etc). Test each field on the screen that has been indicated as having special types to ensure it forces you to enter data in the correct format based on the field type (numeric fields should not allow alphabetic or special characters, date fields should require a valid date, etc).

4. Field Size Test - Your functional specification should clearly indicate the number of characters you can enter into a field (for example, the first name must be 50 or less characters). Write test cases to ensure that you can only enter the specified number of characters. Preventing the user from entering more characters than is allowed is more elegant than giving an error message after they have already entered too many characters.

5. Numeric Bounds Test - For numeric fields, it is important to test for lower and upper bounds. For example, if you are calculating interest charged to an account, you would never have a negative interest amount applied to an account that earns interest, therefore, you should try testing it with a negative number. Likewise, if your functional specification requires that a field be in a specific range (e.g. from 10 to 50), you should try entering 9 or 51, it should fail with a graceful message.

6. Numeric Limits Test - Most database systems and programming languages allow numeric items to be identified as integers or long integers. Normally, an integer has a range of -32,767 to 32,767 and long integers can range from
-2,147,483,648 to 2,147,483,647. For numeric data entry that do not have specified bounds limits, work with these limits to ensure that it does not get an numeric overflow error.

7. Date Bounds Test - For date fields, it is important to test for lower and upper bounds. For example, if you are checking a birth date field, it is probably a good bet that the person's birth date is no older than 150 years ago. Likewise, their birth date should not be a date in the future.

8. Date Validity - For date fields, it is important
to ensure that invalid dates are not allowed (04/31/2009 is an invalid date). Your test cases should also check for leap years (every 4th and 400th year is a leap year).

9. Web Session Testing - Many web applications rely on the browser session to keep track of the person logged in, settings for the application, etc. Most screens in a web application are not designed to be launched without first logging in. Create test cases to launch web pages within the application without first logging in. The web application should ensure it has a valid logged in session before rendering pages within the application.

10. Performance Changes - As you release new versions of your product, you should have a set of performance tests that you run that identify the speed of your screens (screens that list information, screens that add/update/delete data, etc). Your test suite should include test cases that compare the prior release performance statistics to the current release. This can aid in identifying potential performance problems that will be manifested with code changes to the current release.