In this post, I will describe major web testing methods which are useful to test a website:
- Functionality Testing.
- Usability Testing.
- Interface Testing.
- Compatibility Testing.
- Performance Testing.
- Security Testing.
1) Functionality Testing
Functionality testing involves testing of all the links shown are functional. Navigating to target pages. Test links will remain in the same page. Detail information regarding functionality testing is mentioned below:
- Are the calculation shown correct?
- Is the help information are relevant and correct?
- Does the internal search show relevant search results?
- Is the save, edit, delete, reset, cancel close functionality properly working?
- Are the follow-up confirmations sent correctly?
- Are relevant successful message and error messages shown are every action?
- Are errors being handled correctly?
- Are internal links functional?
- No irrelevant message.
- Check for broken links.
- Check validation for all the fields in the forms.
- Character limit for all the fields.
- Default values for all the fields.
- Checking for valid and invalid inputs to all the fields.
Cookies testing
Cookies are small files stored on user machine. These are basically used to maintain the session mainly login sessions. Test the application by enabling or disabling the cookies in your browser options. Test if the cookies are encrypted before writing to user machine. If you are testing the session cookies (i.e. cookies expire after the sessions ends) check for login sessions and user stats after session end. Check effect on application security by deleting the cookies. (I will soon write separate article on cookie testing)
Validate your HTML/CSS
If you are optimizing your site for Search engines then HTML/CSS validation is very important. Mainly validate the site for HTML syntax errors. Check if site is crawlable to different search engines.
Database testing
Data consistency is very important in web application. Check for data integrity and errors while you edit, delete, modify the forms or do any DB related functionality.
Check if all the database queries are executing correctly, data is retrieved correctly and also updated correctly. More on database testing could be load on DB, we will address this in web load or performance testing below.
2) Usability Testing
Usability testing is a type of testing where ease with which users can learn and use a product. It’s technique used to evaluate a product by testing on users. In usability testing can be performed using Navigation, Ease of use, Presentation of information, Content.
Navigation:
- Consistent Terminology.
- Navigation buttons consistently located.
- Navigations intended to correct destinations.
- Flow to destination from one page to another page is logical.
- Logical way to return back to source.
- Business steps within the process clearly mapped and stated.
- Navigation standards followed.
- Website should be easy to use.
- Clear selection options.
- Horizontal scrolls bars should be avoided.
- Content should be viewable with minimum scroll and resizable screen.
- Menu’s should be shown first and then other contents.
- Graphics and images load time should be reasonable.
- Messages should be clear and visible and user-friendly.
- Consistent messages should be shown for same operations in different screen.
- Confirmation messages shown should be consistent and shown wherever applicable.
- Fonts type and font size should be consistent.
- Sequential information should be shown.
- Search feature should be provided.
3) Interface testing
Web server and application server interface or application server and Database server interface. To perform interface testing we need to check the interactions between servers are executed properly. Error and exceptions are properly handled. Database error message should be modified and shown in a user friendly way. Interface testing is a complex testing. We can check if a transaction is interrupted in middle then what would be the outcome and how it is handled. If web server connectivity is reset then how this incident is handled can be few ways interface testing can be performed.
4) Compatibility testing
Compatibility testing is very important. Compatibility testing is to check if the application is compatible in different operating system, hardware and different browsers and can also be for mobile browsing, printing options.
- Cross browser testing or multi-browser testing are very common in web site testing. Bugs found during cross browser testing will be mainly cosmetics like improper alignment of columns, dislocation of logos or buttons, java script errors. Functional bugs will also be encountered during cross browser testing. Commonly used browsers used for computability testing are IE, Firefox, Opera, Netscape navigator, AOL, Safari, Google chrome.
- OS compatibility testing – Similar to cross browser testing OS computability testing is performed because some of the functionality or features might be dysfunctional in different operating systems. Different technologies used in web development like graphics designs, interface calls like different API’s may not be available in all Operating Systems.
- Mobile browsing – Recently since all the applications can be viewed due to technical advancement in mobile phones. Mobile browsing is very new and will be having good future. Compatibility testing is also performed in mobile phones to ensure all the features work in mobile phones also.
5) Performance testing
Testing conducted to evaluate the compliance of a system or component with specified performance requirements. Often this is performed using an automated test tool to simulate large number of users. Also known as “Load Testing”. Performance testing is performed to ensure that website or web application should sustain heavy load. Application is tested for performance on different internet connection speed. In performance testing response time is checked where different number of users and accessing a page or requesting at a specific internet connection speed with hardware and software configurations same as where the application is hosted. Site should handle many simultaneous user requests, large input data from users, Simultaneous connection to DB, heavy load on specific pages etc.
Stress testing
Testing conducted to evaluate a system or component at or beyond the limits of its specified requirements to determine the load under which it fails and how.
6) Security testing
Security testing is a kind of testing where information is not passed or information will not be accessible to unauthorized person. Testing confirms that the program restricts access to authorized personal and functions available to their security level. Some of the tips how security can be performed are mentioned below:
- Access Control
1. Standards defined for login username/passwords.
2. Aging procedures for passwords.
3. Users locked out after a given number of password failures.
4. Help for forgot password.
5. Process for password administration?
6. Defined authorization administration levels. - Firewalls
1. Correct installation of softwares.
2. Are firewalls installed at adequate levels in the organization and architecture?
3. Have firewalls been tested?
4. Is the security administrator aware of known firewall defects?
5. Is there a link to access control?
6. Are firewalls installed in effective locations in the architecture? (e.g., proxy servers, data servers, etc.) - Data Security
1. Are data inputs adequately filtered?
2. Are data access privileges identified? (e.g., read, write, update and query)
3. Are data access privileges enforced?
4. Have date archival and retrieval procedures been defined?
5. Have date archival and retrieval procedures been tested.