Não existem mais testes em aplicações Desktop?

Ernesto Barbosa
CWI Software
Published in
2 min readMar 26, 2019

Atualmente existem inúmeros artigos, posts, sites e cursos sobre automação de aplicações web. Entretanto muito pouco é explorado sobre aplicações desktop, seja pela dificuldade técnica de implementação de testes, seja pela praticidade na utilização de ferramentas proprietárias, como QuickTestPro, TestComplete, Unified Functional Testing, entre outras.

Mas por que?

Por que não falamos mais sobre testes em aplicações desktop?

O mercado tem focado muito em aplicações web e em dispositivos móveis, resultado da alta demanda nesta área. Mas esta ainda não é a realidade de muitas empresas, que por inúmeros motivos, ainda precisam manter e sustentar aplicações desktop.

Para promover o debate e auxiliar quem busca por opções open source, trago dois exemplos de ferramentas que permitem a instrumentação de aplicações desktop: Appium e White.

Pré-requisitos

Para que os testes possam identificar os atributos e interagir com os elementos das suas aplicações, é necessário habilitar o modo desenvolvedor no Windows. Se você está utilizando Windows 10, pode seguir o exemplo deste link: https://docs.microsoft.com/pt-br/windows/uwp/get-started/enable-your-device-for-development

É necessário também instalar a SDK do Windows, disponível em https://developer.microsoft.com/pt-br/windows/downloads/windows-10-sdk

A SDK contém alguns utilitários que podem ser úteis para detecção de elementos, como o Inspect e o UIAVerify.

Appium+WinAppDriver

Appium é um framework muito utilizado para testes de aplicações nativas para dispositivos móveis. Além de aplicações Android e iOS, ele também permite a criação de testes para aplicações Windows, utilizando o WinAppDriver (https://github.com/Microsoft/WinAppDriver/).

O WinAppDriver (Windows Application Driver) provê métodos de interação entre os serviços disponibilizados pelo Appium e a instrumentação de aplicações Windows. Alguns exemplos de implementação de testes pode ser encontrados em https://github.com/Microsoft/WinAppDriver/tree/master/Samples

A documentação de como implementar testes de aplicações windows com appium pode ser encontrada em http://appium.io/docs/en/drivers/windows/

Por implementar o protocolo Webdriver (conhecido também como JSON Wire Protocol), é possível criar os testes utilizando Java, C#, Javascript, Ruby, Python ou outra linguagem de sua preferência que o implemente em alguma biblioteca — se preferir, você mesmo pode criar os métodos a partir do protocolo, utilizando a linguagem que desejar.

White

É um framework escrito em C# para automação de testes em aplicações desktop (Windows Forms, Silverlight, SWT/Java, etc.). Por integrar-se diretamente ao UIAutomation e MSAA (Microsoft Active Accessibility), tem uma performance superior à implementação com Appium. Em contrapartida somente pode ser utilizada com a mesma linguagem.

O repositório do White também disponibiliza exemplos de como implementar seus testes. Link: https://github.com/TestStack/White/tree/master/src/Samples

Além dos frameworks citados, existem outros que também implementam opções de interação com aplicações deste tipo. O ideal é sempre avaliar qual trará mais benefícios para o contexto do seu projeto.

Espero que estas dicas ajudem àqueles que buscam opções para agilizar os seus testes no dia-a-dia. Se você conhece outras ferramentas ou deseja contribuir com o post, comente e compartilhe.

Até a próxima! \o/

--

--

Ernesto Barbosa
CWI Software

Solutions Engineer at CWI Software; MSc. in Applied Computing