September 29, 2016

In This Issue

Join us for a day, reap the benefits for years to come
Testing, Testing, 1,2,3
DO examine and modify your Synergy data
Do you want to know what issues have been reported or fixed in your version of Synergy/DE?
Tech Tip: Debugging Visual Studio crashes
Industry News
Synergy/DE Links

Join us for a day, reap the benefits for years to come

Get up to speed fast at our free, one-day user group meetings in the UK!

Join Synergex on October 18 in Reading or October 20 in Manchester to learn about the exciting new features in today’s Synergy/DE. Building on the core strengths of previous versions, Synergy/DE 10.3.3 gives you a path to mobile devices and provides many features and improvements throughout the Synergy toolset for developers creating both .NET and traditional Synergy applications. 10.3.3 provides enhanced security through encryption, as well as initial support for UWP apps. Plus, it supports Windows 10 and Visual Studio 2015.

Our senior Professional Services Group consultant and our Synergex Technology Evangelist will spend the day teaching you how you can use these enhancements to advance your applications. Topics include

  • Developing with traditional Synergy in Visual Studio
  • What’s new in Symphony Framework
  • Creating, displaying, and printing PDFs with HaruPDF and SynPSG.PDF
  • SQL Connection and replicating a Synergy DBMS database
  • Migrating a UI Toolkit application to WPF
  • Migrating from xfServerPlus to Synergy .NET and exposing RESTful web services
  • Enhancements in the Select class

Learn more and register on our website.

Testing, Testing, 1,2,3

Synergex QA takes full advantage of automated tests
By Johnson Luong, Synergex Software Test Engineer

Manual testing is a slow, time-consuming process that is also monotonous, laborious, and prone to human error. Oh, and did I mention it’s boring? What’s the solution? Automated testing, of course. It removes the human element from test execution (though not from test creation) and frees up test engineers to concentrate on writing better tests or fixing current tests. It’s more efficient, too: automated tests can be run overnight or while the test engineer is at lunch.

Here at Synergex, QA has replaced the majority of our manual tests with automated tests. Since automated tests run faster than manual tests, we can spend less time executing tests for our products, which enables us to report test results to developers sooner and allows them to spend more time eradicating the bugs before release. In addition, we create automated regression tests from most bugs that we discover so our automated tests can be as thorough as possible. We use TestComplete from SmartBear to write our automated tests in scripting languages such as JavaScript or Python. TestComplete parses scripts and performs actions based on what the scripts assert.

For example, a test script may tell TestComplete to type into a text box, click a button, and then assert that the text inside the text box is correct. After a test is finished, TestComplete will display the results for the test engineer to review. TestComplete also supports a continuous integration strategy (where integrated builds are performed and tested on a regular and frequent basis) and can be set up to publish failed test results to bug-tracking tools, such as JIRA, automatically. For more information about TestComplete, visit

The testing we do at Synergex is more than just writing and executing automated tests: we also create a test plan to identify which tests to write and execute to avoid wasting time on unnecessary testing. For example, if an existing product is being released with a new version of Synergy/DE, there’s no reason to test it constantly during a testing cycle if nothing has changed in the underlying code for the product. Test plans are also useful in documenting a history of test results for tracking purposes. For example, if we inform a developer that a feature of Workbench has a bug in it, we can also tell when it last worked correctly, so the developer can look specifically at the changes since then that may have caused the bug.

It’s also imperative that we organize our tests in a logical way, to categorize and test discreet functions or features. For example, if a test validates a specific tagging feature in Workbench, it belongs in the Workbench tagging section of the test plan. This allows us to test all the tagging features of Workbench together, without having to waste time testing unrelated Workbench functions.

Synergex uses VMware Workstation to run automated tests. Each Virtual Machine (VM) inside Workstation is set up identically, to remove as many third-party or other unrelated factors as possible. Since our automated tests are so extensive, it usually takes days for an individual computer to run them all completely; however, since we organize our tests by features, we are able to break up and separate our tests to run on individual VMs, thus reducing the overall amount of time it takes to run everything. We log the amount of time it takes to run a test for a feature and then use that time estimate to help determine which test to run on which VM. We can then set up the VMs in such a way that all tests finish at roughly the same time, so virtually no time is lost waiting for a test to finish.

TestComplete is set up to report test results to a centralized location on our servers, so we can access test results from any computer, rather than just the VM that ran the test. This ability to review a test’s results independent of which VM it was run on also allows anyone to review the results—not just the test engineer who ran the test. After reviewing the results, we mark down the overall result in the test plan for tracking purposes, we report any plausible bugs to the developers, and the developers help us determine which ones are actual bugs. If an issue is a bug, a developer fixes it and tells us whether we should write an automated regression test. This process enables us to strengthen the overall effectiveness of our tests.

We use Workstation’s snapshot feature to save snapshots of testing states. If a developer needs to see the exact state of a VM to debug something, we can immediately revert Workstation back to that state, without having to run the test again to get to a specific point. For more information about VMware Workstation, visit

Manual testing might be an easy way to start testing, but test engineers must use structured automated testing if they want to progress. Automated tests allow test engineers to spend less time executing tests and more time reviewing test results. Test engineers should also use virtualization technology, such as VMware Workstation, to run more tests at the same time. The quicker turnaround time also allows developers to fix bugs faster, and additional tests created from test failures enable the test to be more robust and thorough. Overall, it’s a win-win situation for everyone.

DO examine and modify your Synergy data

Looking for a way to expose Synergy data as “Data Objects”? A Data Object, or DO for short, is a class that exposes the fields of a repository structure as properties, which can be accessed using Get and Set methods. Learn how by reading the Synergex blog.

Do you want to know what issues have been reported or fixed in your version of Synergy/DE?

Check it out in the Synergex Resource Center

Did you know that you can see what issues have been reported and what their status is in the Synergex Resource Center? If you are encountering a problem and want to see if it has been reported, or if you want to see the status of a particular tracker, or if you’re just curious about what others have encountered, take a look at the Most Recent Trackers page in the Synergex Resource Center.

You can select which trackers to display based on product (Synergy Language, xfServer, etc.), version the problem was reported in, operating systems affected, fix status, and fixed or targeted version. The status field lets you know what stage the tracker is in: Assigned (to a developer), Fixed, Verified (by QA), Complete (documented and targeted for a release), or Released.

If an issue in the current Synergy/DE version has been fixed for a future release, the fix may become available sooner in a patch or hotfix. If you see an issue that might affect you, and if the issue has been fixed but not yet released, we encourage you to contact Developer Support to see if it's available in a hotfix.

Tech Tip: Debugging Visual Studio crashes

If Visual Studio crashes, you can use the following procedure to create a dump file for Microsoft Support or for Synergex Support.

  1. Start Visual Studio, and then start a second instance of Visual Studio (e.g., by right-clicking the Visual Studio icon on your Windows taskbar and selecting Visual Studio from the context menu).
  2. In the second instance of Visual Studio, select Debug > Attach to Process from the menu or press CTRL + ALT + P. The Attach to Process window opens.

  3. Select the Visual Studio process, devenv.exe, and click Attach. You are now debugging Visual Studio.
  4. Go to the first instance of Visual Studio and repeat the steps that caused Visual Studio to crash.
  5. When Visual Studio crashes, return to the second instance of Visual Studio and select Debug > Save Dump As, then use the “Save Dump As” window to save the dump file.

    You now have your dump file to send off to the appropriate support team.

Industry News

Microsoft scrubs Windows 7 PCs of upgrade nagware
Windows 10 Redstone: A guide to the builds
Windows 10 Anniversary Update rollout may not be done until early November
VMS Software, Inc. announces new TCP/IP stack
September 2016 OpenVMS roadmap
TLS 1.3 to enhance web security and improve site loading speed
Oracle gives NetBeans to the Apache Foundation
Zero-day vulnerability found within MySQL database application
Mozilla slowly grants multi-process Firefox to more users

Synergy/DE Links

Product Documentation
Current Release (10.3.3)
Product Videos
Resource Center
Contact Us
Stay up-to-date on the latest Synergex information & news