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?
Araxis Merge, etc
FCIV (Microsoft’s File System Integrity Checker — not officially supported)
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?
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.
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
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
9 / user
15 / user
14.40 / user
24 / user
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.