Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger


Saturday 31 January 2009

Interview Questions on Java

What if the main method is declared as private?

The program compiles properly but at runtime it will give “Main method not public.” message.

What is meant by pass by reference and pass by value in Java?

Pass by reference means, passing the address itself rather than passing the value. Pass by value means passing a copy of the value.

If you’re overriding the method equals() of an object, which other method you might also consider?

hashCode()

What is Byte Code?

Or

What gives java it’s “write once and run anywhere” nature?

All Java programs are compiled into class files that contain bytecodes. These byte codes can be run in any platform and hence java is said to be platform independent.

Expain the reason for each keyword of public static void main(String args[])?

public- main(..) is the first method called by java environment when a program is executed so it has to accessible from java environment. Hence the access specifier has to be public.

static: Java environment should be able to call this method without creating an instance of the class , so this method must be declared as static.

void: main does not return anything so the return type must be void

The argument String indicates the argument type which is given at the command line and arg is an array for string given during command line.

What are the differences between == and .equals() ?

Or

what is difference between == and equals

Or

Difference between == and equals method

Or

What would you use to compare two String variables - the operator == or the method equals()?

Or

How is it possible for two String objects with identical values not to be equal under the == operator?

The == operator compares two objects to determine if they are the same object in memory i.e. present in the same memory location. It is possible for two String objects to have the same value, but located in different areas of memory.

== compares references while .equals compares contents. The method public boolean equals(Object obj) is provided by the Object class and can be overridden. The default implementation returns true only if the object is compared with itself, which is equivalent to the equality operator == being used to compare aliases to the object. String, BitSet, Date, and File override the equals() method. For two String objects, value equality means that they contain the same character sequence. For the Wrapper classes, value equality means that the primitive values are equal.

public class EqualsTest {

public static void main(String[] args) {

String s1 = “abc”;
String s2 = s1;
String s5 = “abc”;
String s3 = new String(”abc”);
String s4 = new String(”abc”);
System.out.println(”== comparison : ” + (s1 == s5));
System.out.println(”== comparison : ” + (s1 == s2));
System.out.println(”Using equals method : ” + s1.equals(s2));
System.out.println(”== comparison : ” + s3 == s4);
System.out.println(”Using equals method : ” + s3.equals(s4));
}
}

Output
== comparison : true
== comparison : true
Using equals method : true
false
Using equals method : true

What if the static modifier is removed from the signature of the main method?

Or

What if I do not provide the String array as the argument to the method?

Program compiles. But at runtime throws an error “NoSuchMethodError”.

Why oracle Type 4 driver is named as oracle thin driver?

Oracle provides a Type 4 JDBC driver, referred to as the Oracle “thin” driver. This driver includes its own implementation of a TCP/IP version of Oracle’s Net8 written entirely in Java, so it is platform independent, can be downloaded to a browser at runtime, and does not require any Oracle software on the client side. This driver requires a TCP/IP listener on the server side, and the client connection string uses the TCP/IP port address, not the TNSNAMES entry for the database name.

What is the difference between final, finally and finalize? What do you understand by the java final keyword?

Or

What is final, finalize() and finally?

Or

What is finalize() method?

Or

What is the difference between final, finally and finalize?

Or

What does it mean that a class or member is final?

o final - declare constant
o finally - handles exception
o finalize - helps in garbage collection

Variables defined in an interface are implicitly final. A final class can’t be extended i.e., final class may not be subclassed. This is done for security reasons with basic classes like String and Integer. It also allows the compiler to make some optimizations, and makes thread safety a little easier to achieve. A final method can’t be overridden when its class is inherited. You can’t change value of a final variable (is a constant). finalize() method is used just before an object is destroyed and garbage collected. finally, a key word used in exception handling and will be executed whether or not an exception is thrown. For example, closing of open connections is done in the finally method.

What is the Java API?

The Java API is a large collection of ready-made software components that provide many useful capabilities, such as graphical user interface (GUI) widgets.

What is the GregorianCalendar class?

The GregorianCalendar provides support for traditional Western calendars.

What is the ResourceBundle class?

The ResourceBundle class is used to store locale-specific resources that can be loaded by a program to tailor the program’s appearance to the particular locale in which it is being run.

Why there are no global variables in Java?

Global variables are globally accessible. Java does not support globally accessible variables due to following reasons:

* The global variables breaks the referential transparency
* Global variables creates collisions in namespace.

How to convert String to Number in java program?

The valueOf() function of Integer class is is used to convert string to Number. Here is the code example:
String numString = “1000″;
int id=Integer.valueOf(numString).intValue();

What is the SimpleTimeZone class?

The SimpleTimeZone class provides support for a Gregorian calendar.

What is the difference between a while statement and a do statement?

A while statement (pre test) checks at the beginning of a loop to see whether the next loop iteration should occur. A do while statement (post test) checks at the end of a loop to see whether the next iteration of a loop should occur. The do statement will always execute the loop body at least once.

What is the Locale class?

The Locale class is used to tailor a program output to the conventions of a particular geographic, political, or cultural region.

Describe the principles of OOPS.

There are three main principals of oops which are called Polymorphism, Inheritance and Encapsulation.

Explain the Inheritance principle.

Inheritance is the process by which one object acquires the properties of another object. Inheritance allows well-tested procedures to be reused and enables changes to make once and have effect in all relevant places

What is implicit casting?

Implicit casting is the process of simply assigning one entity to another without any transformation guidance to the compiler. This type of casting is not permitted in all kinds of transformations and may not work for all scenarios.

Example

int i = 1000;

long j = i; //Implicit casting

Is sizeof a keyword in java?

The sizeof operator is not a keyword.

What is a native method?

A native method is a method that is implemented in a language other than Java.

In System.out.println(), what is System, out and println?

System is a predefined final class, out is a PrintStream object and println is a built-in overloaded method in the out object.

What are Encapsulation, Inheritance and Polymorphism

Or

Explain the Polymorphism principle. Explain the different forms of Polymorphism.

Polymorphism in simple terms means one name many forms. Polymorphism enables one entity to be used as a general category for different types of actions. The specific action is determined by the exact nature of the situation.

Polymorphism exists in three distinct forms in Java:
• Method overloading
• Method overriding through inheritance
• Method overriding through the Java interface

What is explicit casting?

Explicit casting in the process in which the complier are specifically informed to about transforming the object.

Example

long i = 700.20;

int j = (int) i; //Explicit casting

What is the Java Virtual Machine (JVM)?

The Java Virtual Machine is software that can be ported onto various hardware-based platforms

What do you understand by downcasting?

The process of Downcasting refers to the casting from a general to a more specific type, i.e. casting down the hierarchy

What are Java Access Specifiers?

Or

What is the difference between public, private, protected and default Access Specifiers?

Or

What are different types of access modifiers?

Access specifiers are keywords that determine the type of access to the member of a class. These keywords are for allowing
privileges to parts of a program such as functions and variables. These are:
• Public : accessible to all classes
• Protected : accessible to the classes within the same package and any subclasses.
• Private : accessible only to the class to which they belong
• Default : accessible to the class to which they belong and to subclasses within the same package

Which class is the superclass of every class?

Object.

Name primitive Java types.

The 8 primitive types are byte, char, short, int, long, float, double, and boolean.

What is the difference between static and non-static variables?

Or

What are class variables?

Or

What is static in java?

Or

What is a static method?

A static variable is associated with the class as a whole rather than with specific instances of a class. Each object will share a common copy of the static variables i.e. there is only one copy per class, no matter how many objects are created from it. Class variables or static variables are declared with the static keyword in a class. These are declared outside a class and stored in static memory. Class variables are mostly used for constants. Static variables are always called by the class name. This variable is created when the program starts and gets destroyed when the programs stops. The scope of the class variable is same an instance variable. Its initial value is same as instance variable and gets a default value when its not initialized corresponding to the data type. Similarly, a static method is a method that belongs to the class rather than any object of the class and doesn’t apply to an object or even require that any objects of the class have been instantiated.
Static methods are implicitly final, because overriding is done based on the type of the object, and static methods are attached to a class, not an object. A static method in a superclass can be shadowed by another static method in a subclass, as long as the original method was not declared final. However, you can’t override a static method with a non-static method. In other words, you can’t change a static method into an instance method in a subclass.

Non-static variables take on unique values with each object instance.

What is the difference between the boolean & operator and the && operator?

If an expression involving the boolean & operator is evaluated, both operands are evaluated, whereas the && operator is a short cut operator. When an expression involving the && operator is evaluated, the first operand is evaluated. If the first operand returns a value of true then the second operand is evaluated. If the first operand evaluates to false, the evaluation of the second operand is skipped.

How does Java handle integer overflows and underflows?

It uses those low order bytes of the result that can fit into the size of the type allowed by the operation.

What if I write static public void instead of public static void?

Program compiles and runs properly.

What is the difference between declaring a variable and defining a variable?

In declaration we only mention the type of the variable and its name without initializing it. Defining means declaration + initialization. E.g. String s; is just a declaration while String s = new String (”bob”); Or String s = “bob”; are both definitions.

What type of parameter passing does Java support?

In Java the arguments (primitives and objects) are always passed by value. With objects, the object reference itself is passed by value and so both the original reference and parameter copy both refer to the same object.

Explain the Encapsulation principle.

Encapsulation is a process of binding or wrapping the data and the codes that operates on the data into a single entity. This keeps the data safe from outside interface and misuse. Objects allow procedures to be encapsulated with their data to reduce potential interference. One way to think about encapsulation is as a protective wrapper that prevents code and data from being arbitrarily accessed by other code defined outside the wrapper.

What do you understand by a variable?

Variable is a named memory location that can be easily referred in the program. The variable is used to hold the data and it can be changed during the course of the execution of the program.

What do you understand by numeric promotion?

The Numeric promotion is the conversion of a smaller numeric type to a larger numeric type, so that integral and floating-point operations may take place. In the numerical promotion process the byte, char, and short values are converted to int values. The int values are also converted to long values, if necessary. The long and float values are converted to double values, as required.

What do you understand by casting in java language? What are the types of casting?

The process of converting one data type to another is called Casting. There are two types of casting in Java; these are implicit casting and explicit casting.

What is the first argument of the String array in main method?

The String array is empty. It does not have any element. This is unlike C/C++ where the first element by default is the program name. If we do not provide any arguments on the command line, then the String array of main method will be empty but not null.

How can one prove that the array is not null but empty?

Print array.length. It will print 0. That means it is empty. But if it would have been null then it would have thrown a NullPointerException on attempting to print array.length.

Can an application have multiple classes having main method?

Yes. While starting the application we mention the class name to be run. The JVM will look for the main method only in the class whose name you have mentioned. Hence there is not conflict amongst the multiple classes having main method.

When is static variable loaded? Is it at compile time or runtime? When exactly a static block is loaded in Java?

Static variable are loaded when classloader brings the class to the JVM. It is not necessary that an object has to be created. Static variables will be allocated memory space when they have been loaded. The code in a static block is loaded/executed only once i.e. when the class is first initialized. A class can have any number of static blocks. Static block is not member of a class, they do not have a return statement and they cannot be called directly. Cannot contain this or super. They are primarily used to initialize static fields.

Can I have multiple main methods in the same class?

We can have multiple overloaded main methods but there can be only one main method with the following signature :

public static void main(String[] args) {}

No the program fails to compile. The compiler says that the main method is already defined in the class.

Explain working of Java Virtual Machine (JVM)?

JVM is an abstract computing machine like any other real computing machine which first converts .java file into .class file by using Compiler (.class is nothing but byte code file.) and Interpreter reads byte codes.

How can I swap two variables without using a third variable?

Add two variables and assign the value into First variable. Subtract the Second value with the result Value. and assign to Second variable. Subtract the Result of First Variable With Result of Second Variable and Assign to First Variable. Example:

int a=5,b=10;a=a+b; b=a-b; a=a-b;

An other approach to the same question

You use an XOR swap.

for example:

int a = 5; int b = 10;
a = a ^ b;
b = a ^ b;
a = a ^ b;

What is data encapsulation?

Encapsulation may be used by creating ‘get’ and ’set’ methods in a class (JAVABEAN) which are used to access the fields of the object. Typically the fields are made private while the get and set methods are public. Encapsulation can be used to validate the data that is to be stored, to do calculations on data that is stored in a field or fields, or for use in introspection (often the case when using javabeans in Struts, for instance). Wrapping of data and function into a single unit is called as data encapsulation. Encapsulation is nothing but wrapping up the data and associated methods into a single unit in such a way that data can be accessed with the help of associated methods. Encapsulation provides data security. It is nothing but data hiding.

What is reflection API? How are they implemented?

Reflection is the process of introspecting the features and state of a class at runtime and dynamically manipulate at run time. This is supported using Reflection API with built-in classes like Class, Method, Fields, Constructors etc. Example: Using Java Reflection API we can get the class name, by using the getName method.

Does JVM maintain a cache by itself? Does the JVM allocate objects in heap? Is this the OS heap or the heap maintained by the JVM? Why

Yes, the JVM maintains a cache by itself. It creates the Objects on the HEAP, but references to those objects are on the STACK.

What is phantom memory?

Phantom memory is false memory. Memory that does not exist in reality.

Can a method be static and synchronized?

A static method can be synchronized. If you do so, the JVM will obtain a lock on the java.lang.
Class instance associated with the object. It is similar to saying:

synchronized(XYZ.class) {

}

What is difference between String and StringTokenizer?

A StringTokenizer is utility class used to break up string.

Example:

StringTokenizer st = new StringTokenizer(”Hello World”);

while (st.hasMoreTokens()) {

System.out.println(st.nextToken());

}

Output:

Hello

World

Thursday 29 January 2009

10 COMMON INTERVIEW Q&A

1. Tell me about yourself:
The most often asked question in interviews. You need to have a short
statement prepared in your mind. Be careful that it does not sound
rehearsed. Limit it to work-related items unless instructed otherwise.
Talk about things you have done and jobs you have held that relate to
the position you are interviewing for. Start with the item farthest
back and work up to the present.

2. Why did you leave your last job?
Stay positive regardless of the circumstances. Never refer to a major
problem with management and never speak ill of supervisors, co-workers
or the organization. If you do, you will be the one looking bad. Keep
smiling and talk about leaving for a positive reason such as an
opportunity, a chance to do something special or other forward-looking
reasons.

3. What experience do you have in this field?
Speak about specifics that relate to the position you are applying for.
If you do not have specific experience, get as close as you can.

4. Do you consider yourself successful?
You should always answer yes and briefly explain why. A good
explanation is that you have set goals, and you have met some and are
on track to achieve the others.

5. What do co-workers say about you?
Be prepared with a quote or two from co-workers. Either a specific
statement or a paraphrase will work. Jill Clark, a co-worker at Smith
Company, always said I was the hardest workers she had ever known. It
is as powerful as Jill having said it at the interview herself.

6. What do you know about this organization?
This question is one reason to do some research on the organization
before the interview. Find out where they have been and where they are
going. What are the current issues and who are the major players?

7. What have you done to improve your knowledge in the last year?
Try to include improvement activities that relate to the job. A wide
variety of activities can be mentioned as positive self-improvement.
Have some good ones handy to mention.

8. Are you applying for other jobs?
Be honest but do not spend a lot of time in this area. Keep the focus
on this job and what you can do for this organization. Anything else is
a distraction.

9. Why do you want to work for this organization?
This may take some thought and certainly, should be based on the
research you have done on the organization. Sincerity is extremely
important here and will easily be sensed. Relate it to your long-term
career goals.

10. Do you know anyone who works for us?
Be aware of the policy on relatives working for the organization. This
can affect your answer even though they asked about friends not
relatives. Be careful to mention a friend only if they are well thought
of.

Monday 19 January 2009

C# Interview Questions

  1. What’s the implicit name of the parameter that gets passed into the class’ set method? Value, and its datatype depends on whatever variable we’re changing.
  2. How do you inherit from a class in C#? Place a colon and then the name of the base class. Notice that it’s double colon in C++.
  3. Does C# support multiple inheritance? No, use interfaces instead.
  4. When you inherit a protected class-level variable, who is it available to? Classes in the same namespace.
  5. Are private class-level variables inherited? Yes, but they are not accessible, so looking at it you can honestly say that they are not inherited. But they are.
  6. Describe the accessibility modifier protected internal. It’s available to derived classes and classes within the same Assembly (and naturally from the base class it’s declared in).
  7. C# provides a default constructor for me. I write a constructor that takes a string as a parameter, but want to keep the no parameter one. How many constructors should I write? Two. Once you write at least one constructor, C# cancels the freebie constructor, and now you have to write one yourself, even if there’s no implementation in it.
  8. What’s the top .NET class that everything is derived from? System.Object.
  9. How’s method overriding different from overloading? When overriding, you change the method behavior for a derived class. Overloading simply involves having a method with the same name within the class.
  10. What does the keyword virtual mean in the method definition? The method can be over-ridden.
  11. Can you declare the override method static while the original method is non-static? No, you can’t, the signature of the virtual method must remain the same, only the keyword virtual is changed to keyword override.
  12. Can you override private virtual methods? No, moreover, you cannot access private methods in inherited classes, have to be protected in the base class to allow any sort of access.
  13. Can you prevent your class from being inherited and becoming a base class for some other classes? Yes, that’s what keyword sealed in the class definition is for. The developer trying to derive from your class will get a message: cannot inherit from Sealed class WhateverBaseClassName. It’s the same concept as final class in Java.
  14. Can you allow class to be inherited, but prevent the method from being over-ridden? Yes, just leave the class public and make the method sealed.
  15. What’s an abstract class? A class that cannot be instantiated. A concept in C++ known as pure virtual method. A class that must be inherited and have the methods over-ridden. Essentially, it’s a blueprint for a class without any implementation.
  16. When do you absolutely have to declare a class as abstract (as opposed to free-willed educated choice or decision based on UML diagram)? When at least one of the methods in the class is abstract. When the class itself is inherited from an abstract class, but not all base abstract methods have been over-ridden.
  17. What’s an interface class? It’s an abstract class with public abstract methods all of which must be implemented in the inherited classes.
  18. Why can’t you specify the accessibility modifier for methods inside the interface? They all must be public. Therefore, to prevent you from getting the false impression that you have any freedom of choice, you are not allowed to specify any accessibility, it’s public by default.
  19. Can you inherit multiple interfaces? Yes, why not.
  20. And if they have conflicting method names? It’s up to you to implement the method inside your own class, so implementation is left entirely up to you. This might cause a problem on a higher-level scale if similarly named methods from different interfaces expect different data, but as far as compiler cares you’re okay.
  21. What’s the difference between an interface and abstract class? In the interface all methods must be abstract; in the abstract class some methods can be concrete. In the interface no accessibility modifiers are allowed, which is ok in abstract classes.
  22. How can you overload a method? Different parameter data types, different number of parameters, different order of parameters.
  23. If a base class has a bunch of overloaded constructors, and an inherited class has another bunch of overloaded constructors, can you enforce a call from an inherited constructor to an arbitrary base constructor? Yes, just place a colon, and then keyword base (parameter list to invoke the appropriate constructor) in the overloaded constructor definition inside the inherited class.
  24. What’s the difference between System.String and System.StringBuilder classes? System.String is immutable; System.StringBuilder was designed with the purpose of having a mutable string where a variety of operations can be performed.
  25. What’s the advantage of using System.Text.StringBuilder over System.String? StringBuilder is more efficient in the cases, where a lot of manipulation is done to the text. Strings are immutable, so each time it’s being operated on, a new instance is created.
  26. Can you store multiple data types in System.Array? No.
  27. What’s the difference between the System.Array.CopyTo() and System.Array.Clone()? The first one performs a deep copy of the array, the second one is shallow.
  28. How can you sort the elements of the array in descending order? By calling Sort() and then Reverse() methods.
  29. What’s the .NET datatype that allows the retrieval of data by a unique key? HashTable.
  30. What’s class SortedList underneath? A sorted HashTable.
  31. Will finally block get executed if the exception had not occurred? Yes.
  32. What’s the C# equivalent of C++ catch (…), which was a catch-all statement for any possible exception? A catch block that catches the exception of type System.Exception. You can also omit the parameter data type in this case and just write catch {}.
  33. Can multiple catch blocks be executed? No, once the proper catch code fires off, the control is transferred to the finally block (if there are any), and then whatever follows the finally block.
  34. Why is it a bad idea to throw your own exceptions? Well, if at that point you know that an error has occurred, then why not write the proper code to handle that error instead of passing a new Exception object to the catch block? Throwing your own exceptions signifies some design flaws in the project.
  35. What’s a delegate? A delegate object encapsulates a reference to a method. In C++ they were referred to as function pointers.
  36. What’s a multicast delegate? It’s a delegate that points to and eventually fires off several methods.
  37. How’s the DLL Hell problem solved in .NET? Assembly versioning allows the application to specify not only the library it needs to run (which was available under Win32), but also the version of the assembly.
  38. What are the ways to deploy an assembly? An MSI installer, a CAB archive, and XCOPY command.
  39. What’s a satellite assembly? When you write a multilingual or multi-cultural application in .NET, and want to distribute the core application separately from the localized modules, the localized assemblies that modify the core application are called satellite assemblies.
  40. What namespaces are necessary to create a localized application? System.Globalization, System.Resources.
  41. What’s the difference between // comments, /* */ comments and /// comments? Single-line, multi-line and XML documentation comments.
  42. How do you generate documentation from the C# file commented properly with a command-line compiler? Compile it with a /doc switch.
  43. What’s the difference between and XML documentation tag? Single line code example and multiple-line code example.
  44. Is XML case-sensitive? Yes, so and are different elements.
  45. What debugging tools come with the .NET SDK? CorDBG – command-line debugger, and DbgCLR – graphic debugger. Visual Studio .NET uses the DbgCLR. To use CorDbg, you must compile the original C# file using the /debug switch.
  46. What does the This window show in the debugger? It points to the object that’s pointed to by this reference. Object’s instance data is shown.
  47. What does assert() do? In debug compilation, assert takes in a Boolean condition as a parameter, and shows the error dialog if the condition is false. The program proceeds without any interruption if the condition is true.
  48. What’s the difference between the Debug class and Trace class? Documentation looks the same. Use Debug class for debug builds, use Trace class for both debug and release builds.
  49. Why are there five tracing levels in System.Diagnostics.TraceSwitcher? The tracing dumps can be quite verbose and for some applications that are constantly running you run the risk of overloading the machine and the hard drive there. Five levels range from None to Verbose, allowing to fine-tune the tracing activities.
  50. Where is the output of TextWriterTraceListener redirected? To the Console or a text file depending on the parameter passed to the constructor.
  51. How do you debug an ASP.NET Web application? Attach the aspnet_wp.exe process to the DbgClr debugger.
  52. What are three test cases you should go through in unit testing? Positive test cases (correct data, correct output), negative test cases (broken or missing data, proper handling), exception test cases (exceptions are thrown and caught properly).
  53. Can you change the value of a variable while debugging a C# application? Yes, if you are debugging via Visual Studio.NET, just go to Immediate window.
  54. Explain the three services model (three-tier application). Presentation (UI), business (logic and underlying code) and data (from storage or other sources).
  55. What are advantages and disadvantages of Microsoft-provided data provider classes in ADO.NET? SQLServer.NET data provider is high-speed and robust, but requires SQL Server license purchased from Microsoft. OLE-DB.NET is universal for accessing other sources, like Oracle, DB2, Microsoft Access and Informix, but it’s a .NET layer on top of OLE layer, so not the fastest thing in the world. ODBC.NET is a deprecated layer provided for backward compatibility to ODBC engines.
  56. What’s the role of the DataReader class in ADO.NET connections? It returns a read-only dataset from the data source when the command is executed.
  57. What is the wildcard character in SQL? Let’s say you want to query database with LIKE for all employees whose name starts with La. The wildcard character is %, the proper query with LIKE would involve ‘La%’.
  58. Explain ACID rule of thumb for transactions. Transaction must be Atomic (it is one unit of work and does not dependent on previous and following transactions), Consistent (data is either committed or roll back, no “in-between” case where something has been updated and something hasn’t), Isolated (no transaction sees the intermediate results of the current transaction), Durable (the values persist if the data had been committed even if the system crashes right after).
  59. What connections does Microsoft SQL Server support? Windows Authentication (via Active Directory) and SQL Server authentication (via Microsoft SQL Server username and passwords).
  60. Which one is trusted and which one is untrusted? Windows Authentication is trusted because the username and password are checked with the Active Directory, the SQL Server authentication is untrusted, since SQL Server is the only verifier participating in the transaction.
  61. Why would you use untrusted verificaion? Web Services might use it, as well as non-Windows applications.
  62. What does the parameter Initial Catalog define inside Connection String? The database name to connect to.
  63. What’s the data provider name to connect to Access database? Microsoft.Access.
  64. What does Dispose method do with the connection object? Deletes it from the memory.
  65. What is a pre-requisite for connection pooling? Multiple processes must agree that they will share the same connection, where every parameter is the same, including the security settings.

Friday 16 January 2009

WinRunner Interview Questions With Answers

  1. Explain Get Text checkpoint web text checkpoint with syntax? - a) We use web_obj_text_exists function for web text checkpoints.
    web_obj_text_exists ( object, table_row, table_column, text_to_find [, text_before, text_after] );
    a. object The logical name of the object to search.
    b. table_row If the object is a table, it specifies the location of the row within a table. The string is preceded by the character #.
    c. table_column If the object is a table, it specifies the location of the column within a table. The string is preceded by the character #.
    d. text_to_find The string that is searched for.
    e. text_before Defines the start of the search area for a particular text string.
    f. text_after Defines the end of the search area for a particular text string.
  2. Which TSL functions you will use for - a) Searching text on the window
    i. find_text ( string, out_coord_array, search_area [, string_def ] );
    string The string that is searched for. The string must be complete, contain no spaces, and it must be preceded and followed by a space outside the quotation marks. To specify a literal, case-sensitive string, enclose the string in quotation marks. Alternatively, you can specify the name of a string variable. In this case, the string variable can include a regular expression.
    out_coord_array The name of the array that stores the screen coordinates of the text (see explanation below).
    search_area The area to search, specified as coordinates x1,y1,x2,y2. These define any two diagonal corners of a rectangle. The interpreter searches for the text in the area defined by the rectangle.
    string_def Defines the type of search to perform. If no value is specified, (0 or FALSE, the default), the search is for a single complete word only. When 1, or TRUE, is specified, the search is not restricted to a single, complete word.
    b) getting the location of the text string
    i. win_find_text ( window, string, result_array [, search_area [, string_def ] ] );
    window The logical name of the window to search.
    string The text to locate. To specify a literal, case sensitive string, enclose the string in quotation marks. Alternatively, you can specify the name of a string variable. The value of the string variable can include a regular expression. The regular expression should not include an exclamation mark (!), however, which is treated as a literal character. For more information regarding Regular Expressions, refer to the “Using Regular Expressions” chapter in your User’s Guide.
    result_array The name of the output variable that stores the location of the string as a four-element array.
    search_area The region of the object to search, relative to the window. This area is defined as a pair of coordinates, with x1,y1,x2,y2 specifying any two diagonally opposite corners of the rectangular search region. If this parameter is not defined, then the entire window is considered the search area.
    string_def Defines how the text search is performed. If no string_def is specified, (0 or FALSE, the default parameter), the interpreter searches for a complete word only. If 1, or TRUE, is specified, the search is not restricted to a single, complete word.
    c) Moving the pointer to that text string
    i. win_move_locator_text (window, string [ ,search_area [ ,string_def ] ] );
    window The logical name of the window.
    string The text to locate. To specify a literal, case sensitive string, enclose the string in quotation marks. Alternatively, you can specify the name of a string variable. The value of the string variable can include a regular expression (the regular expression need not begin with an exclamation mark).
    search_area The region of the object to search, relative to the window. This area is defined as a pair of coordinates, with x1, y1, x2, y2 specifying any two diagonally opposite corners of the rectangular search region. If this parameter is not defined, then the entire window specified is considered the search area.
    string_def Defines how the text search is performed. If no string_def is specified, (0 or FALSE, the default parameter), the interpreter searches for a complete word only. If 1, or TRUE, is specified, the search is not restricted to a single, complete word.
    d) Comparing the text
    i. compare_text (str1, str2 [, chars1, chars2]);
    str1, str2 The two strings to be compared.
    chars1 One or more characters in the first string.
    chars2 One or more characters in the second string. These characters are substituted for those in chars1.
  3. What are the steps of creating a data driven test? - a) The steps involved in data driven testing are:
    i. Creating a test
    ii. Converting to a data-driven test and preparing a database
    iii. Running the test
    iv. Analyzing the test results.
  4. Record a data driven test script using data driver wizard? - a) You can use the DataDriver Wizard to convert your entire script or a part of your script into a data-driven test. For example, your test script may include recorded operations, checkpoints, and other statements that do not need to be repeated for multiple sets of data. You need to parameterize only the portion of your test script that you want to run in a loop with multiple sets of data.
    To create a data-driven test:
    i. If you want to turn only part of your test script into a data-driven test, first select those lines in the test script.
    ii. Choose Tools > DataDriver Wizard.
    iii. If you want to turn only part of the test into a data-driven test, click Cancel. Select those lines in the test script and reopen the DataDriver Wizard. If you want to turn the entire test into a data-driven test, click Next.
    iv. The Use a new or existing Excel table box displays the name of the Excel file that WinRunner creates, which stores the data for the data-driven test. Accept the default data table for this test, enter a different name for the data table, or use
    v. The browse button to locate the path of an existing data table. By default, the data table is stored in the test folder.
    vi. In the Assign a name to the variable box, enter a variable name with which to refer to the data table, or accept the default name, “table.”

    vii. At the beginning of a data-driven test, the Excel data table you selected is assigned as the value of the table variable. Throughout the script, only the table variable name is used. This makes it easy for you to assign a different data table
    viii. To the script at a later time without making changes throughout the script.
    ix. Choose from among the following options:

  5. Add statements to create a data-driven test: Automatically adds statements to run your test in a loop: sets a variable name by which to refer to the data table; adds braces ({and}), a for statement, and a ddt_get_row_count statement to your test script selection to run it in a loop while it reads from the data table; adds ddt_open and ddt_close statements -
  6. To your test script to open and close the data table, which are necessary in order to iterate rows in the table. Note that you can also add these statements to your test script manually. -
  7. If you do not choose this option, you will receive a warning that your data-driven test must contain a loop and statements to open and close your datatable. -
  8. Import data from a database: Imports data from a database. This option adds ddt_update_from_db, and ddt_save statements to your test script after the ddt_open statement. -
  9. Note that in order to import data from a database, either Microsoft Query or Data Junction must be installed on your machine. You can install Microsoft Query from the custom installation of Microsoft Office. Note that Data Junction is not automatically included in your WinRunner package. To purchase Data Junction, contact your Mercury Interactive representative. For detailed information on working with Data Junction, refer to the documentation in the Data Junction package. -
  10. Parameterize the test: Replaces fixed values in selected checkpoints and in recorded statements with parameters, using the ddt_val function, and in the data table, adds columns with variable values for the parameters. Line by line: Opens a wizard screen for each line of the selected test script, which enables you to decide whether to parameterize a particular line, and if so, whether to add a new column to the data table or use an existing column when parameterizing data. -
  11. Automatically: Replaces all data with ddt_val statements and adds new columns to the data table. The first argument of the function is the name of the column in the data table. The replaced data is inserted into the table. - x. The Test script line to parameterize box displays the line of the test script to parameterize. The highlighted value can be replaced by a parameter. The Argument to be replaced box displays the argument (value) that you can replace with a parameter. You can use the arrows to select a different argument to replace.
    Choose whether and how to replace the selected data:
  12. Do not replace this data: Does not parameterize this data. -
  13. An existing column: If parameters already exist in the data table for this test, select an existing parameter from the list. -
  14. A new column: Creates a new column for this parameter in the data table for this test. Adds the selected data to this column of the data table. The default name for the new parameter is the logical name of the object in the selected. TSL statement above. Accept this name or assign a new name. - xi. The final screen of the wizard opens.
  15. If you want the data table to open after you close the wizard, select Show data table now. -
  16. To perform the tasks specified in previous screens and close the wizard, click Finish. -
  17. To close the wizard without making any changes to the test script, click Cancel. -
  18. What are the three modes of running the scripts? - a) WinRunner provides three modes in which to run tests—Verify, Debug, and Update. You use each mode during a different phase of the testing process.
    i. Verify
  19. Use the Verify mode to check your application. - ii. Debug
  20. Use the Debug mode to help you identify bugs in a test script. - iii. Update
  21. Use the Update mode to update the expected results of a test or to create a new expected results folder. -
  22. Explain the following TSL functions: - a) Ddt_open
    Creates or opens a datatable file so that WinRunner can access it.
    Syntax: ddt_open ( data_table_name, mode );
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters. This row is labeled row 0.
    mode The mode for opening the data table: DDT_MODE_READ (read-only) or DDT_MODE_READWRITE (read or write).
    b) Ddt_save
    Saves the information into a data file.
    Syntax: dt_save (data_table_name);
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table.
    c) Ddt_close
    Closes a data table file
    Syntax: ddt_close ( data_table_name );
    data_table_name The name of the data table. The data table is a Microsoft Excel file or a tabbed text file. The first row in the file contains the names of the parameters.
    d) Ddt_export
    Exports the information of one data table file into a different data table file.
    Syntax: ddt_export (data_table_namename1, data_table_namename2);
    data_table_namename1 The source data table filename.
    data_table_namename2 The destination data table filename.
    e) Ddt_show
    Shows or hides the table editor of a specified data table.
    Syntax: ddt_show (data_table_name [, show_flag]);
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table.
    show_flag The value indicating whether the editor should be shown (default=1) or hidden (0).
    f) Ddt_get_row_count
    Retrieves the no. of rows in a data tables
    Syntax: ddt_get_row_count (data_table_name, out_rows_count);
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters.
    out_rows_count The output variable that stores the total number of rows in the data table.
    g) ddt_next_row
    Changes the active row in a database to the next row
    Syntax: ddt_next_row (data_table_name);
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters.
    h) ddt_set_row
    Sets the active row in a data table.
    Syntax: ddt_set_row (data_table_name, row);
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters. This row is labeled row 0.
    row The new active row in the data table.
    i) ddt_set_val
    Sets a value in the current row of the data table
    Syntax: ddt_set_val (data_table_name, parameter, value);
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters. This row is labeled row 0.
    parameter The name of the column into which the value will be inserted.
    value The value to be written into the table.
    j) ddt_set_val_by_row
    Sets a value in a specified row of the data table.
    Syntax: ddt_set_val_by_row (data_table_name, row, parameter, value);
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters. This row is labeled row 0.
    row The row number in the table. It can be any existing row or the current row number plus 1, which will add a new row to the data table.
    parameter The name of the column into which the value will be inserted.
    value The value to be written into the table.
    k) ddt_get_current_row
    Retrieves the active row of a data table.
    Syntax: ddt_get_current_row ( data_table_name, out_row );
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters. This row is labeled row 0.
    out_row The output variable that stores the active row in the data table.
    l) ddt_is_parameter
    Returns whether a parameter in a datatable is valid
    Syntax: ddt_is_parameter (data_table_name, parameter);
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters.
    parameter The parameter name to check in the data table.
    m) ddt_get_parameters
    Returns a list of all parameters in a data table.
    Syntax: ddt_get_parameters ( table, params_list, params_num );
    table The pathname of the data table.
    params_list This out parameter returns the list of all parameters in the data table, separated by tabs.
    params_num This out parameter returns the number of parameters in params_list.
    n) ddt_val
    Returns the value of a parameter in the active roe in a data table.
    Syntax: ddt_val (data_table_name, parameter);
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters.
    parameter The name of the parameter in the data table.
    o) ddt_val_by_row
    Returns the value of a parameter in the specified row in a data table.
    Syntax: ddt_val_by_row ( data_table_name, row_number, parameter );
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters. This row is labeled row 0.
    row_number The number of the row in the data table.
    parameter The name of the parameter in the data table.
    p) ddt_report_row
    Reports the active row in a data table to the test results
    Syntax: ddt_report_row (data_table_name);
    data_table_name The name of the data table. The name may be the table variable name, the Microsoft Excel file or a tabbed text file name, or the full path and file name of the table. The first row in the file contains the names of the parameters. This row is labeled row 0.
    q) ddt_update_from_db
    imports data from a database into a data table. It is inserted into your test script when you select the Import data from a database option in the DataDriver Wizard. When you run your test, this function updates the data table with data from the database.
  23. How do you handle unexpected events and errors? - a) WinRunner uses exception handling to detect an unexpected event when it occurs and act to recover the test run.
    Define Exception Handling
    Define Exception
    Define Handler Function
    WinRunner enables you to handle the following types of exceptions:
    Pop-up exceptions: Instruct WinRunner to detect and handle the appearance of a specific window.
    TSL exceptions: Instruct WinRunner to detect and handle TSL functions that return a specific error code.
    Object exceptions: Instruct WinRunner to detect and handle a change in a property for a specific GUI object.
    Web exceptions: When the WebTest add-in is loaded, you can instruct WinRunner to handle unexpected events and errors that occur in your Web site during a test run.
  24. How do you handle pop-up exceptions? - a) A pop-up exception Handler handles the pop-up messages that come up during the execution of the script in the AUT. TO handle this type of exception we make WinRunner learn the window and also specify a handler to the exception. It could be
    i. Default actions: WinRunner clicks the OK or Cancel button in the pop-up window, or presses Enter on the keyboard. To select a default handler, click the appropriate button in the dialog box.
    ii. User-defined handler: If you prefer, specify the name of your own handler. Click User Defined Function Name and type in a name in the User Defined Function Name box.
  25. How do you handle TSL exceptions? - a) A TSL exception enables you to detect and respond to a specific error code returned during test execution.
    b) Suppose you are running a batch test on an unstable version of your application. If your application crashes, you want WinRunner to recover test execution. A TSL exception can instruct WinRunner to recover test execution by exiting the current test, restarting the application, and continuing with the next test in the batch.
    c) The handler function is responsible for recovering test execution. When WinRunner detects a specific error code, it calls the handler function. You implement this function to respond to the unexpected error in the way that meets your specific testing needs.
    d) Once you have defined the exception, WinRunner activates handling and adds the exception to the list of default TSL exceptions in the Exceptions dialog box. Default TSL exceptions are defined by the XR_EXCP_TSL configuration parameter in the wrun.ini configuration file.
  26. How do you handle object exceptions? - a) During testing, unexpected changes can occur to GUI objects in the application you are testing. These changes are often subtle but they can disrupt the test run and distort results.
    b) You could use exception handling to detect a change in property of the GUI object during the test run, and to recover test execution by calling a handler function and continue with the test execution
  27. How do you comment your script? - a) We comment a script or line of script by inserting a ‘#’ at the beginning of the line.
  28. What is a compile module? - a) A compiled module is a script containing a library of user-defined functions that you want to call frequently from other tests. When you load a compiled module, its functions are automatically compiled and remain in memory. You can call them directly from within any test.
    b) Compiled modules can improve the organization and performance of your tests. Since you debug compiled modules before using them, your tests will require less error-checking. In addition, calling a function that is already compiled is significantly faster than interpreting a function in a test script.
  29. What is the difference between script and compile module? - a) Test script contains the executable file in WinRunner while Compiled Module is used to store reusable functions. Complied modules are not executable.
    b) WinRunner performs a pre-compilation automatically when it saves a module assigned a property value of “Compiled Module”.
    c) By default, modules containing TSL code have a property value of “main”. Main modules are called for execution from within other modules. Main modules are dynamically compiled into machine code only when WinRunner recognizes a “call” statement. Example of a call for the “app_init” script:
    call cso_init();
    call( “C:\\MyAppFolder\\” & “app_init” );
    d) Compiled modules are loaded into memory to be referenced from TSL code in any module. Example of a load statement:
    reload (“C:\\MyAppFolder\\” & “flt_lib”);
    or
    load (”C:\\MyAppFolder\\” & “flt_lib”);
  30. Write and explain various loop command? - a) A for loop instructs WinRunner to execute one or more statements a specified number of times.
    It has the following syntax:
    for ( [ expression1 ]; [ expression2 ]; [ expression3 ] )statement
    i. First, expression1 is executed. Next, expression2 is evaluated. If expression2 is true, statement is executed and expression3 is executed. The cycle is repeated as long as expression2 remains true. If expression2 is false, the for statement terminates and execution passes to the first statement immediately following.
    ii. For example, the for loop below selects the file UI_TEST from the File Name list
    iii. in the Open window. It selects this file five times and then stops.
    set_window (”Open”)
    for (i=0; i<5;>
    list_select_item(”File_Name:_1?,”UI_TEST”); #Item Number2
    b) A while loop executes a block of statements for as long as a specified condition is true.
    It has the following syntax:
    while ( expression )
    statement ;
    i. While expression is true, the statement is executed. The loop ends when the expression is false. For example, the while statement below performs the same function as the for loop above.
    set_window (”Open”);
    i=0;
    while (i<5){
    i++;
    list_select_item (”File Name:_1?, “UI_TEST”); # Item Number 2
    }
    c) A do/while loop executes a block of statements for as long as a specified condition is true. Unlike the for loop and while loop, a do/while loop tests the conditions at the end of the loop, not at the beginning.
    A do/while loop has the following syntax:
    do
    statement
    while (expression);
    i. The statement is executed and then the expression is evaluated. If the expression is true, then the cycle is repeated. If the expression is false, the cycle is not repeated.
    ii. For example, the do/while statement below opens and closes the Order dialog box of Flight Reservation five times.
    set_window (”Flight Reservation”);
    i=0;
    do
    {
    menu_select_item (”File;Open Order…”);
    set_window (”Open Order”);
    button_press (”Cancel”);
    i++;
    }
    while (i<5);>
  31. Write and explain decision making command? - a) You can incorporate decision-making into your test scripts using if/else or switch statements.
    i. An if/else statement executes a statement if a condition is true; otherwise, it executes another statement.
    It has the following syntax:
    if ( expression )
    statement1;
    [ else
    statement2; ]

    expression is evaluated. If expression is true, statement1 is executed. If expression1 is false, statement2 is executed.
    b) A switch statement enables WinRunner to make a decision based on an expression that can have more than two values.
    It has the following syntax:
    switch (expression )
    {
    case case_1: statements
    case case_2: statements
    case case_n: statements
    default: statement(s)
    }
    The switch statement consecutively evaluates each case expression until one is found that equals the initial expression. If no case is equal to the expression, then the default statements are executed. The default statements are optional.

  32. Write and explain switch command? - a) A switch statement enables WinRunner to make a decision based on an expression that can have more than two values.
    It has the following syntax:
    switch (expression )
    {
    case case_1: statements
    case case_2: statements
    case case_n: statements
    default: statement(s)
    }
    b) The switch statement consecutively evaluates each case expression until one is found that equals the initial expression. If no case is equal to the expression, then the default statements are executed. The default statements are optional.
  33. How do you write messages to the report? - a) To write message to a report we use the report_msg statement
    Syntax: report_msg (message);
  34. What is a command to invoke application? - a) Invoke_application is the function used to invoke an application.
    Syntax: invoke_application(file, command_option, working_dir, SHOW);
  35. What is the purpose of tl_step command? - a) Used to determine whether sections of a test pass or fail.
    Syntax: tl_step(step_name, status, description);
  36. Which TSL function you will use to compare two files? - a) We can compare 2 files in WinRunner using the file_compare function.
    Syntax: file_compare (file1, file2 [, save file]);
  37. What is the use of function generator? - a) The Function Generator provides a quick, error-free way to program scripts. You can:
    i. Add Context Sensitive functions that perform operations on a GUI object or get information from the application being tested.
    ii. Add Standard and Analog functions that perform non-Context Sensitive tasks such as synchronizing test execution or sending user-defined messages to a report.
    iii. Add Customization functions that enable you to modify WinRunner to suit your testing environment.
  38. What is the use of putting call and call_close statements in the test script? - a) You can use two types of call statements to invoke one test from another:
    i. A call statement invokes a test from within another test.
    ii. A call_close statement invokes a test from within a script and closes the test when the test is completed.
    iii. The call statement has the following syntax:
  39. call test_name ( [ parameter1, parameter2, ...parametern ] ); - iv. The call_close statement has the following syntax:
  40. call_close test_name ( [ parameter1, parameter2, ... parametern ] ); - v. The test_name is the name of the test to invoke. The parameters are the parameters defined for the called test.
    vi. The parameters are optional. However, when one test calls another, the call statement should designate a value for each parameter defined for the called test. If no parameters are defined for the called test, the call statement must contain an empty set of parentheses.
  41. What is the use of treturn and texit statements in the test script? - a) The treturn and texit statements are used to stop execution of called tests.
    i. The treturn statement stops the current test and returns control to the calling test.
    ii. The texit statement stops test execution entirely, unless tests are being called from a batch test. In this case, control is returned to the main batch test.
    b) Both functions provide a return value for the called test. If treturn or texit is not used, or if no value is specified, then the return value of the call statement is 0.
    treturn
    c) The treturn statement terminates execution of the called test and returns control to the calling test.
    The syntax is:
    treturn [( expression )];
    d) The optional expression is the value returned to the call statement used to invoke the test.
    texit
    e) When tests are run interactively, the texit statement discontinues test execution. However, when tests are called from a batch test, texit ends execution of the current test only; control is then returned to the calling batch test.
    The syntax is:
    texit [( expression )];
  42. Where do you set up the search path for a called test. - a) The search path determines the directories that WinRunner will search for a called test.
    b) To set the search path, choose Settings > General Options. The General Options dialog box opens. Click the Folders tab and choose a search path in the Search Path for Called Tests box. WinRunner searches the directories in the order in which they are listed in the box. Note that the search paths you define remain active in future testing sessions.
  43. How you create user-defined functions and explain the syntax? - a) A user-defined function has the following structure:
    [class] function name ([mode] parameter…)
    {
    declarations;
    statements;
    }
    b) The class of a function can be either static or public. A static function is available only to the test or module within which the function was defined.
    c) Parameters need not be explicitly declared. They can be of mode in, out, or inout. For all non-array parameters, the default mode is in. For array parameters, the default is inout. The significance of each of these parameter types is as follows:
    in: A parameter that is assigned a value from outside the function.
    out: A parameter that is assigned a value from inside the function.
    inout: A parameter that can be assigned a value from outside or inside the function.
  44. What does static and public class of a function means? - a) The class of a function can be either static or public.
    b) A static function is available only to the test or module within which the function was defined.
    c) Once you execute a public function, it is available to all tests, for as long as the test containing the function remains open. This is convenient when you want the function to be accessible from called tests. However, if you want to create a function that will be available to many tests, you should place it in a compiled module. The functions in a compiled module are available for the duration of the testing session.
    d) If no class is explicitly declared, the function is assigned the default class, public.
  45. What does in, out and input parameters means? - a) in: A parameter that is assigned a value from outside the function.
    b) out: A parameter that is assigned a value from inside the function.
    c) inout: A parameter that can be assigned a value from outside or inside the function.
  46. What is the purpose of return statement? - a) This statement passes control back to the calling function or test. It also returns the value of the evaluated expression to the calling function or test. If no expression is assigned to the return statement, an empty string is returned.
    Syntax: return [( expression )];
  47. What does auto, static, public and extern variables means? - a) auto: An auto variable can be declared only within a function and is local to that function. It exists only for as long as the function is running. A new copy of the variable is created each time the function is called.
    b) static: A static variable is local to the function, test, or compiled module in which it is declared. The variable retains its value until the test is terminated by an Abort command. This variable is initialized each time the definition of the function is executed.
    c) public: A public variable can be declared only within a test or module, and is available for all functions, tests, and compiled modules.
    d) extern: An extern declaration indicates a reference to a public variable declared outside of the current test or module.
  48. How do you declare constants? - a) The const specifier indicates that the declared value cannot be modified. The class of a constant may be either public or static. If no class is explicitly declared, the constant is assigned the default class public. Once a constant is defined, it remains in existence until you exit WinRunner.
    b) The syntax of this declaration is:
    [class] const name [= expression];
  49. How do you declare arrays? - a) The following syntax is used to define the class and the initial expression of an array. Array size need not be defined in TSL.
    b) class array_name [ ] [=init_expression]
    c) The array class may be any of the classes used for variable declarations (auto, static, public, extern).
  50. How do you load and unload a compile module? - a) In order to access the functions in a compiled module you need to load the module. You can load it from within any test script using the load command; all tests will then be able to access the function until you quit WinRunner or unload the compiled module.
    b) You can load a module either as a system module or as a user module. A system module is generally a closed module that is “invisible” to the tester. It is not displayed when it is loaded, cannot be stepped into, and is not stopped by a pause command. A system module is not unloaded when you execute an unload statement with no parameters (global unload).
    load (module_name [,1|0] [,1|0] );
    The module_name is the name of an existing compiled module.

    Two additional, optional parameters indicate the type of module. The first parameter indicates whether the function module is a system module or a user module: 1 indicates a system module; 0 indicates a user module.
    (Default = 0)
    The second optional parameter indicates whether a user module will remain open in the WinRunner window or will close automatically after it is loaded: 1 indicates that the module will close automatically; 0 indicates that the module will remain open.
    (Default = 0)
    c) The unload function removes a loaded module or selected functions from memory.
    d) It has the following syntax:
    unload ( [ module_name | test_name [ , "function_name" ] ] );

  51. How do you update your expected results? -
  52. How do you run your script with multiple sets of expected results? -
  53. How do you view and evaluate test results for various check points? -
  54. How do you view the results of file comparison? -
  55. What is the purpose of Wdiff utility? -
  56. What are batch tests and how do you create and run batch tests ? -
  57. How do you store and view batch test results? -
  58. How do you execute your tests from windows run command? -
  59. Explain different command line options? -
  60. What TSL function you will use to pause your script? -
  61. What is the purpose of setting a break point? -
  62. What is a watch list? -
  63. During debugging how do you monitor the value of the variables? -
  64. What are the reasons that WinRunner fails to identify an object on the GUI? - a) WinRunner fails to identify an object in a GUI due to various reasons.
    i. The object is not a standard windows object.
    ii. If the browser used is not compatible with the WinRunner version, GUI Map Editor will not be able to learn any of the objects displayed in the browser window.
  65. What do you mean by the logical name of the object. - a) An object’s logical name is determined by its class. In most cases, the logical name is the label that appears on an object.
  66. If the object does not have a name then what will be the logical name? - If the object does not have a name then the logical name could be the attached text.
  67. What is the different between GUI map and GUI map files? - a) The GUI map is actually the sum of one or more GUI map files. There are two modes for organizing GUI map files.
    i. Global GUI Map file: a single GUI Map file for the entire application
    ii. GUI Map File per Test: WinRunner automatically creates a GUI Map file for each test created.
    b) GUI Map file is a file which contains the windows and the objects learned by the WinRunner with its logical name and their physical description.
  68. How do you view the contents of the GUI map? - a) GUI Map editor displays the content of a GUI Map. We can invoke GUI Map Editor from the Tools Menu in WinRunner. The GUI Map Editor displays the various GUI Map files created and the windows and objects learned in to them with their logical name and physical description.
  69. What is startup script in WinRunner? - It is writing a script and when WinRunner starts it automatically runs the script. If you write script like invoking some application as soon as the script is run the application will be invoked for the purpose of testing
  70. What is the purpose of loading WinRunner add-ins? - Add-ins are used in WinRunner to load functions specific to the particular add-in to the memory. While creating a script only those functions in the add-in selected will be listed in the function generator,and while executing the script only those functions in the loaded add-in will be executed,else WinRunner will give an error message saying it does not recognize the function
  71. What is the purpose of GUI spy? - Using the GUI spy you can view the properties of any GUI object and your desktop. You use the spy pointer to point to an object,and the GUI spy displays the properties and their values in the GUI spy dialog box. You can choose to view all properties of an object, or only the selected set of properties that WinRunner learns.
  72. When you create GUI map do you record all the objects of specific objects? - a) If we are learning a window then WinRunner automatically learns all the objects in the window else we will we identifying those object, which are to be learned in a window, since we will be working with only those objects while creating scripts.
  73. What is the purpose of set_window command? - b) Set_Window command sets the focus to the specified window. We use this command to set the focus to the required window before executing tests on a particular window. Syntax: set_window(, time); The logical name is the logical name of the window and time is the time the execution has to wait till it gets the given window into focus.
  74. How do you load GUI map? - c) We can load a GUI Map by using the GUI_load command. Syntax: GUI_load();
  75. What is the disadvantage of loading the GUI maps through start up scripts? - d) If we are using a single GUI Map file for the entire AUT then the memory used by the GUI Map may be much high. e) If there is any change in the object being learned then WinRunner will not be able to recognize the object, as it is not in the GUI Map file loaded in the memory. So we will have to learn the object again and update the GUI File and reload it.
  76. How do you unload the GUI map? - f) We can use GUI_close to unload a specific GUI Map file or else we call use GUI_close_all command to unload all the GUI Map files loaded in the memory. Syntax: GUI_close(); or GUI_close_all;

WinRunner question encyclopedia with answers

  1. The index selector uses numbers assigned at the time of creation of objects to identify the object in a window. Use this selector if the location of objects with the same description may change within a window. -
  2. How do you handle custom objects? - a) A custom object is any GUI object not belonging to one of the standard classes used by WinRunner. WinRunner learns such objects under the generic “object” class. WinRunner records operations on custom objects using obj_mouse_ statements.
    b) If a custom object is similar to a standard object, you can map it to one of the standard classes. You can also configure the properties WinRunner uses to identify a custom object during Context Sensitive testing.
  3. What is the name of custom class in WinRunner and what methods it applies on the custom objects? - a) WinRunner learns custom class objects under the generic “object” class. WinRunner records operations on custom objects using obj_ statements.
  4. In a situation when obligatory and optional both the properties cannot uniquely identify an object what method WinRunner applies? - a) In cases where the obligatory and optional properties do not uniquely identify an object, WinRunner uses a selector to differentiate between them. Two types of selectors are available:
    i. A location selector uses the spatial position of objects.
    ii. An index selector uses a unique number to identify the object in a window.
    63 What is the purpose of different record methods 1) Record 2) Pass up 3) As Object 4) Ignore.
    a) Record instructs WinRunner to record all operations performed on a GUI object. This is the default record method for all classes. (The only exception is the static class (static text), for which the default is Pass Up.)
    b) Pass Up instructs WinRunner to record an operation performed on this class as an operation performed on the element containing the object. Usually this element is a window, and the operation is recorded as win_mouse_click.
    c) As Object instructs WinRunner to record all operations performed on a GUI object as though its class were “object” class.
    d) Ignore instructs WinRunner to disregard all operations performed on the class.
  5. How do you find out which is the start up file in WinRunner? - a) The test script name in the Startup Test box in the Environment tab in the General Options dialog box is the start up file in WinRunner.
  6. What are the virtual objects and how do you learn them? - a) Applications may contain bitmaps that look and behave like GUI objects. WinRunner records operations on these bitmaps using win_mouse_click statements. By defining a bitmap as a virtual object, you can instruct WinRunner to treat it like a GUI object such as a push button, when you record and run tests.
    b) Using the Virtual Object wizard, you can assign a bitmap to a standard object class, define the coordinates of that object, and assign it a logical name.
    To define a virtual object using the Virtual Object wizard:
    i. Choose Tools > Virtual Object Wizard. The Virtual Object wizard opens. Click Next.
    ii. In the Class list, select a class for the new virtual object. If rows that are displayed in the window. For a table class, select the number of visible rows and columns. Click Next.
    iii. Click Mark Object. Use the crosshairs pointer to select the area of the virtual object. You can use the arrow keys to make precise adjustments to the area you define with the crosshairs. Press Enter or click the right mouse button to display the virtual object’s coordinates in the wizard. If the object marked is visible on the screen, you can click the Highlight button to view it. Click Next.
    iv.Assign a logical name to the virtual object. This is the name that appears in the test script when you record on the virtual object. If the object contains text that WinRunner can read, the wizard suggests using this text for the logical name. Otherwise, WinRunner suggests virtual_object, virtual_push_button, virtual_list, etc.
    v. You can accept the wizard’s suggestion or type in a different name. WinRunner checks that there are no other objects in the GUI map with the same name before confirming your choice. Click Next.
  7. H ow you created you test scripts 1) by recording or 2) programming? - a) Programming. I have done complete programming only, absolutely no recording.
  8. What are the two modes of recording? - a) There are 2 modes of recording in WinRunner
    i.Context Sensitive recording records the operations you perform on your application by identifying Graphical User Interface (GUI) objects.
    ii.Analog recording records keyboard input, mouse clicks, and the precise x- and y-coordinates traveled by the mouse pointer across the screen.
  9. What is a checkpoint and what are different types of checkpoints? - a) Checkpoints allow you to compare the current behavior of the application being tested to its behavior in an earlier version.
    You can add four types of checkpoints to your test scripts:
    i. GUI checkpoints verify information about GUI objects. For example, you can check that a button is enabled or see which item is selected in a list.
    ii. Bitmap checkpoints take a “snapshot” of a window or area of your application and compare this to an image captured in an earlier version.
    iii. Text checkpoints read text in GUI objects and in bitmaps and enable you to verify their contents.
    iv. Database checkpoints check the contents and the number of rows and columns of a result set, which is based on a query you create on your database.
  10. What is parameterizing? - a) In order for WinRunner to use data to drive the test, you must link the data to the test script which it drives. This is called parameterizing your test. The data is stored in a data table.
  11. How do you maintain the document information of the test scripts? - a) Before creating a test, you can document information about the test in the General and Description tabs of the Test Properties dialog box. You can enter the name of the test author, the type of functionality tested, a detailed description of the test, and a reference to the relevant functional specifications document.
  12. What do you verify with the GUI checkpoint for single property and what command it generates, explain syntax? - a) You can check a single property of a GUI object. For example, you can check whether a button is enabled or disabled or whether an item in a list is selected. To create a GUI checkpoint for a property value, use the Check Property dialog box to add one of the following functions to the test script:
    i. button_check_info
    ii. scroll_check_info
    iii. edit_check_info
    iv. static_check_info
    v. list_check_info
    vi. win_check_info
    vii. obj_check_info
    Syntax: button_check_info (button, property, property_value );
    edit_check_info ( edit, property, property_value );
  13. What do you verify with the GUI checkpoint for object/window and what command it generates, explain syntax? - a) You can create a GUI checkpoint to check a single object in the application being tested. You can either check the object with its default properties or you can specify which properties to check.
    b) Creating a GUI Checkpoint using the Default Checks
    i. You can create a GUI checkpoint that performs a default check on the property recommended by WinRunner. For example, if you create a GUI checkpoint that checks a push button, the default check verifies that the push button is enabled.
    ii. To create a GUI checkpoint using default checks:
  14. Choose Create > GUI Checkpoint > For Object/Window, or click the GUI Checkpoint for Object/Window button on the User toolbar. If you are recording in Analog mode, press the CHECK GUI FOR OBJECT/WINDOW softkey in order to avoid extraneous mouse movements. Note that you can press the CHECK GUI FOR OBJECT/WINDOW softkey in Context Sensitive mode as well. The WinRunner window is minimized, the mouse pointer becomes a pointing hand, and a help window opens on the screen. -
  15. Click an object. -
  16. WinRunner captures the current value of the property of the GUI object being checked and stores it in the test’s expected results folder. The WinRunner window is restored and a GUI checkpoint is inserted in the test script as an obj_check_gui statement - Syntax: win_check_gui ( window, checklist, expected_results_file, time );
    c) Creating a GUI Checkpoint by Specifying which Properties to Check
    d) You can specify which properties to check for an object. For example, if you create a checkpoint that checks a push button, you can choose to verify that it is in focus, instead of enabled.
    e) To create a GUI checkpoint by specifying which properties to check:
    i. Choose Create > GUI Checkpoint > For Object/Window, or click the GUI Checkpoint for Object/Window button on the User toolbar. If you are recording in Analog mode, press the CHECK GUI FOR OBJECT/WINDOW softkey in order to avoid extraneous mouse movements. Note that you can press the CHECK GUI FOR OBJECT/WINDOW softkey in Context Sensitive mode as well. The WinRunner window is minimized, the mouse pointer becomes a pointing hand, and a help window opens on the screen.
    ii. Double-click the object or window. The Check GUI dialog box opens.
    iii. Click an object name in the Objects pane. The Properties pane lists all the properties for the selected object.
    iv. Select the properties you want to check.
  17. To edit the expected value of a property, first select it. Next, either click the Edit Expected Value button, or double-click the value in the Expected Value column to edit it. -
  18. To add a check in which you specify arguments, first select the property for which you want to specify arguments. Next, either click the Specify Arguments button, or double-click in the Arguments column. Note that if an ellipsis (three dots) appears in the Arguments column, then you must specify arguments for a check on this property. (You do not need to specify arguments if a default argument is specified.) When checking standard objects, you only specify arguments for certain properties of edit and static text objects. You also specify arguments for checks on certain properties of nonstandard objects. -
  19. To change the viewing options for the properties of an object, use the Show Properties buttons. -
  20. Click OK to close the Check GUI dialog box. WinRunner captures the GUI information and stores it in the test’s expected results folder. The WinRunner window is restored and a GUI checkpoint is inserted in the test script as an obj_check_gui or a win_check_gui statement. - Syntax: win_check_gui ( window, checklist, expected_results_file, time );
    obj_check_gui ( object, checklist, expected results file, time );
  21. What do you verify with the GUI checkpoint for multiple objects and what command it generates, explain syntax? - a) To create a GUI checkpoint for two or more objects:
    i. Choose Create > GUI Checkpoint > For Multiple Objects or click the GUI Checkpoint for Multiple Objects button on the User toolbar. If you are recording in Analog mode, press the CHECK GUI FOR MULTIPLE OBJECTS softkey in order to avoid extraneous mouse movements. The Create GUI Checkpoint dialog box opens.
    ii. Click the Add button. The mouse pointer becomes a pointing hand and a help window opens.
    iii. To add an object, click it once. If you click a window title bar or menu bar, a help window prompts you to check all the objects in the window.
    iv. The pointing hand remains active. You can continue to choose objects by repeating step 3 above for each object you want to check.
    v. Click the right mouse button to stop the selection process and to restore the mouse pointer to its original shape. The Create GUI Checkpoint dialog box reopens.
    vi. The Objects pane contains the name of the window and objects included in the GUI checkpoint. To specify which objects to check, click an object name in the Objects pane. The Properties pane lists all the properties of the object. The default properties are selected.
  22. To edit the expected value of a property, first select it. Next, either click the Edit Expected Value button, or double-click the value in the Expected Value column to edit it. -
  23. To add a check in which you specify arguments, first select the property for which you want to specify arguments. Next, either click the Specify Arguments button, or double-click in the Arguments column. Note that if an ellipsis appears in the Arguments column, then you must specify arguments for a check on this property. (You do not need to specify arguments if a default argument is specified.) When checking standard objects, you only specify arguments for certain properties of edit and static text objects. You also specify arguments for checks on certain properties of nonstandard objects. -
  24. To change the viewing options for the properties of an object, use the Show Properties buttons. - vii. To save the checklist and close the Create GUI Checkpoint dialog box, click OK. WinRunner captures the current property values of the selected GUI objects and stores it in the expected results folder. A win_check_gui statement is inserted in the test script.
    Syntax: win_check_gui ( window, checklist, expected_results_file, time );
    obj_check_gui ( object, checklist, expected results file, time );
  25. What information is contained in the checklist file and in which file expected results are stored? - a) The checklist file contains information about the objects and the properties of the object we are verifying.
    b) The gui*.chk file contains the expected results which is stored in the exp folder
  26. What do you verify with the bitmap check point for object/window and what command it generates, explain syntax? - a) You can check an object, a window, or an area of a screen in your application as a bitmap. While creating a test, you indicate what you want to check. WinRunner captures the specified bitmap, stores it in the expected results folder (exp) of the test, and inserts a checkpoint in the test script. When you run the test, WinRunner compares the bitmap currently displayed in the application being tested with the expected bitmap stored earlier. In the event of a mismatch, WinRunner captures the current actual bitmap and generates a difference bitmap. By comparing the three bitmaps (expected, actual, and difference), you can identify the nature of the discrepancy.
    b) When working in Context Sensitive mode, you can capture a bitmap of a window, object, or of a specified area of a screen. WinRunner inserts a checkpoint in the test script in the form of either a win_check_bitmap or obj_check_bitmap statement.
    c) Note that when you record a test in Analog mode, you should press the CHECK BITMAP OF WINDOW softkey or the CHECK BITMAP OF SCREEN AREA softkey to create a bitmap checkpoint. This prevents WinRunner from recording extraneous mouse movements. If you are programming a test, you can also use the Analog function check_window to check a bitmap.
    d) To capture a window or object as a bitmap:
    i. Choose Create > Bitmap Checkpoint > For Object/Window or click the Bitmap Checkpoint for Object/Window button on the User toolbar. Alternatively, if you are recording in Analog mode, press the CHECK BITMAP OF OBJECT/WINDOW softkey. The WinRunner window is minimized, the mouse pointer becomes a pointing hand, and a help window opens.
    ii. Point to the object or window and click it. WinRunner captures the bitmap and generates a win_check_bitmap or obj_check_bitmap statement in the script. The TSL statement generated for a window bitmap has the following syntax:
    win_check_bitmap ( object, bitmap, time );
    iii. For an object bitmap, the syntax is:
    obj_check_bitmap ( object, bitmap, time );
    iv. For example, when you click the title bar of the main window of the Flight Reservation application, the resulting statement might be:
    win_check_bitmap (”Flight Reservation”, “Img2″, 1);
    v. However, if you click the Date of Flight box in the same window, the statement might be:
    obj_check_bitmap (”Date of Flight:”, “Img1″, 1);
    Syntax: obj_check_bitmap ( object, bitmap, time [, x, y, width, height] );
  27. What do you verify with the bitmap checkpoint for screen area and what command it generates, explain syntax? - a) You can define any rectangular area of the screen and capture it as a bitmap for comparison. The area can be any size: it can be part of a single window, or it can intersect several windows. The rectangle is identified by the coordinates of its upper left and lower right corners, relative to the upper left corner of the window in which the area is located. If the area intersects several windows or is part of a window with no title (for example, a popup window), its coordinates are relative to the entire screen (the root window).
    b) To capture an area of the screen as a bitmap:
    i. Choose Create > Bitmap Checkpoint > For Screen Area or click the Bitmap Checkpoint for Screen Area button. Alternatively, if you are recording in Analog mode, press the CHECK BITMAP OF SCREEN AREA softkey. The WinRunner window is minimized, the mouse pointer becomes a crosshairs pointer, and a help window opens.
    ii. Mark the area to be captured: press the left mouse button and drag the mouse pointer until a rectangle encloses the area; then release the mouse button.
    iii. Press the right mouse button to complete the operation. WinRunner captures the area and generates a win_check_bitmap statement in your script.
    iv. The win_check_bitmap statement for an area of the screen has the following syntax:
    win_check_bitmap ( window, bitmap, time, x, y, width, height );
  28. What do you verify with the database checkpoint default and what command it generates, explain syntax? - a) By adding runtime database record checkpoints you can compare the information in your application during a test run with the corresponding record in your database. By adding standard database checkpoints to your test scripts, you can check the contents of databases in different versions of your application.
    b) When you create database checkpoints, you define a query on your database, and your database checkpoint checks the values contained in the result set. The result set is set of values retrieved from the results of the query.
    c) You can create runtime database record checkpoints in order to compare the values displayed in your application during the test run with the corresponding values in the database. If the comparison does not meet the success criteria you
    d) specify for the checkpoint, the checkpoint fails. You can define a successful runtime database record checkpoint as one where one or more matching records were found, exactly one matching record was found, or where no matching records are found.
    e) You can create standard database checkpoints to compare the current values of the properties of the result set during the test run to the expected values captured during recording or otherwise set before the test run. If the expected results and the current results do not match, the database checkpoint fails. Standard database checkpoints are useful when the expected results can be established before the test run.
    Syntax: db_check(, );
    f) You can add a runtime database record checkpoint to your test in order to compare information that appears in your application during a test run with the current value(s) in the corresponding record(s) in your database. You add runtime database record checkpoints by running the Runtime Record Checkpoint wizard. When you are finished, the wizard inserts the appropriate db_record_check statement into your script.
    Syntax:
    db_record_check(ChecklistFileName,SuccessConditions,RecordNumber );
    ChecklistFileName A file created by WinRunner and saved in the test’s checklist folder. The file contains information about the data to be captured during the test run and its corresponding field in the database. The file is created based on the information entered in the Runtime Record Verification wizard.
    Contains one of the following values:
  29. DVR_ONE_OR_MORE_MATCH - The checkpoint passes if one or more matching database records are found. -
  30. DVR_ONE_MATCH - The checkpoint passes if exactly one matching database record is found. -
  31. DVR_NO_MATCH - The checkpoint passes if no matching database records are found. - RecordNumber An out parameter returning the number of records in the database.
  32. How do you handle dynamically changing area of the window in the bitmap checkpoints? - a) The difference between bitmaps option in the Run Tab of the general options defines the minimum number of pixels that constitute a bitmap mismatch
  33. What do you verify with the database check point custom and what command it generates, explain syntax? - a) When you create a custom check on a database, you create a standard database checkpoint in which you can specify which properties to check on a result set.
    b) You can create a custom check on a database in order to:
    i. check the contents of part or the entire result set
    ii. edit the expected results of the contents of the result set
    iii. count the rows in the result set
    iv. count the columns in the result set
    c) You can create a custom check on a database using ODBC, Microsoft Query or Data Junction.
  34. What do you verify with the sync point for object/window property and what command it generates, explain syntax? - a) Synchronization compensates for inconsistencies in the performance of your application during a test run. By inserting a synchronization point in your test script, you can instruct WinRunner to suspend the test run and wait for a cue before continuing the test.
    b) You can a synchronization point that instructs WinRunner to wait for a specified object or window to appear. For example, you can tell WinRunner to wait for a window to open before performing an operation within that window, or you may want WinRunner to wait for an object to appear in order to perform an operation on that object.
    c) You use the obj_exists function to create an object synchronization point, and you use the win_exists function to create a window synchronization point. These functions have the following syntax:
    Syntax:
    obj_exists ( object [, time ] );
    win_exists ( window [, time ] );
  35. What do you verify with the sync point for object/window bitmap and what command it generates, explain syntax? - a) You can create a bitmap synchronization point that waits for the bitmap of an object or a window to appear in the application being tested.
    b) During a test run, WinRunner suspends test execution until the specified bitmap is redrawn, and then compares the current bitmap with the expected one captured earlier. If the bitmaps match, then WinRunner continues the test.
    Syntax:
    obj_wait_bitmap ( object, image, time );
    win_wait_bitmap ( window, image, time );
  36. What do you verify with the sync point for screen area and what command it generates, explain syntax? - a) For screen area verification we actually capture the screen area into a bitmap and verify the application screen area with the bitmap file during execution
    Syntax: obj_wait_bitmap(object, image, time, x, y, width, height);
  37. How do you edit checklist file and when do you need to edit the checklist file? - a) WinRunner has an edit checklist file option under the create menu. Select the “Edit GUI Checklist” to modify GUI checklist file and “Edit Database Checklist” to edit database checklist file. This brings up a dialog box that gives you option to select the checklist file to modify. There is also an option to select the scope of the checklist file, whether it is Test specific or a shared one. Select the checklist file, click OK which opens up the window to edit the properties of the objects.
  38. How do you edit the expected value of an object? - a) We can modify the expected value of the object by executing the script in the Update mode. We can also manually edit the gui*.chk file which contains the expected values which come under the exp folder to change the values.
  39. How do you modify the expected results of a GUI checkpoint? - a) We can modify the expected results of a GUI checkpoint be running the script containing the checkpoint in the update mode.
  40. How do you handle ActiveX and Visual basic objects? - a) WinRunner provides with add-ins for ActiveX and Visual basic objects. When loading WinRunner, select those add-ins and these add-ins provide with a set of functions to work on ActiveX and VB objects.
  41. How do you create ODBC query? - a) We can create ODBC query using the database checkpoint wizard. It provides with option to create an SQL file that uses an ODBC DSN to connect to the database. The SQL File will contain the connection string and the SQL statement.
  42. How do you record a data driven test? - a) We can create a data-driven testing using data from a flat file, data table or a database.
    i. Using Flat File: we actually store the data to be used in a required format in the file. We access the file using the File manipulation commands, reads data from the file and assign the variables with data.
    ii. Data Table: It is an excel file. We can store test data in these files and manipulate them. We use the ‘ddt_*’ functions to manipulate data in the data table.
    iii.Database: we store test data in the database and access these data using ‘db_*’ functions.
  43. How do you convert a database file to a text file? - a) You can use Data Junction to create a conversion file which converts a database to a target text file.
  44. How do you parameterize database check points? - a) When you create a standard database checkpoint using ODBC (Microsoft Query), you can add parameters to an SQL statement to parameterize the checkpoint. This is useful if you want to create a database checkpoint with a query in which the SQL statement defining your query changes.
  45. How do you create parameterize SQL commands? - a) A parameterized query is a query in which at least one of the fields of the WHERE clause is parameterized, i.e., the value of the field is specified by a question mark symbol ( ? ). For example, the following SQL statement is based on a query on the database in the sample Flight Reservation application:

    i. SELECT Flights.Departure, Flights.Flight_Number, Flights.Day_Of_Week FROM Flights Flights WHERE (Flights.Departure=?) AND (Flights.Day_Of_Week=?)
    SELECT defines the columns to include in the query.
    FROM specifies the path of the database.
    WHERE (optional) specifies the conditions, or filters to use in the query.
    Departure is the parameter that represents the departure point of a flight.
    Day_Of_Week is the parameter that represents the day of the week of a flight.
    b) When creating a database checkpoint, you insert a db_check statement into your test script. When you parameterize the SQL statement in your checkpoint, the db_check function has a fourth, optional, argument: the parameter_array argument. A statement similar to the following is inserted into your test script:
    db_check(”list1.cdl”, “dbvf1?, NO_LIMIT, dbvf1_params);
    The parameter_array argument will contain the values to substitute for the parameters in the parameterized checkpoint.

  46. Explain the following commands: - a) db_connect
    to connect to a database
    db_connect(, );
    b) db_execute_query
    to execute a query
    db_execute_query ( session_name, SQL, record_number );
    record_number is the out value.
    c) db_get_field_value
    returns the value of a single field in the specified row_index and column in the session_name database session.
    db_get_field_value ( session_name, row_index, column );
    d) db_get_headers
    returns the number of column headers in a query and the content of the column headers, concatenated and delimited by tabs.
    db_get_headers ( session_name, header_count, header_content );
    e) db_get_row
    returns the content of the row, concatenated and delimited by tabs.
    db_get_row ( session_name, row_index, row_content );
    f) db_write_records
    writes the record set into a text file delimited by tabs.
    db_write_records ( session_name, output_file [ , headers [ , record_limit ] ] );
    g) db_get_last_error
    returns the last error message of the last ODBC or Data Junction operation in the session_name database session.
    db_get_last_error ( session_name, error );
    h) db_disconnect
    disconnects from the database and ends the database session.
    db_disconnect ( session_name );
    i) db_dj_convert
    runs the djs_file Data Junction export file. When you run this file, the Data Junction Engine converts data from one spoke (source) to another (target). The optional parameters enable you to override the settings in the Data Junction export file.
    db_dj_convert ( djs_file [ , output_file [ , headers [ , record_limit ] ] ] );
  47. What check points you will use to read and check text on the GUI and explain its syntax? - a) You can use text checkpoints in your test scripts to read and check text in GUI objects and in areas of the screen. While creating a test you point to an object or a window containing text. WinRunner reads the text and writes a TSL statement to the test script. You may then add simple programming elements to your test scripts to verify the contents of the text.
    b) You can use a text checkpoint to:
    i.Read text from a GUI object or window in your application, using obj_get_text and win_get_text
    ii.Search for text in an object or window, using win_find_text and obj_find_text
    iii. Move the mouse pointer to text in an object or window, using obj_move_locator_text and win_move_locator_text
    iv. Click on text in an object or window, using obj_click_on_text and win_click_on_text
  48. Explain Get Text checkpoint from object/window with syntax? - a) We use obj_get_text (, ) function to get the text from an object
    b) We use win_get_text (window, out_text [, x1, y1, x2, y2]) function to get the text from a window.
  49. Explain Get Text checkpoint from screen area with syntax? - a) We use win_get_text (window, out_text [, x1, y1, x2, y2]) function to get the text from a window.
  50. Explain Get Text checkpoint from selection (web only) with syntax? - a) Returns a text string from an object.
    web_obj_get_text (object, table_row, table_column, out_text [, text_before, text_after, index]);
    i. object The logical name of the object.
    ii. table_row If the object is a table, it specifies the location of the row within a table. The string is preceded by the # character.
    iii. table_column If the object is a table, it specifies the location of the column within a table. The string is preceded by the # character.
    iv. out_text The output variable that stores the text string.
    v. text_before Defines the start of the search area for a particular text string.
    vi. text_after Defines the end of the search area for a particular text string.
    vii. index The occurrence number to locate. (The default parameter number is numbered 1).