Wednesday 16 January 2013

Web Testing Features


Web Testing Features
 
Functionality Testing - Test Web Applications/Web Sites to ensure that all aspects of your site functions properly such as images , text , form elements , dialogs , menus appear correctly , HTML links work , form submissions succeed , etc . 

 
Compatibility Testing - Test Web Applications/Web Sites to ensure that it is compatible with different browsers , operating systems , languages , databases and servers .

 
Localized Testing - Automate localization testing of your web applications/web sites to test multi-language deployments of your applications without re-recording . 
Stress Testing - Test Web Applications/Web Sites to determine the system’s breaking point based on predefined failure criteria . 

 
Load Testing - Test Web Applications/Web Sites to ensure that it is capable of handling a predetermined peak load by generating 1000's of users on the Web site . 
Web Services Functional Testing - Test Web Services to ensure that the functionality works correctly by validating the responses sent to each SOAP/HTTP request . 
Web Services Performance Testing - Test Web Services to gather the performance and stability information of web services by realistically simulating the load on your web services . 
Regression Testing - Test Web Applications/Web Sites/Web Services by running all day and night to ensure that it is still working between builds or releases . 

Web Testing : Complete guide on testing web applications 

Let’s have first web testing checklist . 
1 ) Functionality Testing 
2 ) Usability testing 
3 ) Interface testing 
4 ) Compatibility testing 
5 ) Performance testing 
6 ) Security testing 



1 ) Functionality Testing : 

Test for - all the links in web pages , database connection , forms used in the web pages for submitting or getting information from user , Cookie testing . 

Check all the links : 

Test the outgoing links from all the pages from specific domain under test . 
Test all internal links . 
Test links jumping on the same pages . 
Test links used to send the email to admin or other users from web pages . 
Test to check if there are any orphan pages . 
Lastly in link checking , check for broken links in all above-mentioned links . 

Test forms in all pages : 
Forms are the integral part of any web site . Forms are used to get information from users and to keep interaction with them . So what should be checked on these forms ? 

First check all the validations on each field . 
Check for the default values of fields . 
Wrong inputs to the fields in the forms . 
Options to create forms if any , form delete , view or modify the forms . 

Let’s take example of the search engine project currently I am working on , In this project we have advertiser and affiliate signup steps . Each sign up step is different but dependent on other steps . So sign up flow should get executed correctly . There are different field validations like email Ids , User financial info validations . All these validations should get checked in manual or automated web testing . 

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 . 

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 : 

Test for navigation : 
Navigation means how the user surfs the web pages , different controls like buttons , boxes or how user using the links on the pages to surf different pages . 
Usability testing includes : 
Web site should be easy to use . Instructions should be provided clearly . Check if the provided instructions are correct means whether they satisfy purpose . 
Main menu should be provided on each page . It should be consistent . 

Content checking : 
Content should be logical and easy to understand . Check for spelling errors . Use of dark colors annoys users and should not be used in site theme . You can follow some standards that are used for web page and content building . These are common accepted standards like as I mentioned above about annoying colors , fonts , frames etc . 
Content should be meaningful . All the anchor text links should be working properly . Images should be placed properly with proper sizes . 
These are some basic standards that should be followed in web development . Your task is to validate all for UI testing 

Other user information for user help : 
Like search option , sitemap , help files etc . Sitemap should be present with all the links in web sites with proper tree view of navigation . Check for all links on the sitemap .
“Search in the site” option will help users to find content pages they are looking for easily and quickly . These are all optional items and if present should be validated . 



3 ) Interface Testing : 
The main interfaces are : 
Web server and application server interface 
Application server and Database server interface . 

Check if all the interactions between these servers are executed properly . Errors are handled properly . If database or web server returns any error message for any query by application server then application server should catch and display these error messages appropriately to users . Check what happens if user interrupts any transaction in-between ? Check what happens if connection to web server is reset in between ? 

4 ) Compatibility Testing : 
Compatibility of your web site is very important testing aspect . See which compatibility test to be executed : 

Browser compatibility 
Operating system compatibility 
Mobile browsing 
Printing options 

Browser compatibility : 
In my web-testing career I have experienced this as most influencing part on web site testing . 
Some applications are very dependent on browsers . Different browsers have different configurations and settings that your web page should be compatible with . Your web site coding should be cross browser platform compatible . If you are using java scripts orAJAX calls for UI functionality , performing security checks or validations then give more stress on browser compatibility testing of your web application . 
Test web application on different browsers like Internet explorer , Firefox , Netscape navigator , AOL , Safari , Opera browsers with different versions . 

OS compatibility : 
Some functionality in your web application is may not be compatible with all operating systems . All new technologies used in web development like graphics designs , interface calls like different API’s may not be available in all Operating Systems . 
Test your web application on different operating systems like Windows , Unix , MAC , Linux , Solaris with different OS flavors . 

Mobile browsing : 
This is new technology age . So in future Mobile browsing will rock . Test your web pages on mobile browsers . Compatibility issues may be there on mobile . 

Printing options : 
If you are giving page-printing options then make sure fonts , page alignment , page graphics getting printed properly . Pages should be fit to paper size or as per the size mentioned in printing option . 



5 ) Performance testing : 
Web application should sustain to heavy load . Web performance testing should include : 
Web Load Testing 
Web Stress Testing 


Test application performance on different internet connection speed . 
In web load testing test if many users are accessing or requesting the same page . Can system sustain in peak load times ? Site should handle many simultaneous user requests , large input data from users , Simultaneous connection to DB , heavy load on specific pages etc . 

Stress testing : Generally stress means stretching the system beyond its specification limits . Web stress testing is performed to break the site by giving stress and checked how system reacts to stress and how system recovers from crashes . 
Stress is generally given on input fields , login and sign up areas . 

In web performance testing web site functionality on different operating systems , different hardware platforms is checked for software , hardware memory leakage errors , 

6 ) Security Testing : 

Following are some test cases for web security testing : 

Test by pasting internal url directly into browser address bar without login . Internal pages should not open . 
If you are logged in using username and password and browsing internal pages then try changing url options directly . I .e . If you are checking some publisher site statistics with publisher site ID= 123 . Try directly changing the url site ID parameter to different site ID which is not related to logged in user . Access should denied for this user to view others stats . 
Try some invalid inputs in input fields like login username , password , input text boxes . Check the system reaction on all invalid inputs . 
Web directories or files should not be accessible directly unless given download option . 
Test the CAPTCHA for automates scripts logins . 
Test if SSL is used for security measures . If used proper message should get displayed when user switch from non-secure http :// pages to secure https :// pages and vice versa . 
All transactions , error messages , security breach attempts should get logged in log files somewhere on web server . 

Manual Testing 

Software testing engrosses operations on software to evaluate its results . Testing implies detecting bugs , and to check the correctness , completeness , security , and quality of software developed . 
Manual software testing involves manual interaction with application , stipulating key in's and observing outcomes . The easy to learn and work with manual testing plans is one among many of its merits . 
We as software manual testing unit in India have high experienced QA testers . We provide SQA services that work in areas of functionality , compatibility , and localization . Shriv ComMedia Solutions ( SCMS ) manual testing services includes testing like Unit Testing , Ad-hoc Testing , GUI Testing , Positive and Negative Testing , Data Integrity Testing , Link Testing , among other standard software tools . 

Our procedures are : 

Creating Test Plans , Test Cases 
User Interface Testing 
Compatibility Testing 
Configuration Testing 
Functionality Testing 
Product Specifications and User Documentation Review 
Provide Detailed Testing Status 

Our test lab key benefits : 

We do onsite as well as offsite testing , saving your resources for other important tasks 
We work on project basis . 
We provide a thorough , top quality testing effort , ensuring your product's release readiness . 

Testing Focus : 

Product stability 
Product usability 
Product performance 

Approach : 

We execute tests to verify that your software runs properly and without defects on each platform requested . 

Testing Services : 

Installation and set-up testing 
Software/hardware compatibility and configuration testing 
Test plan development 
Functional testing 
Interface design and usability analysis 
Network applications 

Besides software testing we provide website testing , CBT testing , shopping cart testing , and other web related products testing service . We provide testing for multimedia applications using a variety of sound and video configurations , on a range of platforms . 

I am working on Search engine project for last 6 months and now I understood most of the functionality and search engine strategies . 

When you work as a Manual tester then somewhere you feel to automate your work . Sometimes doing routine manual work bores you . So here comes the need of Automation . 
So Automation is very helpful for the regression type of work , to avoid repeated manual work . Now I understood the need of Automation and I want to start with it , but from where shall I start is the big question . 

Before starting the Automation of your project work you need to remember following points : 

1 . What is the type of my project ? Is it a stand-alone project or a client – server project ? 
2 . What is the size of my project ? You can find size on various metrics like kilo line of code . 3 . Is there repeated work in my project ? 
4 . Time taken for My current Manual project testing 
5 . Error rate by Manual testing . 

In next some posts I will discuss about the Advantage – Disadvantages of Manual and Automation testing , also the step-by-step process to automate your project work . 

Before starting the Automation of your project work you need to remember following points : 

1 .What is the type of my project ? Is it a stand-alone project or a client – server project ? 
2 . What is the size of my project ? You can find size on various metrics like kilo line of code . 3 . Is there repeated work in my project ? 
4 . Time taken for My current Manual project testing 
5 . Error rate by Manual testing . 

Website Cookie Testing , Test cases for testing web application cookies ? 



We will first focus on what exactly cookies are and how they work . It would be easy for you to understand the test cases for testing cookies when you have clear understanding of how cookies work ? How cookies stored on hard drive ? And how can we edit cookie settings ? 

What is Cookie ? 
Cookie is small information stored in text file on user’s hard drive by web server . This information is later used by web browser to retrieve information from that machine . Generally cookie contains personalized user data or information that is used to communicate between different web pages . 

Why Cookies are used ? 
Cookies are nothing but the user’s identity and used to track where the user navigated throughout the web site pages . The communication between web browser and web server is stateless . 

For example if you are accessing domain http ://www .example .com/1 .html then web browser will simply query to example .com web server for the page 1 .html . Next time if you type page as http ://www .example .com/2 .html then new request is send to example .com web server for sending 2 .html page and web server don’t know anything about to whom the previous page 1 .html served . 

What if you want the previous history of this user communication with the web server ? You need to maintain the user state and interaction between web browser and web server somewhere . This is where cookie comes into picture . Cookies serve the purpose of maintaining the user interactions with web server . 

How cookies work ? 
The HTTP protocol used to exchange information files on the web is used to maintain the cookies . There are two types of HTTP protocol . Stateless HTTP and Stateful HTTP protocol . Stateless HTTP protocol does not keep any record of previously accessed web page history . While Stateful HTTP protocol do keep some history of previous web browser and web server interactions and this protocol is used by cookies to maintain the user interactions . 

Whenever user visits the site or page that is using cookie , small code inside that HTML page ( Generally a call to some language script to write the cookie like cookies in JAVAScript , PHP , Perl ) writes a text file on users machine called cookie . 
Here is one example of the code that is used to write cookie and can be placed inside any HTML page : 

Set-Cookie : NAME=VALUE ; expires=DATE ; path=PATH ; domain=DOMAIN_NAME ; 

When user visits the same page or domain later time this cookie is read from disk and used to identify the second visit of the same user on that domain . Expiration time is set while writing the cookie . This time is decided by the application that is going to use the cookie . 

Generally two types of cookies are written on user machine . 


1 ) Session cookies : This cookie is active till the browser that invoked the cookie is open . When we close the browser this session cookie gets deleted . Some time session of say 20 minutes can be set to expire the cookie . 
2 ) Persistent cookies : The cookies that are written permanently on user machine and lasts for months or years . 

Where cookies are stored ? 
When any web page application writes cookie it get saved in a text file on user hard disk drive . The path where the cookies get stored depends on the browser . Different browsers store cookie in different paths . E .g . Internet explorer store cookies on path “C :|Documents and Settings|Default User|Cookies” 
Here the “Default User” can be replaced by the current user you logged in as . Like “Administrator” , or user name like “Vijay” etc . 
The cookie path can be easily found by navigating through the browser options . In Mozilla Firefox browser you can even see the cookies in browser options itself . Open the Mozila browser , click on Tools->Options->Privacy and then “Show cookies” button . 

How cookies are stored ? 
Lets take example of cookie written by rediff .com on Mozilla Firefox browser : 
On Mozilla Firefox browser when you open the page rediff .com or login to your rediffmail account , a cookie will get written on your Hard disk . To view this cookie simply click on “Show cookies” button mentioned on above path . Click on Rediff .com site under this cookie list . You can see different cookies written by rediff domain with different names . 

Site : Rediff .com Cookie name : RMID 
Name : RMID ( Name of the cookie ) 
Content : 1d11c8ec44bf49e0… ( Encrypted content ) 
Domain : .rediff .com 
Path : / ( Any path after the domain name ) 
Send For : Any type of connection 
Expires : Thursday , December 31 , 2020 11 :59 :59 PM 

Applications where cookies can be used : 

1 ) To implement shopping cart : 
Cookies are used for maintaining online ordering system . Cookies remember what user wants to buy . What if user adds some products in their shopping cart and if due to some reason user don’t want to buy those products this time and closes the browser window ? When next time same user visits the purchase page he can see all the products he added in shopping cart in his last visit . 

2 ) Personalized sites : 
When user visits certain pages they are asked which pages they don’t want to visit or display . User options are get stored in cookie and till the user is online , those pages are not shown to him . 

3 ) User tracking : 
To track number of unique visitors online at particular time . 

4 ) Marketing : 

Some companies use cookies to display advertisements on user machines . Cookies control these advertisements . When and which advertisement should be shown ? What is the interest of the user ? Which keywords he searches on the site ? All these things can be maintained using cookies . 

5 ) User sessions : 

Cookies can track user sessions to particular domain using user ID and password . 

Drawbacks of cookies : 

1 ) Even writing Cookie is a great way to maintain user interaction , if user has set browser options to warn before writing any cookie or disabled the cookies completely then site containing cookie will be completely disabled and can not perform any operation resulting in loss of site traffic . 

2 ) Too many Cookies : 
If you are writing too many cookies on every page navigation and if user has turned on option to warn before writing cookie , this could turn away user from your site . 

3 ) Security issues : 
Some times users personal information is stored in cookies and if someone hack the cookie then hacker can get access to your personal information . Even corrupted cookies can be read by different domains and lead to security issues . 

4 ) Sensitive information : 
Some sites may write and store your sensitive information in cookies , which should not be allowed due to privacy concerns . 

This should be enough to know what cookies are . If you want more cookie info see Cookie Central page . 

Some Major Test cases for web application cookie testing : 

The first obvious test case is to test if your application is writing cookies properly on disk . You can use the Cookie Tester application also if you don’t have any web application to test but you want to understand the cookie concept for testing . 

Test cases : 

1 ) As a Cookie privacy policy make sure from your design documents that no personal or sensitive data is stored in the cookie . 

2 ) If you have no option than saving sensitive data in cookie make sure data stored in cookie is stored in encrypted format . 

3 ) Make sure that there is no overuse of cookies on your site under test . Overuse of cookies will annoy users if browser is prompting for cookies more often and this could result in loss of site traffic and eventually loss of business . 

4 ) Disable the cookies from your browser settings : If you are using cookies on your site , your sites major functionality will not work by disabling the cookies . Then try to access the web site under test . Navigate through the site . See if appropriate messages are displayed to user like “For smooth functioning of this site make sure that cookies are enabled on your browser” . There should not be any page crash due to disabling the cookies . ( Please make sure that you close all browsers , delete all previously written cookies before performing this test ) 

5 ) Accepts/Reject some cookies : The best way to check web site functionality is , not to accept all cookies . If you are writing 10 cookies in your web application then randomly accept some cookies say accept 5 and reject 5 cookies . For executing this test case you can set browser options to prompt whenever cookie is being written to disk . On this prompt window you can either accept or reject cookie . Try to access major functionality of web site . See if pages are getting crashed or data is getting corrupted . 

6 ) Delete cookie : Allow site to write the cookies and then close all browsers and manually delete all cookies for web site under test . Access the web pages and check the behavior of the pages . 

7 ) Corrupt the cookies : Corrupting cookie is easy . You know where cookies are stored . Manually edit the cookie in notepad and change the parameters to some vague values . Like alter the cookie content , Name of the cookie or expiry date of the cookie and see the site functionality . In some cases corrupted cookies allow to read the data inside it for any other domain . This should not happen in case of your web site cookies . Note that the cookies written by one domain say rediff .com can’t be accessed by other domain say yahoo .com unless and until the cookies are corrupted and someone trying to hack the cookie data . 

8 ) Checking the deletion of cookies from your web application page : Some times cookie written by domain say rediff .com may be deleted by same domain but by different page under that domain . This is the general case if you are testing some ‘action tracking’ web portal . Action tracking or purchase tracking pixel is placed on the action web page and when any action or purchase occurs by user the cookie written on disk get deleted to avoid multiple action logging from same cookie . Check if reaching to your action or purchase page deletes the cookie properly and no more invalid actions or purchase get logged from same user . 

9 ) Cookie Testing on Multiple browsers : This is the important case to check if your web application page is writing the cookies properly on different browsers as intended and site works properly using these cookies . You can test your web application on Major used browsers like Internet explorer ( Various versions ) , Mozilla Firefox , Netscape , Opera etc . 

10 ) If your web application is using cookies to maintain the logging state of any user then log in to your web application using some username and password . In many cases you can see the logged in user ID parameter directly in browser address bar . Change this parameter to different value say if previous user ID is 100 then make it 101 and press enter . The proper access message should be displayed to user and user should not be able to see other users account . 

These are some Major test cases to be considered while testing website cookies . You can write multiple test cases from these test cases by performing various combinations . If you have some different application scenario , you can mention your test cases in comments below . 

How to find a bug in application ? Tips and Tricks 


A very good and important point . Right ? If you are a software tester or a QA engineer then you must be thinking every minute to find a bug in an application . And you should be ! 

I think finding a blocker bug like any system crash is often rewarding ! No I don’t think like that . You should try to find out the bugs that are most difficult to find and those always misleads users . 

Finding such a subtle bugs is most challenging work and it gives you satisfaction of your work . Also it should be rewarded by seniors . I will share my experience of one such subtle bug that was not only difficult to catch but was difficult to reproduce also . 
I was testing one module from my search engine project . I do most of the activities of this project manually as it is a bit complex to automate . That module consist of traffic and revenue stats of different affiliates and advertisers . So testing such a reports is always a difficult task . When I tested this report it was showing the data accurately processed for some time but when tried to test again after some time it was showing misleading results . It was strange and confusing to see the results . 

There was a cron ( cron is a automated script that runs after specified time or condition ) to process the log files and update the database . Such multiple crons are running on log files and DB to synchronize the total data . There were two crons running on one table with some time intervals . There was a column in table that was getting overwritten by other cron making some data inconsistency . It took us long time to figure out the problem due to the vast DB processes and different crons . 

My point is try to find out the hidden bugs in the system that might occur for special conditions and causes strong impact on the system . You can find such a bugs with some tips and tricks . 

So what are those tips : 

1 ) Understand the whole application or module in depth before starting the testing . 

2 ) Prepare good test cases before start to testing . I mean give stress on the functional test cases which includes major risk of the application . 

3 ) Create a sufficient test data before tests , this data set include the test case conditions and also the database records if you are going to test DB related application . 

4 ) Perform repeated tests with different test environment . 

5 ) Try to find out the result pattern and then compare your results with those patterns . 

6 ) When you think that you have completed most of the test conditions and when you think you are tired somewhat then do some monkey testing . 

7 ) Use your previous test data pattern to analyse the current set of tests . 

Try some standard test cases for which you found the bugs in some different application . Like if you are testing input text box try inserting some html tags as the inputs and see the output on display page . 

9 ) Last and the best trick is try very hard to find the bug As if you are testing only to break the application !

2 comments: