Friday 6 September 2013

What is keyword view and Expert view in QTP

The Keyword View enables you to create and view the steps of your test in a keyword-driven, modular, table format. The Keyword View is comprised of a table-like view, in which each step is a separate row in the table, and each column represents different parts of the steps. You can modify the columns displayed to suit your requirements.

You create and modify tests by selecting items and operations in the Keyword View and entering information as required. Each step is automatically documented as you complete it, enabling you to view a description of your test steps in understandable English.
Each operation performed on your application during a recording session is recorded as a row in the Keyword View.


For each row in the Keyword View, HP QuickTest displays a corresponding line of script in the Expert View.
Advanced testers can view and edit their tests in the Expert View, which reveals the underlying industry-standard VBScript that QuickTest automatically generates. Any changes made in the Expert View are automatically synchronized with the Keyword View.
The Expert View is composed of statements coded in the Microsoft VBScript programming language. The Expert View provides an alternative to the Keyword View for testers who are familiar with VBScript. You can also create function libraries in HP QuickTest using VBScript.


Tuesday 3 September 2013

Java: How to convert integer to string


Integer to String:

int i=100;

String x= String.valueOf(i);

Java :How will you convert string to integer

String to integer:

String x="100";


int i= Integer.parseInt(x);

Sunday 25 August 2013

HP QTP versus Selenium : Bird eye comparison

This article demonstrates bird eye comparison between HP QuickTest Professional and Selenium. These are popular test automation tool, specially, for functional & regression testing. Purpose of this comparison is not to say which is better tool, it consists of comparison of tool based on different criteria like supported O/S, browser, object spy, object repository, license cost etc. This article is targeted for readers having prior working knowledge of automation approach & at-least one automation tool. Quick overview of tools is as follows –

Introduction
HP QuickTest Professional is a graphical user tool & provides solution for functional test and regression test automation. This next-generation automated testing solution deploys the concept of keyword-driven testing to enhance test creation and maintenance. QuickTest Professional meets the needs of both technical and non-technical users. It works hand-in-hand with HP Business Process Testing to bring non-technical subject matter experts into the quality process in a meaningful way. Plus, it empowers the entire testing team to create sophisticated test suites. QTP users don’t enjoy a freedom of scripting language like their counterparts using Selenium. It supports only VB Script.

QTP supports the following environments
·        Active X
·        Delphi
·        Java
·        .Net
·        Oracle
·        People Soft
·        Power Builder
·        SAP
·        Siebel
·        Stingray
·        Terminal Emulator
·        Visual Basic
·        Visual Age
·        Web
·        Web Services

Selenium is a family of tools, comprised of multiple software components, used only for automating web based application, they are as follows –

Selenium 2 or Selenium WebDriver –It is a product of merger between Selenium & WebDriver.  It supports the WebDriver API, along with the Selenium 1 technology. WebDriver is a tool for writing automated tests of web based applications. It aims to emulate the behavior of a real user, and as such interacts with the HTML of the application. It provides object oriented support & WebDriver API. This is latest/ newest addition in Selenium family.

Selenium 1  or Selenium RC or Remote Control -  It allows to write automated web application UI tests in any programming language (Java, JavaScript, Ruby, PHP, Python, Perl and C#) against any HTTP website using any mainstream JavaScript-enabled browser. It comes in two parts. 
  •      A server which automatically launches and kills browsers, and acts as a HTTP proxy for web requests from them.
  •       Client libraries for your favorite computer language.

It is suitable for testing complex AJAX-based web user. It is also an ideal solution for users of Selenium IDE who want to write tests in a more expressive programming language than the Selenese HTML table format.

Selenium IDE - Selenium IDE (Integrated Development Environment) is a rapid prototyping tool for building test scripts. It is a Firefox plugin and provides an easy-to-use interface for developing automated tests. Selenium IDE has a recording feature, which records user actions as they are performed and then exports them as a reusable script in one of many programming languages that can be later executed.

It is not designed to run your test passes nor is it designed to build all the automated tests you will need. It doesn’t provide iteration or conditional statements. It is recommended that for scalable & robust test automation use Selenium 2 or Selenium RC.

Selenium-Grid - Selenium-Grid facilitates to run test suites in multiple environments simultaneously. It allows executing tests in parallel, that is, same or different tests can be run at the same time on different remote machines. It benefits in following ways –

1.  Suppose there is a large test suite, or a slow-running test suite, you can boost its performance substantially by using Selenium Grid to divide your test suite to run different tests at the same time using different machines.
2.  Suppose requirement is to run test suite on multiple environments, you can have different remote machines supporting and running your tests in them at the same time.

License
QTP is a proprietary, licensed software and comes in following type of license -

1.  Seat License: It is a machine locked license. This license can be used only for a machine it was generated.
2.  Floating License: It can be used on any machine which has network access to the floating license server. At any point in time the machines using the QTP license cannot exceed maximum license count on the server.

Selenium is an open source tool that doesn’t cost anything. Anybody can download selenium library, plug-in  & start using it. There is no limitation on number of license use & usage time.

Object Spy
QTP Object Spy helps to view properties & supported method of an object in an open application. Selenium IDE object locator provides feature to view objects properties & method. Apart from this, an user can use add-in Firebug with Firefox and Chrome built in development tool bar to view object properties & test element locator.

Code Debug
QTP has built-in editor to debug code. Selenium does not have built-in code debugger. It provides plug-in with editors like Intellij, Eclipse, Visual Studio. User needs to learn these editors to perform code debug.

Exception Handling
QTP provides recovery scenario to handle exception during script execution. Selenium does not provide recovery scenario. User needs to write custom function to handle run-time exception.

Reporting
QTP generates nice test reports (html, XML, pdf etc) using built-in reporter object. Selenium does not have built-in reporting feature. It is dependent on framework like TestNG, Junit, SauceLab, Testing bot for test reporting.

Integration with Test Management Tool
QTP comes bundled with test management & source code control tool Quality Center. Selenium offers no test management tool. There are few options like xStudio, but user needs to explore.

Screenshot
It provides screenshot feature to take picture during test execution of exception & error. No screenshot feature in Selenium.

Resource Availability
It is quite easy to find engineers having expertise on QTP. Selenium resources are bit scarce.  
Ease of Use
QTP is very user friendly can be used by less code-savvy people, online help is easily available. Selenium requires good coders for writing and maintaining the tests.

Browser Support
QTP provides full support for IE; limited feature support for Firefox & Chrome (requires installing patch), Selenium supports almost all browsers, list is as follows -
  •         Firefox 2 to 17
  •         IE  7,8,9
  •         Safari 2,3,4
  •         Opera 8,9,10
  •         Google Chrome


O/S Support

QTP supports only Windows platform. Selenium supports Windows, Linux and Mac.

QTP Best Practices

HP Quick Test Professional is a test automation tool, also known as QTP. It is used to automate functional, regression & smoke test cases. It is a very popular tool and works on MS windows O/S, supports development technologies like Active X, Delphi, Java, .Net, Oracle, People Soft, web, Web services etc. This article discusses about best practices while doing automation using QTP.
  1.     Don’t use msgbox function, this function pauses the script execution & requires user intervention. This defeats the objective of unattended script execution. To store or display error message and execution log use QTP inbuilt Reporter object.
  2.       Follow coding guidelines like comments, variable & function name declaration.
  3.       Use option explicit to enforce variable declaration. Always define variables at the top of script & function file
  4.       Neither hard code test data nor read value using custom function like Inputbox. Use parameterization to enhance reusability of code. QTP provides inbuilt support for Microsoft excel files, store test data in excel file, import excel sheet in QTP DataTable, read value using “DataTable.value” function
  5.       In large tests, define reusable codes as function in external .vbs file. It consumes less memory than QTP Action.
  6.       QTP is a hardware hungry application, machine should be hardware rich.
  7.       Use synchronization (like exist, sync etc.) to mitigate timing issue between script & Application under test. Don’t use wait (10) statement. Don’t increase global synchronization time out value; it slows down QTP execution speed.  Ideal solution is implement synchronization at object level not at global level.
  8.       Create reusable function instead of reusable action; minimize number of actions in a test. Ideally, a test should not contain more than few actions. An action takes more time to load and run. Its limited use improves execution speed.
  9.       Be tactful in using QTP features like Descriptive Programming or Object Repository or mixed approach. Each approach has its own merit & demerit. Try to use mix of both.
  10. .   Don’t use inbuilt feature like “Save still image capture to results” and “Save movie to results”. These options decrease QTP run time performance. If required, use VB Script code to take screenshot of script failure.
  11.     User relative paths while calling library file, reusable action, data files. It makes script portable and easy to manage.
  12. .    Don’t overuse recovery scenario, recovery scenario slow down script execution time
  13. .   Do not load un-necessary Add-ins. When QTP starts, it shows list of add-in available, select only required add-in. This will improve performance while learning objects and during run sessions.
  14. .    Run your tests in "Fast mode. From the Run pane in the Options dialog box, select the Fast option. This enables QuickTest, run test faster.
  15.   .  Hide Active Screen. If you are not using the Active Screen while editing your test, hide the Active Screen while editing your test to improve editing response time.
  16.    Save the test results report to a temporary folder to overwrite the results from the previous run session every time you run a test.