Monday, April 20, 2009

Graphics

The graphics of a web site include images, animations, borders, colours, movie clips, fonts, backgrounds, buttons etc. Issues to check are:

1. Make sure that the graphics serve a definite purpose and that images or animations don’t just clutter up the visual design and waste bandwidth

2. Verify that fonts are consistent in style

3. Suitable background colours combined with font and background colour. Remember that a computer display exceptionally well desing constraints apposed to printed paper.

4. Three dimensional effects on buttons often gives useful cues

5. When displaying large amount of images, consider using thumbnails. Check that the original picture appears when a thumbnail is clicked.

6. Size-quality of pictures, usage of compressed formats (JPG or GIF)

7. Mouse over effects.

Navigation

Navigation describes the way users navigate within a page, between different user interface controls (buttons, boxes, lists, windows etc.), or between pages via e.g. links. To determine whether or not your page is easy to navigate through consider the following. Is the application’s navigation intuitive? Are the main features of the site accessible from the main page? Do the site need a site map, search engine, or other navigational help.

Be careful though that you don’t overdo your site. Too much information often has the opposite effect as to what was intended. Users of the web tend to very goal driven and scan a site very quickly to see if it meets their expectations. If not, they quickly move on. They rarely take the time to learn about the sites structure, and it is therefore important to keep the navigational help concise as possible.

Another important aspect of navigation is if the site is consistent in its conventions regarding page layout, navigation bars, menus, links etc. make sure that users intuitively know that they are still within the site by keeping the page design uniform throughout the site.

As soon as the hierarchy of the site is determined, testing of how users navigate can commence. Have real users try and navigate through ordinary papers describing how the layout is done.

Important tips:

1. Intuitive navigation
2. Main features accessible from main page
3. Site map or other navigational help
4. Consistent conventions (navigation bars, menus, links etc.)

Wednesday, April 15, 2009

Databases Testing

Databases play an important role in web application technology, housing the content that the web application manages, running queries and fulfilling user requests for data storage.

The most commonly used type of database in web applications is the relational database and it’s managed by SQL to write, retrieve and editing of information.In general, there are two types of errors that may occur, data integrity errors and output errors.

Data integrity errors refer to missing or wrong data in tables and output errors are errors in writing, editing or reading operations in the tables. The issue is to test the functionality of the database, not the content and focus here is therefore on output errors. Verify that queries, writing, retrieving or editing in the database is performed in a correct way.

Issues to test are:

1. Creation of tables
2. Indexing of data
3. Writing and editing in tables (for example valid numbers or characters, input longer than field etc.)
4. Reading from tables.

Dynamic Interface Components Testing

Web pages are not just presented in static HTML anymore. Demands for more dynamic features, custom made sites and high interactivity have made the Internet a more vivid place than before. Dynamic Interface Components reside and operate both on server and client side of the web, depending on the application.

The most important includes Java applets, Java Servlets, ActiveX controls, JavaScript, VBScript, CGI, ASP, CSS and third-party plug-ins (QuickTime, ShockWave or Real Player). The issue here is to test and verify the function of the components, not compatibility issues.

An example of what to test can be a Java applet constructing and displaying a chart of company statistics, where the information first have to be retrieved and then interpreted and displayed on the screen. Since server-side components don’t have user interface, event logging (logfiles) can be used to record events by applications on the server side in order to determine functionality.

Important Tips:

1. Do client side components (applet, ActiveX controls, JavaScript, CSS etc.) function as intended (that is do the components perform the right tasks in a correct way)
2. User disabling features (Java-applets, ActiveX, scripts etc.)
3. Do server side components (ASP, Java-Servlets, Server-side scripting etc.) function as intended (that is.do the components perform the right tasks in a correct way).

Programming Language Testing

Differences in web programming language versions or specifications can cause serious problems on both client and server side. For example, which HTML specification will be used (for example 3.2 or 4.0)? How strictly? When HTML is generated dynamically it is important to know how it is generated.

When development is done in a distributed environment where developers, for instance, are geographically separated, this area becomes increasingly important. Make sure that specifications are well spread throughout the development organization to avoid future problems.

Expect HTML classes, specification on example JavaScript, ActiveX, VBScript or Perl need to be verified.

There are several tools on the market for validating different programming languages. For languages that need compiling example C++, this kind of check is often done by the compiling program. Since this kind of testing is done by static analysis tools and needs no actual running of the code, these tests can be done as early as possible in the development process.

Language validation tools can be found in compilers, online as well as for download, free or by payment.

Important Tips:

1. Language specification
2. Language syntax (HTML,C++,Java, Scripting languages, SQL etc.)

Web indexing Testing

There are a number of different techniques and algorithms used by different search engines to search the internet. Depending on how the site is designed using Meta tags, frames, HTML syntax, dynamically created pages, passwords or different languages, your site will be searchable in different ways.

Important tips:

1. Meta tags
2. Frames
3. HTML syntax
4. Passwords
5. Dynamically created pages.

Cookies Testing

Cookies are often used to store information about the user and his actions on a particular site. When a user accesses a site that uses cookies, the web server sends information about the user and stores it on the client computer in form of a cookie.

These can be used to create more dynamic and custom-made pages or by storing, for example, login info.If you have designed your site to use cookies, they need to be checked. Verify that the information that is to be retrieved is there.

If login information is stored in cookies check for correct encryption of these. If your application requires cookies, how does it respond to users that disabled the use of such? Does it still function or will the user get notified of the current situation.

How will temporary cookies be handled? What will happen when cookies expire? Depending on what cookies are used for, one should examine the possibilities for other solutions.

Important tips:

1. Encryption of e.g. login info
2. Users denying or accepting
3. Temporary and expired cookies

Forms Testing

Forms are used to submit information from the user to the host, which in turn gets processed and acted upon in some way. Testing the integrity of the submitting operation should be done in order to verify that the information hits the server in correct form. If default values are used, verify the correctness of the value. If the forms are designed to only accept certain values this should also be tested for.

For example, if only certain characters should be accepted, try to override this when testing.These controls can be done both on the client side as well as the server side, depending on how the application is designed, for example using scripting language such as Jscript, JavaScript or VBScript. Check that invalid inputs are detected and handled.

Important tips:

1. Information hits the server in correct form
2. Acceptance of invalid input
3. Handling of wrong input (both client an server side)
4. Optional versus mandatory fields
5. Input longer than field allows
6. Radio buttons
7. Default values

Sunday, April 12, 2009

Link Testing

Links are maybe the main feature on web sites.They constitute the mean of transport between pages and guide the user to certain addresses without the user knowing the actual address itself.Linkage testing is divided into three sub areas.

First - check that the link takes you to the page it said it would.

Second - That the link isn't broken that is that the page you're linking to exists.

Third - Ensure that you have no orphan pages at your site. An orphan page is a page that has no links to it,and may therefore only be reached if you know the correct URL.

Remember that to reduce redundant testing,there is no need to test a link more than once to a specific page if it appears on several pages;it needs only to be tested once.

This kind of test can preferably be automated and several tools provide solutions for this.

Link testing should be done during integration testing. When connections between pages subsist.

Important Tips:

1.Verify that you end up at the designated page

2. Verify that the link isn't broken

3. Locate orphan pages if present

Wednesday, April 8, 2009

Test Case Techniques - Error Guessing

Error Guessing:

Guessing is the art of guessing where errors can be hidden.There are no specific tools and techniques for this,but you can write test cases depending on the situation.Either when reading the functional documents or when you are testing and find an error that you have not documented.

Error guessing is based mostly upon experience,with some assistance from other techniques such as boundary value analysis.Based on experience,the test designer guesses the types of errors that could occur in a particular type of software and designs test cases to uncover them. For example,if any type of resources is allocated dynamically,a good place to look for errors is in the de-allocation of resources. Are all resources correctly de-allocated,or are some lost as the software executes?

Error guessing by an experienced engineer is probably the single most effective method of designing tests,which uncover bugs. A well-placed error guess can show a bug,which could easily be missed by many of the other test case design techniques presented in this paper.

Conversely, in the wrong hands error guessing can be a waste of time. To make the maximum use of available experience and to add some structure to this test cases design technique, it is a good idea to build a checklist of types of errors. This checklist can then be used to help "guess" where errors may occur within a unit. The checklist should be maintained with the benefit of experience gained in earlier unit tests,helping to improve the overall effectiveness of error guessing.