SlideShare a Scribd company logo
DP 101 in 60 simple slides www.AdvancedQTP.com
What is DP? DP stands for  Descriptive Programming
But what  IS   DP? I t’s a cool way to work without QTP’s Object-Repository (OR)
Why would I want to do that?
Many reasons
You have to Functions & Recovery scenarios work with different actions Different actions = Different ORs
Do I know you? Can’t be sure…
You have to Can’t record certain objects Auto-hide panels Objects with changing hierarchies Nested inner-objects, Sub menus
Hold still, damnit! Even when you think you got it, all the properties turn out null
Simplicity Why kill a fly with an atom bomb? No need to use the OR for every one-time click button in the application
And, You can do VERY cool things with DP
OK, bring it on
First, we need to better understand the Object Repository What the OR is How does the OR work
I thought DP is all about NOT using the OR…
Well, yes, but under the hood, DP & the OR work the same way To understand the OR, is to understand DP
What is the OR?
A mysterious beast that records objects, in order to use them later
What is to record an object? Write down how to identify it
Who are you? = How can I identify you?
Identification is done with  properties  and  values
Who are you? = Your height = 400 Your title = “NotePad” You are visible (=True)
So, What IS the OR? Collections of properties & corresponding values Each collection represents an object No mysterious beast here
OK, So what IS DP? DP is a way for specifying the properties & values without using the OR interface No mysterious beast here, either
OK, I get it, there’s nothing more than properties and values Can we get on with it?
How do I  actually  use DP? There are two ways
1 Throw the properties and values straight into a command
It’s the good old syntax you know, except the string between the () is not the OR name.  It’s the property:=value identification string
That’s kinda restrictive What if I want to use multiple identification properties?
No problem: VBWindow(“height:=400”, “title:=New Document”).Maximize You can use as many properties as you like
All fine and well, but what if I want to use regular expressions?
No problem: VBWindow(“title:=.*Document.*”).Maximize ID strings are automatically interpreted as regular expressions
2 Throw the properties & values into a description object, and throw IT into the command
Here also, all the values are interpreted as regular expressions. To turn it off, use  oDesc(“Property1”).RegularExpression = False
Method 1 is faster, best used for one or two commands, tops
When you want to execute multiple commands on an object, method 2 is a better choice by far (allows one-time definitions, multiple uses)
You can use DP with OR VBWindow(“OR”).VBButton(“text:=OK”).Click Or  (when oDesc is a description object): VBWindow(“OR”).VBButton(oDesc).Click
But ,  you can only start from OR, and move to DP So this will not work: VBWindow(“title:=notgood”).VBButton(“clickme”).Click
And that’s about it You can use each of the methods (or combine them), and you’ll be able to use objects that are not in the OR
You said I could do really cool stuff with DP!
Right you are We’ll cover some of the more popular tricks and tips These examples are only the tip of the iceberg. Play with them and see the true power of DP
The power of the string DP is nothing more than simple strings We can do such interesting things with strings…
The power of the string Say we got an app with 4 checkboxes, check0, …, check4 We can set all of them with a nice simple loop:
The power of the string Very complex identification tasks can be done via strings manipulation Try different variations for yourself
Solving double objects When QTP finds two object which match the same description, it freezes This kinda sucks
?
DP has a magic property: “index”, which allows us to tell the double objects apart Index is a zero-based counter
All is well
Getting objects collections This feature is so cool, deserves a title on its own
THE  coolest thing you can do with DP, is to get a collection of all the objects that math an identification
I don’t know who you are, or how many are you, but I want to mark all of you!  Regular DP won’t help - Don’t know how to identify each checkbox
Object collections to the rescue! Step 1: define a description object
Object collections to the rescue! Step 2: get all matching objects
Object collections to the rescue! Step 3: Use the collection oChildren now holds a collection of all the checkboxes So the first checkbox is accessed by: oChildren(0)
What can we do with it? Anything we want
Example for common uses Mark all Checkboxes Mark all checkboxes with a certain property (even RO)
The possibilities are endless Randomly input fields Input only mandatory fields Zero maintenance (new fields are added automatically, blind to UI changes) Select object which match complex identification criteria (write custom if filters) The list goes on and on…
OK, this is indeed cool, but it only gets us the inner controls of a given window. Can we also get the application’s top level windows?
Sure
So, With DP we can work with no OR Sometimes we have to use it Other times it’s just more fun and useful DP also throws in a lot of extras that make it an inseparable part of good QTP automation Taste it, Experience it, Learn it, Use it, Love it It’s worth your while
And that was DP in 60 slides

More Related Content

PPT
Qtp Descriptive Programming
PDF
CPAP.com Introduction to Coding: Part 1
PPT
Chapter 9 - Characters and Strings
PPT
JAVA Tutorial- Do's and Don'ts of Java programming
PPT
Città Sostenibile : un’opportunità per riqualificare efficientando verso obie...
PDF
Modelli Organizzativi e Sistemi di Gestione Certificati
PPT
NMAI Environmental Challenge_example
PDF
РИФ 2014, Хакатон
Qtp Descriptive Programming
CPAP.com Introduction to Coding: Part 1
Chapter 9 - Characters and Strings
JAVA Tutorial- Do's and Don'ts of Java programming
Città Sostenibile : un’opportunità per riqualificare efficientando verso obie...
Modelli Organizzativi e Sistemi di Gestione Certificati
NMAI Environmental Challenge_example
РИФ 2014, Хакатон

Viewers also liked (20)

PDF
Controlli e autocontrolli dei gestori: le modalità operative
PPT
РУСПРОДИМПОРТ
PPT
Il Fondo per l’Energia
PDF
Iniziative nazionali e strumenti di gestione delle infrastrutture diportistic...
PDF
IL CONTO TERMICO
PDF
Implementation martial art in business
PPT
Qtp Presentation
PPT
RUSPRODIMPORT
PDF
Google Engage Program
PPT
L’Accordo Quadro ANCI CONAI: quali strumenti per i Comuni
PPTX
Material didactico trigonometria 3
PPTX
All About Me
PDF
Open west 2015 - making your life easier, one package at a time - aaron gibson
PDF
Novità in tema di scambio di quote di emissione di gas ad effetto serra ed Em...
PDF
Spoiliation Of Evidence In Tx And Corp Records Retention Policy Article
PPTX
الزمرة
PPTX
Power point
PDF
Città Sostenibile2011 - Depliant
PPT
Patto dei Sindaci: azioni in campo e prospettive di sviluppo
PPS
發掘內向孩子的優勢
Controlli e autocontrolli dei gestori: le modalità operative
РУСПРОДИМПОРТ
Il Fondo per l’Energia
Iniziative nazionali e strumenti di gestione delle infrastrutture diportistic...
IL CONTO TERMICO
Implementation martial art in business
Qtp Presentation
RUSPRODIMPORT
Google Engage Program
L’Accordo Quadro ANCI CONAI: quali strumenti per i Comuni
Material didactico trigonometria 3
All About Me
Open west 2015 - making your life easier, one package at a time - aaron gibson
Novità in tema di scambio di quote di emissione di gas ad effetto serra ed Em...
Spoiliation Of Evidence In Tx And Corp Records Retention Policy Article
الزمرة
Power point
Città Sostenibile2011 - Depliant
Patto dei Sindaci: azioni in campo e prospettive di sviluppo
發掘內向孩子的優勢
Ad

Similar to Qtp Descriptive Programming 11200 (18)

PPTX
Qtp training session IV
DOCX
descriptive programming
PPT
Booa8 Slide 02
PDF
A Hand Book of Visual Basic 6.0.pdf.pdf
PDF
vb.net.pdf
PPTX
SE-IT JAVA LAB OOP CONCEPT
PDF
Oop concepts classes_objects
PPTX
Chapter 1 Concepts for Object-oriented Databases.pptx
PDF
C++ chapter 1
PPTX
Unit 1 introduction to visual basic programming
PPT
Overview of Object-Oriented Concepts Characteristics by vikas jagtap
PDF
Maxbox starter19
PDF
X++ advanced course
PDF
Lotusphere 2007 BP301 Advanced Object Oriented Programming for LotusScript
PDF
Oracle forms developer 10g vol1
PPTX
Technology and Livelihood Education IV
PPTX
Chapter 04 object oriented programming
PPTX
Objects and classes in Visual Basic
Qtp training session IV
descriptive programming
Booa8 Slide 02
A Hand Book of Visual Basic 6.0.pdf.pdf
vb.net.pdf
SE-IT JAVA LAB OOP CONCEPT
Oop concepts classes_objects
Chapter 1 Concepts for Object-oriented Databases.pptx
C++ chapter 1
Unit 1 introduction to visual basic programming
Overview of Object-Oriented Concepts Characteristics by vikas jagtap
Maxbox starter19
X++ advanced course
Lotusphere 2007 BP301 Advanced Object Oriented Programming for LotusScript
Oracle forms developer 10g vol1
Technology and Livelihood Education IV
Chapter 04 object oriented programming
Objects and classes in Visual Basic
Ad

More from techgajanan (9)

PPS
About Qtp 92
PPT
PerformanceTestingWithLoadrunner
PPS
About Qtp_1 92
PPT
Qtp Mgl Presentation
PPT
Qtp Training
PPT
Qtp Tutorials
PPT
Qtp Tutorials
DOCX
Graphical User Interface Testing
DOCX
General Information About Information Technologies
About Qtp 92
PerformanceTestingWithLoadrunner
About Qtp_1 92
Qtp Mgl Presentation
Qtp Training
Qtp Tutorials
Qtp Tutorials
Graphical User Interface Testing
General Information About Information Technologies

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
cuic standard and advanced reporting.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PPTX
A Presentation on Artificial Intelligence
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Modernizing your data center with Dell and AMD
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
KodekX | Application Modernization Development
Machine learning based COVID-19 study performance prediction
Mobile App Security Testing_ A Comprehensive Guide.pdf
NewMind AI Monthly Chronicles - July 2025
Review of recent advances in non-invasive hemoglobin estimation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
cuic standard and advanced reporting.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
NewMind AI Weekly Chronicles - August'25 Week I
Building Integrated photovoltaic BIPV_UPV.pdf
Unlocking AI with Model Context Protocol (MCP)
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
A Presentation on Artificial Intelligence
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
The AUB Centre for AI in Media Proposal.docx
Dropbox Q2 2025 Financial Results & Investor Presentation
Per capita expenditure prediction using model stacking based on satellite ima...
Modernizing your data center with Dell and AMD
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
KodekX | Application Modernization Development

Qtp Descriptive Programming 11200

  • 1. DP 101 in 60 simple slides www.AdvancedQTP.com
  • 2. What is DP? DP stands for Descriptive Programming
  • 3. But what IS DP? I t’s a cool way to work without QTP’s Object-Repository (OR)
  • 4. Why would I want to do that?
  • 6. You have to Functions & Recovery scenarios work with different actions Different actions = Different ORs
  • 7. Do I know you? Can’t be sure…
  • 8. You have to Can’t record certain objects Auto-hide panels Objects with changing hierarchies Nested inner-objects, Sub menus
  • 9. Hold still, damnit! Even when you think you got it, all the properties turn out null
  • 10. Simplicity Why kill a fly with an atom bomb? No need to use the OR for every one-time click button in the application
  • 11. And, You can do VERY cool things with DP
  • 13. First, we need to better understand the Object Repository What the OR is How does the OR work
  • 14. I thought DP is all about NOT using the OR…
  • 15. Well, yes, but under the hood, DP & the OR work the same way To understand the OR, is to understand DP
  • 16. What is the OR?
  • 17. A mysterious beast that records objects, in order to use them later
  • 18. What is to record an object? Write down how to identify it
  • 19. Who are you? = How can I identify you?
  • 20. Identification is done with properties and values
  • 21. Who are you? = Your height = 400 Your title = “NotePad” You are visible (=True)
  • 22. So, What IS the OR? Collections of properties & corresponding values Each collection represents an object No mysterious beast here
  • 23. OK, So what IS DP? DP is a way for specifying the properties & values without using the OR interface No mysterious beast here, either
  • 24. OK, I get it, there’s nothing more than properties and values Can we get on with it?
  • 25. How do I actually use DP? There are two ways
  • 26. 1 Throw the properties and values straight into a command
  • 27. It’s the good old syntax you know, except the string between the () is not the OR name. It’s the property:=value identification string
  • 28. That’s kinda restrictive What if I want to use multiple identification properties?
  • 29. No problem: VBWindow(“height:=400”, “title:=New Document”).Maximize You can use as many properties as you like
  • 30. All fine and well, but what if I want to use regular expressions?
  • 31. No problem: VBWindow(“title:=.*Document.*”).Maximize ID strings are automatically interpreted as regular expressions
  • 32. 2 Throw the properties & values into a description object, and throw IT into the command
  • 33. Here also, all the values are interpreted as regular expressions. To turn it off, use oDesc(“Property1”).RegularExpression = False
  • 34. Method 1 is faster, best used for one or two commands, tops
  • 35. When you want to execute multiple commands on an object, method 2 is a better choice by far (allows one-time definitions, multiple uses)
  • 36. You can use DP with OR VBWindow(“OR”).VBButton(“text:=OK”).Click Or (when oDesc is a description object): VBWindow(“OR”).VBButton(oDesc).Click
  • 37. But , you can only start from OR, and move to DP So this will not work: VBWindow(“title:=notgood”).VBButton(“clickme”).Click
  • 38. And that’s about it You can use each of the methods (or combine them), and you’ll be able to use objects that are not in the OR
  • 39. You said I could do really cool stuff with DP!
  • 40. Right you are We’ll cover some of the more popular tricks and tips These examples are only the tip of the iceberg. Play with them and see the true power of DP
  • 41. The power of the string DP is nothing more than simple strings We can do such interesting things with strings…
  • 42. The power of the string Say we got an app with 4 checkboxes, check0, …, check4 We can set all of them with a nice simple loop:
  • 43. The power of the string Very complex identification tasks can be done via strings manipulation Try different variations for yourself
  • 44. Solving double objects When QTP finds two object which match the same description, it freezes This kinda sucks
  • 45. ?
  • 46. DP has a magic property: “index”, which allows us to tell the double objects apart Index is a zero-based counter
  • 48. Getting objects collections This feature is so cool, deserves a title on its own
  • 49. THE coolest thing you can do with DP, is to get a collection of all the objects that math an identification
  • 50. I don’t know who you are, or how many are you, but I want to mark all of you! Regular DP won’t help - Don’t know how to identify each checkbox
  • 51. Object collections to the rescue! Step 1: define a description object
  • 52. Object collections to the rescue! Step 2: get all matching objects
  • 53. Object collections to the rescue! Step 3: Use the collection oChildren now holds a collection of all the checkboxes So the first checkbox is accessed by: oChildren(0)
  • 54. What can we do with it? Anything we want
  • 55. Example for common uses Mark all Checkboxes Mark all checkboxes with a certain property (even RO)
  • 56. The possibilities are endless Randomly input fields Input only mandatory fields Zero maintenance (new fields are added automatically, blind to UI changes) Select object which match complex identification criteria (write custom if filters) The list goes on and on…
  • 57. OK, this is indeed cool, but it only gets us the inner controls of a given window. Can we also get the application’s top level windows?
  • 58. Sure
  • 59. So, With DP we can work with no OR Sometimes we have to use it Other times it’s just more fun and useful DP also throws in a lot of extras that make it an inseparable part of good QTP automation Taste it, Experience it, Learn it, Use it, Love it It’s worth your while
  • 60. And that was DP in 60 slides