Author: Bill Echlin

How To Map Objects in TestComplete – part 2

November 27, 2014
We’ve looked at ‘Why we need name mapping‘ and we’ve covered ‘What name mapping is‘. Now we’re going to take a look at the ‘How to map objects’ part of TestComplete. The quick way to get started with mapping objects is to have TestComplete populate the name map as you record tests. This isn’t the best approach though. TestComplete does it’s best to create a concise list of mapped objects but it doesn’t always get it right. The best way to build your name map is to map your objects manually. So switch off the automatic mapping (to stop TestComplete filling up the name map with stuff you’re not interested in). Then select all the objects you need to interact...
Read more...

Setting Up Automated Tests in QAComplete

November 21, 2014
We’re going to continue with our look at how to combine manual and automated tests with QAComplete and TestComplete. We’ve already seen how to install and configure the Test Agent which connects QAComplete and TestComplete. Now we look at how to setup automated tests and execute them. You will need to configure the Test Manager Agent on the TestComplete clients machines before you follow these steps. More on this in Bringing Manual and Automated Tests Together Checking That Automation Hosts Are Available At this point we should have the agent installed and running on the TestComplete client machine. This process should show in Task Manager on the TestComplete machine as TestManagerAgent     -      Test Manager Agent You can also check in QAComplete...
Read more...

Bringing Manual and Automated Tests Together

November 7, 2014
Bringing manual and automated tests together to deliver combined reporting and traceability is an important goal for many QA teams. Usually this means linking an automated testing process into a manual test tracking tool. With the new 9.9 release of QAComplete and release 10.0 of TestComplete implementing an integrated solution becomes possible without investing vast amounts of money or lots of time and effort. In this post we’ll be looking at how to setup QAComplete and TestComplete integration. Then we’ll see how this can really benefit your QA efforts as we look at combined reporting and traceability in the follow up post. The high level architecture here revolves around having a central test management capability (delivered by QAComplete) and a...
Read more...

Understanding TestComplete Name Mapping – part 1

March 28, 2014
Often when you start out with TestComplete you’ll find yourself bewildered by the complexity of identifying and naming the objects in the application you’re testing. TestComplete has a lot of powerful features to help with identifying objects in applications but when you’re starting out you’ll want to get to grips with the basics. The next few posts look at good approaches for mastering Name Mapping in TestComplete. If you want to understand ‘why’ we have name mapping then this into article is a good place to start. If you want to understand ‘what’ name mapping is then read on. Or if you just want to find out ‘how’ to get started then we’ve got another post coming up soon. What...
Read more...

NameMapping – Conditional Mode

October 7, 2013
We’ve mentioned in previous posts about Name Mapping in our software test automation tool TestComplete. Whilst creating a Mapped name for an object we select a few properties which we use to identify that object. This is the ‘Basic Mode’ of Name Mapping. In some cases though, the value of the selected property may differ. Perhaps in a different environment the properties are different. For example, a window may have different class name in different OS. Sometimes you may want to give the value of the property within some range or with some condition. For example, Childcount > 34, or Name should start with the string “save”. To create name mapping with these conditions we have to use the Conditional...
Read more...

TestComplete Project Test Items

In Testcomplete the Test Items page within your project is used to organize, manage & execute the test cases that you’ve automated. For example we might have developed test automation scripts for thousands of test cases. However, each time we want to create a software test automation run we may want to execute only a selection of the testcases. We may also want to execute some multiple times with different test data. The Test Items feature allows us to perform all of these tasks simply. Organise Testcases Execute only selected Testcases. Execute a testcase multiple times Executing a testcase with different test data A blank Test Items page will look like this: So lets work with this and consider the...
Read more...

How to Create Data-Driven Tests with DB Table Project Variables

October 4, 2013
Let us consider a recorded test automation script for a scenario in an application. In that script, we have the test data which we entered into our application while recording the test. If you execute the script, it will use exactly the same test data. However, this approach isn’t scalable and forces you to use the same test data every time your run the script. So ideally we should create test scenarios with a range of different test data. If your application has a scenario, which needs to be tested with different test data, then you can go with data-driven framework for automated testing. A Data-Driven framework is an excellent test automation framework, which gives good test coverage with minimal...
Read more...

How to Use NameMapping & Aliases for effective scripting

October 2, 2013
The Full Name of an object, which is defined by TestComplete, can be difficult to work with. For example if you have a long object name with special characters, typing and reading it can be time consuming and prone to typing mistakes. Let us say a textbox in a web page has the following name. Sys.Process(“iexplore”, 2).Page(“https://www.google.com/accounts/ServiceLogin?service=mail&passive=true&rm=false&continue=http%3A%2F%2Fmail.google.com%2Fmail%2F%3Fui%3Dhtml%26zy%3Dl&bsv=llya694le36z&scc=1&ltmpl=default&ltmplcache=2&from=login”).Table(1).Cell(0, 1).Panel(“login”).Form(“gaia_loginform”).Panel(“gaia_loginbox”).Table(0).Cell(0, 0).Panel(0).Table(“gaia_table”).Cell(2, 1).Textbox(“Email”) This is not a simple bit of text to work with. To overcome this issue we can use the NameMapping feature. In the above mentioned object, from the text “Sys” to “Textbox(“Email”)” we can create a Mapped name for every object and use it in our scripts. If you want to learn more about the basics of how name mapping...
Read more...

Why We Have Name Mapping in TestComplete

September 24, 2013
TestComplete has many features to simplify test automation script development work. One of them is Name Mapping. Using this feature we can create a Mapped name using the properties of the object in our application. We can then use this name to refer to that object in our scripts. But why should I create a Mapped name? What are the advantages of doing this? Let us consider the following example. In a web page we have a button, a ‘Login Button’. In the process tree the full name for this button is as follows: Full Name of Login button: Sys.Process(“iexplore”).Page(“*”).Form(“main”).Button(“button1”) If I use this Full Name in my test automation script to refer the button it is easy to get...
Read more...

Automating Black Box testing using Find Image feature

September 18, 2013
Sometimes we’ll find that our application won’t be open to TestComplete. So the application doesn’t expose any details about the it’s objects and methods, or Testcomplete may not have in-built support for the controls or windows in the application. For example we may have a browser type that is not supported by TestComplete. Equally we may have objects like toolbar buttons, icons that aren’t supported by TestComplete. To automate test on these types of applications, we can use Find Image feature. What do we mean when we talk about automation using the Find Image feature? Using the Image of a particular control, window or object, our script will find the position of the object and then performs an action on...
Read more...