DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Newsletter
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library
  1. DZone
  2. Events
  3. Video Library
  4. Modernize Testing for Legacy and On-Prem Applications with TestComplete

Modernize Testing for Legacy and On-Prem Applications with TestComplete

Details

Summary

Legacy desktop applications and systems inside closed or regulated environments can be difficult to incorporate into modern test automation. This demonstration shows how SmartBear TestComplete records a desktop workflow, identifies application objects, adds visual checkpoints, and produces detailed execution logs. It also explores AI-assisted visual object recognition, generated test data, self-healing, and scheduled execution through TestExecute and CI/CD tools such as Jenkins.

Key Takeaways

1. Desktop workflows can be recorded as automated tests

TestComplete records a tester’s interactions with a native desktop application, including launching the application, opening files, refreshing content, and closing the session.

Those recorded actions can then be replayed as a repeatable automated test instead of requiring the workflow to be performed each time manually.

2. Checkpoints validate expected application behavior

The demonstration adds an image checkpoint around a visual marker produced when the desktop application detects a change in a JSON file.

TestComplete also supports other checkpoint types, including text and property validation and OCR-based checks. These allow teams to confirm that important interface elements and application results remain consistent between versions.

3. Execution logs support troubleshooting and auditability

After a test runs, TestComplete reports whether it passed or failed and provides execution details and screenshots.

These records help teams determine what occurred during a run, investigate failures, and retain evidence for review—particularly important for regulated or controlled environments.

4. Visual object recognition reduces dependence on selectors

TestComplete can use visual object recognition to identify interface elements from a screenshot rather than relying entirely on native selectors or XPath.

This can help when selectors change frequently or when an object is difficult to identify through conventional methods, including some elements located within a Shadow DOM.

5. AI-generated test data reduces maintenance

The data-generation capability accepts natural-language instructions, such as generating first names beginning with a particular letter.

Generated values can be assigned to test variables, previewed, and exported. This reduces the need to maintain databases or spreadsheets containing reusable test data.

6. Tests can run through automated pipelines

TestExecute allows teams to run TestComplete tests without manually opening TestComplete and selecting the Run command.

The demonstration shows a Jenkins configuration that invokes a TestComplete batch command on a schedule. Similar execution can be incorporated into other CI/CD workflows.

Key Insights and Practical Implications

  • Legacy interfaces do not have to remain manual

    Practical implication: Identify stable, repeatable desktop workflows that consume significant manual testing time and begin automation with those processes.

  • Visual behavior can become a testable requirement

    Practical implication: Add image, text, property, or OCR checkpoints where visual changes communicate whether the application behaved correctly.

  • Test evidence matters in controlled environments

    Practical implication: Retain logs and screenshots so teams can reconstruct failed executions and support internal or regulatory reviews.

  • Selector-only automation can create maintenance work

    Practical implication: Use visual recognition or self-healing as a secondary identification method when selectors are unstable or unavailable.

  • Synthetic data can replace manually maintained datasets

    Practical implication: Generate non-production test values from defined rules when real data is unnecessary or inappropriate.

  • Self-healing should remain reviewable

    Practical implication: Review automatically updated object mappings to ensure that the test recovered by selecting the intended interface element.

  • Local execution and AI-service connectivity are separate considerations

    Practical implication: Confirm the network, data-handling, and security requirements of each AI-powered feature. The demonstration states that visual object recognition sends a screenshot to SmartBear’s AI service even though TestComplete itself is not presented as a SaaS-only testing tool.

Frequently Asked Questions

Q: Can TestComplete automate native desktop applications?

A: Yes. The demonstration records and replays interactions with a desktop comparison application, including opening and validating a local JSON file.

Q: What types of checkpoints does TestComplete support?

A: The presenter mentions image, text, property, and OCR-based checkpoints. The demonstration uses an image checkpoint to validate a visual change marker.

Q: What information is available after a test runs?

A: TestComplete can indicate whether the test passed or failed and provide detailed execution logs and screenshots to help teams review what occurred.

Q: How does visual object recognition work?

A: TestComplete captures a screenshot and sends it to SmartBear’s internal AI service. The service identifies interface objects, assigns IDs, and returns that information to TestComplete for use in the test.

Q: Why use visual recognition instead of selectors?

A: Selectors and XPath values can change when an application’s interface or underlying structure changes. Visual recognition provides another way to locate an element based on its appearance.

Q: Can TestComplete identify elements inside a Shadow DOM?

A: The presenter explains that visual object recognition can help identify certain objects that conventional TestComplete object-identification methods may not be able to access, including elements within a Shadow DOM.

Q: What can the test-data generator create?

A: The demonstration generates first names beginning with a specified letter. The presenter also explains that users can generate multiple columns, numbers, and other kinds of test data.

Q: How does TestComplete self-healing work?

A: If TestComplete cannot find an object using its original recorded information, self-healing can use other identification methods to locate an object whose name or position has changed and update the test during execution.

Q: Can TestComplete tests run in Jenkins?

A: Yes. The demonstration shows Jenkins calling a TestComplete batch command on a weekly schedule through TestExecute.

Q: Does TestComplete require teams to move applications to the cloud?

A: The session presents TestComplete as capable of testing desktop, locally hosted, and web applications within existing environments, including closed networks. Teams should separately verify connectivity requirements for optional AI-powered features.

Transcript

Temil Sanchez: Test automation has evolved over time, but it can become challenging—particularly in regulated industries—when tools do not support native desktop applications.

The first example I’ll show is a quick test recording for a desktop application, which we can automate afterward.

If you are familiar with TestComplete, you may have seen this before. I’ll provide a quick walkthrough using a desktop application.

This application is a code-comparison tool. Let’s launch it.

As I work through the application, TestComplete records every interaction.

In this example, I’m going to open a JSON file that I want to test. I want to automate how the application validates and compares these files.

You may notice red markers appearing around the windows. Those markers indicate that TestComplete is identifying the application’s objects as I move through the workflow.

For this test, I’ll update the file to indicate that something has changed. I’ll then refresh the application.

The comparison application identifies what changed within the JSON file.

If I want to validate something and ensure that it remains visually consistent as the application evolves between versions, I can add a checkpoint.

TestComplete supports several types of checkpoints. I can validate text and properties, and I can use OCR to identify specific objects or characters that should remain consistent.

For this example, I’ll select an image checkpoint because I know that changes in this application are identified using this yellow marker.

I’ll draw a box around the relevant section of the screen.

TestComplete then presents a wizard asking me to confirm that this is the area I want to validate. I’ll confirm the selection and continue.

Now that the checkpoint has been added, I’ll exit the application. I do not want to save the changes because I want this test to remain repeatable.

I can now stop recording the test.

With the recorded test available, I can execute it. TestComplete will provide logs showing whether the test passed or failed, along with supporting details and screenshots.

That is useful because teams need the ability to audit previous executions and understand what may or may not have occurred during a test.

TestComplete also provides several AI-assisted options designed to accelerate testing processes.

One example is visual object recognition. This is a feature we added to reduce reliance on selectors.

Instead of depending entirely on selectors, TestComplete can recognize the visual characteristics of the application.

It does this by taking a screenshot of the application and sending it to SmartBear’s internal AI service. The service identifies each object in the screenshot, assigns IDs, and sends the resulting information back to TestComplete.

Whatever I select on the screen can then be identified using AI rather than only the native methods TestComplete traditionally uses for object identification.

You can see that through the alias provided here.

This approach means teams do not have to rely entirely on internal selectors.

It can accelerate testing because selectors—often XPath values—may change frequently as an application changes. Visual recognition can reduce the need to update those selectors manually.

Some elements may also exist within a Shadow DOM, making them difficult for TestComplete to identify through conventional object-recognition methods. Visual object recognition can provide another way to identify those elements.

Another AI-assisted feature is data generation.

You can use natural-language instructions to generate data and assign the resulting values to a variable.

The generated information can then be used anywhere within the test where data is required.

This helps teams avoid relying on real data or maintaining reusable test datasets manually. It can also accelerate test creation.

Many users need to maintain test databases or spreadsheets, which becomes an additional maintenance task.

For example, I can ask the generator to create first names beginning with the letter A.

I can insert those names into a test variable. If I need the data to remain consistent, I can also export it.

I’ll select Preview Data so you can see the values generated behind the scenes.

You can generate multiple columns and many kinds of information, including numbers and other values.

Here, you can see the first names beginning with A.

This can be valuable when you do not have time to create test data or do not want to maintain databases and spreadsheets containing test values.

TestComplete is not limited to the capabilities demonstrated here.

The Intelligent Quality add-ons list the AI-assisted capabilities available within TestComplete. These range from the features shown today to self-healing.

Self-healing may operate without being immediately visible to the tester.

During test execution, if TestComplete cannot locate an object using the information originally recorded, it can use other methods to determine whether the application changed.

If the object has a different name or has moved to another location, self-healing can help locate it and update the test while the execution is taking place.

These tests can be automated through TestComplete itself or incorporated into CI/CD processes.

TestExecute allows teams to execute tests outside TestComplete, making them part of a fully automated workflow.

I’ll show an example of a Jenkins configuration.

This test is scheduled to run weekly, as shown by the scheduling expression. Jenkins directly invokes a TestComplete batch command according to that schedule.

This is one example of scheduling the test through Jenkins. Tests can also be triggered through GitHub Actions or other workflows.

That concludes today’s demonstration.

To review, we saw how teams can generate automated tests for desktop applications as well as web applications that may operate inside closed networks.

TestComplete is not limited to a SaaS-only delivery model. It allows teams to enhance their testing capabilities and automate applications in existing environments, including regulated settings where external connectivity or application movement may be restricted.

We also saw how TestComplete incorporates AI-assisted features such as test-data generation and visual object recognition to enhance and accelerate test creation.

We reviewed additional capabilities integrated into TestComplete, including self-healing.

Finally, these tests can be automated through CI/CD or other workflows using TestExecute and generated batch commands.

Teams do not have to open TestComplete and manually select Run every time they want to execute a test. Instead, tests can become part of their automated delivery pipelines.

Presenters:

Presenter Avatar

Temil Sanchez

Product Manager, SmartBear

Join Now for More Content & Events

For event and sponsorship inquiries, please email: [email protected]

  • RSS
  • X
  • Facebook

ABOUT US

  • About DZone
  • Support and feedback
  • Community research

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 215
  • Nashville, TN 37211
  • [email protected]

Let's be friends:

  • RSS
  • X
  • Facebook