Beyond Compare 3 for Testers: An Evaluation

[article]
Member Submitted
Summary:

This article is an evaluation of Beyond Compare as it can be used in a software testing context. Jey and Areeb discuss what the tool does, specific ways it is used, similar tools, learning curves, support, and licensing.

Beyond Compare is a Windows utility that allows the user to compare data, merge changes, synchronize files/folders and generate reports on these activities.

The primary use is to compare files and folders. You can compare at a high level just comparing sizes and modified times, or more thoroughly byte by byte.

The secondary use to act on the information from above by synchronizing the data or merging it. You can additionally create reports to help with record keeping.

Why is it useful for testers? What types of things do you use it for?

Response by Jey:

I primarily use it as a replacement for TortoiseSVN's diff tool. I found out how to do it about 6 months ago from this KB: http://www.scootersoftware.com/support.php?c=kb_vcs.php BC3 also integrates with many other source control tools, as you can see from that document.

In many cases, the TortoiseSVN's diff will delete an entire line and re-present it with the changes, even though you only changed a few characters. Beyond Compare does a better job of recognizing what's actually changed and how best to show those changes.

I also use BC3 as a simple sync tool. Example: All automation servers have a copy of bug.list.xml that they look for and transform the <OpenBugs> section into the list you see in the results email. As I open/close bugs found in automation, I update the main copy of the XML and use BC3 to sync all remote copies

Some uses that come to mind:

- Comparing Wiki entries for differences after someone has updated it. EG: I compared what edits were made by one of the co-op students last term

- Comparing build outputs/installation directories: Eli asked me about a month ago to look into a hunch he had that we had stopped building some important utilities for Escalation. Turned out his hunch was correct, after we compared the build output from the two releases and filtered by *.exe

- Data comparison: Leveraged properly, this could give us a more user friendly version of DeepCompare that I wrote. We could use it to check for data corruption / footprint analysis (what did we add to the environment as we use our product)

- Version comparison: It looks like there is an option to compare versions of files. We could use this feature to check if all the versions in our files are consistent and find out which ones are un-versioned

Follow up question: Would others (devs) be interested in knowing how to replace TortoiseSVN’s diff/merge tool with Beyond Compare?

Response by Jey:

I followed up on your suggestion on seeing if the developers knew about this diff feature. It turns out that some of them were aware of it. Quang, for instance, uses another utility (Araxis Merge) that's similar to BC3, which also integrates with TortoiseSVN to act as a replacement for the standard diff/merge tools.

I tried out this other tool for a day or so, just to see how it stacks up against what I'm already getting with BC3. It's got some advantages, such graphically linking diff sections when comparing two or three files (diagram). When scrolling, Araxis scrolls the two panes at different panes at different speeds.

Beyond Compare, in contrast, always keeps the lines aligned based on what’s common, filling in empty spaces when there is no corresponding line on the other file. As a result, you see large blocks of grey lines sometimes that require you to scroll a bit more, but you can easily compare left and right at any given time. I put Araxis and BC3 to the test when merging auto-generated code in a file with over 2000 lines. In my opinion, BC3’s approach won me over, because I was frustrated with Araxis’ constantly shifting lines.

What types of things could other types of specialist testers use it for? (Think Performance testers, automation developers, etc)

Response by Areeb:

Jey outlined some uses as an automation developer when he formats the bug reports via bug.list.xml.

Using my past experience for performance testing related projects, I would try using it for:

- comparing logs such as config service logs for different scenarios to see how the log changes

- comparing performance “snapshots” using “Picture Compare” such as screen captures of process explorer before and after launching something (this may not so fruitful as the system state might change independent of our induced behaviors)

- synchronizing folders (with log files / test data / output of scripts / tools) from a remote location within the testing environment to a more permanent location such as my desktop. I had to do this manually for a lot of ATO tests at the time, and it’s an error-prone process.

What are some similar tools?

BC3

Araxis Merge, etc

FCIV (Microsoft’s File System Integrity Checker — not officially supported)

DeepCompare (internal)

Why don't you use those ones?

If the goal is to verify file integrity with a Yes/No answer to quickly tell us if two sets of data are in sync or exhibit file corruption, then an MD5-based sync tool such as FCIV or DeepCompare is appropriate.

BC3 and similar tools are better suited for that task of inspecting the way that the data differs between two sets. Since we are comparing the actual content, this class of tools works really well with text-based and small files rather than very large data sets using binary data.

What's it's usability like? Learning curve? Is it simple? Hard? Why?

BC3 is fairly easy to use and intuitive. You can pick it up and make sense of it reasonably quickly. If you have previous experience with diff tools, such as that of TortoiseSVN, then this tool will be especially easy to pick up.

Does it follow an already established UI paradigm or blaze a new trail (for better or worse)?

Beyond Compare uses a standard Windows Forms-style UI with a toolbar along the top and two or three panes for comparing diffs and merges (where you have a base, your changes and the third party’s changes). They make use of current UI technology such as tabbed viewing and session-based experience.

A lot of products hamper the user experience by cluttering their UI with all the features available in the product, regardless of context. In Beyond Compare, the UI changes based on the type of comparison that you are performing. For instance, when doing an image comparison, you will see buttons for toggling sensitivity for the differences in colour. These options are not present when doing a text-based diff.

The entire working window changes depending on the type of comparison. Merge operations on text files are laid out in two to three panes, with a separate pane for your copy, the base copy and the “other” copy, with another pane for the merged copy to be saved.

“Sessions” in beyond compare are similar to a “recently opened files list” in other programs. Any session that you’ve conducted in the past will be presented to you in an initial launch page of Beyond Compare. From this page, you can pick a previous session or launch a new one.

How much does it cost? What's the licensing model?

Editions:

There’s a Linux and Windows version, two editions: Standard and Pro, and two basis for licensing: per-user or per-workstation.
Pro has the following features in addition to the ones in the Standard edition:

- 3-way text merging

Compares independent changes against a common ancestor to create new merged content.

- Pro only Windows logo Source control integration

Adds commands for checking files in or out of SCC-compliant version control systems. Windows only.

- Pro only Built-in SFTP support

Rather than relying on third-party solutions, BC3 Pro has integrated support for secure FTP protocols (SFTP and FTP over SSL).

- Pro only Text replacements

Lets you flag certain text replacements as unimportant differences in a Text Compare session. For example, ignore all instances where apple was replaced by orange.

- Pro only Folder Compare alignment overrides

Overrides how files are aligned in a Folder Compare session. For example, you could compare your .gif files on one side with .png files of the same name on the other side.

Pricing:

You can get started with a 30-day free trial of either edition. And to buy it will be $30 for Standard and $50 for Pro. The cost per user goes down the more users are licensed at one site.

Here’s a pricing chart:

Windows or Linux

Dual Platform

Quantity

Standard Edition

Pro Edition

Standard Edition

Pro Edition

1 - 4

$30 / user

$50 / user

$48 / user

$80 / user

5 - 9

21 / user

35 / user

33.60 / user

56 / user

10 - 49

18 / user

30 / user

28.80 / user

48 / user

50 - 99

12 / user

20 / user

19.20 / user

32 / user

100+

9 / user

15 / user

14.40 / user

24 / user

Site

$4500

$7500

$7200

$12000

Enterprise

$18000

$30000

$28800

$48000

All pricing is in US dollars.

More details at: http://www.scootersoftware.com/moreinfo.php?zz=pricing

How does one go about getting support for the product?

Scooter Software, the vendor of this product has an extensive Support page with Forums, videos of new features, bug reporting and Knowledge Base. One of the KB links described how to integrate BC3 into TortoiseSVN as mentioned above in the answer to the first question.

Their forums appear to have an active community that can help with issues that the vendor may not have run into first-hand; there are even international sub-forums in different languages. Additionally, there is a phone number and an email address that can be used.

Do you have any experience with their support process/team?

We have not had any experience with the product that required a tech support call.

KB: http://www.scootersoftware.com/support.php?zz=know

Forums: http://www.scootersoftware.com/vbulletin/

About the author

About the author

CMCrossroads is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.