May 25, 2015

ETL Testing Interview Questions

ETL Testing Interview Questions and Answers

1) What is ETL?
In data warehousing architecture, ETL is an important component, which manages the data for any business process. ETL stands for Extract, Transform and Load.  Extract does the process of reading data from a database.  Transform does the converting of data into a format that could be appropriate for reporting and analysis. While, load does the process of writing the data into the target database.

2) Why ETL testing is required?
•    To keep a check on the Data which are being transferred from one system to the other.
•    To keep a track on the efficiency and speed of the process.
•    To be well acquainted with the ETL process before it gets implemented into your business and production.

3) What is a three-tier data warehouse?
Most data warehouses are considered to be a three-tier system. This is essential to their structure. The first layer is where the data lands. This is the collection point where data from outside sources is compiled. The second layer is known as the ‘integration layer.’ This is where the data that has been stored is transformed to meet company needs. The third layer is called the ‘dimension layer,’ and is where the transformed information is stored for internal use.

4) Mention what are the types of data warehouse applications?
The types of data warehouse applications are
•    Info Processing
•    Analytical Processing
•    Data Mining

5) What are ETL tester responsibilities?
•    Requires in depth knowledge on the ETL tools and processes.
•    Needs to write the SQL queries for the various given scenarios during the testing phase.
•    Should be able to carry our different types of tests such as Primary Key, defaults and keep a check on the other functionality of the ETL process.
•    Quality Check

6) What are the types of data warehouse?
There are mainly three types of Data Warehouse they are,
•    Enterprise Data Warehouse
•    Operational data store
•    Data Mart

7) What is a Data mart?
A Data Mart is a subset of a data warehouse that can provide data for reporting and analysis on a section, unit or a department like Sales Dept., HR Dept., etc. The Data Mart are sometimes also called as HPQS (Higher Performance Query Structure).

8) What is the difference between data mining and data warehousing?
Data warehousing comes before the mining process. This is the act of gathering data from various exterior sources and organizing it into one specific location that is the warehouse. Data mining is when that data is analyzed and used as information for making decisions.

9) Explain what is data purging?
Data purging is a process of deleting data from data warehouse. It deletes junk data’s like rows with null values or extra spaces.

10) What is partitioning?
Partitioning is when an area of data storage is sub-divided to improve performance. Think of it as an organizational tool. If all your collected data is in one large space without organization the digital tools used for analyzing it will have a more difficult time finding the information in order to analyze it. Partitioning your warehouse will create an organizational structure that will make locating and analyzing easier and faster.

11) What are some types of partitioning?
Two types of partitioning are round-robin partitioning and Hash Partitioning.
•    Round-robin partitioning is when the data is evenly distributed among all partitions. This means that the number of rows in each partition is relatively the same.
•    Hash partitioning is when the server applies a hash function in order to create partition keys to group data.

12) What are the various tools used in ETL?
•    Cognos Decision Stream
•    Oracle Warehouse Builder
•    Business Objects XI
•    SAS business warehouse
•    SAS Enterprise ETL server.

13) What is fact?
It is a central component of a multi-dimensional model which contains the measures to be analyzed.  Facts are related to dimensions.

14) What are the types of Facts?
The types of Facts are as follows.
•    Additive Facts: A Fact which can be summed up for any of the dimension available in the fact table.
•    Semi-Additive Facts: A Fact which can be summed up to a few dimensions and not for all dimensions available in the fact table.
•    Non-Additive Fact: A Fact which cannot be summed up for any of the dimensions available in the fact table.

15) What are Fact Tables?
A Fact Table is a table that contains summarized numerical (facts) and historical data. This Fact Table has a foreign key-primary key relation with a dimension table. The Fact Table maintains the information in 3rd normal form.
A star schema is defined is defined as a logical database design in which there will be a centrally located fact table which is surrounded by at least one or more dimension tables. This design is best suited for Data Warehouse or Data Mart.

16) What are the types of Fact Tables?
The types of Fact Tables are,
•    Cumulative Fact Table: This type of fact tables generally describes what was happened over the period of time. They contain additive facts.
•    Snapshot Fact Table: This type of fact table deals with the particular period of time. They contain non-additive and semi-additive facts.

17) What is Grain of Fact?
The Grain of Fact is defined as the level at which the fact information is stored in a fact table. This is also called as Fact Granularity or Fact Event Level.

18) What is Fact less Fact table?
The Fact Table which does not contains facts is called as Fact Table. Generally when we need to combine two data marts, then one data mart will have a fact less fact table and other one with common fact table.

19) What are Dimensions?
Dimensions are categories by which summarized data can be viewed. For example a profit Fact table can be viewed by a time dimension.

20) What are Confirmed Dimensions?
The Dimensions which are reusable and fixed in nature Example customer, time, geography dimensions.

21) Explain what is transformation?
A transformation is a repository object which generates, modifies or passes data.  Transformation are of two types Active and Passive

22) What are active and passive transformations?
In an active transformation, the number of rows that is created as output can be changed once a transformation has occurred. This does not happen during a passive transformation; the information passes through the same number given to it as input.

23) Explain the use of Lookup Transformation?
The Lookup Transformation is useful for
•    Getting a related value from a table using a column value
•    Update slowly changing dimension table
•    Verify whether records already exist in the table

24) What is the difference between dimensional table and fact table?


A dimension table consists of tuples of attributes of the dimension. A fact table can be thought of as having tuples, one per a recorded fact. This fact contains some measured or observed variables and identifies them with pointers to dimension tables.

25) What is OLAP?


OLAP stands for Online Analytical Processing. It uses database tables (Fact and Dimension tables) to enable multidimensional viewing, analysis and querying of large amount of data.

26) What is OLTP?


OLTP stands for Online Transaction Processing Except data warehouse databases the other databases are OLTPs. These OLTP uses normalized schema structure. These OLTP databases are designed for recording the daily operations and transactions of a business.

27) What is Operational Data Store [ODS]?


It is a collection of integrated databases designed to support operational monitoring. Unlike the OLTP databases, the data in the ODS are integrated, subject oriented and enterprise wide data.

28) What are Measures?


Measures are numeric data based on columns in a fact table.

29) Explain what are Cubes and OLAP Cubes?


Cubes are data processing units comprised of fact tables and dimensions from the data warehouse.  It provides multi-dimensional analysis.
OLAP stands for Online Analytics Processing, and OLAP cube stores large data in multi-dimensional form for reporting purposes.  It consists of facts called as measures categorized by dimensions.

30) What are Virtual Cubes?


These are combination of one or more real cubes and require no disk space to store them. They store only definition and not the data.

31) What is Bus Schema?


For the various business process to identify the common dimensions, BUS schema is used.  It comes with a conformed dimensions along with a standardized definition of information

32) What is a Star schema design?


A Star schema is defined as a logical database design in which there will be a centrally located fact table which is surrounded by at least one or more dimension tables. This design is best suited for Data Warehouse or Data Mart.

33) What is Snow Flake schema Design?


In a Snow Flake design the dimension table (de-normalized table) will be further divided into one or more dimensions (normalized tables) to organize the information in a better structural format. To design snow flake we should first design star schema design.

34) Explain what are Schema Objects?


Schema objects are the logical structure that directly refer to the databases data.  Schema objects includes tables, views, sequence synonyms, indexes, clusters, functions packages and database links

35) Explain what staging area is and what is the purpose of a staging area?


Data staging is an area where you hold the data temporary on data warehouse server.  Data staging includes following steps
•    Source data extraction and data transformation ( restructuring )
•    Data transformation (data cleansing, value transformation )
•    Surrogate key assignments

36) Explain ETL Mapping Sheets?


ETL mapping sheets contains all the required information from the source file including all the rows and columns. This sheet helps the experts in writing the SQL queries for the ETL tools testing.

37) What is Denormalization?


Denormalization means a table with multi duplicate key. The dimension table follows Denormalization method with the technique of surrogate key.

38) What is Surrogate Key?


A Surrogate Key is a sequence generated key which is assigned to be a primary key in the system (table).

39) Explain these terms Mapping, Session, Work let, Mapplet and Workflow?


•    Mapping is the movement of data from the source to the destination.
•    Session is the parameters set to instruct the data on during the above movement.
•    Work let represents a specific set of tasks given.
•    A workflow is a set of instructions that tell the server how to execute tasks.
•    A mapplet creates or arranges sets of transformation.

40) List few ETL bugs?


Calculation Bug, User Interface Bug, Source Bugs, Load condition bug, ECP related bug are some of the ETL bugs.

May 24, 2015

Java Tutorial for Beginners

Java Tutorial 1 for Selenium
(Java Environment Setup and Write First Java Program)
> Download Java (JDK) Software and Install

> set Environment Variable (Path Variable)
(* If want to execute Java programs from any directory in C Drive)

How to set Path Environment Variable:
OS: Windows 7

> Select MYComputer and Right click

> Properties

> Advanced System Settings

> Environment Variables

> Select "New" in System variables

> Enter Variable as "Path"

> Enter JDK bin directory path ("C:\Program Files\Java\jdk1.8.0_45\bin") in value field

> OK > OK > Ok
----------------------------------------
Verify the Environment setup:
> Launch Command Prompt

> Type java (It provides details)
-------------------------------------
Three steps to write and execute Java Programs

i) Write Java Program in Notepad (Editor)

ii) Compile the Program (It creates Class file)

Command prompt > Change to Program file Directory

> Type javac Programname.java (java is extension of Java program, javac command for compilation)

iii) Run /Execute the Java Program

> Type java programName
(It provides Output on the console)
-----------------------------------------------------
Use Eclipse IDE to write and execute Java programs.
Eclipse IDE (Integrated Development Environment)

It is a platform to write and execute Java programs, Perl, Python, PHP, Ruby etc...

It provides Editor, context help, help for syntax errors, Auto compilation and debugging.
-----------------------------
Download Eclipse software and extract.

Steps:
----------------
> Create Java Project
    -> Create a Package
        -> Create a Class / Interface
(We can write java code in the Class file)
--------------------------------------

Ex:
public class Sample {
    public static void main (String [] args){
        System.out.println("Hello Java and Selenium");
    }
}
-------------------------------------------------
Java Program structure or Java Syntax:
 

1) Package declaration statement
ex:

package abcd;
--------------------------------
2) Import statements
we can import Built in and User defined Libraries using import keyword.
(In order to use Existing Classes, Objects, and Methods)


Example:

import java.io.console;

(It Imports Console Class only from io package)

import java.io.*;

(It imports all classes from io package)
------------------
java - project

io - package

Console - Class
----------------------------------------------
3) Class declaration statement
ex:

public class Sample {
}

public - Access Modifier

class - Java keyword to declare a class

Sample - Name of the Class

Note: First letter of Class name should be upper case.
-------------------------------------------------
4) Comments section
// This is a Sample Java Program
-----------------------------------
5) Main Method  

(Java program execution starts from main method.)
(Main method is mandatory in every Java program)

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

public - Access Modifier

static - use main method without invoking any object.

void - returns nothing

main - method name
-------------------------------------------
6) Declarations
We can declare variables and constants
-----------------------------
Normal statements

Conditional blocks

Loop blocks

Method declarations

Etc...
-----------------------------
Sample Java Program:
package abcd;

import java.io.Console;
import java.lang.*;

public class Sample2 {
    // This is a Sample Java Program
    public static void main (String [] args){
        int a = 50, b, c; // Declaration of Variables
        b= 20; // Initialization
        System.out.println(a + b); // 70
        System.out.println("Addition of a, b is: "+ (a+b));
        final int MONEY = 100; // Declaration of Constant
       
        if (a > b) {
            System.out.println("A is a Big Number");
        }
        else
        {
            System.out.println("B is a Big Number");
        }   
       
        for (c = 1; c <= 10; c++){
            System.out.println(c);
        }
        }
    }

May 23, 2015

LoadRunner Interview Questions and Answers

LoadRunner Interview Questions and Answers
 

1) What is LoadRunner?
Loadrunner is a performance testing tool. It is developed by Mercury and acquired by HP. Latest version of Loadrunner is
LoadRunner12.
2) What is the purpose of LoadRunner?
The purpose of LoadRunner is to accurately measure and analyze the performance and functionality of a system.

3) What are the components of LoadRunner?
Load Runner contains the following components:
•    Virtual User Generator: captures end-user business process and creates an automated performance testing scripts, known as Vuser script.
•    Controller: organizes drives, manages and monitor the load test.
•    Load generators: creates the load by running Vusers.
•    Analysis: helps to view, dissect and compare the performance results.
•    Launcher: provides a single point of access for all of the Load Runner components.

4) What Component of LoadRunner would you use to play back the script in multi user mode?
The Controller component is used to playback the script in multi-user mode. This is done during a scenario run where a vuser script is executed by a number of vusers in a group.

5) What is the LoadRunner testing process?
Following are the testing process in Load Runner:
•    Plan load test
•    Create Vuser Scripts
•    Define Scenario
•    Run Scenario
•    Analyse results
6) What Component of LoadRunner is used to record a script?
The Virtual User Generator (VuGen) component is used to record a script and it enables you to develop Vuser scripts for a variety of application types and communication protocols.
7) What is load runner Agent?
Agent is interface between host machine and controller.

8) Can LoadRunner be used to test non-web based applications such as desktop applications?
LoadRunner can be used for desktop applications. When the VUE generator is started, it allows the tester to select the protocol that should be used. In addition to options for web-based applications, there are options for client/server applications as well.

9) What protocols are supported by LoadRunner?
LoadRunner supports standard protocols for the industry such as ODBC and HTTP as well as any other protocol that communicates over a windows socket.

10) Why is a Vuser script created?
The Vuser script is created to simulate the action that a virtual user will perform when executing a scenario.

11) What is the benefit of running a Vuser script as a thread?
The advantage of running a Vuser script as a thread which allows more Vusers to be used for one load generator. Running Vuser scripts as processes utilizes a lot of memory because all of the loaded scripts use the same driver.This limits the number of Vuser scripts that can be run on one generator.

12) How many types of graphs are available in LoadRunner?
There are 5 types of graphs they are,

•    Network delay time graph – displays the time that elapses between request and response
•    Two transaction response time graphs – one transaction response time graph for load and another one for percentile
•    Hits/second graph – Shows application traffic volume
•    Pages download/second graph – shows the rate at which pages are downloaded per second

13) What is the Rendezvous point?
Rendezvous point helps in emulating heavy user load (request) on the server. This instructs Vusers to act simultaneously. When the vuser reaches the Rendezvous point, it waits for all Vusers with Rendezvous point. Once designated numbers of Vusers reaches it, the Vusers are released. Function lr_rendezvous is used to create the Rendezvous point. This can be inserted by:
•    Rendezvous button on the floating Recording toolbar while recording.
•    After recording Rendezvous point is inserted through Insert> Rendezvous.

14) What are the different sections of the script? In what sequence does these section runs?
LoadRunner script has three sections vuser_init, Action and vuser_end.
•    vuser_init has requests/actions to login to the application/server.
•    Action has actual code to test the functionality of the application. This can be played many times in iterations.
•    Vuser_end has requests/actions to login out the application/server.
The sequence in which these sections get executed is vuser_init is at the very beginning and vuser_end at the very end. Action is executed in between the two.

15) How many VUsers are required for load testing?
This is essentially a trick question.
The number of VUsers required depends on your system under test, network configurations, hardware settings, memory, operating system, software applications objective of performance test. There cannot be any generic value for Vuser.

16) How can you set the number of Vusers in Loadrunner?
You can set the number of Vusers in the controller section while creating your scenarios. Many other advanced options like ramp-up, ramp-down of Vusers are also available in the Controller section.

17) What are the types of check points is available in LoadRunner?
Loadrunner provides two types of check points they are,
•    Image Checkpoints: This checkpoint will verify the presence of an image on a page during run-time
•    Text Checkpoint: This checkpoint will verify the presence of a text-string on a page during run-time
Both of the above checkpoints can be added in Vugen.

18) What is Elapsed Time in Load Runner?
Elapsed time designates how much time has passed since the launch of the current event and is measured differently for different screens as given below -
•    In Scenario Status Window - Elapsed time is measured from the moment you hit "Start Scenario" or “Initialize/Run Vuser?" button.
•    In "Vuser" window elapsed time is measured form the moment Vuser enters "running" state.

19) What is the process for developing a Vuser Script?
There are 4 steps for developing a vuser script they are,
•    Record the Vuser Script.
•    Playback / Enhance the recorded vuser script.
•    Define the various run-time settings & check
•    Incorporate the script in a Loadrunner scenario

20) What is the difference in running the Vuser as a process and as a thread? Which is more advantageous way of running Vuser?
•    When Vuser is run as a process the same driver program is loaded into memory for each Vuser. This will take a large amount of memory and will limit the number of Vusers you can run on a single generator
•    When Vuser is run as a thread, only one instance of driver program is shared by given number of Vusers.  You can run more number of Vusers on a single generator using the multi-threading mode.

21) What are monitors?
Monitors are used to "monitor" performance bottlenecks. They are used in Controller section of Load Runner.

22) How to Configuring Load Runner Monitors?Configuring Load Runner Monitors
•    Go to run tab of controller window.
•    Select the corresponding monitor.
•    Drag and drop the monitor into any graphs.
•    Right click on graph and select add measurements.
•    Click on ADD and enter the machine name of the Web/App/DBserver
•    Click on ADD and select the required performance counter to be measured during the scenario.
•    Click on OK.

23) Define concurrent load?
Concurrent load is a load of Vusers that will be logged into the system or application simultaneously in order to put stress on the server.

24) How do we write a user defined function in LoadRunner?
Use should create the external library that contains the function. This library must then be added to the bin directory of VuGen. And then, the user-defined function can be assigned as a parameter.

25) How can we find database related issues?
Monitors and the Data Resource Graph can be used to find database related issues. LoadRunner allow the tester to specify the resource that needs to be measured before the controller is run.

26) What is correlation?
Correlation is used to obtain data which are unique for each run of the script and which are generated by nested queries. Correlation provides the value to avoid errors arising out of duplicate values and also optimizing the code (to avoid nested queries).

27) Explain the difference between automatic correlation and manual correlation?
Automatic correlation is where we set some rules for correlation. It can be application server specific. Here values are replaced by data which are created by these rules. In manual correlation, the value we want to correlate is scanned and create correlation is used to correlate.

28) Where do you set automatic correlation options?
Automatic correlation from web point of view can be set in recording options and correlation tab. Here we can enable correlation for the entire script and choose either issue online messages or offline actions, where we can define rules for that correlation. Automatic correlation for database can be done using show output window and scan for correlation and picking the correlate query tab and choose which query value we want to correlate. If we know the specific value to be correlated, we just do create correlation for the value and specify how the value to be created.

29) What is standard deviation in loadrunner?
Standard deviation in loadrunner is done with the total response times of a particular transaction. For example, if you ran a transaction for 10 iterations. It will take the 10 transaction response times and calculates the Standard Deviation. If the standard deviation between these 10 values is high. Then it is a bottleneck, it should always low.
Examples:
•    Response times for login page with 5 iterations ->1, 1, 1, 1, 1=Standard Deviation is 0
•    Response times for a logout page with 5 iterations 1, 2, 3, 4, 5, 6=Standard Deviation is 2.5 which is high.

30) What is IP Spoofer in loadrunner?
We can create the IP addresses dynamically using IP Spoofer.

31) What is parameterization & why is parameterization necessary in the script?
Replacing hard coded values within the script with a parameter is called Parameterization. This helps a single virtual user (vuser) to use different data on each run. This simulates real life usage of application as it avoids server from caching results.

32) Why do you create parameters?
Parameters are like script variables. They are used to vary input to the server and to emulate real users. Different sets of data are sent to the server each time the script is run. Better simulate the usage model for more accurate testing from the Controller; one script can emulate many different users on the system.

33) What are the different type of parameters available?
Custom, Date/Time, File, Group Name, Iteration Number, Load Generator Name, Random Number, Table, Unique Number, User Defined Function and Vuser ID.

34) What is the difference between correlation and parameterization?
Differences between correlation and parameterization are below:
•    In correlation, dynamically generated values or data are used throughout the script where as in parameterization, user defined or user provided values are used.
•    The values in correlation is given by the server automatically where as in parameterization, values is given by database manually.
•    In correlation, Tester doesn’t know these values but in parameterization tester know these values.
•    Sometime correlation is mandatory but parameterization is optional.

35) What is the difference between Overlay graph and Correlate graph?
Overlay Graph: It will overlay the content of two graphs that shares a common x-axis
Correlate Graph: It will Plot the Y-axis of two graphs against each other.

36) What are the number of graphs you can monitor using Controller at a time? What is the max of them?
One, two, four and eight graphs can be seen at a time. The maximum number of graphs can be monitored in at a time is 8.

37) What is ramp up and ramp down?
•    RAMP: creating and initializing Virtual Users (VUser) on the basis on design. It is not necessary to do Ramp. By default we can create 10 Vuser from a single computer.
•    Ramp Up: is a process when we first create the Vuser and then initialize it.
•    Ramp Down: Disposing the Vuser, created in Ramp UP. If we don’t perform the Ramp up then the chance of Junk memory increases.

38) Explain Error handling in LoadRunner?
We can specify how a Vuser handles errors during script execution. By default, when a Vuser detects an error, it exits. A run-time setting is used to instruct a Vuser to complete the execution of the test script when an error occurs while executing the script.
•    For doing this, select the Continue on Error check box in the miscellaneous run-time settings.
•    Instruct VuGen to complete all execution in where an lr_error_message function was invoked, as Failed.
•    The lr_error_message function is invoked by a programmed “If statement”, when a certain condition is met.

39) How do you identify the performance bottlenecks?
•    Performance Bottlenecks can be detected by using monitors.
•    These monitors might be application server monitors, web server monitors, database server monitors and network monitors.
•    They help in finding out the troubled area in our scenario which causes increased response time.
•    The measurements made are usually performance response time, throughput, hits/sec, network delay graphs, etc.

40) What is the difference between transaction and transaction instance in loadrunner?
•    A transaction is used to measure time between executions of certain statements.
•    A transaction instance is used for performance analysis.

May 22, 2015

VBScript Tutorial 3

VBScript Tutorial 3:
(VBScript Variables Part-2, Constants, VBScript Operators, Conditional Statements Part-1)
iii) Variables
----------------------------
1) What is Variable?

2) Declaration of variables

3) Implicit and Explicit variables.

4) Assigning Values to Variables

5) Purpose of Variables

6) Naming Restrictions
-----------------------
i) Variable names should start with Alfa bytes

Ex:
Dim abc 'Correct
Dim a12 'Correct
Dim 1ab 'Incorrect

ii) Should not contain embedded periods

Ex:
Dim abc 'Correct
Dim ab c 'Incorrect
Dim ab.c 'Incorrect
Dim ab*c 'Incorrect
Dim ab_c 'Correct
----
iii) Must not exceed 255 characters

1 to 255
----------
iv) Must be unique in the scope of declaration.

Dim a, b, c 'Correct
Dim d, e 'Correct
Dim f, g, A 'Incorrect
-----------------------------------
7) Scope of Variables

i) Script Level Variables

They can be used for entire script.

ii) Function Level Variables

They can be used within the Functions only

Example:
-----------
Dim a, b, c 'Script level variables
a = 10
b = 20
c = a + b
Msgbox c '30
Function xyz()
    Dim d, e 'Function level variables
    d = 40
    e = a + d
    Msgbox e '50
End Function
Call xyz()
Dim f, g 'Script level variables
f = 70
g = b + d + f
Msgbox g '90
------------------------------
Option Explicit
Dim a, b, c 'Script level variables
a = 10
b = 20
c = a + b
Msgbox c '30
Function xyz()
    Dim d, e 'Function level variables
    d = 40
    e = a + d
    Msgbox e '50
End Function
Call xyz()
Dim f, g 'Script level variables
f = 70
g = b + d + f
Msgbox g 'Error
-----------------------------------
8) Types of Variables

i) Scalar Variable

To store one value at a time, Value may vary throughout the Execution.

ii) Array Variable

To store series of values at a time based on size of the Array.

Declare Array variable:

Dim a, b(3)
b(0) = 10
b(1) = "abcd"
b(2) = 1.34
b(3) = 40
a = b(0) + b(3)
Msgbox a '50
------------------
Dim a, b(3)
b(0) = 10
b(1) = "abcd"
b(2) = 1.34
b(3) = 40
b(4) = 50 'Error
a = b(0) + b(3)
Msgbox a '50
----------------------------------
Dynamic Array

Dim a, b(3), c()
ReDim c(3)
c(0) = 10
c(1) = 20
c(2) = 30
c(3) = 40
a = c(1) + c(2)
Msgbox a '50
ReDim c(5)
c(4) = 50
c(5) = 60
a = c(3) + c(5)
Msgbox a '60
------------------------
Use Preserve keyword

Dim a, b(3), c()
ReDim c(3)
c(0) = 10
c(1) = 20
c(2) = 30
c(3) = 40
a = c(1) + c(2)
Msgbox a '50
ReDim Preserve c(5)
c(4) = 50
c(5) = 60
a = c(3) + c(5)
Msgbox a '100
------------------------------------
Dimensional Arrays
----------------------
Dim a, b(3), c(), d(4, 5)
d(0, 0) = 10
-----------------------------------------
Assigning series of Values at a time to Array variables
a) Using Array Function

Dim a
Msgbox IsArray(a) 'False
a = Array(100, "VBScript", 20, 30, 40, #10/10/2010#)
Msgbox IsArray(a) 'True
Msgbox a(1) 'VBScript
Msgbox UBound(a) '5

b) Using Split Function

Dim a, b
a = "VB Script Language"
msgbox isArray(b) 'False
b = Split(a)
Msgbox IsArray(b) 'True
Msgbox b(1) 'Script
Msgbox UBound (b) '2
----------------------
Dim a, b
a = "VB,Script,Language"
msgbox isArray(b) 'False
b = Split(a, ",")
Msgbox IsArray(b) 'True
Msgbox b(1) 'Script
Msgbox UBound (b) '2
--------------------------
Dim a, b
a = "VB@Script@Language"
msgbox isArray(b) 'False
b = Split(a, "@")
Msgbox IsArray(b) 'True
Msgbox b(1) 'Script
Msgbox UBound (b) '2
----------------------------
Dim a, b
a = "VB@%$Script@%$Language"
msgbox isArray(b) 'False
b = Split(a, "@%$")
Msgbox IsArray(b) 'True
Msgbox b(1) 'Script
Msgbox UBound (b) '2
--------------------------------
Note: In Split Function default delimiter is space, we can use any value as delimiter, but we need specify the delimiter.
--------------------------------------
iv) Constants

They are used to replace literal values and they never change.

Constants 2 types
   
i) Built in constants

Ex: Msgbox VarType("abcd") '8

ii) User defined constants

Syntax:

Const ConstantName = ConstantValue

Or

Const Constant1Name = Constant1Value, Constant2Name = Constant2Value,Constant3Name = Constant3Value

Example:

Const city = "London", num = 100, x = #10/10/2010#
--------------------------------------------
Variables versus Constants

Dim city        Const city = "Hyderabad"
city="Hyderabad"    -------------
-----------        ---------------
-----------        city ="Mumbai" 'Error
---------
city="Mumbai"
-----------
-----------
---------
city="Delhi"
-----------
-----------
---------
-----------------------------------------------------
v) VBScript Operators

Operators are used to perform mathematical, comparison and logical operations.

Categories of operators:

i) Arithmetic Operators

ii) Comparison Operators

iii) Logical Operators
-------
* Concatenation operators (Part of Arithmetic Operators)

Operator precedence:

Operator precedence is VBScript operator priority process,
Generally VBScript evaluate operators from left to right, but if any high priority operator is there in right side then first VBScript evaluate high priority operator then general rule.

Note: In order to override operator precedence, use () symbol

Example:

Msgbox 2 + 2 * 4 ^ 2 '34
Msgbox (2 + 2) * 4 ^ 2 '64
-----------------
Msgbox 2 + 2 * 4 '10
Msgbox (2 + 2) * 4 '16
------------------------------------
i) Arithmetic Operators

1) Exponentiation ^

2) Multiplication *

3) Division /

4) Integer Division \

5) Mod Operator

6) Addition +

7) Subtraction -

8) Concatenation &
---------------------------------
Example:

Dim a, b, c
a = 10
b = 3
c = a ^ b
Msgbox c '1000

c = a * b
Msgbox c '30

c = a / b
Msgbox c '3.33333333333

c = a \ b
Msgbox c '3

c = a Mod b
Msgbox c '1

c = a + b
Msgbox c '13

c = a - b
Msgbox c '7

c = a & b
Msgbox c '103
--------------------------------
+ Operator
-----------------
Dim a, b, c
a = 10
b = 3
c = a + b
Msgbox c '13

a = 10
b = "3"
c = a + b
Msgbox c '13

a = "10"
b = "3"
c = a + b
Msgbox c '103

a = "Hydera"
b = "bad"
c = a + b
Msgbox c 'Hyderabad

a = "Hyderabad"
b = "123"
c = a + b
Msgbox c 'Hyderabad123

a = "Hyderabad"
b = 123
c = a + b
Msgbox c 'Error
-------------------------------------
& Operator

Dim a, b, c
a = 10
b = 3
c = a & b
Msgbox c '103

a = 10
b = "3"
c = a & b
Msgbox c '103

a = "10"
b = "3"
c = a & b
Msgbox c '103

a = "Hydera"
b = "bad"
c = a & b
Msgbox c 'Hyderabad

a = "Hyderabad"
b = "123"
c = a & b
Msgbox c 'Hyderabad123

a = "Hyderabad"
b = 123
c = a & b
Msgbox c 'Hyderabad123
---------------------------------
ii) Comparison Operators (All are Equal)

1) >

2) >=

3) <

4) <=

5) =

6) <>
--------------------------
Note: Comparison operators return Boolean (logical) result.
Ex: True / False
--------------------------
Example:

Dim a, b, c
a = 10
b = 3
c = a > b
Msgbox c 'True

c = a >= b
Msgbox c 'True

c = a <> b
Msgbox c 'True

c = a < b
Msgbox c 'False

c = a <= b
Msgbox c 'False

c = a = b
Msgbox c 'False
----------------------------------------------
iii) Logical Operators

1) Not (Logical Negation)

If Not Dialog("Login").Exist(3) Then
SystemUtil.Run "C:\Program Files\HP\Unified Functional Testing\samples\flight\app\flight4a.exe","","C:\Program Files\HP\Unified Functional Testing\samples\flight\app\",""
End If
Dialog("Login").Activate @@ hightlight id_;_525276_;_script infofile_;_ZIP::ssf1.xml_;_
Dialog("Login").WinEdit("Agent Name:").Set "asdf" @@ hightlight id_;_66772_;_script infofile_;_ZIP::ssf2.xml_;_
Dialog("Login").WinEdit("Password:").SetSecure "555fe8c872cfa7718d3ea9b61ac921c85ea7371b" @@ hightlight id_;_66774_;_script infofile_;_ZIP::ssf3.xml_;_
Dialog("Login").WinButton("OK").Click @@ hightlight id_;_66776_;_script infofile_;_ZIP::ssf4.xml_;_
--------------------------------------
2) And (Logical Conjunction)
Dim a, b, c
a = 100
b = 90
c = 80

If a > b And a > c Then
    Msgbox "A is a Big Number"
    Else
    Msgbox "A is Not a Big Number"
End If
---------------------
Result Criteria:

Exp1    Exp2    Result
------------------------
True    True    True
True    False    False
False    True    False
False    False    False
--------------------------------
3) Or (Logical Disjunction)

Result Criteria:

Exp1    Exp2    Result
------------------------
True    True    True
True    False    True
False    True    True
False    False    False

4) XOr (Logical exclusion)

Result Criteria:

Exp1    Exp2    Result
------------------------
True    True    False
True    False    True
False    True    True
False    False    False
----------------------------------------------------
vi) Flow Control Statements
    Conditional Statements
    Loop Statements
----------------------
Conditional Statements

a) Types of Conditional statements
i) If Statement

ii) Select Case Statement
----------------------------
b) Types of Conditions

i) Single Condition

ii) Compound Condition

iii) Nested Condition
----------------------------
c) Purpose of conditional statements in UFT:

i) To insert verification points

ii) For Error handling
------------------------------   
d) Usage of Conditional Statements

i) Execute a statement when condition is True/ Simple If

ii) Execute a block of statements when condition is True.

iii) Execute a block of statements when condition is True, otherwise
execute another block of statements.

iv) Decide among several alternates (ElseIf)

v) Execute a block of statement when more than one condition is true. (Nested If)

vi) Decide among several alternates (using select Case)
--------------------------------------------------------------------
i) Execute a statement when condition is True/ Simple If
Syntax:

If Condition Then Statement

Example:

Dim myDate
myDate = #10/10/2010#

If myDate < Date Then myDate = Date
Msgbox myDate

myDate = #10/10/2017#

If myDate < Date Then myDate = Date
Msgbox myDate
-----------------------------------------------------
ii) Execute a block of statements when condition is True.
Syntax:

If Condition Then
Statements
-----------
----------
----------
End If
--------------------------
Example:

Dim a, b
a = 100
b = 500

If a > b Then
    Msgbox "A is a Big Number"
End If
--------------------------------------------

May 21, 2015

JMeter Interview Questions

  • JMeter Interview Questions and Answers
    1) What is Jmeter?
    •    A multifunctional open source software testing tool with huge online community support and large database of fans.
    •    Jmeter is developed in Java. Due to its pluggable nature with different tools, it is giving huge competition to different tools and has occupied large market share in software testing and is growing day by day.
    •    Jmeter is used for different types of testing – Performance Testing, Functional Testing, Regression Testing, Unit Testing.

    2) Give a brief history about Jmeter?
    A Brief History of Jmeter:
    Stefano Mazzocchi is credited for being the developer of this unique tool- Apache JMeter, which is claimed to have been developed to test the strength and performance of the Apache JServ. However; it was later redesigned to make it capable of doing, performance testing, functional testing, regression testing, and unit testing as well.
    Since November 2011, the Apache JMeter project has been included in the group of the company’s Top Level projects and today it consists of a separate website and a dedicated Project Management Committee to handle its operations and to provide assistance.

    3) Explain how JMeter works?
    JMeter acts like a group of users sending requests to a target server. It collects response from target server and other statistics which show the performance of the application or server via graphs or tables.

    4) What is Performance Testing?
    Performance Testing is performed to determine response time of the some components of the system perform under a particular workload. It is generally measured in terms of response time for the user activity. It is designed to test the overall performance of the system at high load and stress condition. It identifies the drawback of the architectural design which helps to tune the application.

    5) What is Load Test?
    This test is basically used for exercising\discovering the system under the top load it was designed to operate under.

    6) What is distributed load testing? How can it be achieved in JMeter?
    Distributed load testing is the process using which multiple systems can be used for simulating load of large number of users. The reason of using more than one system for load testing is the limitation of single system to generate large number of threads (users). In JMeter we can do distributed load testing using the master slave configuration.

    7) What is concurrent user hits in load testing?
    When the multiple users, without any time difference, hits on a same event of the application under the load test is called a concurrent user hit. The concurrency point is added so that multiple Virtual User can work on a single event of the application. By adding concurrency point, the virtual users will wait for the other Virtual users which are running the scripts, if they reach early. When all the users reached to the concurrency point, only then they start hitting the requests.

    8) What are the benefits that JMeter offers for performance testing?
    JMeter offers benefits on performance testing like,
    •    It can be used to test performance for both, static resources as well as dynamic resources
    •    It can handle a maximum number of concurrent users then your website can handle
    •    It provides the graphical analyses of performance reports

    9) What is baseline testing?
    Baseline testing is a testing which is performed on the application before coming to any conclusion. It can be either the verification or validation process which provides an idea of what the next stage has to do. It is very important testing technique, if done properly, 85% of performance problems can be identified and solved when proper baseline tests are done.

    10) What is the need for Performance testing?
    Performance testing is needed to verify the below:
    •    Response time of application for the intended number of users
    •    Maximum load resisting capacity of application.
    •    Capacity of application to handling the number of transactions.
    •    Stability of application under expected and unexpected user load.
    •    Ensuring that users have proper response time on production

    11) What is the reason behind performing automated load testing?
    Following drawbacks of manual Load Testing that leads to Automation load testing:
    •    Difficult to measure the performance of the application accurately.
    •    Difficult to do synchronization between the users.
    •    Number of real time users are required to involve in Performance Testing
    •    Difficult to analyze and identify the results & bottlenecks.
    •    Increases the infrastructure cost

    12) What is performance tuning?
    To improve the system performance we follow a mechanism, known as Performance tuning. To improve the systems performance there are two types of tuning performed they are,
    •    Hardware tuning: Optimizing, adding or replacing the hardware components of the system and changes in the infrastructure level to improve the systems performance is called hardware tuning.
    •    Software tuning: Identifying the software level bottlenecks by profiling the code, database etc. Fine tuning or modifying the software to fix the bottlenecks is called software tuning.

    13) What is Spike testing and how can we perform it in JMeter?
    Suddenly spiking or increasing the number of users at certain point of application and then monitoring the behavior at that intervals is spike testing.
    In JMeter spike testing can be achieved using Synchronizing Timer. Synchronizing timer blocks the threads until a particular number of threads have been blocked, and then release them at once thus creating large instantaneous load.

    14) What are the other applications tested by Jmeter?
    JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more)

    15) What is Test Plan in Jmeter?
    Test plan describes a series of steps JMeter will execute when run. A complete test plan will consist of one or more Thread Groups, logic controllers, and sample generating controllers, listeners, timers, assertions, and configuration elements.

    16) What are Controllers and its types?
    JMeter has two types of Controllers, they are
    •    Samplers Controllers
    •    Logical Controllers
    Samplers Controllers:Samplers tell JMeter to send requests to a server.
    For example, add an HTTP Request Sampler if you want JMeter to send an HTTP request. You can also customize a request by adding one or more Configuration Elements to a Sampler.
    Logical Controllers:Logical Controllers let you customize the logic that JMeter uses to decide when to send requests. Logic Controllers can change the order of requests coming from their child elements.
    For example, you can add an Interleave Logic Controller to alternate between two HTTP Request Samplers.

    17) What are listeners in Jmeter?
    Listeners in Jmeter are used to capture the response data of load test. We can have response data (result) in cvs, image (graph) or in html format.

    18) Name 4 to 5 listeners in jmeter, which are commonly used?

  • •    View result tree
    •    Summary report
    •    Aggregate Graph
    •    Response time vs. thread
    •    Composite graph
     
  • 19) What is median in jmeter listener?
    It is a number which divides the samples into two equal halves. Half of the samples are smaller than the median, and half are larger.

    20) What is throughput in jmeter listener?
    Throughput is relation between time and data. It shows the relation between http request and unit time. Means how many requests are processed in how much time.
    Throughput = Number of requests / Time(second or millisecond)

    21)What is heap size in jmeter?
    Jmeter is work in java, and heap size is related to java. Java heap is the heap size allocated to JVM applications which takes care of the new objects being created. If the objects being created exceed the heap size, it will throw an error of java.lang.out.of.memory.
    Java's default heap size limit in Jmeter is 256 MB.

    22) Is it possible that, if we increase the heap size in Jmeter, then application(jmeter) might not work?
    Yes, it is possible. Because heap size depends upon the empty space of your machine in c drive as well as your RAM. If the RAM is 1 GB and you increased the heap 2048, it may not work.

    23)What is 90% line in JMeter?
    •    The aggregate report listener have 90% line as one of the metric. The Apache JMeter manual describes 90% line as- "90% of the samples took no more than this time". It is actually the 90 percentile of the response times of the samples -
    •    90 percentile = (90/100)*N+1/2 where N is the number of samples
    •    So, if there are 10 samples then 90%line will be 9.5 or 9. It means the 9th value in the sorted list of samples (sorted according to ascending order of their response times) will be the 90%line value.

    24) What is Blaze Meter?
    Blaze Meter is a cloud based service compatible with Apache JMeter. It generates large amount of instant load and provide very comprehensive reporting and analysis features.
    In Blaze meter we can just upload the JMeter script and run the load test on cloud with predefined number of users.

    25) What is correlation?
    Correlation is the most important aspect of scripting. It generally includes fetching dynamic data from preceding requests/calls and posting it to the subsequent requests.

    26) Explain parameterization in JMeter?
    Parameterization is process of generalizing some user input, so as to use it for multiple users or executions.

    27) Which Jmeter elements are used for Parameterization?
    •    User parameter
    •    CSV Data Set config

    28) Explain what a timer in JMeter is and what are the types of it?
    A JMeter thread by default will send requests continuously without any pause. To get a pause between the request, Timers are used. Some of the Timers used are Constant Timer, Gaussian Random Timer, Synchronizing Timer, and Uniform Random Timer and so on.
    31)Explain what is the role of Timer in JMeter?
    With the help of timer, JMeter can delay the time between each request, which a thread makes. It can solve the overload problem of the server.

    29) Explain what is Assertion in JMeter? What are the types of assertion?
    Assertion helps to verify that your server under test returns the expected results.
    Some commonly used Assertion in JMeter are,
    •    Response Assertion
    •    Duration Assertion
    •    Size Assertion
    •    XML Assertion
    •    HTML Assertion

May 20, 2015

VBScript Tutorial for beginners

VBScript Tutorial 2 
(Comments, Data Types and Variables Part-1)


i) VBScript Comments
Comments are English words; we use comments for Code documentation.

Purpose:

    To make the code readable
    To make the code disable from execution

Syntax:
-------------
Use ' symbol before the statement

Use Rem command followed by space

'Dialog("Login").WinEdit("Agent Name:").Set "asdf"
Dialog("Login").WinEdit("Password:").SetSecure "555d2f3be286cd5dc51229cfb136d5bf41a13691"
Dialog("Login").WinButton("OK").Click ' t4tyy y56u56u867 76578789
Rem Window("Flight Reservation").Close
--------------------------------------
Comment a block of statements

    Select Statements
    Use Shortcut key (Ctrl + M)
    Or
Select Statements
Edit menu -> Format -> Comment
---------------------------------
Uncomment

    select comment block
    Use Shortcut key (Ctrl + Shift + M)

Or
Select statements
Edit menu -> Format -> Uncomment
---------------------------------------
Usage of Comments in UFT:
---------------------------
a) To write Test headers

'***************************************************
'Test Name: Verify the Total in Flight Reservation

'Author: abcd

'Date of Creation: May 21st 2015

'Date of Modification: NA

'Pre-requisites:
'login.tsr, abcd.vbs etc...

'Test Flow:
'i) Launch the Application and Login.
'ii) Open an Order and capture "Tickets", "Price", and "Total" values
'iii) Convert the data and compare if the "Total" = "Tickets" * "Price" or not
'iv) Close the Application
'***************************************************
b) To write Function headers
'**********************************************
'Function Name: Login

'Author: abcd

'Date of Creation: May 21st 2015

'Date of Modification: NA

'Input: Agent Name and Password

'Output: FR window

'Purpose: Agent Login to FR Application
'**********************************************
c) To explain the complex logic

d) To explain the resources usage.

----------------------------------------
ii) VBScript Data Types
-------------------------------------
> VBScript doesn't support Explicit declaration of Data Types.

> In VBScript only Data type is Variant, It can hold any type of data, based on usage of data VBScript internally considers Data sub types.

Ex:

Dim city

city = "Hyderabad" 'String
---------
----------
----------
city = 100 'Integer
---------
----------
----------
city = 1.24 'Double
---------
----------
----------
city = #10/10/2015# 'Date
-----------------------------
> Check Data Sub types using VarType Function

> Convert the Data from one sub type to another.
----------------------------------------------------
Types of Results in Computer Programming:
-----------------------------------------
i) Value based Result
Ex:

Msgbox 5 + 3 ' 8
Msgbox 4 * 7 '28
-------------------------
ii) Boolean / Logical Result

Ex:
Msgbox IsNumeric("ABCD") 'False
Msgbox IsNumeric(100) 'True
---------------------------------
iii) Constant based Result

Msgbox VarType(100) '2 for Integer
-----------------------------------------------
Check Data Sub types using VarType Function
----------------------------------------
Dim a
Msgbox VarType(a) '0 for Empty / Uninitialized

a = 100
Msgbox VarType(a) '2 for Integer

Msgbox VarType(100) '2 for Integer

Msgbox VarType("abcd") '8 for String

Msgbox VarType("100") ' 8 for String

Msgbox VarType(1.24) ' 5 for Double

Msgbox VarType(#10/10/2010#) '7 for Date

Set a = CreateObject("Scripting.FileSystemObject")
Msgbox VarType(a) '9 for Automation Object
--------------------------------------------
Convert the Data from one sub type to another.
----------------------------------------------
Why we need to convert the Data?

In Computer Programming value Assignment 2 types:

i) Initialization

Ex:

a = 100
----------------------------
ii) Reading
    Read data using Input devices
    Read data from a file
    Read data from a database
    Read data from Application objects
Ex:
'Before Conversion
Dim a, b
a = InputBox("Enter A Value")
b = InputBox("Enter B Value")
Msgbox a + b
---------------------------------------
Note: If we read data then VBScript considers the data as String type data.
In order to perform math-metical calculations, we need to convert the data.

> Using conversion Functions we can convert the data.

'After Conversion
Dim a, b
a = InputBox("Enter A Value")
b = InputBox("Enter B Value")
Msgbox Cint (a) + Cint (b)
----------------------------------
'We can't convert Alfa bytes into Integer or double type.

Ex:
Dim val, Tickets
val = InputBox("Enter a value")
Msgbox VarType(val) '8 for String
val = Cint(val)
Msgbox VarType(val)

Tickets = Window("Flight Reservation").WinEdit("Tickets:").GetROProperty("text")
Msgbox VarType(Tickets) '8 for String
Msgbox VarType(Cint(Tickets)) ' 2 for Integer
------------------------------------------------------
iii) Variables

1) What is Variable?

A named memory location to store the data.

In computer environment there are two types of memory

i) Primary memory: RAM

ii) Secondary memory: HDD, CD-Rom, DVD, USB Drive etc...

> Variables store in Primary Memory (RAM).
---------------------------------------------------
2) Declaration of variables

> using either Public or Private or Dim statements, we can declare Variables.

Ex:

Dim a
Dim x, y, z
Or
Dim x
Dim y
Dim z
---------------------------
3) Implicit and Explicit variables.

Ex:
Dim a
a = 100 'Explicit
b = 200 'Implicit
Msgbox a + b
---------------------
Dim Tickets, Price, Total
Tickets = 7
Price = 100
Total = Tickets * Priee
Msgbox Total '0 (Incorrect output)
-----------
Option Explicit
Dim Tickets, Price, Total
Tickets = 7
Price = 100
Total = Tickets * Priee
Msgbox Total 'Error
---------------------------
Option Explicit - It forces declaration of all variables in a Script
---------------------------------------------------------
4) Assigning Values to Variables

Assigning Values to Variables is two types

i) Initialization

ii) Reading

Example:
Dim num1, num2
num1 = 100 'Initialization
num2 = InputBox ("Enter Num2 value") ' Reading
Msgbox num1 + num2
-----------------------
5) Purpose of Variables

Dim a, ord
'Holding the data
a = 100
Msgbox a
'Storing the data that returned by a Function
a = Now
Msgbox a
'Storing the data that returned by a program
a = (10 ^ 3)*2
Msgbox a

'storing object Reference
Set a = CreateObject("Scripting.FileSystemObject")

'As parameter
For ord = 1 To 5 Step 1
Window("Flight Reservation").Activate
Window("Flight Reservation").WinButton("Button").Click
Window("Flight Reservation").Dialog("Open Order").WinCheckBox("Order No.").Set "ON"
Window("Flight Reservation").Dialog("Open Order").WinEdit("Edit").Set ord
Wait 2
Window("Flight Reservation").Dialog("Open Order").WinButton("OK").Click
Next
------------------------------------------
6) Naming Restrictions

i) Variable names should start with Alfa bytes.
Ex:
Dim abc 'Correct
Dim a9 'Correct
Dim 7ab    'Incorrect

ii) Variable names should not contain embedded periods.
----------------------------------------
7) Scope of variables

8) Types of Variables

9) Array variables
    Constant, Dynamic and Diementional Arrays
    Assigning series of values to an Array variable
--------------------------------------------------------------
(*Incomplete)

SAP Testing Interview Questions

SAP Testing Interview Questions
 

1) What is SAP?
SAP is the name of the company founded in 1972 under the German name (Systems, Applications, and Products in Data Processing) is the leading ERP (Enterprise Resource Planning) software package.

2) What is SAP Testing?
SAP testing helps to detect and rectify errors at all project phases.So it gives the high confidence that the SAP application supports business process as per organization requirements from the day of go-live phase.

3) Why do you usually choose to implement SAP?
There are number of technical reasons numbers of companies are planning to implement SAP. It's highly configurable, highly secure data handling, min data redundancy, max data consistency, you can capitalize on economics of sales like purchasing, tight integration-cross function.

4) What is ERP?
ERP is a package with the techniques and concepts for the integrated management of business as a whole, for effective use of management resources, to improve the efficiency of an enterprise. Initially, ERP was targeted for manufacturing industry mainly for planning and managing core business like production and financial market. As the growth and merits of ERP package ERP software is designed for basic process of a company from manufacturing to small shops with a target of integrating information across the company.

5) What are the different types of ERP?
Different types of ERP are,

SAP, BAAN, JD Edwards, Oracle Financials, Siebel, PeopleSoft. Among all the ERP, most of the companies implemented or trying to implement SAP because of number of advantages over other ERP packages.

6) How can an ERP such as SAP help a business owner learn more about how business operates?
In order to use an ERP system, abusiness person must understand the business processes and how they work together from one functional area to the other. This knowledge gives the student a much deeper understanding of how a business operates. Using SAP as a tool to learn about ERP systems will require that the people understand the business processes and how they integrate.

7) Why do you usually choose to implement SAP?
There are number of technical reasons numbers of companies are planning to implement SAP. It’s highly configurable, highly secure data handling, min data redundancy, max data consistency, you can capitalize on economics of sales like purchasing, tight integration-cross function.

8) How can an ERP such as SAP help a business owner learn more about how business operates?
In order to use an ERP system, abusiness person must understand the business processes and how they work together from one functional area to the other. This knowledge gives the student a much deeper understanding of how a business operates. Using SAP as a tool to learn about ERP systems will require that thepeople understand the business processes and how they integrate.

9) What is the different type of users in SAP?
Different types of users in SAP are,
a) Dialog Users
b) System Users
c)  Communication Users
d) Service Users
e) Reference Users

10) Explain what is the use of reference and service user in SAP?
Service User:  For “service user” initial password or expiration of password are not checked.  Only admin has rights to change the password, users cannot. Multiple logins are possible.
Usage: Service users are for anonymous users.  Minimum authorization should be given to such type of users
Reference User: For this kind of users GUI login is not possible.
Usage: In case of emergency, with the help of reference user, it is possible to provide one user authorization to another user.

11) Explain what is “Data Sets” in SAP?
To solve queries which cannot be solved by using the method interfaces, a set of information is used. This set of information is known as “Data Sets”.

12) What is SAPS?
SAPS stands for SAP Application Performance Standard, which is a hardware independent unit which describes the performance of a system configuration in SAP environment.

13) How many types of work processes are there in SAP?
There are seven types of work processes they are:
a) Dialog
b) Enque
c)  Update
d) Background
e) Spool
f)  Message
g) Server
h) Gateway

14) Is SAP a database?
NO. SAP is not a database but it uses databases from other vendors like Oracle. Although SAP has recently released its own database HANA.

15) What is SAP R/3?
A third generation set of highly integrated software modules that performs common business function based on multinational leading practice. Takes care of any enterprise however diverse in operation, spread over the world. In R/3 system all the three servers like presentation, application server and database server are located at different system.

16) What are presentation, application and database servers in SAP R/3?
The application layer of an R/3 System is made up of the application servers and the message server. Application programs in an R/3 System are run on application servers. The application servers communicate with the presentation components, the database, and also with each other, using the message server. All the data are stored in a centralized server. This server is called database server.

17) What is the difference between Developer Trace, System Log and System Trace?
a) System Trace: When you want to record internal SAP system activities, system trace is used. The trace is useful in diagnosis internal problems within SAP system and the host system.
b) System Log: To know the recent logs for application server and CI, System log is referred.
c)  Developer Trace: In the event of problems, developer trace, records the technical information about the error or problem. For problem analysis and system monitoring Developer trace or System log is used.

18) What is OSP$ mean?
Two users “OPS$adm” and “OPS$SAP” Service are created in your SAP system and to connect and communicate with database internally this user mechanism is used.

19) What is the difference between – support package, kernel and SAP note?
•    SAP Note: An error in a single transaction or program is removed by implementing a SAP note.
•    Kernel: Kernel contains the executable files (.EXE) like other applications and when a Kernel upgrade is done a new version of the EXE file replaces the older versions.
•    Support Package: SAP support packages is a bunch of corrections, this can be used by applying transaction SPAM

20) What is private mode?
In private mode, the heap data is exclusively allocated by the user and is no more shared or available across the system. This occurs when your extended memory is exhausted.

21) Explain what is SAP IDES?
SAP Internet Demonstration and Evaluation System or SAP IDES, this system demonstrate the functionality of various SAP solutions used by important customers.

22) What is the role of “Application Server”?
Application Server takes the request from the user and if the request requires data then it connects to the database server and gives output.

23) What is supplementation language?
Default SAP systems are pre-installed with English and German. SAP does support many other language which may not full translate from the default English and German. To fill this gap, Supplementary language (a program) is installed.

24) What are the different types of RFC and explain what Transactional RFC is?
RFC (Remote Function Call) is a mechanism to communicate and exchanging the information between other SAP systems.  There are four types of RFC’s system
a) Synchronous RFC (S RFC)
b) Asynchronous RFC (A RFC)
c)  Transactional RFC (T RFC)
d) Queued RFC (Q RFC)
Transactional RFC (TRFC):  This type of RFC is similar to asynchronous RFC, but by allocating a transaction ID (TID) it makes sure that the request sent multiple times due to an error must process only for once.  In T RFC the remote system does not have to be available at the moment unlike asynchronous RFC.

25) Explain how to define logon groups?
Logon groups can be defined using the Tcode smlg. In order to do that you have to create the group and then assign the instances for that particular group.

26) What is SAP single stack system?
A single stack system is defined by SAP system either with JAVA as runtime engine or SAP Net weaver as ABAP.
e.g.: Single Stack System (Java) is SAP Enterprise Portal System (Ep)
  Single Stack System (ABAP) is SAP ERP (ECC)

27) Explain what is heterogeneous system copy and homogenous system copy?
Homogenous system copy= Same OS + Same Database
Heterogeneous system copy= Different OS + Different database or same database.

28) What is the difference between OLAP and Data Mining?
OLAP – On line Analytical processing is a reporting tool configured to understand your database schema, composition facts and dimensions. By simple point-n-clicking, a user can run any number of canned or user-designed reports without having to know anything of SQL or the schema. Because of that prior configuration, the OLAP engine “builds” and executes the appropriate SQL. Mining is to build the application to specifically look at detailed analyses, often algorithmic; even more often misappropriate called “reporting.

29) Explain what is business KPIs?
Business KPIs are Key Performance Indicators.  It indicates the performance of a company at a strategic level. They help in leading the company on the desired track by comparing company’s previous performance with the market leaders in the same market.

30) Name some drawbacks of SAP?
Interfaces are huge problem, Determine where master data resides, Expensive, very complex, demands highly trained staff, lengthy implementation time.