Skip to content

Feed aggregator

Agents of Change / When you’ve lost the room

Adam Goucher - Quality through Innovation - Fri, 07/03/2009 - 02:40

Two ideas smooshed into one in this post.

The first is the kinda myth that Testers (QA folk) are Agents of Change within an organization. We have the power to mould the product or service into our belief structure. And this is true some of the time, and sometimes very untrue. And this isn’t necessarily bad.

The true phase begins immediately after after joining a group. You are the outsider. Once you are an insider, people have bias and opinions about you which colour their opinions of your ideas. This cross-reference is deadly to your change agency roll. How much success have you had leading a change in a different direction on a team where you are established? (And do not have organizational clout to lead the charge as Testers rarely have it.)

I remember hearing a podcast from David Linthicum where he mentioned a survey or something which showed most successful SOA projects where proceeded by a change in the CTO/CIO. The implication was that the previous holder of the title had lost the audience’s attention. No doubt they will be replaced by the next great architectural wave.

How long this period lasts is a bit of a mystery. (Gee, thanks Adam.) Sometimes it ends with an obvious bang, but other times it is subtle. If you miss the change, then you might succeed in change, but it likely will be through happenstance rather your actions. So what are some signs? Here are some that I have witnessed recently (and not necessarily directly about me)

  • Sighs during meetings when you start to speak
  • Your follies are discussed on length
  • Emails get routed to the blackhole (faster)

Can you get back your Agent of Change title once it has fizzled? I suspect so, but I suspect it might need to come with organizational clout. And once you have that clout you need to work twice as hard to maintain it as your agency half-life has decreased significantly.

One final thing.

Being an Agent of Change is fun and certainly rewarding as there is often a bug finding multiplier for fixing a busted process. But providing quality-related information to stakeholders can also be fun and rewarding too. The trick is for you, and your management, to understand which role you are supposed to be playing, which you are playing and if there is a divergence of the two.

Categories: Blogs

Oracle and Java, What It Means

The Cohen Blog — PushToTest - Thu, 07/02/2009 - 16:55
Miko Matsumura writes about Oracle 11g Fusion Middleware and what it means to the Java platform. Here is one of his blog postings
-Frank

 

 

Posted by Miko Matsumura 

Java is the new SQL

 

We’re on a code level orange this morning as buzz on the networks is up. Despite Oracle’s news embargo, we’re already picking up chatter that one of the big ticket items from the Oracle Fusion Middleware launch is Tera-scale Java Object cacheing. 

This is a great technology trend and great thinking.

While a few startup companies have attacked the so-called “Complex Event Processing” space (CEP), they have done so using esoteric APIs such as SQL query-like APIs for example StreamBase. This is an early-adopter (read:sucker) approach because who wants to build completely new applications?

There’s a clear answer to that rhetorical question: very few do. To see Coral8 be swallowed up by Aleri and other CEP vendors struggling out there, it’s clear that only the edgy applications such as fraud and intrusion detection, networked battlefield, casino gaming and a few other apps need the combination of real time and massive event window correlation provided by CEP. Whenever there’s a “paradigm shift,” look for a Moore’s Law style 10x improvement underlying it.

New business paradigms grow across stable interfaces (platforms) with an order of magnitude impedance mismatch. Oracle and the relational database ecosystem grew originally on top of SQL and the spinning disk drive platter and has maintained its advantage because of this mismatch. Adobe grew on top of PostScript and originally at the boundary between the printer and personal computer. BEA grew on top of the Java API through their timely acquisition of WebLogic, through the boundary between the “computer” and the “network.”

So what’s the 10x (or more) improvement in the underlying platform? It’s the expansion of RAM which is experiencing a Moore ’s-law like doubling interval. The difference between spinning disk (millisecond scale) and RAM (nanosecond scale) is six or seven orders of magnitude.

So what are the implications for this huge shift into RAM? Well, there’s already some wonderful cacheing technologies like Tangosol (Oracle already bought them) that deal with pure SQL. But the age of the relational SQL API is coming to a close. Now like any good legacy, SQL will be immortal just like COBOL. But the emerging dominant API will be much more about the network and developer than about the underlying technology. What API better than Java? We see another company, Terracotta systems taking single VM Java semantics and clustering them using aspect technology from a crashed UFO. We see RNA Networks putting JMS onto a RAM cacheing box and kicking TIBCO out of a hedge fund company.

So SQL is toast. http://www.theregister.co.uk/2008/11/14/large_databases/print.html 

 

The future of low latency has come, and it looks like Java. 

So what does this say about Oracle’s strategy for forming SNORKEL, the Sun acquisition? Well, at the risk of reductio ad absurdum, having bought BEA and Sun, Larry Ellison sees Java as the new SQL.

Stay tuned for more news analysis and liveblogging.

My 2 cents,

 

Miko

 

Miko Matsumura

Vice President and Chief Strategist

Software AG – www.softwareag.com

Categories: Companies, Open Source

Just Giving added to our Hall of Shame

Another week, another Software Quality Hall of Shame entry. This time it is the charity donantion website JustGiving.(www.justgiving.com) They have recently under taken a complete web redesign. In my opinion the design is worse than the old one for numerous reasons, but that is not the point of this blog post. The point is that they [...]
Categories: Companies

Up for a Pint?

Windmill Testing Framework - Thu, 07/02/2009 - 15:55

I’m in London for the next few days and would love to grab a drink with any community members be you Mozilla, CouchDB, Python, Windmill, JavaScript or just plain old coffee, whisky or beer geeks :)

Categories: Open Source

Running Watir cross-browser using Internet Explorer, Firefox and Celerity

Since reading about Celerity, I've been excited by the idea that I might be able to take my Watir scripts and run them more quickly by using a browser simulator. It also raised the possibility of taking scripts and running them in different environments and on different platforms, because Celerity runs under JRuby without a browser. It makes http requests directly, and simulates javascript behaviours without actually rendering pages.

I had the hope that this would give me an option to get quicker feedback from my automation. Unfortunately, this hasn't turned out to be the case for the applications I'm currently testing. Simulation of the javascript on the page seemed to take longer than the real browser. I got quicker feedback by turning off images, blocking certain external hosts and using Internet Explorer. I still hold out hope that Celerity may improve performance, or that the applications I'm testing will be less javascript intensive.

Once I set to getting my Watir scripts working with Celerity, I needed to overcome a few issues. The last of these was the number of differences between Celerity's behaviour and Watir's behaviour. Resolving this turned out to be reasonably simple, and the same strategy for getting consistent behaviour between Celerity and Watir driving IE turns out to solve some other problems with differences in behaviour in Watir's drivers for IE and Firefox.

My first cut at this is by no means complete, with a bunch of unnecessary duplication that can be easily factored out. For now however, it gets the job done, and may be instructive for others.

The strategy is simple -

- Wrap the browser in your own class.
- Dynamically require the appropriate library for the driver you need
- Create your own methods that provide consistent behaviour for the different browsers. In my case, I needed to be able to get the actual html content of the page after it had been modified by scripts running on the page. Each driver (IE, Firefox, Celerity) required a different method to be called to achieve consistency, but using this approach, I can call browser.html and get (almost) the same result from all browsers and drivers.
- Intercept any calls to methods that you haven't implemented and pass them through to the actual browser object.

This is the first time I've touched Ruby's method_missing method, and it was pretty painless.

There are a few issues getting JRuby up and running with Celerity on windows as well. I'll describe these shortly in another post. I've also recently had issues installing the latest version of Watir, and will detail the solutions to these as well.

Sample code is below. Note that you can actually do without assigning the browser to a global variable, but I provide this example just to show how you can fit this new solution into the 'standard' Watir approach. If you modify things so that you can specify the driver from the command line, you should be able to run tests using something like -

jruby main.rb --driver :celerity
ruby main.rb --driver :watir_ie
ruby main.rb --driver :watir_ff


----- driver.rb ------
require 'singleton'
require 'rubygems'

class Driver
include Singleton

def set_driver(driver)
@driver=driver
if @driver==:celerity
require 'celerity'
@browser=Celerity::Browser.new
end
if @driver==:watir_ie
require 'watir'
Watir::Browser.default='ie'
@browser=Watir::Browser.new
end
if @driver==:watir_ff
require 'watir'
Watir::Browser.default='firefox'
@browser=Watir::Browser.new
end
return @browser
end

def html
return @browser.document.body.innerhtml if @driver==:watir_ie
return @browser.xml if @driver==:celerity
return @browser.html if @driver==:watir_ff
end

def initialize
@browser=nil
end

def method_missing(method, *args)
@browser.send(method, *args)
end
end

----- main.rb ----
require 'driver.rb'

driver=:watir_ff
#driver=:watir_ie
#driver=:celerity

Driver.instance.set_driver(driver)
$browser=Driver.instance
$browser.goto("http://www.quinert.com/blog/")
puts $browser.html
Categories: Blogs

The problem with Titles

Adam Goucher - Quality through Innovation - Thu, 07/02/2009 - 14:45

My official title is ‘Manager of Quality Assurance’ which was flattering when it was offered, but now I think it is a greater hindrance getting stuff done than a help. And I suspect I’m not the only one out there struggling with the expectations of title. The problem is that a title acts as a summation of role. It doesn’t matter what your official or unofficial job description is, people will fixate on their perceptions of what that title does.

Lets analyze what my title would seem to imply.

  • Manager – There are two ways to look at this one. First, there is the split between a ‘lead’ and a ‘manager’ which involves handling a team’s activities vs. handling a team’s activities and their hr components. The other is to take the literal root word of ‘manage.’ In this view then the Manager is who manages activities in their sphere, which is often the rest of the title. In my situation, it would be in all things Quality Assurance.
  • Quality – Another tricky concept. What does ‘Quality’ mean? We as an industry of testers and quality folk have not adopted a recognized definition of the word. The truth is though, it doesn’t matter what you think it means. The only people whose definition matters are those that sign the cheques.
  • Assurance – How many QA people can actually assure anything. Can you delay a release? (Should you have that power? Its arguable.) Can you force people to care? To take pride in their work? To change their routines? Usually not. Especially if you buy the argument that Quality issues are a leading indication of Culture issues and those need to be addressed by those who drive the culture. And that person rarely has QA in their title. Usually it start with Chief.

A flawed title at best. But its pretty standard in the industry. And the root cause I think of a lot of friction.

Trying hard to not just throw out generic problems with no chance of solutions, I propose the following. At minimum, we to get rid of the QA title unless those with it actually can fulfill the implied tasks of the role. The next, more radical, step is the model SocialText uses (or at least as I understand it). They don’t have ‘testers’ or ‘developers’. In stead they have ‘members of technical staff’. Its not sexy by any means, but it reflects what they actually do, which is kinda the purpose of titles. Its also a sign of what seems to be considered a healthy organization structure these days. One nicest fallout of the Agile movement is the embedding of test specialists on product teams. This removes (some) politicking and refocuses everyone on the product, which is the whole purpose of your employment.

Categories: Blogs

Beatiful Testing - Part I

Creative Chaos - Matt Heusser - Thu, 07/02/2009 - 13:13
My chapter on the book Beautiful Testing: Leading Professionals Reveal How They Improve Software is nearly complete. In fact, you can pre-order the book from Amazon right now.

But before you buy it, wouldn't you like to know what I'm going to say?

For that matter, it's just pretty expensive to be a tester right now. Better Software Magazine just stopped complimentary print delivery, Software Testing Club is going to charge a membership fee, and now Matt wants us to buy a book. I can hear the chorus of "thanks buddy" in my head, believe me. :-)

I can understand if you're skeptical. Here's what I am doing to help:

(1) All my royalties for the Beautiful Testing book will be donated to a charity - nothing but nets, that purchases mosquito nets for Africans. In fact, so will every other author for the book.

(2) The Good Lord has been good to me. I'm going to purchase TWO memberships in software testing club, and work with them to develop a competition to give the second one away.

(3) I've been working with O'Reilly, the publishers of Beautiful Testing. I can give away some of my chapter (for free) right now as a teaser, and more after publication.

Watch this space for my next post!
Categories: Blogs

Videos from Typemocks Unit Testing open discussion Event at #NDC09

The Typemock Insider Blog - Thu, 07/02/2009 - 10:20
Below you can see videos from Typemock’s Unit Testing and Beer open discussion event at NDC09. The first 2 videos are of Roy Osherove and Carl Franklin from .NET Rocks singing (a huge thanks to both of them!), the other 2 are of the open discussion.
We want to thank again all the developers who participated in our event, and we hope to see you again in future events.




Roy Osherove Intro words + Carl Franklin from .NET Rocks singing:







Roy Osherove Singing:






Open Spaces discussion - 1:







Open Spaces discussion - 2:





Categories: Open Source

Enabling Self Service Over the Public Cloud

VMLogix - Thu, 07/02/2009 - 08:27

Anyone looking at the public cloud as infrastructure for their virtual lab recognizes that policy governed self service is a critical requirement. Possibly the most important requirement. There are others too, a critical set of which our new LabManager-Cloud Edition handles. Check out the graphic below to get a birds eye view of the management capabilities.

LabManager-Cloud Edition (Early version) Management Capabilities

LabManager-Cloud Edition (Early version) Management Capabilities

Since self service is critical, I figured I’d share a brief video of how the experience is for your end user while working with the LabManager-Cloud Edition to self serve their requirements on the public cloud (Amazon). If you’d like, you can request for a free trial on our website.

Bookmark and Share


Categories: Companies

Congrats to the Los Techies MVPs!

Jimmy Bogard - Thu, 07/02/2009 - 03:03

This morning, I and fellow Los Techies alumni Eric Hexter and Chris Patterson learned that we are MVPs!  Well, technically I learned last night through an IM of a re-tweet of my MVP lead, but hey, close enough, right?  I know it’s cheesy, but I think these awards are a testament to the great community Los Techies has built over the years, so for me, this is really an award for Los Techies.  The roundup includes:

  • Jimmy Bogard, MVP ASP.NET
  • Eric Hexter, MVP ASP.NET
  • Chris Patterson, MVP C#

Personally, I’ve viewed my community involvement as simply a desire to share my journey with others, and in turn learn where others have been and are going.  My favorite experiences thus far have been the open space conferences, book clubs, dojos and code camps, as it gives me a great chance to meet and talk with a lot of smart people.  Thanks again everyone!

Categories: Blogs

Hurrah! MVP for the seventh consecutive year!

Paulo Morgado - Thu, 07/02/2009 - 02:31

After all these years, it's still an honor, a privilege ... and a few stressful days.

Categories: Blogs

Testing the Limits with James Whittaker (part two)

uTest - Wed, 07/01/2009 - 22:39

This is the second half of our recent interview with testing guru, James Whittaker.  Today, we’ll cover his new book, his new gig and what he sees over the horizon in the world of software testing.  If you haven’t read it already, check out the first half of the interview.

uTest:  And when all is said and done what will be the professional accomplishment you’ll look back on with the most pride?

JW:  Creating an actual discipline around software quality. Note I said quality and not testing. I want software projects as a whole to run more smoothly and more predictably. I really think that’s what software testing is all about — reducing the uncertainty of software development and finding ways to muscle errors out of the process. A process in which mistakes are harder than doing the right thing is the ultimate goal. We can’t eliminate them, but we can make doing the right thing to be the easiest thing to do.

uTest:  What’s your first assignment at Google?

JW:  To raise the level of testing precision and diligence. Google has a lot of smart testers, my job is to help mold them into a serious fighting force and let our bugs beware. But this isn’t so much an individual commitment. Google has a culture of collaboration that I am fascinated by as a Noogler.

We share offices (which might explain their interview strategy), inhabit common areas, collaborate constantly and work as a community. If I am successful, there will be many people who can take credit and if I fail, I won’t go down alone! I think the whole free food thing is at the heart of this as food is often the centerpiece for bringing people together. Lots of work gets done while your mouth is full. I hope to succeed before I have to buy bigger clothes.

uTest:  Rumor has it that you have a new book coming out.  What’s it about and when will it hit Amazon’s shelves?

JW:  It’s in production now. I hope it’s available later this summer. The title is Exploratory Software Testing: Tips, Tricks, Tours and Techniques to Guide Manual Testing.

[uTest note:  Since James is too shy to promote it, we'll do it for him.  The new book is available for pre-order at Amazon... get your advance copy today!]

uTest:  Will you be implementing test tours at Google? If so, which ones in particular?

JW:  That’s going to be up to Google’s engineers. I will most certainly teach them everything I know and be there to work alongside them. Good ideas tend to stick, so this little Google adventure will help decide whether the tours work here or not!

uTest:  In your opinion, what does the future of software testing look like?

JW:  I actually just wrote it up. It’s chapter 8 of my new book. But I am working on a pre-publication version of this particular topic.  I’m not yet sure whether it will be out as an eBook form or a presentation that I do separately. Watch the Google test blog for updates on this!

uTest:  How do automated and manual testing coexist in the future - are the compliments or substitutes?

JW:  They will co-exist better than they do today, but this question requires a longer answer.  Suffice it to say that every good automated test I have ever seen started out as a manual test. How’s that for coexistence!

[uTest note:  this would probably make a good topic for a future webinar with James]

Have other questions for James?  Want to tell us which master of the testing universe we should interview next?  Drop us a comment or send a note.

Categories: Companies

Test Case Management in JIRA #1

Test And Try - Wed, 07/01/2009 - 21:56
Once you have ready and running JIRA instance, which deals with our products issue handling, we would like to do more, especially we have free and waiting great Enterprise version features like custom workflows, plugins, user defined fields, etc. Often issue handling process is placed inside quality assurance department, which manages the tests, if we [...] Related posts:
  1. Visualize Your JIRA Workflow
  2. Usability Inspection Surprise #1
  3. Distributed Test Automation Infrastructure Plan #1
Categories: Blogs

Coming Soon: nWire for PHP

nWire's blog - Wed, 07/01/2009 - 18:52

It is time to unveil the details of our next release. Since its' initial released, nWire was targeted at multiple languages. We are very happy to announce that the next language to be supported by nWire will be... drumroll... PHP.

We partnered with Zend Technologies, the leaders of the PHP language, and customized nWire to fit their latest Zend Studio 7.0 and Eclipse PHP Development Tools (PDT) 2.1. You can read more about the new tool on this page.

Since this is a major step for nWire, we will conduct a short beta stage. We are currently in private beta and the public beta will follow shortly after. We invite you to sign-up and be notified when the beta is publicly available.

Working with PHP is a true challenge for nWire since the language is dynamic and loosely typed. The PHP environment performs only a syntactic check, unlike the Java compiler that alerts on a wide range of issues. We worked hard to ensure that as much information as possible is gathered in the analysis process. Naturally, structured code will result in a more meaningful representation.

Once released, the new product will be named nWire for PHP, while the current nWire will be renamed as nWire for Java. It is possible to install both products on the same IDE and we will offer a discounted price for a joint license.

Categories: Companies

Measuring Effective Unit Tests

Typemock - Wed, 07/01/2009 - 17:15

What is an effective unit test?
A good unit test (via Jeremy Miller) is

  • Atomic
  • Independent & Isolated
  • Intention Revealing
  • Easy to Setup
  • Runs Fast

But how do we know that the test is effective?
The biggest value of unit tests come when they fail. When a test fails, and we fix it, we have saved considerable time in discovering the bug, pinpointing the failing scenario and fixing it. The more bugs we find early on and the faster we fix them, saves us headaches and time. We also know that the longer we leave a bug in the system, the harder it is to fix.

I have debate this before (Measuring Code Integrity) and I think that measuring the Bug Fix Time is a direct measurement of the effectiveness of our unit tests. I have written a small application that sits on the developers desktop and we are starting to use it in Typemock.

image

This is what the small application looks like. Each developer can see how long it takes them to fix a test. We still have to tweak the calculation.
We are thinking of counting the failure time only after the first test is run (for TDD teams) although this will not count known bugs, as it is standard to write a test before solving them.
We do consider a group of test that fail together in one run and are solved together in another run as one test. 

TwitThis'); //-->
Categories: Companies

Reviewing code quality of Apache Sling using Sonar

Sonar - Wed, 07/01/2009 - 14:55

A few weeks ago Michael Marth, who runs dev.day.com (Day’s developer portal), asked us if we could put together our impressions on the code quality of Apache Sling using Sonar. We thought it would be valuable to share the result of this exercise with the community.

Apache Sling in a few words

“Apache Sling is an innovative web framework that is intended to bring back the fun to web development. It uses all those nice cool and new technologies that make up a state-of-the-art framework. This is Apache Sling in five bullets:

  • REST based web framework
  • Content-driven, using a JCR content repository
  • Powered by OSGi
  • Scripting inside, multiple languages
  • Apache Open Source project

Some size indications of the project
  • 40 Maven modules
  • 70,707 lines of code
  • 731 Java classes
  • and 23,043 lines of Javadoc
The strengths in terms of quality
  • A project that you get and compile with no difficulty by running two commands :
         1. svn checkout https://svn.apache.org/repos/asf/sling/trunk/
         2. mvn clean install
    This sounds like an evidence but is not always the case :-)
  • Amongst 130,172 physical lines, only 0.9% are involved in a duplication
  • 46.4% of public API are commented with a Javadoc block
The weaknesses
  • Only 9% of the source code is covered by 338 unit tests
  • Average cyclomatic complexity by method (excluding getters and setters) is greater than 3 (3.2).
    That is kind of a warning saying “your methods are taking too much responsibilities and should be re-factored”. This warning is confirmed by others metrics : 394 methods have a complexity greater than 7 and 86 methods have more than 50 statements. What is true at method level gets also partially confirmed at class level as 60 classes have a Fan Out Complexity greater than 20 (The number of other classes referenced by a class)
Bad programming practices that should be improved
  • 198 times, method parameters are reassigned in the core of the method
  • 68 times, local variables are defined and hide class fields
  • 28 times, NullPointerException are thrown when an IllegalParameterException would be more suitable
Potential bugs that should be quickly analyzed
  • Correctness - An apparent infinite recursive loop : there is an apparent infinite recursive loop in org.apache.sling.scripting.jsp.jasper.runtime.JspContextWrapper.include(String, boolean)
  • Multithreaded correctness - Unsynchronized get method, synchronized set method : org.apache.sling.scripting.jsp.jasper.compiler.JspRuntimeContext.getJspReloadCount() is unsynchronized, org.apache.sling.scripting.jsp.jasper.compiler.JspRuntimeContext.setJspReloadCount(int) is synchronized
  • Multithreaded correctness - Method calls Thread.sleep() with a lock held : org.apache.sling.event.impl.JobEventHandler.runJobQueue(String, JobBlockingQueue) calls Thread.sleep() with a lock held
  • Malicious code vulnerability - Field is a mutable array : org.apache.sling.jcr.webdav.impl.servlets.SlingWebDavServlet.COLLECTION_TYPES_DEFAULT is a mutable array

This analysis was done with the intention of giving a synthetic overview of the current state of the project. Where should you start from if tomorrow you wake up with a single idea in mind : “Improving quality of the Apache Sling project !” ?

  • With respectively a cyclomatic complexity of 428, 385 and 343, classes Generator, Parser and XMLEndoginDetector should be first refactored. With no surprise, the Generator.java file has the greatest number of duplicated lines (154) and rules violations (109)
  • With its 43 cyclomatic complexity and no unit tests, the method ModifyAceServlet.handleOperation(..) is what we call “a crappy method” :-)

More information on the code quality of the project is available on Nemo.

Categories: Open Source

Parcelforce deliver poor quality package and land themselves in our ‘Software Quality Hall of Shame’

The data breach at Parcelforce that exposed customer records online was reportedly down to inadequate testing of its website site.
Categories: Companies

Maven 2.2.0 is out

The Build Doctor - Wed, 07/01/2009 - 13:48
Lot of fixes and some new features. This is the week of new developer toys, isn’t it? It’s not over yet, either. My spies tell me something else is on the way. Link Did you like this? Please share it if you did! Related posts:Maven and Ivy appreciation from Ivan Moore I did comment on this blog [...]
Categories: Blogs

23rd Test Management Forum

UK Tester Forums - Wed, 07/01/2009 - 10:40

The 23rd Test Management forum will take place on Wednesday 29th
July
at the conference centre at Balls's Brothers, Minster Pavement.

1.30pm Coffee
2.00pm Start
5.15 Finish and drinks reception

Free to attend - as usual.

The meeting is sponsored by our patrons:
HP
, SOGETI and SQS UK

We are most grateful to our generous patrons.

You need to be registered on UKTMF.COM to attend. | To book a place complete the contact/booking form.

Sessions already on the programme...

read more

Categories: Communities

QTP: QuickTest Professional Unplugged by Tarun Lalwani

Stefan Thelenius about Software Testing - Wed, 07/01/2009 - 08:20
Tarun Lalwani's book QuickTest Professional Unplugged covers QTP basic as well as advanced features.

I have used QTP since 2001 (version 6.x) and if I have had this book from the start, a lot of hours and frustration had been saved.

Tarun has prior the book, contributed to the QTP community with numerous of high quality articles and forum post replies over the years. I recall an old article about Descriptive programming (DP) which made me switch from OR to DP Big-bang style (I don't regret it...).

My favorite parts in the book are the chapters regarding RegExp, IE/Word/Excel objects, HTML DOM and of course the advanced section at the end. But this book include a lot of other QTP/VBScript features as well and is well suited both for newbies (you should have some programming experience at least) and advanced users.

This is a must have for any person using QTP and/or VBScript-based automation!
Categories: Blogs