Tuesday, 27 March 2012

Data Table Methods In QTP

Data Tables plays major role when using Data/Keyword Driven frameworks. It'll be easy to work with Data tables if we know the methods.We have the following methods in Data Tables.


AddSheet:This method is used to add only one new sheet to the run time data table.
Syntax: DataTable.AddSheet "sheet name"
Example: DataTable.AddSheet "stc"


DeleteSheet:This method is used to delete a single sheet from run time data table.
Syntax:DataTable.DeleteSheet (sheet id)
Example: DataTable.DeleteSheet (3)


GetSheetCount:This method is used to get the number of sheets available in the run time table.
Syntax:DataTable.GetSheetCount


GetRowCount:This method is used to get the number of rows from the run time data table. Obviously it'll return the longest used column count from the data table.
Syntax:DataTable.GetRowCount


GetSheet: This method is used to return the specific sheet from the run time data table.
Syntax: DataTable.GetSheet(sheet id)
Example:DataTable.GetSheet("stc").GetRowCount


Value: This method is used to set or get the values from a particular cell of the run time data table.
Syntax to set data:
DataTable.Value(Parameter_Name,Sheet_Name) =  value or variable
DataTable(Parameter_Name,Sheet_Name) =  Value
Example: DataTable.Value(5,2)=a


Syntax to get data:
variable = DataTable.Value(Parameter_Name,Sheet_Name)
variable = DataTable.(Parameter_Name,Sheet_Name)
Example: a= DataTable.Value(5,2)


SetCurrentRow:This method is used to set a particular row as current row. By default it's first row of the 1st sheet.
Syntax:DataTable.SetCurrentRow(rowNumber)
Example: dataTable.SetCurrentRow(3)
dataTable.value(1,1)="software testing community"


SetNextRow:This method is used to set the next row as the new current row after the current row.
Syntax:DataTable.SetNextRow
Example:DataTable.SetCurrentRow(3)
DataTable.SetNextRow
DataTable.Value(2,1)="software testing community"


SetPrevRow:This method is to set the row before the current row as the current row in the run time data table.
Syntax:DataTable.SerPrevRow
Example:datatable.SetCurrentRow(3)
datatable.SerPrevRow
datatable.value(1,1)="stc"


Import:This method is used to import an Excel file to the run time table.Assume that we have 3 workbooks in the selected file.We can import all 3 worksheets to the run time data table.
Syntax: DataTable.Import "file path"
Example:DataTable.Import "C:\Automation\DataSheet\stc.xls"


ImportSheet: This method is used to import a particular sheet of the selected Excel file to the run time data table.
Syntax: DataTable.ImportSheet "file path","source sheet", "destination sheet"
Example: datatable.ImportSheet "C:\Automation\DataSheet\stc.xls",2,1


Export: This method is used to export a copy of the run time data table to a particular location.
Syntax:DataTable.Export "file path".This will export all the sheets from the run time data table.
Example:DataTable.Export "C:\Automation\DataSheet\stc1.xls"


ExportSheet: This method is used to export copy of a particular sheet in  the run time data table to a particular location.

Syntax:DataTable.ExportShee "file path","source sheet.
Example:DataTable.Export "C:\Automation\DataSheet\stc1.xls",3

Monday, 26 March 2012

Object Identification Configuration in QTP

As most of us are aware of that the Object Identification plays a major role in Automation Testing. So, it's important to know the details about the different Object Identification types.


Generally we have 20-30 different properties for an object. But QTP uses around 3-4 properties to uniquely identify the objects. By default QTP has some default properties for each environment to identify the objects. If those properties are not sufficient we can configure some more properties to identify the objects.


We have the following types of Object Identification mechanisms or methods.
Normal Identification Mechanism: In this mechanism we have Mandatory properties and Assistive Properties. QTP will read all mandatory properties at one shot to identify the objects uniquely. If those properties are not sufficient it'll take first Assistive Property and progress. It'll be keep on going until the object is identified uniquely.
Assume that the objects are not identified uniquely based on the Mandatory and Assistive Properties. Then it'll go for Smart Identification mechanism.


Smart Identification Mechanism: This is helpful to identify the objects in a unique manner if the Normal Identification is not enough. In Smart Identification we have Base Filter and Optional Filter Properties.First QTP will read the Base Filter Properties as a whole and try to uniquely identify the objects. If not required it'll add the first Optional Filter Property and proceed further.The same process will be continued until the object is uniquely identified.


We need to remember that the Smart Identification is optional and mainly used to avoid the Ordinal Identifiers.


Ordinal Identifiers: Assume that the Normal identification and Smart Identification are not enough to identify the objects uniquely.Then we have one more option called Ordinal Identifier. We have 3 types of Ordinal Identifiers.
  • Location: This is mainly based on the location in AUT. Location number usually starts from zero.
  • Index: This represents the sequence of the programs which are opened. This also starts from zero.
  • Creation Time:This represents the loading time of the objects.It starts from zero.
Global Settings: We can't have Global settings in QTP as it's a standalone application. To overcome this we have an option to make the settings same across n-number of installers.


We have settings in 3 places.
  1. File > Settings
  2. Tools > Options
  3. Tools > Object Identification
Once the settings are configured we need to generate the scripts and share it with the team members.So, the tool will be launched with the same settings across n-number of installers when the script is executed.

Wednesday, 21 March 2012

Methods And Operations in QTP

This article gives the details about some of the frequently used QTP methods and its operations. We have the following methods.

  • Activate: This method is to activate Windows/ Dialogs
          Syntax: Object Hierarchy.Activate
           Example: Window("Flight Reservation").Activate
                             Dialog("Login").Activate
  • Click: This method to click the objects.
          Syntax: Object Hierarchy.Click
          Example:Window("Flight Reservation"). WinButton("Login").Click
  • Close: This method to close the browsers, windows,dialogs etc..
          Syntax: Object Hierarchy.Close

          Example:Window("Flight Reservation").Close
                          Dialog("Login").Close
                          Broswer("GMail").Close
  • dbClick: This method to double click the objects.
  • Set: This method can be for any one of the following operation
          01. Set the values to the edit box 
                Syntax: Object Hierarchy.Set
                Example: Dialog("Login").WinEdit("UserName").Set "STC")
          02. To select the radio buttons
                Syntax: Object Hierarchy.Set
                Example: Window("Flight Reservation").WinRadioButton("Business").Set
          03. To Select or Deselect the checkboxes
       Syntax: Object Hierarchy.Set "ON/OFF"
       Example: Window("Flight Reservation").WinCheckBox("Business").Set "ON"

  • Select Method:It is used for selecting an item from a combo box or list box.
       Syntax: Object hierarchy.select “item”
       Example:Window("Flight Reservation").WinComboBox("Fly From:").Select "India"
       Window("Flight Reservation").Dialog("Flights Table").WinList("From").Select "1222572
  • GetVisibletext: It returns Text from the specified area.
       Syntax: Variable =object hierarchy.getvisibletext
       Example:bb=Window("Flight Reservation").WinComboBox("Fly From:").GetVisibleText
       msgbox bb
  • GetRoproperty:It returns current object property value. It can be used for getting any object’s, any property value.
       Syntax: Variable = object hierarchy.getroproperty (“property name”)
       Example: aa=Window("Flight Reservation").WinEdit("Tickets:").GetROProperty ("width")
       msgbox aa
  •  Navigate Method:It opens a specified URL in the Browser.
     Syntax: object hierarchy.navigate “URL”
     Example: Browser("Yahoo!").Navigate http://www.google.co.in/
  •  Getitemscount: It returns number of items in a combobox.
    Syntax: Variable=object hierarchy.getitemscount
    Example: a=Window("Flight Reservation").WinComboBox("Fly From:").GetItemsCount
    msgbox a
  • Getcontent: It returns all items from a combobox.
    Syntax: variable=object hierarchy.GetContent
    Example:y=Window("Flight Reservation").WinComboBox("Fly From:").GetContent
    msgbox y
  • Exist property: It checks whether the object is available or not.
    Syntax: Object hierarchy.exist(time in seconds)
    Example: Window("Flight Reservation").Exist(5)

Tuesday, 20 March 2012

Reporting Defects In QTP

QTP is an Object Based Test Automation tool. We can create and execute the tests using QTP. QTP provides varies methods to create and enhance tests.


Once the test are executed QTP provides the result in a result window and also it has the facility to define our own test results. We also have the result exporting facility in QTP Result Window.


The result should be analyzed by the Test Engineer who writes and executes the automation tests. Once the test execution results are analyzed, we can report the defect in any methods.


If we use the QTP Functional Test Automation and defect management manual the defects should be entered in the company described format.


If we are using the defect tracking tools like JIRA, Bugzilla etc., we can enter our defects in the standard templates configured in the tool. It varies from companies to companies.


We can also directly enter the defects into Quality Center if it's integrated with QTP. We have the facility to send the defect directly from Result Window to Quality Center.

Virtual Object Configuration in QTP

Some of the objects looks like standard objects in the Application Under Test but they will not be recognized by QTP. So, we need to configure the objects in such a way that the recognized by QTP. Such objects are called as Virtual Objects.


In Virtual object configuration we need to mark the certain area or the User Defined Object as Virtual object.Virtual object enables us to run the tests on the objects which are not identified by QTP. We can manage the virtual objects by using Virtual Object Manager.


We can configure the Virtual Objects by following the steps mentioned below.
  • Navigate to Tools Menu
  • Go to Virtual Objects
  • Select "New Virtual Object" option
  • Click Next
  • Mark the area of the application with the help of Mark Button Option
  • Click Next
  • Select any one of the following options
               01.Entire Parent Hierarchy
                02.Parent Only
  • Click Next
  • Enter the specified object name (Ex: Login)
  • Specify the collection name
  • Click on Finish
We can create and manage the Virtual Manager feature in QTP.

Monday, 19 March 2012

Measuring Transaction Time In QTP

In some situations we may need to track the time taken for the script execution or need to track the time taken for a functionality to completed. For example, we can take a Networking application. Assume that we are running the discovery service to identify the list of devices available on the selected network. Here we need to measure the time taken to discover all the devices.

QTP provides a Utility object called "Services" which is used to measure the transaction time. Assume that we are going to track the Discovery service of a networking application.

'* Starting transaction Time
Services.StartTransaction "DiscoveryService"
'* Logic for Discovery Service goes here
'* Tracking End time
Services.EndTransaction "DiscoveryService" 

We can find StartTransaction and EndTransaction under Insert menu. We can also have n-number of transaction points in the same script. But we need to make sure that the tracking is happening properly,

We can also measure the time by using Timer function.Timer is VBScript in built function. We can take the same discovery service for example.

'* Starting transaction Time 
starttime= Timer '* It returns the time elapsed since 12 A.M mid night in seconds
'* Logic for Discovery Service goes here 
'* End transaction Time 
endtime = Timer
'* Calculating final time
finalfime = endtime- startrime

Here starttime,endtime,endtime are variables. We can use any variable based on the wish.

Step Generator in QTP

Step Generator is a feature and Library of functions which is used for generating the Recordable or Non-Recordable steps.

We can launch the step generator by anyone of the following methods.

Method#01:
By navigating to Insert Menu > Step Generator.
Method#02:
By pressing F7 short cut key.


The Step Generator enables us to add steps by selecting a wide range context sensitive options and to enter the required values.We can define the steps than can use:
  • Test object operations(Tests only)
  • Utility Object operations
  • Calls to Library functions
  • Calls to VBScript functions
  • Calls to Internal functions
For example, we can create a step to check whether a particular object exists as well as returned value of a function as output value or as part of the conditional statement.


We can parameterize any of the values in out step.Also, we can use the Step Generator to insert steps in function libraries. However we can't use the Step Generator to access the objects names or collections or the list of libraries.


We need to know that where the step needs to be inserted in out script before adding the step.Once the Step Generator is opened we need to select the category for step operation(Test/Utility object, Function) and the required object or the function library. Then we can select the appropriate operation(method, property or function), define arguments and return values.We can parameterizing required by the functions.


The Step Generator is used to insert the correct steps at our test. We can also insert another steps without closing the Step Generator.We can use the Step Generator in Keyword/Expert View or from Active Screen.

Sunday, 18 March 2012

Comments in QTP Script

Comments are statements which are ignored by the host when the script is executed. 
To ensure that the comments statements are not interpreted during the script execution, comment delimiter should be used.We have two type of comments delimiters in VBScript.  They are single quotation mark (') and REM statement.


For example, the following are valid comments.
'This is a valid comment.
REM This is a valid comment.


Even though we have two types of comments delimiters supported by VBScript, most of us are using single quotation mark delimiter.We can use some other character along with the single quotation mark delimiter to show the comments separately.


For example, we can consider '* for commenting statements or lines of code.Ex: '* This is a valid comment.The main advantages when using a character along with single quotation mark are: makes the comment to stand out from other text, single quotation mark is difficult to read.


We need to remember the following points when using comment delimiters. Comments can be included along with the lines i.e., at then end of the line which becomes difficult for the user to read. For easy reading we have to make sure that the comments are added just above the line.


For example we can see both type of comments.
MsgBox "Welcome to Software Testing Community Blog!!!" 'Commented on the same line
 'Commented on a  separate line
MsgBox "Welcome to Software Testing Community Blog!!!" 
So, we can easily understand that the second type of commenting is much easier to read.


Code Commenting Conventions:

  • All procedures should begin with the proper comments saying that what they do.
  • We should not explain the implementation of the behavior.Because the implementation may change.So,it'll cause the unnecessary comment maintenance.
  • If necessary we can have inline comments by describing the implementation.
  • Return values of the procedure that are often changed by should be clearly described.
  • Every important variable declaration should be included in inline comments.
  • Variables, controls, and procedures should be named clearly to ensure that inline comments are only needed for complex implementation details.
  • At the beginning of your script, you should include an overview that describes the script, enumerating objects, procedures, algorithms, dialog boxes, and other system dependencies. Sometimes a piece of pseudocode describing the algorithm can be helpful.
  • Procedure header comments should include the following section headings.
              Section Heading:
              Comment Contents:
              Purpose:
              Assumptions:

Thursday, 15 March 2012

QTP Action Template

Most of might have seen that some of the information are displayed by default when creating new action. Basically this is called "Action Template". Action Template is a mechanism which used to add some text by default whenever a new action is created.  Suppose we want to add some of the text for a test suite whenever a action is created. Instead of manually adding the same information again and again we can have the template to add the text by default. 

Assume that we need to have the following information whenever the Action is created.

'**********************************************
'Action Name:
'Purpose :
'Created By:
'Created Date
'Modified By:
'Modified Date:
'Comments: 
'********************************************** 

Steps to create Action Template:
Step#01:Open a Notepad and paste the above mentioned information.
Step#02:Save it as "ActionTemplate.mst".
Step#03"Navigate to QTP's dat folder which resides under "C:\ProgramFiles\HP\QuickTest Professional\." directort\y.
Note: This path may change based on the installation, QTP version or OS
Step#04:Copy and place the template created in Step#02.
Step#05:Then create a new action and observe that the above mentioned information is added to the action by default at the top.

Sometimes we may not see the action template items when creating new action. The main problem may be the extension of ActionTemplate file. It should be ".mst". The common mistake is the file name be saved as "ActionTemplate.mst.txt". So, we can eliminate this problem by deselecting the option "Hide extensions for known file types" option under "Any Folder >Tools> Folder Options > View tab".

Working With Multiple Browsers Using QTP

We are aware of that multiple instances of QTP can't be running on a single machine. But by using QTP we can work with multiple instances of the Application Under Test. For example, QTP can handle multiple browsers or multiple applications at a time.


We can work with 2 applications at a time even without stopping the recording. We should make sure that we configured both Record and Run on any opened applications(Both Windows and Web) under Automation>Record And Run Settings> Select the radio button "Record and Run on any application for both Windows and Web".


We have to keep it in our mind that we can't run multiple instances of QTP on a single machine.But we can handle multiple browsers or applications by using single QTP instance.

MsgBox Vs Print in QTP

This articles gives the details about the MsgBox and Print functions in QTP.

Most of us might have came across the function MsgBox which is used to display the variable values,text values etc., during our script execution. But from QTP 9.x series HP has introduced a statement called "Print". The purpose of the Print statement is similar to the MsgBox. 

MsgBox: It's a VBScript function which is used to display the information during run session in the form of pop up. The script execution will be stopped automatically once the MsgBox pop up is displayed. Because the pop up window will not be closed automatically. We may need to close it manually or can have driver script to close the pop up.So, we can't expect that the run session will be completed automatically when used MsgBox.So, when running batch session, we need to make sure that MsgBox function is not used in our script.

Print: Print statement is used to print the information in a print log during run session and it'll not affect the script execution. It means that the Print log will be printed along with the run session.So, while running the batch session we can use Print statement which will not pause the script execution.

Syntax: Print "<<msg>>" & <<variable name>>
Ex: Print "User Name is :"& Uname



Friday, 9 March 2012

Test Library Architecture Framework,Hybrid Test Automation Framework

Test Library Architecture Framework:
In this framework,test scripts are initially recorded by "Record and Playback" method. Later, common tasks inside the scripts are identified and grouped into Functions. These functions are called from the main test script called Driven in different ways to create test cases.

For example, we can take the login feature.We'll have the following steps involved when using Test Library Architecture Framework.

Step#01: Recording steps by using Recording mechanism.
SystemUtil.Run "Flight.exe","","","Open"
Dialog("Login").WinEdit("UserName").Set "u_aaaa"
Dialog("Login").WinEdit("Password").SetSecure pwd
Dialog("Login").WinButton("OK").Click

Step#02: Group the above steps and convert as a function.
Function Login()
SystemUtil.Run "Flight.exe","","","Open"
Dialog("Login").WinEdit("UserName").Set "u_aaaa"
Dialog("Login").WinEdit("Password").SetSecure pwd
Dialog("Login").WinButton("OK").Click
End Function

Step#03:Call the function created in Step#02 in the main script as follows.
Call Login()

Like the above function call we can have calls for n-number of function in the main script.

We have the following advantages:
  • We can achieve the higher level of code reuse in Structured Scripting as compared to "Record & Playback".
  • Cost for developing the script is very less due to the higher code re-use.
  • We can maintain the script easily.
We have the following disadvantages:
  • More technical expertise is necessary to write  Scripts using Test Library Framework.
  • More time is needed to plan and prepare test scripts.
  • Test Data is hard coded within the scripts
Hybrid Test Automation Framework:

As the name suggests this framework is the combination of one or more frameworks by pulling the strengths and trying to mitigate their weakness. This framework is what most frameworks evolve into over time and multiple projects. Most of the industry uses Keyword framework in combination of Function decomposition method.

We can have any combination of the frameworks based on the requirements and application under test's behavior.

Wednesday, 7 March 2012

Automation Frameworks, Linear Scripting, Data Driven Framework

Before starting the framework details, we should know what is called Test Automation Framework. Test Automation Framework is a set of guidelines like coding standards, Test data handling, object repository treatment, library files etc which when followed during automation scripting produces the beneficial outcomes like increase code re-usage, script portability, reducing maintenance cost etc.
Just remember that the above mentioned guidelines are not rules and also not mandatory to be following. We can still write the scripts without following the guidelines. The only drawback is we'll miss out the advantages of having a Framework.

Now we can look into the different frameworks available.

Linear Scripting:
This is the simplest of the Frameworks and also called as "Record and Playback" framework. In this the automation tester manually records the steps like navigation and user inputs, Inserts checkpoints in the first round itself. Then the test script is played back in the subsequent rounds.

For example we can take the loin functionality of the Flight application.

SystemUtil.Run "flight4.exe","","","open"
Dialog("Login").WinEdit("UserName").Set "aaaa"
Dialog("Login").WinEdit("Password").SetSecure "bbbb"
Dialog("Login").WinButton("OK").Click
'Check whether the flight application is loaded after successful login
Window("Flight Reservation").Check Checkpoint("Flight Reservation")

We have the following advantages when using Linear Scripting.
  • We can generate the script in fast manner
  • We no need to have the automation expertise
  • We can easily learn the features of the automation tool
We have the following disadvantages when using Linear Scripting.
  • We can't re-use the script across the different versions of the application when user interface is changed.
  • We are hard coding the test data. So, repeated testing is not possible.
  • Maintenance is very tough when the user interface and feature enhancements are happened.
Data Driven Framework:
In this Framework, the Test case logic and Test data are separated. Test case logic resides in Test script and the test data is stored in an external file. The external file can be Text file, DAO Objects, Excel, XML etc. The test data is loaded and assigned to the variables which resides in the script. The variable can be used as Input values as well as verification variables. Test scripts are prepared either using Linear scripting or Test Library Framework.


For example, we can take the same Flight Login functionality. It involves 2 steps in Data Driven Framework.


Step#01:Prepare the Test data in any one of the external file. Here we are going to use excel sheet.

          UserName       Password
           u_aaaa           p_aaaa
           u_bbbb           p_bbbb
           u_cccc            p_cccc

Step#02: Develop Test script and make references to the Test Data resource which are prepared in  Step#01 .

  SystemUtil.Run "Fligt.exe","","","Open"
  Dialog("Login").WinEdit("Username"). SetDataTable("UserName",dtGlobalSheet)
  Dialog("Login").WinEdit("Password"). SetDataTable("Password",dtGlobalSheet)
  Dialog("Login").WinButton("OK").Click
  Window("Flight").Check CheckPoint("Flight Reservation")

We have the following advantages when using Data Driven Framework.
  • Changing test script will not affect the test data and vice verse
  • We can execute the test cases with the multiple set of data
  • Variety of test scenarios can be executed by changing the test data
We have the following disadvantage when using Data Driven Framework.
  • Time consuming for preparing Test data and Test scripts

Tuesday, 6 March 2012

QTP Features

We have the following advantages when using QTP.
  • We can execute the test cases in faster manner. 
  • The tests executed by the automation tool is reliable. For example, we can execute the same test cases for n-number of times without any errors. So, we can avoid the human errors.
  • The test cases be executed for n-no of times. So, we can test the AUT behavior when the same scenario is executed for n-number of times.
  • We can re use the same test script across different versions of the AUT irrespective of the User Interface change.
  • We can build a suit of test cases to cover each functionality of the AUT.
  • We can program the test cases to bring out the hidden information from the application.
We have the following drawbacks when using QTP.
  • Expensive
  • We can't automate all areas
  • Has some limitations
  • Lack of automation professionals
The following factors to be consider during Automation Tool Selection.
  • Nature of the application under test
  • Tool features
  • Availability of the automation professionals
  • Tech support from the client
  • Organizations experience in automation
  • Client's interest
  • Budget
We can automate the following test cases using QTP.
  • Regression test cases that we want to execute across different versions of the application under test.
  • Data driven test cases in which different set of data used for execution
  • Test cases having complex functionality
We can't automate the following test cases using QTP.
  • Command User Interface test cases 
  • Test cases which requires more user interaction
  • Functionality which changes dynamically
We have the following type of licenses.
  • Seat License: This type of license can be used only from the system in which the tool is installed. It means we can use the license from only one machine.
  • Concurrent License: This type of License can be used from any system. But one at a time.
Scripting Part:
  • QTP uses Visual Basic Script(VBScript) for scripting.
We can integrate QTP with the following tools.
  • Winrunner
  • Mercury Quality Center
  • We can use QTP separately to run and send the results
Visit here to know about the different types of Environments supported by QTP.


QTP Supported Environments

QTP supports the different environments based on the add-ins only.Add in means the technology or platform supported files.

By default the following environments are supported.
  • Active X
  • Visual Basic
  • Web
Apart from the above mentioned environments we have the following environments.
  • Java
  • Delphi
  • .Net Web Forms
  • .Net Windows Forms
  • Oracle
  • WPF
  • People Soft
  • SAP for Web
  • SAP for Windows
  • Standard Windows
  • Siebel 
  • Terminal Emulator
  • Web Service Environment
  • Power Builder
  • Visual Age Small Talk Environment
QTP doesn't support the following Environment(s).
  • Unix

Types of Software Testing

In this article we are going to see the different types of testing.


Black Box Testing: This type of testing is mainly based on the functional requirements.As a Tester, we no need to have the knowledge of the internal design of the application.


White Box Testing: This type of testing is mainly based on the internal design of the system. It requires the complete knowledge about the system. This is mainly conducted to check the different areas like branches, statements coverage,branch, paths etc.


Unit Testing: This type of testing is to test the modules or units. This is mainly done by the Developers as it requires the detailed knowledge of the internal system design and code.


Integration Testing:This type of testing is to test the behavior of each modules when integrated.Modules are code modules,individual applications, or client/server applications.Integration testing is relevant to client/server and distributed applications.


Incremental Integration Testing: This is a kind of bottom up testing approach in which we continues to test whenever there is any enhancement is added. Application functionality should be independent enough to test separately. This type of testing can be done by testers or programmers.


Functionality Testing: This kind of testing ignores the internal system design and code of the application.This is a kind of Black box testing in which the application is tested against the well defined functional requirements.


System Testing: The entire system is tested based on the overall system requirements. It combines all parts of the system.


End To End Testing: This is also kind of system testing.It involves in Testing the application with the mimics of real world scenarios like interacting with data base,using network communication etc.

Thursday, 1 March 2012

Verification Vs Validation

Verification and Validation are independent procedures that are used together for checking that a product, service or system meets requirements and specifications and validation is performed by a third party.

Verification: 
  • It represents whether we are building the product right.
  • The review of interim wok steps and interim deliverable during a project to ensure they are acceptable.
  • To determine if the system is consistent, adheres to standards, uses reliable techniques and prudent practices and performs the selection functions in the correct manner.
  • It represents whether we are accessing the data right in the right place, in the right way.
  • Verification is a low level activity.
  • This process is performed during development on key artifacts, like walk through, reviews and inspections, mentoring feedback, checklists, training and standards.
  • It demonstrates the consistency, completeness and correctness of the system at each stage and between each stage of development life cycle of the system.
Validation:
  • It represents where we are developing the right product.
  • Used in determining if the software complies with the requirements and performs functions for which it is intended to meets the organization's goals and user requirements.
  • Validation is traditional and performed at the end of the project.
  • It represents whether we are acceding the right data in terms of the data required to satisfy the requirement.
  • Validation is a high level activity.
  • Validation is performed after a software is produced against the well established criteria ensuring that the product integrates correctly into the environment.
  • Mainly performed to determine the correctness of the final software product by a development project with respect to the requirements.

 
Back To Top