Posted In | Automation Testing, QTP Tutorials, Testing Interview questions Below are some useful tips to prepare for QTP interview, followed by the most common QTP interview questions and answers. Actually we had planned this post at the end of our QTP training article series. But many readers requested to provide interview questions so that you can prepare for interview while learning QTP. Note In this post we have covered some useful tips to prepare for QTP interview along with top 20 common and crucial Quick Test Professional questions and answers. Please provide more questions in comments and well update this post with answers to your questions. You can also post your questions using this Share Your QTP I nterview Questions page. We devised a list of pre-requisites or non-technical aspects that every QTP interviewee has to be familiar with. Here are some useful tips to prepare for QTP interview:
QTP is merely a tool that facilitates testing. The ultimate goal of QTP- or any other testing tool for that matter- is efficient and effective testing. So, make sure your testing fundamentals are solid. Next undeniably is the knowledge about the QTP tool. Make sure you know all the basic information about the tool. QTP predominantly relies on a testers programming skills to design, develop and maintain tests. That does not mean knowing all the features of the tool or VB Script are enough. The most important skill the automation tester should have is the ability for logic building. QTP tool and VB Script are simply vehicles that help you reach a solution. In the recent days most interviewers are asking questions that either involve writing a script on paper or coding on a QTP installed machine. If you can code on a machine or write the code spontaneously, thats great! If not, I suggest you to write the solution to the problem given to you in simple English statements. This will give a chance to show case your solution forming ability. Explain that to translate this solution into a program is simply a matter of referring to the help files of the programming language to find the equivalent statements. In an interview, when you are writing code, please do not forget to include comments. Showcase good programming practices. Before attending a QTP interview, be sure to know the version of the QTP, the add-ins that you use, the versions of all the other software you are using etc. If you have not been using QTP recently but have had past experience, it helps to take a couple of hours to re-familiarize with the IDE. The most common but crucial questions that are asked in the QTP interview. The best part of these questions is that you have time to prepare an answer in advance before even the interview begins. 1. What are the reasons for choosing to automate your project and why did you choose QTP? 2. What is the most challenging testing situation you faced and how did you overcome it? 3. Did QTP prove efficient for your project? Yes or No, explain? 4. How did you achieve reusability via QTP? 5. Did you find anything in your project that QTP proved inefficient to perform? 6. Under what conditions would you recommend QTP for future projects? We suggest you spend some time with these questions and come up with answers based on your practical experience from using QTP in your respective projects. Another important question that your interviewer would be interested to know is the statistics. For example: 1. How many scripts did you have? 2. How often were they executed? 3. How many lines of code in each script? 4. Did you use function libraries and/or shared ORs? 5. How long to develop a script? 6. Did the scripts need lot of maintenance? If yes, why? Again, be sure to be prepared with the answers to these questions. Last piece of advice, be honest and straightforward. Keep in mind that not all projects are same and not everybody follows the same methods. So we recommend that you have clear understanding of your project and exhibit the potential to learn. Nobody expects you to know everything; they only expect you to know what you do best. Lets move on to the technical QTP questions. QTP Interview Questions and Answered Top 20 Most Asked QuickTest Professional Interview Questions 1) Different types of QTP test assets and their extensions:
2) Technologies supported by QTP: Web, Java (Core and Advanced), .Net, WPF, SAP, Oracle, Siebel, PeopleSoft, Delphi, Power Builder, Stingray 1, Terminal Emulator, Flex, Web Services, Windows Mobile, VisualAge Smalltalk, Silverlight and mainframe terminal emulator 3) Does QTP run in any environment? No, QTP works only in the windows environment. 4) Explain the views in the QTP GUI? Keyword view: This view is a tabular representation of all the objects and the actions that are performed on them. Every row in the table is a step performed on the AUT and can be modified. Some of the most common columns displayed are: item, operation, value and documentation. Expert view: As the name indicates, this view is for more technical users who would want to tweak the source code as per their requirements. 5) What is QTPs model for test creation? a) Determine testing needs Define testing environment, Analyse your application and plan actions b) Set up repositories Local or Shared OR c) Define function libraries d) Generate test steps Add steps, Add checkpoints e) Data drive your tests f) Run the tests 6) What are the different kinds of test steps? 5 types of steps: - Test Object ( Performs actions on a TO) - Functions - Utility (Steps to control run session. Eg: Reporter.report) - Comment - Programming logic (Loop, conditionsetc) 7) What are the different ways to invoke an application using QTP? a) SystemUtil.Run SystemUtil.Run ( FileName, Parameters, Path, Operation ) Example: SystemUtil.Run(iexplorer.exe,http://www.google.com) SystemUtil.Run(test.txt, ,C:\,1) b) InvokeApplication Example: InvokeApplication C:\Program Files\Internet Explorer\IEXPLORE.EXE http://www.google.com c) Creating a shell object using VB Script Example: Create a WScript.shell object. Dim testshell Set testshell= CreateObject (Wscript.shell) testshell.run %windir%\notepad 8) What are the different recording modes and how do they work? QTP provides 3 modes of recording: ------------
Normal Recording mode The default recording method is always the normal mode. This method uses the model of Test Objects and Runtime objects to learn and act on the AUT. Analog recording mode records the exact mouse and key strokes that the user performs in relation to either the screen or AUT window. The steps that are recorded using this method cannot be edited. The way this usually gets represented in a code is: Window/app.RunAnalog Track1 One scenario in which this type of recording can be used is when we are trying to capture a signature. Low Level recording mode This mode records the co-ordinates in the application where the operation is performed, irrespective of whether QTP recognizes the specific Object or Operation. 9) Which recording modes need more memory? Analog and Low-level recording modes 10) Is it possible to switch between recording modes during a test creation? Yes, in the middle of recording, we can switch to Analog/Low-level mode, finish the task required and go back to normal recording. The switch to Analog mode is available only during recording and not during editing 11) Does Low level recording capture mouse movements? No. Mouse movements are not captured. 12) How does QTP identify an object? QTP has a predetermined set of properties that it learns/stores for every class of object it identifies. There are 3 aspects to this: Mandatory properties: This is the list of properties for a certain class that QTP always stores. We could say that this is the object description. It also checks this in conjunction with the parent object to see if the description is sufficient to identify the object uniquely. Assistive properties: In case the description of mandatory properties is insufficient to identify the Object a set of non-mandatory properties will be added to the description one after the other until there is enough data to identify the object. Ordinal I dentifier: If the assistive properties also do not result in unique identification of an object a special ordinal identifier is added by QTP, such as the objects location on the page or in the source code. 13) What is Smart identification? If the recorded description does not enable QTP to identify a specific object then QTP uses Smart identification mechanism. It uses the following additional properties to identify the object a) Base Filter Properties (primary) The set of properties that cannot be changed without changing the object type b) Optional Filter Properties (secondary) additional properties that help identify the object uniquely. 14) What is Object Spy? Object Spy is an extremely helpful tool that QTP has to view the properties and operations of an object in the AUT. It shows all the properties of the object and the corresponding values. It also shows the object hierarchy. It also has a provision that lets the users add a certain object to the OR. 15) What is an object repository? OR is like a warehouse where all the objects in a test are stored. OR has the list of Objects that QTP learned during the record process and the class to which they belong. It stores the set of properties that uniquely identifies the Object (description) and also names the object for the sake of identification in our test, based on its most prominent feature. 16) What are the two types of repositories available, explain them? Local and shared repository these are the two kinds of available repositories. Every action by default has a local repository of its own and has all the objects that are used within it. Alternately, the tester can have a common repository for multiple actions so that all of them can share the objects that it contains. The common repository is called a shared OR. 17) An action has both shared and local OR associated to it and both have the same object in them. In the test which one will be considered? If a local OR and Shared OR have an object with the same name, the action will consider the object in its local OR. 18) Can an action have 2 shared object repositories associated with them? In that case, if two of them contain the same object, which one will be considered? There can be more than one Shared ORs associated to the same action. If Shared OR1 and Shared OR2 have one object named OBJ1 each and if the action calls for OBJ1 then the order in which the shared ORs were associated will be considered. That means, if Shared OR1 was first associated then the OBJ1 from Shared OR1 will be taken into account. 19) Can the user toggle between using Local OR and shared OR for the same action? Yes, it is possible to switch between one or the other types of ORs at any time. To do so, the menu option is Test->Settings->Resources and choosing the options accordingly. 20) Are Shared ORs read only? By default, shared ORs open as read only. To open them in order to edit them you will have to open them from Object Repository Manager. ORM->File->Enable Editing
QTP Interview Questions and Answers (Part 2) 1) What are advantages of test automation? Time It produces quick results No Manual intervention Cost effective Not prone to human errors 2) If the objects hierarchy is changing from build to build, then how you will handle that condition? In this case descriptive programming can be used instead of having an OR. Even while descriptive programming try to use regular expressions to identify the unique property of the objects. 3) I have developed and executed a script successfully, and saved the same to QC. When I tried to execute the script from QC, the script is not executing. What are the possible reasons? 1) Firstly, QuickTest Add-In for Quality Center has to be installed. 2) In the QTP Tools > Options >run tab you should have Allow other Mercury products to run tests and components selected. 3) Make sure you are running QTP as an Admin 4) All the test resources have to be in the correct path 4) What is the extension of QTP local Repository? If it is .mtr then what is .bdb extension stands for? .bdb is the local OR. .mtr is a binary file that contains other information about checkpoints and all. To re-verify the .bdb is the OR, try to rename the file with the extension as .tsr and open it from ORM. The same objects in the OR will be displayed here. The same will not work if you try it on .mtr file. 5) What is virtual object? A virtual object is a non-standard object that is instructed by the tester via QTP to behave like a standard one. More details in the tutorial #23 6) How do you capture tool tip using QTP? Tool Tip capture method varies depending on the type of object this tool tip appears for. It could be for links, images or any other web elements. For web elements use: Object.title property. For image: Image(some name).GetROProperty(alt)..etc. 7) How can you close the second opened browser? You can know which browser instance was opened after another can be known by using the creation time property. In simple terms, this is nothing but a counter for each browser instance that gets launched. For the first one, it is 0 and gets incremented from then on. To close the second opened browser, you can use the following code: Browser(creationtime:=1).Close 8) How do know the number of browsers opened? To do this you will have to check how many child objects of the type browser are present on the desktop. The following is the code that explains it: Set ObjectBrowser = Description.Create ObjectBrowser(micclass).Value = Browser Set BObj = Desktop.ChildObjects(ObjectBrowser) Msgbox Obj.Count 9) What is synchronization point in QTP? It is a feature that QTP provides to make your test wait until a certain property on a certain object becomes an expected value before proceeding with the next steps. More information in tutorial #24. 10) What is reusable action? An action that can be called multiple times within or outside the same test is called reusable action. By default all actions are reusable. More information in tutorial #21. 11) Why do we use breakpoints in QTP? This is to stop the execution of your test at a certain point while its running. Typically it is used to observe the state of your application or to understand how a certain feature works at a certain phase at runtime. (The checking is of course a manual step.) 12) What is throw object? VB Script does not have any specific throw object. (At least to the best of my knowledge) This question will not come up unless a specific add-in that supports this feature is explored. 13) How do you know the location Id of an object if you know its index id? Location is the position of the object from left to right and top to bottom within the parent window, frame, or dialog box relative to other similar objects. Index Id: is the order in which the object appears in your AUT relative to other similar objects. E.g if you have 2 links, then index id=0 will be first link and index id=1 will be the second link. The answer to this question is entirely dependent on where the object lies, whether it is within the same parent or not. 14) What test cases you can automate using QTP? As an automation enthusiast I would say, you can automate anything. It is only limited by your imagination and expertise. However, in case you need to understand the look, feel or human reaction to a certain feature, then that is not possible. This is the case with any tool, not specific to QTP. 15) How to handle Java tree in QTP? You will need to select and load the Java Add-in. Then you can record and work on a Java Tree object just like you would with any other object. 16) How to give call to another action from one action? Calling one action from the other can be done by Inserting a call to an existing action or by creating a new action. Please refer tutorial #21 for detailed explanation. 17) How to find Operating system information using QTP script? You can do that with the help of environment variable. The exact variable is, OS and OSVersion is for the version information. 18) How you can identify browser and its information using QTP script? You can identify and act on any browser that you opened again by referring to its creationtime property and use it like you would with a browser object in your OR. 19) How are actions and functions different in QTP? Actions have their own Datatables and OR, but functions dont. More importantly, Functions are a VB Scripting element, not only applicable to QTP. Please refer article 21 a detailed explanation of these. 20) Explain how to use QTP to check broken links on a page? Page checkpoint. You can incorporate this page checkpoint on every page to check for broken links. To do so, you can go to Tools->options->Web->Advanced and choosing the option to check for broken links automatically on every page QTP accesses. More information in the tutorial #15. 21) Can we run multiple QTP scripts one after the other without manual intervention? How? Yes. To do so, you will have to create a batch file using the batch runner tool and information about the same is available in tutorial #23. 22) Explain process of smart Identification in QTP If the recorded description does not enable QTP to identify the specified object in a step, and a smart identification definition is defined (and enabled) for the object, QTP tries to identify the object using Smart identification. For more information please refer to the article number: 23 23) When to use shared and local object repository? The decision is completely up to you. Shared OR will make more sense when you have multiple scripts referring to the same objects. 24) What are the advantages of Object Repository? OR is an inbuilt feature provided by QTP to store your test objects. There are many advantages and the most important one is that it is a mandatory element unless you are going for descriptive programming. More information on OR in tutorial #22. 25) In Hybrid framework, data can accessed through database, excel file, XML etc. Is it true? Yes. Any of the mentioned data sources are permissible. 26) How to associate function library at run time? 1. You can do so by using the LoadFunctionLibrary method. LoadFunctionLibrary Completepath 2. You can also use the ExecuteFile method. ExecuteFile Completepath 27) Hybrid framework can be implemented for any application. Is it true? Yes 28) Hybrid framework supports Descriptive programming. Is it true? Yes. Frameworks are mostly based on how and where you want your test assets to be placed and how they are to be accessed for maximum efficiency. They do not restrict how you write you test itself. 29) What are the advantages of Hybrid framework? Hybrid framework is nothing but a combination of frameworks that make you arrive at a solution for your testing needs by taking what works best for your scenario. The obvious advantage is the versatility. It can be tailored to meet any testing projects need. 30) What is Procedure or Subroutine in VB Script? Sub procedure is a series of VB Script statements (enclosed by Sub and End Sub statements) that perform actions but dont return a value. A Sub procedure can take arguments (constants, variables, or expressions that are passed by a calling procedure). If a Sub procedure has no arguments, its Sub statement must include an empty set of parentheses (). 31) Is VB Script Case sensitive or Case insensitive? It is not case sensitive with respect to command and variable names. Everything else, like strings (text) is. 32) How to record application running on Virtual machine? You can access and record QTP script as long as the application is available to you via a browser and not by using remote connecting software. 33) What are the factors on which script execution time is dependent? 1. Network and computer speeds. The response time from the app, the database etc. This is true even if you are manually executing the test. 2. It also depends on the wait statements you have included. 3. Not loading the add-ins that your test does not use helps too. 4. Descriptive programming steps take longer than regular ones to execute 5. Capturing screenshots at run time through QTP also consumes time 6. Disabling smart identification also speeds up the QTP script running time 34) What is Test Fusion Report in QTP? Test Fusion report as the name indicates is a detailed test results that QTP provides in a tree format. It has all the iteration information, data used for each of them along with the standard information. 35) Both Static and dynamic arrays are handled by VB script. Is it true? Yes. A static array is declared as Dim A(10). This means its an array of 11 items. If the tester needs to modify it to contain 20 items he can do so by using redim. redim A(19). There is a Preserve statement that can be used in conjunction with the redim statement. When preserve is used all the previous values are not erased. 36) What is the difference between keyword view and expert view? They are two ways QTP shows your test. Each one has their own features and caters to users of different levels of expertise. Keyword view: This is a tabular representation of your test that has the information like the Item, Operation,Data and Comments. Expert view: This displays your test in terms of the actual lines of code. It is more like a VB Script editor and is used by advanced users. More information is available in the tutorial #2 and #12. 37) In website, protocol has been changed http: to https what you will do? Tell me your approach? Since the protocol change does not necessarily affect the UI change, except may be for a warning message about certificates, there are not many changes. All you need to do is provide the new URL and make sure you handle the security related pop-ups.
A Complete Guide to Usability Testing
Todays article is going to be a complete guide to usability testing. Does it sound too ambitious that we say it is a complete guide? In this case it truly is. Usability Testing is a realm of the IT world that tries incorporating how people would like their applications to be which is never easy. It is like trying to read minds. What sounds like common sense, is a profound science when it comes to usability testing.
180+ Sample Test Cases for Testing Web and Desktop Applications Comprehensive Testing Checklist This is a testing checklist for web and desktop applications. Note This article is little long (over 2700 words). My goal is to share one of the most comprehensive testing checklist ever written and this is not yet done. Ill keep updating this post in future with more scenarios. If you dont have time to read it now, please feel free to share with your friends and bookmark it for later. Make testing checklist as an integral part of test cases writing process. Using this checklist you can easily create hundreds of test cases for testing web or desktop applications. These are all general test cases and should be applicable for almost all kind of applications. Refer these tests while writing test cases for your project and Im sure you will cover most testing types except the application specific business rules provided in your SRS documents.
Though this is a common checklist, I recommend preparing a standard testing checklist tailored to your specific needs using below test cases in addition with application specific tests. Importance of Using Checklist for Testing: - Maintaining a standard repository of reusable test cases for your application will ensure the most common bugs will be caught more quickly. - Checklist helps to quickly complete writing test cases for new versions of the application. - Reusing test cases help to save money on resources to write repetitive tests. - Important test cases will be covered always making it almost impossible to forget. - Testing checklist can be referred by developers to ensure most common issues are fixed in development phase itself. Few notes to remember: 1) Execute these scenarios with different user roles e.g. admin user, guest user etc. 2) For web applications these scenarios should be tested on multiple browsers like IE, FF, Chrome, and Safari with versions approved by client. 3) Test with different screen resolutions like 1024 x 768, 1280 x 1024, etc. 4) Application should be tested on variety of displays like LCD, CRT, Notebooks, Tablets, and Mobile phones. 4) Test application on different platforms like Windows, Mac, Linux operating systems. Comprehensive Testing Checklist for Testing Web and Desktop Applications: Assumptions: Assuming that your application supports following functionality - Forms with various fields - Child windows - Application interacts with database - Various search filter criteria and display results - Image upload - Send email functionality - Data export functionality General Test Scenarios 1. All mandatory fields should be validated and indicated by asterisk (*) symbol 2. Validation error messages should be displayed properly at correct position 3. All error messages should be displayed in same CSS style (e.g. using red color) 4. General confirmation messages should be displayed using CSS style other than error messages style (e.g. using green color) 5. Tool tips text should be meaningful 6. Dropdown fields should have first entry as blank or text like Select 7. Delete functionality for any record on page should ask for confirmation 8. Select/deselect all records options should be provided if page supports record add/delete/update functionality 9. Amount values should be displayed with correct currency symbols 10. Default page sorting should be provided 11. Reset button functionality should set default values for all fields 12. All numeric values should be formatted properly 13. Input fields should be checked for max field value. Input values greater than specified max limit should not be accepted or stored in database 14. Check all input fields for special characters 15. Field labels should be standard e.g. field accepting users first name should be labeled properly as First Name 16. Check page sorting functionality after add/edit/delete operations on any record 17. Check for timeout functionality. Timeout values should be configurable. Check application behavior after operation timeout 18. Check cookies used in an application 19. Check if downloadable files are pointing to correct file paths 20. All resource keys should be configurable in config files or database instead of hard coding 21. Standard conventions should be followed throughout for naming resource keys 22. Validate markup for all web pages (validate HTML and CSS for syntax errors) to make sure it is compliant with the standards 23. Application crash or unavailable pages should be redirected to error page 24. Check text on all pages for spelling and grammatical errors 25. Check numeric input fields with character input values. Proper validation message should appear 26. Check for negative numbers if allowed for numeric fields 27. Check amount fields with decimal number values 28. Check functionality of buttons available on all pages 29. User should not be able to submit page twice by pressing submit button in quick succession. 30. Divide by zero errors should be handled for any calculations 31. Input data with first and last position blank should be handled correctly GUI and Usability Test Scenarios 1. All fields on page (e.g. text box, radio options, dropdown lists) should be aligned properly 2. Numeric values should be right justified unless specified otherwise 3. Enough space should be provided between field labels, columns, rows, error messages etc. 4. Scroll bar should be enabled only when necessary 5. Font size, style and color for headline, description text, labels, infield data, and grid info should be standard as specified in SRS 6. Description text box should be multi-line 7. Disabled fields should be grayed out and user should not be able to set focus on these fields 8. Upon click of any input text field, mouse arrow pointer should get changed to cursor 9. User should not be able to type in drop down select lists 10. Information filled by users should remain intact when there is error message on page submit. User should be able to submit the form again by correcting the errors 11. Check if proper field labels are used in error messages 12. Dropdown field values should be displayed in defined sort order 13. Tab and Shift+Tab order should work properly 14. Default radio options should be pre-selected on page load 15. Field specific and page level help messages should be available 16. Check if correct fields are highlighted in case of errors 17. Check if dropdown list options are readable and not truncated due to field size limit 18. All buttons on page should be accessible by keyboard shortcuts and user should be able to perform all operations using keyboard 19. Check all pages for broken images 20. Check all pages for broken links 21. All pages should have title 22. Confirmation messages should be displayed before performing any update or delete operation 23. Hour glass should be displayed when application is busy 24. Page text should be left justified 25. User should be able to select only one radio option and any combination for check boxes. Test Scenarios for Filter Criteria 1. User should be able to filter results using all parameters on the page 2. Refine search functionality should load search page with all user selected search parameters 3. When there is at least one filter criteria is required to perform search operation, make sure proper error message is displayed when user submits the page without selecting any filter criteria. 4. When at least one filter criteria selection is not compulsory user should be able to submit page and default search criteria should get used to query results 5. Proper validation messages should be displayed for invalid values for filter criteria Test Scenarios for Result Grid 1. Page loading symbol should be displayed when its taking more than default time to load the result page 2. Check if all search parameters are used to fetch data shown on result grid 3. Total number of results should be displayed on result grid 4. Search criteria used for searching should be displayed on result grid 5. Result grid values should be sorted by default column. 6. Sorted columns should be displayed with sorting icon 7. Result grids should include all specified columns with correct values 8. Ascending and descending sorting functionality should work for columns supported with data sorting 9. Result grids should be displayed with proper column and row spacing 10. Pagination should be enabled when there are more results than the default result count per page 11. Check for Next, Previous, First and Last page pagination functionality 12. Duplicate records should not be displayed in result grid 13. Check if all columns are visible and horizontal scroll bar is enabled if necessary 14. Check data for dynamic columns (columns whose values are calculated dynamically based on the other column values) 15. For result grids showing reports check Totals row and verify total for every column 16. For result grids showing reports check Totals row data when pagination is enabled and user navigates to next page 17. Check if proper symbols are used for displaying column values e.g. % symbol should be displayed for percentage calculation 18. Check result grid data if date range is enabled
Test Scenarios for a Window 1. Check if default window size is correct 2. Check if child window size is correct 3. Check if there is any field on page with default focus (in general, the focus should be set on first input field of the screen) 4. Check if child windows are getting closed on closing parent/opener window 5. If child window is opened, user should not be able to use or update any field on background or parent window 6. Check window minimize, maximize and close functionality 7. Check if window is re-sizable 8. Check scroll bar functionality for parent and child windows 9. Check cancel button functionality for child window
Database Testing 1. Check if correct data is getting saved in database upon successful page submit 2. Check values for columns which are not accepting null values 3. Check for data integrity. Data should be stored in single or multiple tables based on design 4. Index names should be given as per the standards e.g. IND_<Tablename>_<ColumnName> 5. Tables should have primary key column 6. Table columns should have description information available (except for audit columns like created date, created by etc.) 7. For every database add/update operation log should be added 8. Required table indexes should be created 9. Check if data is committed to database only when the operation is successfully completed 10. Data should be rolled back in case of failed transactions 11. Database name should be given as per the application type i.e. test, UAT, sandbox, live (though this is not a standard it is helpful for database maintenance) 12. Database logical names should be given according to database name (again this is not standard but helpful for DB maintenance) 13. Stored procedures should not be named with prefix sp_ 14. Check is values for table audit columns (like createddate, createdby, updatedate, updatedby, isdeleted, deleteddate, deletedby etc.) are populated properly 15. Check if input data is not truncated while saving. Field length shown to user on page and in database schema should be same 16. Check numeric fields with minimum, maximum, and float values 17. Check numeric fields with negative values (for both acceptance and non-acceptance) 18. Check if radio button and dropdown list options are saved correctly in database 19. Check if database fields are designed with correct data type and data length 20. Check if all table constraints like Primary key, Foreign key etc. are implemented correctly 21. Test stored procedures and triggers with sample input data 22. Input field leading and trailing spaces should be truncated before committing data to database 23. Null values should not be allowed for Primary key column Test Scenarios for Image Upload Functionality (Also applicable for other file upload functionality) 1. Check for uploaded image path 2. Check image upload and change functionality 3. Check image upload functionality with image files of different extensions (e.g. JPEG, PNG, BMP etc.) 4. Check image upload functionality with images having space or any other allowed special character in file name 5. Check duplicate name image upload 6. Check image upload with image size greater than the max allowed size. Proper error message should be displayed. 7. Check image upload functionality with file types other than images (e.g. txt, doc, pdf, exe etc.). Proper error message should be displayed 8. Check if images of specified height and width (if defined) are accepted otherwise rejected 9. Image upload progress bar should appear for large size images 10. Check if cancel button functionality is working in between upload process 11. Check if file selection dialog shows only supported files listed 12. Check multiple images upload functionality 13. Check image quality after upload. Image quality should not be changed after upload 14. Check if user is able to use/view the uploaded images Test Scenarios for Sending Emails (Test cases for composing or validating emails are not included) (Make sure to use dummy email addresses before executing email related tests) 1. Email template should use standard CSS for all emails 2. Email addresses should be validated before sending emails 3. Special characters in email body template should be handled properly 4. Language specific characters (e.g. Russian, Chinese or German language characters) should be handled properly in email body template 5. Email subject should not be blank 6. Placeholder fields used in email template should be replaced with actual values e.g. {Firstname} {Lastname} should be replaced with individuals first and last name properly for all recipients 7. If reports with dynamic values are included in email body, report data should be calculated correctly 8. Email sender name should not be blank 9. Emails should be checked in different email clients like Outlook, Gmail, Hotmail, Yahoo! mail etc. 10. Check send email functionality using TO, CC and BCC fields 11. Check plain text emails 12. Check HTML format emails 13. Check email header and footer for company logo, privacy policy and other links 14. Check emails with attachments 15. Check send email functionality to single, multiple or distribution list recipients 16. Check if reply to email address is correct 17. Check sending high volume of emails Test Scenarios for Excel Export Functionality 1. File should get exported in proper file extension 2. File name for the exported Excel file should be as per the standards e.g. if file name is using timestamp, it should get replaced properly with actual timestamp at the time of exporting the file 3. Check for date format if exported Excel file contains date columns 4. Check number formatting for numeric or currency values. Formatting should be same as shown on page 5. Exported file should have columns with proper column names 6. Default page sorting should be carried in exported file as well 7. Excel file data should be formatted properly with header and footer text, date, page numbers etc. values for all pages 8. Check if data displayed on page and exported Excel file is same 9. Check export functionality when pagination is enabled 10. Check if export button is showing proper icon according to exported file type e.g. Excel file icon for xls files 11. Check export functionality for files with very large size 12. Check export functionality for pages containing special characters. Check if these special characters are exported properly in Excel file Performance Testing Test Scenarios 1. Check if page load time is within acceptable range 2. Check page load on slow connections 3. Check response time for any action under light, normal, moderate and heavy load conditions 4. Check performance of database stored procedures and triggers 5. Check database query execution time 6. Check for load testing of application 7. Check for stress testing of application 8. Check CPU and memory usage under peak load condition Security Testing Test Scenarios 1. Check for SQL injection attacks 2. Secure pages should use HTTPS protocol 3. Page crash should not reveal application or server info. Error page should be displayed for this 4. Escape special characters in input 5. Error messages should not reveal any sensitive information 6. All credentials should be transferred over an encrypted channel 7. Test password security and password policy enforcement 8. Check application logout functionality 9. Check for Brute Force Attacks 10. Cookie information should be stored in encrypted format only 11. Check session cookie duration and session termination after timeout or logout 11. Session tokens should be transmitted over secured channel 13. Password should not be stored in cookies 14. Test for Denial of Service attacks 15. Test for memory leakage 16. Test unauthorized application access by manipulating variable values in browser address bar 17. Test file extension handing so that exe files are not uploaded and executed on server 18. Sensitive fields like passwords and credit card information should not have auto complete enabled 19. File upload functionality should use file type restrictions and also anti-virus for scanning uploaded files 20. Check if directory listing is prohibited 21. Password and other sensitive fields should be masked while typing 22. Check if forgot password functionality is secured with features like temporary password expiry after specified hours and security question is asked before changing or requesting new password 23. Verify CAPTCHA functionality 24. Check if important events are logged in log files 25. Check if access privileges are implemented correctly Penetration testing test cases Ive listed around 41 test cases for penetration testing on this page. I d really like to thank Devanshu Lavaniya (Sr. QA Engineer working for I-link Infosoft) for helping me to prepare this comprehensive testing checklist. Ive tried to cover all standard test scenarios for web and desktop application functionality. But still I know this is not a compete checklist. Testers on different projects have their own testing checklist based on their experience.
How to Test Banking Applications Banking applications are considered to be one of the most complex applications in todays software development and testing industry. What makes Banking application so complex? What approach should be followed in order to test the complex workflows involved? In this article we will be highlighting different stages and techniques involved in testing Banking applications.
The characteristics of a Banking application are as follows: Multi tier functionality to support thousands of concurrent user sessions Large scale Integration , typically a banking application integrates with numerous other applications such as Bill Pay utility and Trading accounts Complex Business workflows Real Time and Batch processing High rate of Transactions per seconds Secure Transactions Robust Reporting section to keep track of day to day transactions Strong Auditing to troubleshoot customer issues Massive storage system Disaster Management. The above listed ten points are the most important characteristics of a Banking application. Banking applications have multiple tiers involved in performing an operation. For Example, a banking application may have: 1. Web Server to interact with end users via Browser 2. Middle Tier to validate the input and output for web server 3. Data Base to store data and procedures 4. Transaction Processor which could be a large capacity Mainframe or any other Legacy system to carry out Trillions of transactions per second. If we talk about testing banking applications it requires an end to end testing methodology involving multiple software testing techniques to ensure: Total coverage of all banking workflows and Business Requirements Functional aspect of the application Security aspect of the application Data Integrity Concurrency User Experience Typical stages involved in testing Banking Applications are shown in below workflow which we will be discussing individually.
1) Requirement Gathering: Requirement gathering phase involves documentation of requirements either as Functional Specifications or Use Cases. Requirements are gathered as per customer needs and documented by Banking Experts or Business Analyst. To write requirements on more than one subject experts are involved as banking itself has multiple sub domains and one full fledge banking application will be the integration of all. For Example: A banking application may have separate modules for Transfers, Credit Cards, Reports, Loan Accounts, Bill Payments, Trading Etc. 2) Requirement Review: The deliverable of Requirement Gathering is reviewed by all the stakeholders such as QA Engineers, Development leads and Peer Business Analysts. They cross check that neither existing business workflows nor new workflows are violated. 3) Business Scenario Preparations: In this stage QA Engineers derive Business Scenarios from the requirement documents (Functions Specs or Use Cases); Business Scenarios are derived in such a way that all Business Requirements are covered. Business Scenarios are high level scenarios without any detailed steps, further these Business Scenarios are reviewed by Business Analyst to ensure all of Business Requirements are met and its easier for BAs to review high level scenarios than reviewing low level detailed Test Cases. 4) Functional Testing: In this stage functional testing is performed and the usual software testing activities are performed such as: Test Case Preparation: In this stage Test Cases are derived from Business Scenarios, one Business Scenario leads to several positive test cases and negative test cases. Generally tools used during this stage are Microsoft Excel, Test Director or Quality Center. Test Case Review: Reviews by peer QA Engineers Test Case Execution: Test Case Execution could be either manual or automatic involving tools like QC, QTP or any other. 5) Database Testing: Banking Application involves complex transaction which are performed both at UI level and Database level, Therefore Database testing is as important as functional testing. Database in itself is an entirely separate layer hence it is carried out by database specialists and it uses techniques like Data loading Database Migration Testing DB Schema and Data types Rules Testing Testing Stored Procedures and Functions Testing Triggers Data Integrity 6) Security Testing: Security Testing is usually the last stage in the testing cycle as completing functional and non functional are entry criteria to commence Security testing. Security testing is one of the major stages in the entire Application testing cycle as this stage ensures that application complies with Federal and Industry standards. Security testing cycle makes sure the application does not have any web vulnerability which may expose sensitive data to an intruder or an attacker and complies with standards like OWASP. In this stage the major task involves in the whole application scan which is carried out using tools like IBM Appscan or HP WebInspect (2 Most popular tools). Once the Scan is complete the Scan Report is published out of which False Positives are filtered out and rest of the vulnerability are reported to Development team for fixing depending on the Severity. Other Manual tools for Security Testing used are: Paros Proxy, Http Watch, Burp Suite, Fortify tools Etc. Apart from the above stages there might be different stages involved like Integration Testing and Performance Testing. In todays scenario majority of Banking Projects are using: Agile/Scrum, RUP and Continuous Integration methodologies, and Tools packages like Microsofts VSTS and Rational Tools. As we mentioned RUP above, RUP stands for Rational Unified Process, which is an iterative software development methodology introduced by IBM which comprises of four phases in which development and testing activities are carried out. Four phases are: i) Inception ii) Collaboration iii) Construction and iv) Transition RUP widely involves IBM Rational tools.
DATABASE TESTING Database Testing Guide: Computer applications are more complex these days with technologies like android and also with lots of smart phone apps. The more complex the front ends, the back ends are even more intricate. So, it is all the more important to learn about DB testing and be able to validate the databases effectively to ensure secure and quality databases. In this article you will learn all about Database Testing. Why to test- How to test- What to test : These are some of the aspects we will cover. Why do we test a database? Below, we will briefly see why the following aspects of a DB should be validated: 1) Data Mapping: In the software systems, data often travels back and forth from the UI (user interface) to the backend DB and vice versa. So following are the aspects to look for: To check whether the fields in the UI/Front end forms and mapped consistently with the corresponding DB table (and also the fields within). Typically this mapping information is defined in the requirements documents. Whenever a certain action is performed in the front end of an application, a corresponding CRUD (Create, Retrieve, Update and delete) action gets invoked at the back end. A tester will have to check if the right action is invoked and the invoked action in itself is successful or not. 2) ACID properties validation: atomicity, consistency, isolation and durability. Every transaction a DB performs has to adhere to these four properties. (image credit)
Atomicity means that a transaction either fails or passes. This means that even if a single part of transaction fails- it means that the entire transaction has failed. Usually this is called the all-or nothing rule. Consistency: A transaction will always result in a valid state of the DB Isolation: If there are multiple transactions and they are executed all at once, the result/state of the DB should be the same as if they were executed one after the other. Durability: Once a transaction is done and committed, no external factors like power loss or crash should be able to change it 3) Data integrity: This means that following any of the CRUD operations, the updated and most recent values/Status of shared data should appear on all the forms and screens. A value should not be updated on one screen and display an older value on another one. So devise your DB test cases in a way to include checking the data in all the places it appears to see if it is consistently the same.
4) Business rule conformity: More complex databases means more complicated components like relational constraints, triggers, stored procedures, etc. So testers will have to come up with appropriate SQL queries in order to validate these complex objects. How to test Database Testing Process The general test process for DB testing is not very different from any other application. The following are the steps: Step #1) Prepare the environment Step #2) Run a test Step #3) Check test result Step #4) Validate according to the expected results Step #5) Report the findings to the respective stakeholders
Usually SQL queries are used to develop the tests. The most commonly used command is the Select. Select * from <tablename> where <condition> Apart from select, SQL has 3 important types of commands: 1. DDL : Data definition language 2. DML: Data manipulation language 3. DCL: data control language Let us see the syntax for the most commonly used statements. Data Definition language: Uses CREATE, ALTER, RENAME, DROP and TRUNCATE to handle tables (and indexes). Create table: Create table<tablename> (field1 datatype(field size) ,..fieldn datatype(field size)) Delete entire table: Drop table <tablename>. this command cannot be rolled back Data Manipulation language: Includes statements to add, update and delete records. To insert a row into a DB: INSERT INTO <table name> (field1, field2, field3) VALUES (val1, val2valn); Delete specific row/rows from a table: DELETE FROM TABLENAME WHERE <required condition>. Update rows: UPDATE <tablename> SET field1 = updated value WHERE field2 = N; Data control language: Deals with giving the authorization to users for manipulation and access to the data. Grant and Revoke are the two statements used. Grant syntax: Grant select/update On <table name> To <user id1, user id2useridn>; Revoke syntax: Revokeselect/update on <table name> from<user id1, user id2useridn>; What to test different components 1) Transactions: When testing transactions it is important to make sure that they satisfy the ACID properties. The following are the statements commonly used: BEGIN TRANSACTION TRANSACTION# END TRANSACTION TRANSACTION# Rollback statement ensures that the database lies in a consistent state. ROLLBACK TRANSACTION# After these statements are executed, use a select to make sure if the changes have been reflected. SELECT * FROM TABLENAME <tables which involve the transactions> 2) Database schema: Database schema is nothing but a formal definition of the how the data is going to be organized into a DB. To test it: Identify the requirements based on which the database operates. Sample requirements: Primary keys to be created before any other fields are created. Foreign keys should be completely indexed for easy retrieval and searching. Field names starting or ending with certain characters.
o Fields with a constraint that certain values can or cannot be inserted. Use one of the following ways according to the relevance: o SQL Query DESC<table name> to validate the schema. o Regular expressions for validating the names of the individual fields and their values o Tools like SchemaCrawler 3) Trigger: When a certain event takes places on a certain table, a piece of code (a trigger) can be auto- instructed to be executed. For example, a new student joined a school. The student is taking 2 classes; math and science. The student is added to the student table. A trigger could be adding the student to the corresponding subject tables once he is added to the student table. The common method to test is to execute SQL query embedded in the trigger independently first and record the result. Follow this up with executing the trigger as a whole. Compare the results. These are tested during both the black box and white box testing phases. White box testing: Stubs and drivers are to insert or update or delete data that would result in the trigger being invoked. The basic idea is to just test the DB alone even before the integration with the front end (UI) is made. Black box testing: a) Since the UI and DB integration is now available; we can insert/delete/update data from the front end in a way that the trigger gets invoked. Following that select statements can be used to retrieve the DB data to see if the trigger was successful in performing the intended operation. b) Second way to test this is to directly load the data that would invoke the trigger and see if it works as intended. 4) Stored Procedures: Stored procedures are more or less similar to user defined functions. These can be invoked by a call procedure/execute procedure statements and the output is usually in the form of result sets. These are stored in the RDBMS and are available for applications. These are also tested during: White box testing: Stubs are used to invoke the stored procedures and then the results are validated against the expected values. Black box testing: Perform an operation from the frontend(UI) of the application and check for the execution of the stored procedure and its results. 5. Field constraints Default value, unique value and foreign key: Perform a front end operation which overruns the database object condition Validate the results with a SQL Query. Checking the default value for a certain field is quite simple. It is a part of business rule validation. You can do it manually or you can use tools like QTP to do so. Manually, you can perform an action that will add a value other than the default value into the field from the front end and see if it results in an error. The following is a sample VBScript code: <i>Function VBScriptRegularexpressionvlaidation(pattern , string_to_match)</i> <i>Set newregexp = new RegExp</i> <i>newregexp.Pattern = <Default value as required by the business requirements></i> <i>newregexp.Ignorecase = True</i> <i>newregexp.Global = True</i> <i>VBScriptRegularexpressionvlaidation = newregexp.Test(string_to_match)</i> <i>End Function</i> <i>Msgbox VBScriptRegularexpressionvlaidation(pattern , string_to_match)</i> The result to the above code is true if the default value exists or false if it doesnt. Checking the unique value can be done exactly the way we did for the default values. Try entering values from the UI that will violate this rule and see if an error gets displayed. Automation VB script code can be: <i>Function VBScriptRegularexpressionvlaidation(pattern , string_to_match)</i> <i>Set newregexp = new RegExp</i> <i>newregexp.Pattern = <Unique value as required by the business requirements></i> <i>newregexp.Ignorecase = True</i> <i>newregexp.Global = True</i> <i>VBScriptRegularexpressionvlaidation = newregexp.Test(string_to_match)</i> <i>End Function</i> <i>Msgbox VBScriptRegularexpressionvlaidation(pattern , string_to_match)</i> For the foreign key constraint validation use data loads that directly input data that violates the constraint and see if the application restricts the same or not. Along with the back end data load, perform the front end UI operations too in a way that are going to violate the constraints and see if the relevant error is displayed.
Conclusion: With all these features, factors and processes to test on a database, there is an increasing demand on the tester to be technically strong with the key DB concepts. Despite some of negative beliefs that the DB testing creates new bottlenecks and is a lot of additional expenditure this is a realm of testing that is gaining obvious attention and demand. I hope this article has helped to focus on why that is so and also has provided you with the basic details of what goes into testing a database.
Database Testing Properties of a Good Test Data and Test Data Preparation Techniques
A couple of months ago, I wrote about database testing strategies. It covered the aspect that is entirely related to the execution of test cases. It was all about black-box testing of a database. There is another important aspect of DB testing activity which we will cover in this article. As a tester, you have to test the Examination Results module of the website of a university. Consider the whole application has been integrated and it is in Ready for Testing state. Examination Module is linked with Registration, Courses and Finance modules. Assume that you have adequate information of the application and you created a comprehensive list of test scenarios. Now you have to design, document and execute these test cases. In Actions/Steps section of the test cases, you must mention the acceptable data as input for the test. The data mentioned in test cases must be selected properly. The accuracy of Actual Results column of TC Document is primarily dependent upon the test data. So, step to prepare the input test data is significantly important. Thus, here is my rundown on DB Testing Test Data Preparation Strategies. Properties of Test Data:
The test data should be selected precisely and it must possess the following four qualities: 1. Realistic: By realistic, it means the data should be accurate in the context of real life e.g. in order to test Age field, all the values should be positive and 18 or above. It is quite obvious that the candidates for an admission in the university are usually 18 years old (this might be defined in requirements). 2. Practically valid: This is similar to realistic but not the same. This property is more related to the business logic of AUT e.g. value 60 is realistic in age field but practically invalid for a candidate of Graduation or even Masters Programs. In this case, a valid range would be 18-25 years (this might be defined in requirements). 3. Versatile to cover scenarios: There may be several subsequent conditions in a single scenario, so choose the data shrewdly to cover maximum aspects of a single scenario with minimum set of data, e.g. while creating test data for result module, do not only consider the case of regular students who are smoothly completing their program. Give attention to the students who are repeating the same course and belong to different semesters or even different programs. The data set may look like this: Sr# Student_ID Program_ID Course_ID Grade 1 BCS-Fall2011-Morning-01 BCS-F11 CS-401 A 2 BCS-Spring2011-Evening-14 BCS-S11 CS-401 B+ 3 MIT-Fall2010-Afternoon-09 MIT-F10 CS-401 A-
There might be several other interesting and tricky sub-conditions. E.g. the limitation of years to complete a degree program, passing a prerequisite course for registering a course, maximum no. of courses a student may enroll in a single semester etc. etc. Make sure to cover all these scenarios wisely with finite set of data. 4. Exceptional data (if applicable/required): There may be certain exceptional scenarios that are less frequent but demand high importance when occur, e.g. disabled students related issues. Test data preparation techniques: We have briefly discussed the important properties of test data and it also elaborates how test data selection is important while database testing. Now lets discuss the techniques to prepare test data. There are only two ways to prepare test data: Method 1. Insert New Data: Get a clean DB and insert all the data as specified in your test cases. Once, all your required and desired data has been entered, start executing your test cases and fill Pass/Fail columns by comparing the Actual Output with Expected Output. Sounds simple, right? But wait, its not that simple. Few essential and critical concerns are as follows: 1. Empty instance of database may not be available 2. Inserted test data may be insufficient for testing some cases like performance and load testing. 3. Inserting the required test data into blank DB is not an easy job due to the database table dependencies. Because of this inevitable restriction, data insertion can become difficult task for tester. 4. Insertion of limited test data (just according to the test cases needs) may hide some issues that could be found only with the large data set. 5. For data insertion, complex queries and/or procedures may be required, and for this sufficient assistance or help from the DB developer(s) would be necessary. Above mentioned five issues are the most important and the most obvious drawbacks of this technique for test data preparation. But if there are some advantages as well: 1. Execution of TCs becomes more efficient as the DB has the required data only. 2. Bugs isolation requires no time as only the data specified in test cases present in the DB. 3. Less time required for testing and results comparison. 4. Clutter-free test process Method 2. Choose sample data subset from actual DB data: This is the feasible and more practical technique for test data preparation. However it requires sound technical skills and demands detailed knowledge of DB Schema and SQL. In this method you need to copy and use production data by replacing some field values by dummy values. This is the best data subset for your testing as it represents the production data. But this may not be feasible all the time due to data security and privacy issues. This strategy deserves one separate post which well discuss in next article Database gray-box testing and precautions to take while testing database. Database Testing Practical Tips and Insight on How to Test Database Database is one of the inevitable parts of a software application these days. It does not matter at all whether it is web or desktop, client server or peer to peer, enterprise or individual business, database is working at backend. Similarly, whether it is healthcare of finance, leasing or retail, mailing application or controlling spaceship, behind the scene a database is always in action. Moreover, as the complexity of application increases the need of stronger and secure database emerges. In the same way, for the applications with high frequency of transactions (e.g. banking or finance application), necessity of fully featured DB Tool is coupled. Currently, several database tools are available in the market e.g. MS-Access2010, MS SQL Server 2008 r2, Oracle 10g, Oracle Financial, MySQL, PostgreSQL, DB2 etc. All of these vary in cost, robustness, features and security. Each of these DBs possesses its own benefits and drawbacks. One thing is certain; a business application must be built using one of these or other DB Tools. Before I start digging into the topic, let me comprehend the foreword. When the application is under execution, the end user mainly utilizes the CRUD operations facilitated by the DB Tool. C: Create When user Save any new transaction, Create operation is performed. R: Retrieve When user Search or View any saved transaction, Retrieve operation is performed. U: Update when user Edit or Modify an existing record, the Update operation of DB is performed. D: Delete when user Remove any record from the system, Delete operation of DB is performed. It does not matter at all, which DB is used and how the operation is preformed. End user has no concern if any join or sub-query, trigger or stored-procedure, query or function was used to do what he wanted. But, the interesting thing is that all DB operations performed by user, from UI of any application, is one of the above four, acronym as CRUD.
As a database tester one should be focusing on following DB testing activities: What to test in database testing: 1) Ensure data mapping: Make sure that the mapping between different forms or screens of AUT and the Relations of its DB is not only accurate but is also according to design documents. For all CRUD operations, verify that respective tables and records are updated when user clicks Save, Update, Search or Delete from GUI of the application. 2) Ensure ACID Properties of Transactions: ACID properties of DB Transactions refer to the Atomicity, Consistency, Isolation and Durability. Proper testing of these four properties must be done during the DB testing activity. This area demands more rigorous, thorough and keen testing when the database is distributed. 3) Ensure Data Integrity: Consider that different modules (i.e. screens or forms) of application use the same data in different ways and perform all the CRUD operations on the data. In that case, make it sure that the latest state of data is reflected everywhere. System must show the updated and most recent values or the status of such shared data on all the forms and screens. This is called the Data Integrity. 4) Ensure Accuracy of implemented Business Rules: Today, databases are not meant only to store the records. In fact, DBs have been evolved into extremely powerful tools that provide ample support to the developers in order to implement the business logic at DB level. Some simple examples of powerful features of DBs are Referential Integrity, relational constrains, triggers and stored procedures. So, using these and many other features offered by DBs, developers implement the business logic on DB level. Tester must ensure that the implemented business logic is correct and works accurately. Above points describe the four most important What Tos of database testing. Now, I will put some light on How Tos of DB Testing. But, first of all I feel it better to explicitly mention an important point. DB Testing is a business critical task, and it should never be assigned to a fresh or inexperienced resource without proper training. How To Test Database: 1. Create your own Queries In order to test the DB properly and accurately, first of all a tester should have very good knowledge of SQL and specially DML (Data Manipulation Language) statements. Secondly, the tester should acquire good understanding of internal DB structure of AUT. If these two pre- requisites are fulfilled, then the tester is ready to test DB with complete confidence. (S)He will perform any CRUD operation from the UI of application, and will verify the result using SQL query. This is the best and robust way of DB testing especially for applications with small to medium level of complexity. Yet, the two pre-requisites described are necessary. Otherwise, this way of DB testing cannot be adopted by the tester. Moreover, if the application is very complex then it may be hard or impossible for the tester to write all of the needed SQL queries himself or herself. However, for some complex queries, tester may get help from the developer too. I always recommend this method for the testers because it does not only give them the confidence on the testing they have performed but, also enhance their SQL skill. 2. Observe data table by table If the tester is not good in SQL, then he or she may verify the result of CRUD operation, performed using GUI of the application, by viewing the tables (relations) of DB. Yet, this way may be a bit tedious and cumbersome especially when the DB and tables have large amount of data. Similarly, this way of DB testing may be extremely difficult for tester if the data to be verified belongs to multiple tables. This way of DB testing also requires at least good knowledge of Table structure of AUT. 3. Get query from developer This is the simplest way for the tester to test the DB. Perform any CRUD operation from GUI and verify its impacts by executing the respective SQL query obtained from the developer. It requires neither good knowledge of SQL nor good knowledge of applications DB structure. So, this method seems easy and good choice for testing DB. But, its drawback is havoc. What if the query given by the developer is semantically wrong or does not fulfill the users requirement correctly? In this situation, the client will report the issue and will demand its fix as the best case. While, the worst case is that client may refuse to accept the application.
Conclusion: Database is the core and critical part of almost every software application. So DB testing of an application demands keen attention, good SQL skills, proper knowledge of DB structure of AUT and proper training. In order to have the confident test report of this activity, this task should be assigned to a resource with all the four qualities stated above. Otherwise, shipment time surprises, bugs identification by the client, improper or unintended applications behavior or even wrong outputs of business critical tasks are more likely to be observed. Get this task done by most suitable resources and pay it the well-deserved attention.
ETL Testing / Data Warehouse Testing Tips, Techniques, Process and Challenges
Today let me take a moment and explain my testing fraternity about one of the much in demand and upcoming skills for my tester friends i.e. ETL testing (Extract, Transform, and Load). This article will present you with a complete idea about ETL testing and what we do to test ETL process. It has been observed that Independent Verification and Validation is gaining huge market potential and many companies are now seeing this as prospective business gain. Customers have been offered different range of products in terms of service offerings, distributed in many areas based on technology, process and solutions. ETL or data warehouse is one of the offerings which are developing rapidly and successfully.
Why do organizations need Data Warehouse? Organizations with organized IT practices are looking forward to create a next level of technology transformation. They are now trying to make themselves much more operational with easy-to-interoperate data. Having said that data is most important part of any organization, it may be everyday data or historical data. Data is backbone of any report and reports are the baseline on which all the vital management decisions are taken. Most of the companies are taking a step forward for constructing their data warehouse to store and monitor real time data as well as historical data. Crafting an efficient data warehouse is not an easy job. Many organizations have distributed departments with different applications running on distributed technology. ETL tool is employed in order to make a flawless integration between different data sources from different departments. ETL tool will work as an integrator, extracting data from different sources; transforming it in preferred format based on the business transformation rules and loading it in cohesive DB known are Data Warehouse. Well planned, well defined and effective testing scope guarantees smooth conversion of the project to the production. A business gains the real buoyancy once the ETL processes are verified and validated by independent group of experts to make sure that data warehouse is concrete and robust. ETL or Data warehouse testing is categorized into four different engagements irrespective of technology or ETL tools used: New Data Warehouse Testing New DW is built and verified from scratch. Data input is taken from customer requirements and different data sources and new data warehouse is build and verified with the help of ETL tools. Migration Testing In this type of project customer will have an existing DW and ETL performing the job but they are looking to bag new tool in order to improve efficiency. Change Request In this type of project new data is added from different sources to an existing DW. Also, there might be a condition where customer needs to change their existing business rule or they might integrate the new rule. Report Testing Report are the end result of any Data Warehouse and the basic propose for which DW is build. Report must be tested by validating layout, data in the report and calculation. ETL Testing Techniques: 1) Verify that data is transformed correctly according to various business requirements and rules. 2) Make sure that all projected data is loaded into the data warehouse without any data loss and truncation. 3) Make sure that ETL application appropriately rejects, replaces with default values and reports invalid data. 4) Make sure that data is loaded in data warehouse within prescribed and expected time frames to confirm improved performance and scalability. Apart from these 4 main ETL testing methods other testing methods like integration testing and user acceptance testing is also carried out to make sure everything is smooth and reliable. ETL Testing Process: Similar to any other testing that lies under Independent Verification and Validation, ETL also go through the same phase. Business and requirement understanding Validating Test Estimation Test planning based on the inputs from test estimation and business requirement Designing test cases and test scenarios from all the available inputs Once all the test cases are ready and are approved, testing team proceed to perform pre- execution check and test data preparation for testing Lastly execution is performed till exit criteria are met Upon successful completion summary report is prepared and closure process is done. It is necessary to define test strategy which should be mutually accepted by stakeholders before starting actual testing. A well defined test strategy will make sure that correct approach has been followed meeting the testing aspiration. ETL testing might require writing SQL statements extensively by testing team or may be tailoring the SQL provided by development team. In any case testing team must be aware of the results they are trying to get using those SQL statements. Difference between Database and Data Warehouse Testing There is a popular misunderstanding that database testing and data warehouse is similar while the fact is that both hold different direction in testing. Database testing is done using smaller scale of data normally with OLTP (Online transaction processing) type of databases while data warehouse testing is done with large volume with data involving OLAP (online analytical processing) databases. In database testing normally data is consistently injected from uniform sources while in data warehouse testing most of the data comes from different kind of data sources which are sequentially inconsistent. We generally perform only CRUD (Create, read, update and delete) operation in database testing while in data warehouse testing we use read-only (Select) operation. Normalized databases are used in DB testing while demoralized DB is used in data warehouse testing. There are number of universal verifications that have to be carried out for any kind of data warehouse testing. Below is the list of objects that are treated as essential for validation in ETL testing: - Verify that data transformation from source to destination works as expected - Verify that expected data is added in target system - Verify that all DB fields and field data is loaded without any truncation - Verify data checksum for record count match - Verify that for rejected data proper error logs are generated with all details - Verify NULL value fields - Verify that duplicate data is not loaded - Verify data integrity ETL Testing Challenges: ETL testing is quite different from conventional testing. There are many challenges we faced while performing data warehouse testing. Here is the list of few ETL testing challenges I experienced on my project: - Incompatible and duplicate data. - Loss of data during ETL process. - Unavailability of inclusive test bed. - Testers have no privileges to execute ETL jobs by their own. - Volume and complexity of data is very huge. - Fault in business process and procedures. - Trouble acquiring and building test data. - Missing business flow information. Data is important for businesses to make the critical business decisions. ETL testing plays a significant role validating and ensuring that the business information is exact, consistent and reliable. Also, it minimizes hazard of data loss in production. Hope these tips will help ensure your ETL process is accurate and the data warehouse build by this is a competitive advantage for your business.
A Complete Guide to Usability Testing Its Like Trying to Read Minds! Todays article is going to be a complete guide to usability testing. Does it sound too ambitious that we say it is a complete guide? In this case it truly is. Usability Testing is a realm of the IT world that tries incorporating how people would like their applications to be which is never easy. It is like trying to read minds. What sounds like common sense, is a profound science when it comes to usability testing. However, we will try to address the key aspects of Usability Testing the what, who, why, when and how- to the best of our abilities below. What is Usability Testing?
Image credit: blog.templatemonster.com A usability test makes sure that the interface of an AUT is built in a way that fits the users expectations with respect to meeting requirements (effectiveness) easily (efficiently) in a simplistic satisfying manner. The primary focus is on: 1. Ease of use 2. Ease of Learning or familiarizing with the system 3. Satisfaction of the user with the entire experience Usability has many dimensions to it. It is all about the users experience during their interaction with an application and their feeling towards it. A structured Usability Test translates this experience/feeling into a Validation Process. Why is usability testing performed? Web and mobile applications rule the business world in recent times. These apps being efficient, effective, easy, simple, appealing, engaging etc. is very critical for them to be embraced by the customers. Usability testing is all about determining if a site is what the user would want to use and come back to or not. This not only applies to software systems. Any machine/interface that has a human interaction has got to satisfy these rules. How, you ask? Democracy would suffer if the voting machines were not usable. I wouldnt vote if I had to click more than one button to choose my candidate, would you? Exactly! For a more software specific example, check out this 300 million dollar article by Jared Spool that will clearly explain how the placement of a button has caused the business to be impacted. When is Usability Testing conducted? As testers we know that the earlier a defect is found in the SDLC the cheaper it is to fix it. The same concept holds true for Usability Testing also. Usability testing results effect the design of the product. So, ideally, usability testing should start at the design level. But that is not all; software undergoes many changes/interpretations/implementations throughout the SDLC process. To make sure that we do not make usability related mistakes at any of these steps usability testing should be conducted often and continuously for maximum results. Who performs usability testing? It can be done as an internal process, when the designers, developers and anyone else can sit down and analyze their system and get the results. Based on these results, the design and/or code can be modified to be in accordance with the changes they all agree on. A more advanced approach is to hire real time users and give them particular tasks. A facilitator/s can devise these tasks and get the results from the users. The users can then provide information, on whether: 1. the task was successful or not 2. the task could be performed easily 3. Was the experience interesting, engaging or annoying their feeling towards the software How is usability Testing conducted? Testing is validation of software against its requirements. Usability testing is not different The only requirement in this case is to validate if the software is as per a mental map of how a user would want the software to be like, what makes it comfortable for them to use, what kind of holistic experience is the user going to take away from the interaction etc. These are just a few of the ways in which usability testing is carried out. Method #1) During the design phase, you could just take draw your website/application design on a piece of paper and evaluate whether it is going to work or not. Method #2) An exploratory method would be to build the site and perform some random tests (by the development/design/QA- any or all internal teams) to determine usability factors. Method #3) Hire a set of real time users to work on the site and report results Method #4) Use a tool that would provide statistics based on the input wireframes and designs submitted Method #5) Hire a third-party usability team that specialize in this field Method #6) Submit your site design and wireframes to an external evaluator and get results from them The structured Usability testing process contains the following steps: Step #1) Identifying the users to perform the usability test it helps to choose the set of users that is close to how the real time users are going to be. Care has to be taken not to pick experts or complete newbies . The experts are going to simply run through the entire process and the novices need lots of background training to even get started- neither situation is optimum. Step #2) Designing the tasks that the users are going to perform on the application A list of situations that the users are going to use the application for are to be made prior to starting the test. This can include something like: Search for an X-box and buy it or submit a customer care question etc. on an eCommerce site. The tasks should closely represent the real transactions the users would use the site for. Step #3) Facilitating the testing - The usability team will have the users perform the tasks on the site and are going to gather information regarding the test progress and results. It really makes a huge difference when the design team participates while the users are working on the application. It gives them a better picture about how the app was used and where it did not deliver what the user wanted etc, firsthand. Step #4) Analyze results At the end of the test, we might end up with the time it took to perform tasks, whether the task was successful or not etc, so basically raw data. The results have to be presented to all the stakeholders and analyzed for identification of potential problem areas. Usability Testing Tools There are also many tools that help this process along. All these tools can be roughly categorized as follows: Category 1: Create tasks/tests and give them to users (finding the users and giving them tasks is a manual activity, outside of the tool). While they are performing these tasks, the facilitator could watch their screen and interact with them. This could be in the lines of how you would Skype. Category 2: Tool provides users or you can pick your own users. You can submit your page/design and the tasks to be performed. The tool in turn will provide you the videos of the user interaction plus the users comments. You can make your own analysis. Category 3: Tools that use eye tracking and heat map methods to determine which part of the page the user has spent most time on. Some of the tools in this category also record the users clicks, scrolls, mouse moves etc. Category 4: Tools that provide you with a feedback based on the website, page or wireframe that you submit as input. Some tools of this type also provide surveys that help in giving conclusive evidence regarding usability issues. Category 5: Tools that recruit users for your usability test. The above is a very broad classification. There are many other tools. And also, the division into a certain category is not always so clean. Sometimes the tools employ multiple methods at the same time. Here is a list of tools category wise and the link to find more info about them. (I have not listed the features of each tool because all of them in a certain category have similar features and it would be redundant to write each one of it. The pricing information is also not included because the latest info can only be obtained from the tools home site, hence the link.)
Well, there you have it -the most basic information about usability testing. This is like trying to capture an ocean into a jar. From what we have discussed so far, these are my impressions: #1. Usability testing is not an out and out QA task. A role that traditional QA teams could play in this context is that of a facilitator who would create tasks, conduct the test and interpret the result. The tester in this case is actually the user. #2. The end results or outcome of a usability testing is not defects. It is simple information on how the user felt, what they liked, what they did not basically raw data. Usability testers job does not end with reporting the results (in case of traditional QA jobs, we report bugs and do not get involved in fixing them), it includes providing suggestions on how to make the software more conducive for a user interaction. #3. By understanding these concepts, we can actually make a difference as functional testers. To add more value to our role as QAs we can apply these usability concepts and provide insightful suggestions on how to improve the usability of an application. 100+ Ready-to-Execute Test Cases (Checklists) You Can Use to Test the Most Common Components of AUT
How to test the most common components of your AUT effectively, every single time This article is a list of common validations on most widely found elements of AUT that is put together for the convenience of testers (especially in agile environment where frequent short term releases happen). Every AUT (Application Under Test) is unique and has a very specific business purpose. The individual aspects (modules) of the AUT cater to different operations/actions that are crucial for the success of the business that the AUT supports. Though each AUT is designed differently, individual components/fields that we encounter on most pages/screens/applications are same with more or less similar behavior. Some Common Components of AUT: Save, Update, Delete, Reset, Cancel, OK links/buttons- whose functionality is as the label of the object indicates. Text box, drop downs, checkboxes, radio buttons, date control fields that work the same way every time. Data grids, impacted areas, etc. to facilitate reports. The way these individual elements contribute to the overall functionality of the application might be different but the steps to validate them are always the same. Lets continue with the list of most common validations for web or desktop application pages/forms. Note: The actual result, expected result, test data and other parameters that are typically a part of a test case are omitted for the sake of simplicity A general checklist approach is employed. Purpose of this comprehensive checklist: The primary purpose of these checklists (or test cases) is to ensure maximum test coverage on field level validations without spending too much time, at the same time not compromise the quality of testing them. After all, confidence in a product can only be attained by testing every single element to the best extent possible. The Complete Checklist (Test Cases) for Most Common Components of AUT Note: You can use these checklists as it is in Microsoft Excel format (download provided at the end of the article). You can even track the test execution in same file with pass/fail result and status. This could be an all-in-one resource for QA teams to test and track the most common components of AUT. You can add or update test cases specific to your application and make it even more comprehensive list. Checklist #1: For a module, we have to check the below points: Module Name: Module Functionality: Module Impact over the application: Module Flow: Menu & Submenu: Spellings and Order & Suitability: Control for each sub menu: Checklist #2: For each screen, we have to verify the below points Form Functionality: Form Impact over the application: Form Flow: Designing: Alignments: Title: Field Names: Spellings: Mandatory Marks: Alerts of Mandatory fields: Buttons: Default Cursor Position: Tab Sequence: Page before entering any data: Page after entering data: Checklist #3: For each text box in the screen we have to verify the below points Text Box: ADD(In add screen) EDIT (in Edit screen) Characters Special Characters Numbers Limit Alert Spelling & Grammar in Alert message:
BVA (Size) for Text Box: Min >> Pass Min-1 > > Fail Min+1 > > Pass Max-1 > > Pass Max+1 > > Fail Max > > Pass ECP for Text Box: Valid In Valid - - - - Checklist #4: For each list box/drop down in the screen we have to verify the below points List Box/Dropdown: ADD(In add screen) EDIT (in Edit screen) Header Correctness of Existed Data
Order of Data Selection and Deselect ion Alert: Spelling and Grammar of Alert message
Cursor after alert Reflection of Selection and De selection in remaining fields
Checklist #5: For each Check box in the screen we have to verify the below points Check Box: ADD(In add screen) EDIT (in Edit screen) Default Selection Action after selection Action after de-selection Selection and Deselect ion Alert: Spelling and Grammar of Alert message
Cursor after alert Reflection of Selection and De selection in remaining fields
Checklist #6: For each Radio button in the screen we have to verify the below points Radio button: ADD(In add screen) EDIT (in Edit screen) Default Selection Action after selection Action after de-selection Selection and Deselect ion Alert: Spelling and Grammar of Alert message
Cursor after alert Reflection of Selection and De selection in remaining fields
Checklist #7: For each date field in the screen we have to verify the below points Date field: Practical Software Testing New FREE eBook [Download] How to Improve Your Testing Skills and Beat the Competition! 100+ Ready-to-Execute Test Cases (Checklists) You Can Use to Test the Most Common Components of AUT How to test the most common components of your AUT effectively, every single time This article is a list of common validations on most widely found elements of AUT that is put together for the convenience of testers (especially in agile environment where frequent short term releases happen). Every AUT (Application Under Test) is unique and has a very specific business purpose. The individual aspects (modules) of the AUT cater to different operations/actions that are crucial for the success of the business that the AUT supports. Though each AUT is designed differently, individual components/fields that we encounter on most pages/screens/applications are same with more or less similar behavior.
Some Common Components of AUT: Save, Update, Delete, Reset, Cancel, OK links/buttons- whose functionality is as the label of the object indicates. Text box, drop downs, checkboxes, radio buttons, date control fields that work the same way every time. Data grids, impacted areas, etc. to facilitate reports. The way these individual elements contribute to the overall functionality of the application might be different but the steps to validate them are always the same. Lets continue with the list of most common validations for web or desktop application pages/forms. Note: The actual result, expected result, test data and other parameters that are typically a part of a test case are omitted for the sake of simplicity A general checklist approach is employed. Purpose of this comprehensive checklist: The primary purpose of these checklists (or test cases) is to ensure maximum test coverage on field level validations without spending too much time, at the same time not compromise the quality of testing them. After all, confidence in a product can only be attained by testing every single element to the best extent possible. The Complete Checklist (Test Cases) for Most Common Components of AUT Note: You can use these checklists as it is in Microsoft Excel format (download provided at the end of the article). You can even track the test execution in same file with pass/fail result and status. This could be an all-in-one resource for QA teams to test and track the most common components of AUT. You can add or update test cases specific to your application and make it even more comprehensive list. Checklist #1: For a module, we have to check the below points: Module Name: Module Functionality: Module Impact over the application: Module Flow: Menu & Submenu: Spellings and Order & Suitability: Control for each sub menu: Checklist #2: For each screen, we have to verify the below points Form Functionality: Form Impact over the application: Form Flow: Designing: Alignments: Title: Field Names: Spellings: Mandatory Marks: Alerts of Mandatory fields: Buttons: Default Cursor Position: Tab Sequence: Page before entering any data: Page after entering data: Checklist #3: For each text box in the screen we have to verify the below points Text Box: ADD(In add screen) EDIT (in Edit screen) Characters Special Characters Numbers Limit Alert Spelling & Grammar in Alert message:
BVA (Size) for Text Box: Min >> Pass Min-1 > > Fail Min+1 > > Pass Max-1 > > Pass Max+1 > > Fail Max > > Pass ECP for Text Box: Valid In Valid - - - - Checklist #4: For each list box/drop down in the screen we have to verify the below points List Box/Dropdown: ADD(In add screen) EDIT (in Edit screen) Header Correctness of Existed Data
Order of Data Selection and Deselect ion Alert: Spelling and Grammar of Alert message
Cursor after alert Reflection of Selection and De selection in remaining fields
Checklist #5: For each Check box in the screen we have to verify the below points Check Box: ADD(In add screen) EDIT (in Edit screen) Default Selection Action after selection Action after de-selection Selection and Deselect ion Alert: Spelling and Grammar of Alert message
Cursor after alert Reflection of Selection and De selection in remaining fields
Checklist #6: For each Radio button in the screen we have to verify the below points Radio button: ADD(In add screen) EDIT (in Edit screen) Default Selection Action after selection Action after de-selection Selection and Deselect ion Alert: Spelling and Grammar of Alert message
Cursor after alert Reflection of Selection and De selection in remaining fields
------------
Checklist #7: For each date field in the screen we have to verify the below points Date field: ADD(In add screen) EDIT (in Edit screen) Default date display Design of calendar Navigation for different months and years in date control
Manual Entry in date text box
Date format and uniformity with overall application
Alert: Spelling and Grammar of Alert message
Cursor after alert Reflection of Selection and De selection in remaining fields
Checklist #8: For each save button in the screen we have to verify the below points Save/update: ADD(In add screen) EDIT (in Edit screen) Without giving any data: With only mandatory fields: With All fields: With Max limit: With min limit Spelling & Grammar in Confirmation Alert message:
Cursor Duplication of Unique fields: Spelling & Grammar in duplication Alert message:
Cursor Checklist #9: For each Cancel button in the screen we have to verify the below points Cancel: With data in all fields With only mandatory fields: With All fields: Checklist #10: For each Delete button in the screen we have to verify the below points Delete: EDIT (in Edit screen) Delete the record which is not used anywhere in the application
Delete the record which has dependency
Add the new record with same deleted details again
Checklist #11: To verify impacted areas after saving/updating After Saving/updating: Display in View Reflection in impacted forms in the application
Checklist #12: For each data grid in the screen we have to verify the below points Data Grid: Grid Title and spelling Form Before giving any data Message Before giving any data Spellings Alignments S No Field Names & Order Correctness of Existed data Order of Existed data Alignment of Existed data Page navigators Data when navigating with different pages
Edit Link Functionality Page after Edit: Title and spellings Existed data of Selected record in each field
Buttons Points to note: 1. Depending on your need, additional tests under each category/for each field can be added or existing fields can be removed. In other words, these lists are completely customizable. 2. When in need to include field level validations to your test suites, all you have to do is pick up the respective list and use it for the screen/page that you would like to test. 3. Maintain the checklist by updating the pass/fail status to make this a one-stop-shop for listing features, validating them and recording the test results.
GUI Testing on Smart Devices Testing Guidelines
As First impression is the last, so GUI (Graphical User Interface) does matter and creates a lot of difference. Importance of decent and attractive GUI can be felt more significantly in smart devices environment where screen size is much small. GUI testing can be toughest part especially while testing on smart device. You should pay full attention to the GUI while testing on smart devices and surely it is an important task that deserves significant time and resource allocation. Practical Tips for Testing GUI on Smart Devices: For me, while testing GUI, all the controls are accused. I raise questions why they are there on the screen and I try to answer these questions. I argue in opposition and favor of the controls one by one and I do all this without discussing with someone else. It is the time when Im wearing multiple hats, Controls are accused and Im the Prosecutor , Im the Defense Lawyer and Im the Judge and during all this process a control must have valid and solid reasons in its favor to be there on screen and consume space. I suggest you to try it and it will help you to decide which controls to display on the screen. There also come the situations where you are given an already built GUI to test. In such situations also think about the missing controls, the controls that will add value to the screen and compare their importance with the current ones. If you think you need to make a change go ahead. Once you have decided which controls will be shown on the screen, think thoroughly about size, style and location of the controls on the screen and more important how user will interact with them? 3 important factors to be considered while testing GUI on Smart Devices:
Size: There are too many variations in screen sizes and available resolutions. In smart devices especially, controls sizes are not static, they have relation to the available screen size. While testing, make sure that controls size looks esthetically good and control is completely visible on the screen without any scrolling. Test the GUI on different devices with different screen sizes and resolutions. Emulators are good for this purpose but nothing matches the real device. So make sure that you test on at least two or three real devices. Also dont forget to test on landscape and portrait orientations if the device supports it. Style: Definitely your application has a specific design. And style of the controls should match with that design. You might have seen many applications where some controls e.g. panels have round edges and text boxes in them have sharp edges. Although this type of issues dont affect the usability or functionality but still a consistent look of the application helps to build a friendly relation between the application and the user. Relatively more important thing in style is font on the different pages. Most of the times, we focus the text that is visible in normal situations and ignore the text that appears in specific situations. Success and Failure messages are an example of such type of text Another factor, important in style is relation between the font color and the situation in which text is displayed. For example Red color is used for Error messages, Green for success, Yellow for warnings and Blue (now a day occasionally) for hyperlinks. Location: Location and position are the two words that are used alternatively and it is interesting that they are further used to convey two different concepts that are explained below. 1. Sometimes it is the area on the screen where a control appears. For example Header is located on Top of the page, Labels are Left Aligned, and Text boxes are Right Aligned etc. Here text in bold are relative positions of the controls 2. Sometimes it is the order of a control among the other controls. For example while getting personal info, First Name is followed by the last name or format of controls to ask for a US address should be in order ZIP, City, State. For both these situations, make sure that everything is logical and shows a good aesthetic sense. Forgot something even more important. There are situations where one or more controls appear on more than one screen, in this situation make sure that they appear on same location and in the same order on all the pages.
12 Best Cross Browser Testing Tools to Ease Your Browser Compatibility Testing Efforts Cross Browser Testing can be the biggest pain for Software testers. But thanks to all cross browser testing tools available online which help to minimize testing efforts. Ive written this post mainly for software testers but designers can also refer crossbrowser testing methods and tools mentioned in this post. Heres a handy cross browser testing checklist you can refer while testing your web project on different browsers and operating systems: 1) CSS validation 2) HTML or XHTML validation 3) Page validations with and without JavaScript enabled 4) Ajax and JQeury functionality 5) Font size validation 6) Page layout in different resolutions 7) All images and alignment 8 ) Header and footer sections 9) Page content alignment to center, LHS or RHS 10) Page styles 11) Date formats 12) Special characters with HTML character encoding 13) Page zoom-in and zoom-out functionality And obviously you will have to repeat these tests on: 14) Different Operating Systems like Windows, Linux and Mac 15) Different browsers (with different versions) like Internet explorer, Firefox, Google Chrome, Safari and Opera. There are many free and paid cross browser testing tools available in the market. You need to select the browser compatibility tool depending on your needs. If cross browser testing is critical part of your web project then you must allocate considerable time, resources and budget testing your website on different web browsers. Paid cross browser testing tools can be also a good option for projects having browser dependent functionality. But for most of the projects, free cross browser testing tools are sufficient to verify cross browser functionality Check out below list of all cross browser testing tools available online for testing website in multiple browsers: Free Cross Browser Testing Tools:
1) Spoon Browser Sandbox:
The Spoon Browser Sandbox allows you to use almost all web browsers without installing on your machine. You can run all popular browsers including Internet Explorer, Firefox, Chrome, and Opera on your machine directly from the web. (Note: Currently Internet Explorer is removed temporary from the list of this sandbox) Spoon Browser Sandbox is a free service currently supporting following browsers: Mozilla Firefox versions: Firefox 2, Firefox 3, Firefox 3.5, Firefox 3.6, Firefox 4 beta Internet Explorer versions: IE6, IE7, IE8 Google Chrome versions: Chrome, Chrome 5 and Chrome 6 beta Opera versions: Opera 9 and Opera 10
2) Browsershots
Browsershots allow you to test website in any browser and operating system. This is widely used cross browser testing tool because of its features and available customizations. You can run cross browser compatibility tests with great customization options like browser type, operating system, screen size, color depth, JavaScript status and Flash enable/disable settings. Just put your website url, select compatibility test parameters and submit the test request. You need to repeat the steps for every test. This free browser compatibility test service can be used for taking website screen-shots almost in 61 browsers and various operating systems. Main drawback of this service is the time taken to display the result when you select many browsers and many times it shows timeout error. Supported browsers: IE, Firefox, Google Chrome, Opera, Safari, Minefield, Netscape and many more browsers with all versions.
3) IE NetRenderer
This is a free online browser compatibility check tool to test website on almost all versions of Microsoft Internet Explorer. Just select the Internet Explorer version from drop down list and put your url to start rendering website. You can instantly verify the screen-shot of the page under test. There is also a IE NetRenderer Firefox add-on available that allows you to render the web page that you are currently reading.
4) IE Tab
A Firefox and Chrome add on to simulate IE browse with a single click of a button. This is a best tool for software testers and developers, since you can easily view how your web page displayed in Internet Explorer with just one click using Firefox or Chrome browsers. Unfortunately this add-on is not available for Firefox 6.0 and above versions. But again a good tool to quickly start your testing on Internet explorer when you have either Firefox or Google Chrome browsers.
5) IE Tester
There are many options available online if you want to check browser compatibility on Internet Explorer versions. IE tester is one of those options that allows you to test your website on multiple Internet Explorer versions at the same time using one application. IETester, a free cross browser testing tool can be used to test website on IE 5.5, IE6, IE7, IE8 and IE9 preview browsers on Windows 7, Vista and XP operating systems. 6) Microsoft SuperPreview How to Write a Killer Software Testing QA Resume That Will Turn Into an Interview Call 18 Tips to Handle Any Job Interview Successfully 12 Best Cross Browser Testing Tools to Ease Your Browser Compatibility Testing Efforts Posted In | GUI Testing, Software Testing Tools, Web Testing Cross Browser Testing can be the biggest pain for Software testers. But thanks to all cross browser testing tools available online which help to minimize testing efforts. Ive written this post mainly for software testers but designers can also refer crossbrowser testing methods and tools mentioned in this post. Heres a handy cross browser testing checklist you can refer while testing your web project on different browsers and operating systems: 1) CSS validation 2) HTML or XHTML validation 3) Page validations with and without JavaScript enabled 4) Ajax and JQeury functionality 5) Font size validation 6) Page layout in different resolutions 7) All images and alignment 8 ) Header and footer sections 9) Page content alignment to center, LHS or RHS 10) Page styles 11) Date formats 12) Special characters with HTML character encoding 13) Page zoom-in and zoom-out functionality And obviously you will have to repeat these tests on: 14) Different Operating Systems like Windows, Linux and Mac 15) Different browsers (with different versions) like Internet explorer, Firefox, Google Chrome, Safari and Opera. There are many free and paid cross browser testing tools available in the market. You need to select the browser compatibility tool depending on your needs. If cross browser testing is critical part of your web project then you must allocate considerable time, resources and budget testing your website on different web browsers. Paid cross browser testing tools can be also a good option for projects having browser dependent functionality. But for most of the projects, free cross browser testing tools are sufficient to verify cross browser functionality Check out below list of all cross browser testing tools available online for testing website in multiple browsers: Free Cross Browser Testing Tools:
1) Spoon Browser Sandbox:
The Spoon Browser Sandbox allows you to use almost all web browsers without installing on your machine. You can run all popular browsers including Internet Explorer, Firefox, Chrome, and Opera on your machine directly from the web. (Note: Currently Internet Explorer is removed temporary from the list of this sandbox) Spoon Browser Sandbox is a free service currently supporting following browsers: Mozilla Firefox versions: Firefox 2, Firefox 3, Firefox 3.5, Firefox 3.6, Firefox 4 beta Internet Explorer versions: IE6, IE7, IE8 Google Chrome versions: Chrome, Chrome 5 and Chrome 6 beta Opera versions: Opera 9 and Opera 10
2) Browsershots
Browsershots allow you to test website in any browser and operating system. This is widely used cross browser testing tool because of its features and available customizations. You can run cross browser compatibility tests with great customization options like browser type, operating system, screen size, color depth, JavaScript status and Flash enable/disable settings. Just put your website url, select compatibility test parameters and submit the test request. You need to repeat the steps for every test. This free browser compatibility test service can be used for taking website screen-shots almost in 61 browsers and various operating systems. Main drawback of this service is the time taken to display the result when you select many browsers and many times it shows timeout error. Supported browsers: IE, Firefox, Google Chrome, Opera, Safari, Minefield, Netscape and many more browsers with all versions.
3) IE NetRenderer
This is a free online browser compatibility check tool to test website on almost all versions of Microsoft Internet Explorer. Just select the Internet Explorer version from drop down list and put your url to start rendering website. You can instantly verify the screen-shot of the page under test. There is also a IE NetRenderer Firefox add-on available that allows you to render the web page that you are currently reading. 4) IE Tab
A Firefox and Chrome add on to simulate IE browse with a single click of a button. This is a best tool for software testers and developers, since you can easily view how your web page displayed in Internet Explorer with just one click using Firefox or Chrome browsers. Unfortunately this add-on is not available for Firefox 6.0 and above versions. But again a good tool to quickly start your testing on Internet explorer when you have either Firefox or Google Chrome browsers.
5) IE Tester
There are many options available online if you want to check browser compatibility on Internet Explorer versions. IE tester is one of those options that allows you to test your website on multiple Internet Explorer versions at the same time using one application. IETester, a free cross browser testing tool can be used to test website on IE 5.5, IE6, IE7, IE8 and IE9 preview browsers on Windows 7, Vista and XP operating systems.
6) Microsoft SuperPreview
Microsoft Expression Web SuperPreview free cross browser testing software allows you to test and debug layout issues across different IE browsers and platforms. You can check websites in different browsers simultaneously. Also check how a page renders in a browser and compare it with other standard screen-shots you have. Expression Web SuperPreview for Internet Explorer shows your web pages rendered in Internet Explorer 6 and either Internet Explorer 7 or Internet Explorer 8, depending on which version you have installed on your machine. Currently beta version of SuperPreview for Internet Explorer is available for free for download. If you cant rely on these free online cross browser testing tools then using Virtual Desktop is the best solution for you. Using Virtual machine you can simulate live environment for multiple browsers and different operating systems. You can use virtual machine software or can setup a virtual machine in your office network with different operating system images and browsers which can be accessed remotely for browser compatibility testing. Paid Cross Browser Testing Tools:
7) Browsera This is an automated browser compatibility testing tool used to test website and its elements in multiple browsers. You can use this service to test website and all web pages for layout and scripting errors. 8 ) Adobe BrowserLab You can preview web pages across multiple versions of Internet Explorer (Windows), Firefox (Windows and Mac OS X), Safari (Mac OS X), and Chrome (Windows). You can quickly view full screen-shots with multiple view options and customizable test settings. You can also test web page content by zooming particular sections and comparing those with different browser screen-shots for alignment and other layout issues. 9) BrowserCam BrowserCam is a paid online service that allows you to view your web pages across different platforms and browsers, either by automatically taking the screen-shot or manually navigating web pages in different browsers. Free trial is available for 200 screen captures in a day. 10) Browserseal BrowserSeal cross browser testing tool allows you to capture an image of your website under different browsers with a single click of a mouse. You can navigate images to spot layout and UI issues. Browserseal tool support almost all major versions of Internet Explorer, Firefox, Google Chrome, Opera and Safari. Free Trial version of Browserseal is also available, limited to two browsers (Firefox and Internet Explorer) and one screen-shot per session. 11) Cross Browser Testing Test your website live on different operating systems and browsers. You just need to login to Cross Browser Testing platform, select operating system, browser and start testing your website for Ajax, JavaScript and flash functionality. You can also check your website design using automated screen-shot tool to view websites design across every browser. Free trial of this cross browser testing software is available for one week. 12) Cloud Testing Cloud Testing tool allows you to check website look and feel and the functionality on Internet Explorer, Firefox, Safari. Opera and Google Chrome browsers on real operating systems in the cloud. Over to you! As of now you should have clear idea of many free and paid cross-browser testing tools available online. Obviously selection of a good cross browser testing tool depends on your requirements as each browser compatibility checking tool comes with its own advantages and disadvantages.