preload

Business Value – Purpose

Posted by Albert Gareev on Jun 27, 2014
1
By industry standard definitions, test automation is created with the purpose of extending coverage, saving in test execution time, allowing for increase of test iterations, earlier detection of defects, and everything altogether. Therefore, only created and successfully used on a regular basis test automation should be considered as adding value. Coverage assessment must be done […] ...

Automation Requirements, Revisited – 2014

Posted by Albert Gareev on Jun 24, 2014
0
As I’m finding myself, I’ve been writing about QA Test Automation quite extensively in the years around 2010. No surprise – it was my main specialty. Then I was extending and sharpening my skillset in the field of QA Testing, and writing more and more about my new interests. Yet it wasn’t a transition – […] ...

FilterChildElementsByAttrRegEx (QTP, TestComplete, ...

Posted by Albert Gareev on May 15, 2014
0
Parent page: Service Functions – MSXMLDOM (QTP, TestComplete, VBScript) Description Filters parent XML object by removing child XML nodes not matching specified attribute regex value. Implementation Unit Tests ...

FilterChildElementsByAttr (QTP, TestComplete, XML, ...

Posted by Albert Gareev on Apr 23, 2014
0
Parent page: Service Functions – MSXMLDOM (QTP, TestComplete, VBScript) Description Filters parent XML object by removing child XML nodes not matching specified attribute value. Implementation Unit Tests ...

GetChildElementByAttrRegEx (QTP, TestComplete, XML, ...

Posted by Albert Gareev on Apr 15, 2014
0
Parent page: Service Functions – MSXMLDOM (QTP, TestComplete, VBScript) Description Returns child XML node with specified attribute matching specified regex. Implementation Unit Tests ...

AppendChildElements (QTP, TestComplete, VBScript)

Posted by Albert Gareev on Feb 10, 2014
0
Parent page: Service Functions – MSXMLDOM (QTP, TestComplete, VBScript) Description Append all child elements from the list (including their attributes, comments, text nodes) to XML node. Implementation Test Code ...

Designing Data-Driven Test Cases

Posted by Albert Gareev on Jul 19, 2013
1
As I presented in my last post, a lot of test coverage is either data-specific or triggered by data combinations. This is an easy kind of tests to automate assuming well-known and explicit inputs and outputs. Below I enlist most common patterns and test ideas. General Patterns All major business requirements (the ones that are […] ...

How to find all links on a web page (TestComplete)

Posted by Albert Gareev on Dec 15, 2012
0
Description Get parent object reference. In the example given, it’s a browser process, but you can narrow it down to a page or a web container object (table,  div, etc.). Use FindAllChildren to retrieve array of links. – You can limit search depth according to your context. – You may want to do filtered search using […] ...

TestComplete 9 – Performance Tuning

Posted by Albert Gareev on Dec 12, 2012
0
This post is not about performance testing with TestComplete. This post is about tweaking TestComplete configuration parameters to make it less “greedy” on resources, especially CPU, while performing run-time recognition of a complex GUI. This will mostly be useful to experienced test automation engineers who create their own scripts without record/playback and hard-coded GUI name […] ...

Free test data generators

Posted by Albert Gareev on Oct 14, 2012
0
Here are a few free data generator tools available online. Lorem Ipsum It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to […] ...

ChildAttributeValueByName (QTP, TestComplete, VBScript)

Posted by Albert Gareev on Sep 08, 2012
0
Parent page: Service Functions – MSXMLDOM (QTP, TestComplete, VBScript) Description Returns text value of node’s child attribute specified by name. Valid arguments: an XML element node (NODE_ELEMENT type), name of the attribute. If XML node is not defined, returns empty string. Uses private function p_GetXMLElementAttrText, defined within the library (see parent page). Implementation ...

Let’s Hammer It Right (Performance Testing, ...

Posted by Albert Gareev on Sep 05, 2012
0
Parent page: Load/Performance Testing with NeoLoad In a few of my recent posts I mentioned importance of avoiding unrealistic stress in test sessions. – And I also mentioned that there are situations when we indeed want to explore behavior of the application being under stressing load. But first of all, let’s agree on some definitions. […] ...

Stress Is Not A Good Way To Start (Performance ...

Posted by Albert Gareev on Aug 22, 2012
0
Parent page: Load/Performance Testing with NeoLoad Providing irrelevant or misleading test results is worse than not providing test results at all. When using automation, testers must be twice as careful about relevance of tests – or maybe ten more times, hundred times – depending on how much judgment is passed on to mindless side. Load […] ...

Using dynamic array structures (Performance Testing, ...

Posted by Albert Gareev on Aug 15, 2012
0
Parent page: Load/Performance Testing with NeoLoad Load scripts are typically linear: they’re intended to generate a load, not to cover sophisticated logical scenarios checked by functional automation and explored by skilled testers. For this reason, load scripts rarely contain complex code branches and loops. Yet there are functional scenarios that are part of the load, […] ...

Catching Failures (Performance Testing, NeoLoad)

Posted by Albert Gareev on Aug 08, 2012
0
Parent page: Load/Performance Testing with NeoLoad Although recording is necessary phase in creation of load scripts, I prefer constructing my own modules based on results of reverse engineering analysis of captured client/server communication. Partially because this way I create reusable structures with containers, partially because I want to control setting of think time and pacing, […] ...

Performance is an end-to-end thing

Posted by Albert Gareev on Aug 06, 2012
0
Some time ago I had a hard time discussing performance problem with application developer. My challenge was to overcome a “block” set by the developer: “this is a one-page code, it’s a very simple logic, and I see no reasons to spend time evaluating its performance”. I didn’t have more than 5-7 minutes for the […] ...

Follow the CRUMBS

Posted by Albert Gareev on Jul 14, 2012
0
“Follow the CRUMBS to evaluate Test Automation” is second (and final in series) article I published in close collaboration with Michael Larsen. With the first one we set focus on questions to raise while preparing for automation project – and in the second we discussed main heuristic evaluation criteria: Confirmation, Coverage Criteria, and Complexity Risk, Robustness, and Reliability […] ...

Coming to TERMS with Test Automation

Posted by Albert Gareev on Jun 22, 2012
0
“Coming to TERMS with Test Automation” is an article I published in collaboration with Michael Larsen. We discussed main questions to consider when you’re about to start a [test] automation activity: Tool / Technology Execution Requirements and Risks Maintenance (and maintainability) Security Download the magazine (PDF) from Software Test Professionals web-site: ST&QA Magazine 2011/2012 Dec/Jan […] ...

“Think Time” matters. A lot more than it ...

Posted by Albert Gareev on May 23, 2012
0
Parent page: Load/Performance Testing with NeoLoad The way you execute requests to the server will have a dramatic effect on results! Why dramatic? – Because numbers might be telling opposite stories, either giving you a true picture or misleading you about what’s happening. But let’s get to a concrete example! We start with the same […] ...

NeoLoad Containers: Taking Group Measurements

Posted by Albert Gareev on May 22, 2012
0
Parent page: Load/Performance Testing with NeoLoad I keep reviewing NeoLoad Containers, this reusable units, serving the same way as functions in a function library. The main outcome we want to get from load session is measurements – response time, errors, throughput, etc. All tools allow obtaining measurements from individual requests posted and some tools allow obtaining aggregate […] ...

NeoLoad Containers: Managing Pacing and Think Time

Posted by Albert Gareev on May 16, 2012
0
Parent page: Load/Performance Testing with NeoLoad I’ve quickly mentioned containers here. Now I want to get back to this concept with regards to load execution delays, commonly referred as “Think Time” and “Pace Time”. Same as typical user makes pauses while working with an application, the load script needs to delay execution for periods of time in […] ...

How to re-point load script (NeoLoad)

Posted by Albert Gareev on May 15, 2012
0
Parent page: Load/Performance Testing with NeoLoad You probably don’t want to rewrite your load testing scripts just because you need to run them against another server. With NeoLoad you can re-point them with one of the following. Change ‘server’ parameter in call of GET/POST methods Go to Design tab Select Virtual User – your script […] ...

Visual Programming Framework in NeoLoad

Posted by Albert Gareev on May 14, 2012
0
Parent page: Load/Performance Testing with NeoLoad Maintenance of automation scripts is the biggest problem, as you know, apart of the problem of getting value from automation. Typically, to reduce maintenance costs and generally make scripts more structured, the efforts are focused on: Automating “mechanical” aspects of maintenance. Simplest example – “Find/Replace” functionality in code editor. […] ...

TestComplete Forms – Using Custom Events

Posted by Albert Gareev on Apr 17, 2012
0
Parent page: Using GUI Forms in TestComplete Even though automation scripts are intended to drive the application under test there are cases when communication with tester is required. With TestComplete, we have a vast arsenal of predefined GUI controls for that (and those, acquainted with Delphi, will be pleasantly surprised by the way it’s organized). […] ...

TestComplete – “UserName/Password” Form

Posted by Albert Gareev on Apr 16, 2012
0
Parent page: Using GUI Forms in TestComplete Even though automation scripts are intended to drive the application under test there are cases when communication with tester is required. With TestComplete, we have a vast arsenal of predefined GUI controls for that (and those, acquainted with Delphi, will be pleasantly surprised by the way it’s organized). […] ...

TestComplete – Using ‘File Open’ ...

Posted by Albert Gareev on Apr 10, 2012
0
Parent page: Using GUI Forms in TestComplete Even though automation scripts are intended to drive the application under test there are cases when communication with tester is required. With TestComplete, we have a vast arsenal of predefined GUI controls for that (and those, acquainted with Delphi, will be pleasantly surprised by the way it’s organized). […] ...

Adding GUI forms in TestComplete project

Posted by Albert Gareev on Apr 09, 2012
0
Parent page: Using GUI Forms in TestComplete Even though automation scripts are intended to drive the application under test there are cases when communication with tester is required. With TestComplete, we have a vast arsenal of predefined GUI controls for that (and those, acquainted with Delphi, will be pleasantly surprised by the way it’s organized). […] ...

GetTokenByKeyword (QTP, TestComplete, VBScript)

Posted by Albert Gareev on Mar 06, 2012
0
Parent page: Service Functions – String (QTP, VBScript) Description Get token string from the source string. Position is relative, defined by another token-keyword and a number. Implementation ...

GetTokenByNumber (QTP, TestComplete, VBScript)

Posted by Albert Gareev on Mar 05, 2012
0
Parent page: Service Functions – String (QTP, VBScript) Description Get token string from the source string. Position is absolute, defined by number. Implementation ...

Automation Robustness Factors (mindmap)

Posted by Albert Gareev on Feb 15, 2012
0
(Click on the picture to view it full-size in a separate browser window) ...
Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported
This work by Albert Gareev is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 3.0 Unported.