4

In the current "Automated Software Testing" magazine there is a short article about IcuTest. It is written that with "Test Generator" you can automatically create GUI unit tests:

ICUTest is a free GUI Unit test tool for Windows Presentation Foundation. Test Generator, included with ICUTest, is a tool that automatically creates GUI unit tests for an application. Just specify your assembly (executable or DLL) and Test Generator will inspect your assembly for UI components and generate unit tests automatically.

  1. What is the benefit of such tests, what is tested? Is it a bitmap comparison that is recorded when you execute Test Generator for the first time and which wants to make sure the layout does not change? If yes, it could be a useful tool to see whenever some (unexpected) changes to the GUI were made. Am I right?
  2. Is anyone using this tool in production environment?
3

According to the Quick start guide the principle method used in generating the test code is CheckView(). Which compares two png screenshots of a screen a before and after then throws an exception if there are any differences. In the background it does this with some unit testing code:

static IcuTest ICU = IcuTestStarter.IcuFromDir(@"c:\test_data");

[TestMethod]
public void TestMyWindow()
{
    ICU.Invoke(() => {
        var w = new MyWindow();
        w.Show();
        ICU.CheckView(w, "MyWindowTest");
        w.Close();
    });
}

We don't use this tool in production, but it seems to me to just be a proprietary unit testing framework specialized for UI work - with the main aim to avoid threading issues. Maybe have a look here for a open source solution you can modify and build on. As I would be worried about this auto generated method misinterpreting my screens (although maybe someone with more expertise on this product could provide more information - I could be wrong).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.