Monday, 12 August 2013

SOFTWARE TESTING TECHNIQUES

Usability Testing

What is Usability Testing?
  • Usability testing is nothing but the User-friendliness check.
  • In Usability testing,  the application flow is tested so that a new user can understand the application easily.
  • Basically, system navigation is checked in Usability testing.
What is the purpose or Goal of Usability testing?
A Usability test establishes the ease of use and effectiveness of a product using a standard Usability test practices.
Usability Test Scenarios:
  • Web page content should be correct without any spelling or grammatical errors
  • All fonts should be same as per the requirements.
  • All the text should be properly aligned.
  • All the error messages should be correct without any spelling or grammatical errors and the error message should match with the field label.
  • Tool tip text should be there for every field.
  • All the fields should be properly aligned.
  • Enough space should be provided between field labels, columns, rows, and error messages.
  • All the buttons should be in a standard format and size.
  • Home link should be there on every single page.
  • Disabled fields should be grayed out.
  • Check for broken links and images.
  • Confirmation message should be displayed for any kind of update and delete operation.
  • Check the site on different resolutions (640 x 480, 600x800 etc.?)
  • Check the end user can run the system without frustration.
  • Check the tab should work properly.
  • Scroll bar should appear only if required.
  • If there is an error message on submit, the information filled by the user should be there.
  • Title should display on each web page
  • All fields (Textbox, dropdown, radio button etc) and buttons should be accessible by keyboard shortcuts and the user should be able to perform all operations by using keyboard.
  • Check if the dropdown data is not truncated due to the field size and also check whether the data is hardcoded or managed via administrator.

Functional Testing:

What is Functional Testing?

  • Testing the features and operational behavior of a product to ensure they correspond to its specifications.
  • Testing that ignores the internal mechanism of a system or component and focuses solely on the outputs generated in response to selected inputs and execution conditions.
What is the purpose or Goal of Functional testing?
  • The goal of Functional testing is to verify whether your product meets the intended functional specifications mentioned in your development documentation.
Functional Test Scenarios:
  • Test all the mandatory fields should be validated.
  • Test the asterisk sign should display for all the mandatory fields.
  • Test the system should not display the error message for optional fields.
  • Test that leap years are validated correctly & do not cause errors/miscalculations.
  • Test the numeric fields should not accept the alphabets and proper error message should display.
  • Test for negative numbers if allowed for numeric fields.
  • Test division by zero should be handled properly for calculations.
  • Test the max length of every field to ensure the data is not truncated.
  • Test the pop up message (“This field is limited to 500 characters) should display if the data reaches  the maximum size of the field.
  • Test that a confirmation message should display for update and delete operations.
  • Test the amount values should display in currency format.
  • Test all input fields for special characters.
  • Test the timeout functionality.
  • Test the Sorting functionality.
  • Test the functionality of the buttons available
  • Test the Privacy Policy & FAQ is clearly defined and should be available for users.
  • Test if any functionality fails the user gets redirected to the custom error page.
  • Test all the uploaded documents are opened properly.
  • Test the user should be able to download the uploaded files.
  • Test the email functionality of the system.
  • Test the java script is properly working in different browsers (IE, Firefox, Chrome, safari and Opera).
  • Test to see what happens if a user deletes cookies while in the site.
  • Test to see what happens if a user deletes cookies after visiting a site.
  • Test all the data inside combo/list box is arranged in chronological order.

Compatibility Testing:

What is Compatibility testing?
  • Comp ability testing is used to determine if your software is compatible with other elements of a system with which it should operate, e.g. Browsers, Operating Systems, or hardware.
What is the purpose or Goal of Compatibility testing?
  • The purpose of Comp ability testing is to evaluate how well software performs in a particular browser, Operating Systems, hardware or software.
Comp ability Test Scenarios:
  • Test the website in different browsers (IE, Firefox, Chrome, Safari and Opera) and ensure the website is displaying properly.
  • Test the HTML version being used is compatible with appropriate browser versions.
  • Test the images display correctly in different browsers.
  • Test the fonts are usable in different browsers.
  • Test the java script code is usable in different browsers.
  • Test the Animated GIF’s across different browsers.

Tool for Compatibility Testing:
Spoon.net: Spoon.net provides access to thousands of applications (Browsers) without any installs. This tool helps you to test your application on different browsers on one single machine.

Database Testing:

What is Database Testing?
  • In Database testing backend records are tested which have been inserted through the web or desktop applications. The data which is displaying in the web application should match with the data stored in the Database.
To perform the Database testing, the tester should be aware of the below mentioned points:
  • The tester should understand the functional requirements, business logic, application flow and database design thoroughly.
  • The tester should figure out the tables, triggers, store procedures, views and cursors used for the application.
  • The tester should understand the logic of the triggers, store procedures, views and cursors created.
  • The tester should figure out the tables which get affected when insert update and delete (DML) operations are performed through the web or desktop applications.
With the help of the above mentioned points,  the tester can easily write the test scenarios for Database testing.
Test Scenarios for Database Testing:
  • Verify the database name:  The database name should match with the specifications.
  • Verify the Tables, columns, column types and defaults: All things should match with the specifications.
  • Verify whether the column allows a null or not.
  • Verify the Primary and foreign key of each table.
  • Verify the Stored Procedure:
  • Test whether the Stored procedure is installed or not.
  • Verify the Stored procedure name
  • Verify the parameter names, types and number of parameters.
  • Test the parameters if they are required or not.
  • Test the stored procedure by deleting some parameters
  • Test when the output is zero, the zero records should be affected.
  • Test the stored procedure by writing simple SQL queries.
  • Test whether the stored procedure returns the values
  • Test the stored procedure with sample input data.
  • Verify the behavior of each flag in the table.
  • Verify the data gets properly saved into the database after the each page submission.
  • Verify the data if the DML (Update, delete and insert) operations are performed.
  • Check the length of every field: The field length in the back end and front end must be same.
  • Verify the database names of QA, UAT and production. The names should be unique.
  • Verify the encrypted data in the database.
  • Verify the database size. Also test the response time of each query executed.
  • Verify the data displayed on the front end and make sure it is same in the back end.
  • Verify the data validity by inserting the invalid data in the database.
  • Verify the Triggers.

What is Security Testing?

Security Testing involves the test to identify any flaws and gaps from a security point of view.
Test Scenarios for Security Testing:
  1. Verify the web page which contains important data like password, credit card numbers, secret answers for security question etc should be submitted via HTTPS (SSL).
  2. Verify the important information like password, credit card numbers etc should display in encrypted format.
  3. Verify password rules are implemented on all authentication pages like Registration, forgot password, change password.
  4. Verify if the password is changed the user should not be able to login with the old password.
  5. Verify the error messages should not display any important information.
  6. Verify if the user is logged out from the system or user session was expired, the user should not be able to navigate the site.
  7. Verify to access the secured and non secured web pages directly without login.
  8. Verify the “View Source code” option is disabled and should not be visible to the user.
  9. Verify the user account gets locked out if the user is entering the wrong password several times.
  10. Verify the cookies should not store passwords.
  11. Verify if, any functionality is not working, the system should not display any application, server, or database information. Instead, it should display the custom error page.
  12. Verify the SQL injection attacks.
  13. Verify the user roles and their rights. For Example The requestor should not be able to access the admin page.
  14. Verify the important operations are written in log files, and that information should be traceable.
  15. Verify the session values are in an encrypted format in the address bar.
  16. Verify the cookie information is stored in encrypted format.
  17. Verify the application for Brute Force Attacks

What is Performance Testing?

Performance testing is conducted to evaluate the compliance of a system or component with specified performance requirements.
General Test scenarios:
  • To determine the performance, stability and scalability of an application under different load conditions.
  • To determine if the current architecture can support the application at peak user levels.
  • To determine which configuration sizing provides the best performance level.
  • To identify application and infrastructure bottlenecks.
  • To determine if the new version of the software adversely had an impact on response time.
  • To evaluate product and/or hardware to determine if it can handle projected load volumes.
 
How to do Performance testing? By Manual Testing or by Automation
 
Practically it is not possible to do the performance testing manually because of some drawbacks like:
  • More number of resources will be required.
  • Simultaneous actions are not possible.
  • Proper system monitoring is not available.
  • Not easy to perform the repetitive task.

Hence to overcome the above problems we should use Performance testing tool. Below is the list of some popular testing tools.
  • Apache JMeter
  • Load Runner
  • Borland Silk Performer.
  • Rational Performance Tester
  • WAPT
  • NEO LOAD
 

Read more at http://www.guru99.com/complete-web-application-testing-checklist.html#luoQhJKwodSD5ydw.99 

Saturday, 3 August 2013

Website Development

Importance of website for online business

A good website has become an imperative for businesses today. In this tech savvy era website is the most effective medium for branding and marketing for any organization. I will discuss a few essential points for developing an effective website for your business.
Let us start with the essentials first, you will need the following:
1) Domain Name: Firstly, you need a domain name which means you need an address for your website. Your domain name can be the name of your business or the phrase which people know your business by.
2) Web Design: The next essential step is to hire a website design services company. Although there are various website building software available to help you build a website, outsourcing it will help you get a professional website which is very essential for developing a good brand name.
3) Web Hosting: You then need to choose a reliable web hosting provider for hosting your website. Web hosting is renting a space on the Internet that hosts your website. Web hosting companies provide you the required space on their server to host your website.
The following are some useful tips to build an effective website for your business:
- Define your target audience.
- Create relevant content which is both user friendly and search engine friendly. It should be interesting enough to hold the visitors interest and informative enough to answer their queries. It is a good practice to add a FAQ page and update it often as per users inputs.
- Create user friendly pages with easy navigation.
- You can also offer some free goodies to your website users like offer free e-books or special discounts to promote your business.
- Have your contact details or contact us widget on every page.
- You can also hire a search engine optimization expert that can bring your website in the top rankings in search engines like Google, Yahoo and Bing. A user friendly website with a good look and feel is an effective marketing tool for online businesses.
- Your website needs to be simple and unique.
- It should load fast.
- The website should reflect your business ethics.
- The technology used must meet your business needs.
- It is important to add a sitemap on your website.
- Most of the users are interested to know about you and your history so share it freely. Contact us, history page, clients testimonials adds credibility to your brand name.
- Add a contact page with online form, telephone number and real geographical address to make it easy for the users to communicate with you.
- You can send your clients’ online newsletters for regular communication.
- You can build a blog and forum link it with your website to communicate further and share knowledge with users.
- Add social media tabs on your website to enhance your online presence further.
These were just a few guidelines to kick start your online presence. Let’s get the ball rolling!

What is QTP

What is QTP?
QTP is an automated functional Graphical User Interface testing tool that allows the automation of user events on an application. It uses VB Scripting language to specify the test procedure, and to direct the objects and controls of the application. It works by identifying the objects in the application and performing the desired operations on them, it can also be used to capture object properties like name or Text ID etc.  Framework of QTP is designed mainly for Windows and Web-based applications. QTP is primarily used for regression testing.
Few distinct advantages QTP offers over other testing tools:
  • QTP uses VB scripting language which is more user friendly and easy to understand.
  • Better Support for VB, Java based applications due to inbuilt add-ins.
  • Able to split a single test into various actions for making debugging easier and better maintainability.
  • Enhancement of existing QTP scripts without the application being available; by using the Active Screen.
  • Ability to set up Property Recognition Order and prioritization using Object Identification menu.
  • Working with Object Repository in terms of Object Repository Comparison, Exporting Local objects, etc. in advance manner.
  • Easy integration of external function files in terms of creating Libraries.
Basic settings that need to be done in QTP before recording test scripts are:
  1. Open a blank QTP script with appropriate Add-ins.
  2. Navigate to Automation->Record and Run settings.
  3. Under Web tab select the First radio button which states “Record and run test on any open browser”.
  4. Click on Window Applications tab and select the First Radio button which states “Record and run test on any open Windows-based application”.
  5. Click on Apply button and then click on OK button.
  6. Navigate to File->Settings.
  7. Select Run on left side window.
  8. Under Data Table iterations select the first radio button which states “Run one iteration only”.
  9. Enter ’60’ in Object synchronization timeout field.
  10. Select both the check boxes which states “Disable Smart Identification during the run session” and “Save image of desktop when error occurs”.
  11. Click on Apply button and then click on OK button.
What is Keyword View and Expert View in QTP?
Keyword View: In keyword view actions which are performed by the user are shown in tree format along with the input data. Window and object details are also shown.
Expert View: In expert view script which is automatically generated by QTP in VBScript language during recording is displayed. Any changes made in the Expert View are automatically synchronized with the Keyword Vie

How to test a Website for QA

Check List and Guidelines for Website Testing

Testing plays a very important role in development of a website. The following checklist serves as a quick reference and guide for you to test any website:
1. Test all links:
  • Check all internal hyperlinks : Verify  whether all links are jumping to correct destination.
  • Check all external hyperlinks: Verify whether external hyperlinks like social network links and email links are correct.
  • Check whether there are any orphan links or links that jump on the same page.
  • Test all header and footer links which are constant for all pages.
2. Test forms if present:
  • Try to submit form without Mandatory and Optional field.
  • Check for field validation.
  • Check error handling for wrong input.
  • Check whether default/standard values are proper.
3. Test content:
  • Verify whether information on all pages is correct and easy to understand.
  • Test for spelling and grammatical errors.
  • Check contact details and email addresses.
  • Help content: Check files in the help section, search field and the site map.
  • Proper images.
  • Also check above points for pop-ups.
4. Test  navigation:
  • If menu is provided then check for its consistency in entire website.
  • Check for navigation using keyboard and shortcuts.
5. Graphical User Interface (GUI) check:
  • Font size and color.
  • Cursor or mouse focus.
  • Location of buttons , images, symbols and logos.
  • Scrolling: Avoid long scrolling.
  • Consistent design.
  • Dark colors should be avoided.
6. Cookies and Java scripts:
  • Test cookies and Java scripts that should be enabled or blocked.
7. Browser and OS compatibility:
  • Check for design and GUI issues on multiple platform and for different screen resolutions.
  • Test on different browsers and its versions like IE 6, IE8, Mozilla Firefox, Chrome, Opera, Safari, etc.
  • Also test on different OS and its browsers like Windows 7, XP, Vista,  Mac, Linux, and Solaris.
8. Compatibility on gadgets and mobile platforms:
  • Test for OS like Symbian, Android, iOS, Bada, etc., used for mobiles, tablets and smart phones. Nowadays, some TV sets also provide facility for browsing.