Allowing Localizing after-the-fact using MUI

Here is the problem. We built an English-only C++ application. However, now some of our customers are asking how they can translate the application into other languages. We don’t have the budget to provide translated versions ourselves, and they’d be happy to do the work themselves. Is there a way they can translate our application…


Capturing Code Coverage for Coded UI Tests

You would think that simply running coded UI tests with everything setup for capturing code coverage would just work, right? And if you’re running your coded UI tests on a 32-bit operating system, it will. However, if you’re running your tests on a 64-bit operating system, chances are you’ll see the test results (pass/fail), but…


Shrinking the Arrow on the WPF Expander

My goal was simple. I needed a smaller arrow in the WPF Expander control to help conserve screen real-estate. Here is the before and after: Before: After: The arrow on the right is 80% of the original size. So how did I accomplish this? It turned out to be far simpler than any of the…


Delay Signing a C++/CLI Assembly

This should be easy, right? Just set the link options to delay sign the assembly with an SNK file. There were two issues I ran into, which I’ll describe here. Fixing Delay Signing in SP1 I used the /DELAYSIGN and /KEYFILE settings in the properties page for my C++/CLI project and everything compiled just fine….


Interpreting C++ Code Coverage Results

You’ve finally gotten code coverage results for your C++ code. But now your code coverage numbers are lower than you expected. Why is that? And how do you get around it? There are several issues that make C++ code coverage data “noisy” and/or inaccurate. First, if you use the standard C++ libraries, you’ll find the…


Capturing C++ Code Coverage with Visual C++

I wrote an article about six months ago on code coverage in C++, which is part of my article Agile C++ Development and Testing with Visual Studio and TFS. In that article, I showed how to use a command line to create code coverage because I was under the impression that Visual Studio 2010 didn’t…


Building for Testability in C++

Ten months ago, when I joined my current team, we had a C++ application that was written as many applications are, with a number of classes, inheritance, and classes creating other classes they needed in order to do their work. The trouble was that writing tests for this code was very hard because it was…


Balancing Work By Discipline Instead of Individuals

As part of our effort to become a highly-effective agile team, we’ve been working on switching from an individual to a team focus. During sprint planning, we want to know that we haven’t taken on too much work for each discipline. And on a daily basis, we’d like to see if we’re running behind on…


Driving Automation of Test Cases

As I’ve mentioned in previous posts, our team has been working our way up the testability pyramid. We started with unit tests, and now have about 670 C++/CLI unit tests that are testing our C++ code. However, we didn’t have any automated acceptance or UI tests. Our tester was going nuts because he was always…


Fixing Cube Processing ODBC Errors

Our Team Foundation Server (TFS) cube has been running just fine. But a couple of days ago, right after we updated the passwords on the service account, it stopped updating the cube. Here I’ll briefly describe how I found the problem, and also what appears to be the fix. In order to find the problem,…