Pergunta

Estamos trabalhando em um grande projeto com algumas funcionalidades de GUI novas/modificadas.Descobrimos no passado que frequentemente introduzíamos novos problemas no código relacionado ao adicionar novas funcionalidades.

Temos usuários não técnicos realizando testes, mas eles muitas vezes perdem peças e permitem que bugs escapem.

Minha pergunta:Existem práticas recomendadas para organizar o teste de UI de um projeto WinForms?Existe alguma maneira de automatizar isso?

Obrigado!

Foi útil?

Solução

Existem ferramentas de teste de GUI que clicam em botões e outras coisas para você, mas são bastante frágeis na minha experiência.

A melhor coisa a fazer é manter a camada da IU o mais fina possível.Idealmente, suas classes de manipuladores de eventos devem ter apenas uma ou duas linhas que chamam outras classes mais testáveis.Dessa forma, você pode testar sua lógica de negócios em testes de unidade sem precisar clicar em um botão.

Outras dicas

Você pode automatizar o teste da GUI usando Branco estrutura.

Considere também usar um design amigável ao TDD, ou seja,usar MVP/MVC padrão.

Eu recomendo fortemente que você leia a documentação das equipes de padrões e práticas da Microsoft.

Especialmente dê uma olhada no Bloco de aplicativo de UI composto e CompostoWPF.

Esses projetos foram projetados especificamente para fornecer as melhores práticas no desenvolvimento de aplicativos GUI, incluindo UI orientada a testes.

Mantenha a camada GUI o mais fina possível.Artigo de Michael Feathers, A caixa de diálogo humilde, é um clássico.Confira também o livro de Martin Fowler Visão Passiva.Também ouvi dizer que os "clicadores automáticos de botões" são frágeis e que é fácil gastar mais tempo mantendo o teste do que mantendo o código.

Caso alguém ache isso útil:

Lista de ferramentas de teste de GUI encontrado na Wikipédia.

O livro a seguir é uma introdução ao assunto.Existem tantas maneiras quanto desenvolvedores por aí.

http://pragprog.com/titles/idgtr/scripted-gui-testing-with-ruby

Existem muitas ferramentas e bibliotecas disponíveis que podem automatizar os testes do WinForms, desde soluções de código aberto, como o White, até soluções comerciais caras, como o HP QuickTest Pro.Há também o namespace UIAutomation no .NET se você quiser implementar sua própria estrutura de automação.Mas o custo real da automação está no tempo e nas habilidades especializadas necessárias para sua implementação.A capacidade de manutenção também é um dos aspectos mais importantes do design de testes automatizados;você não quer gastar recursos excessivos mantendo os ativos de automação atualizados com seu aplicativo.Existem também muitos fatores que influenciam a decisão de automatizar, que serão específicos para sua aplicação e organização específicas.

Sua melhor aposta será pesquisar mais sobre o assunto e verificar alguns dos sites de testes especializados, como http://www.sqaforums.com.

Encontrei essa maneira rápida e suja de testar layouts de páginas da web em vários navegadores.É chamado browsershots.org.Nosso cliente requer suporte em 5 navegadores no momento e isso leva cerca de uma semana para o teste de regressão completo.Este serviço fornecerá capturas de tela de mais de 70 navegadores e versões.Eu os imprimo e ergo as páginas contra a luz.Se eles não estiverem alinhados, deve haver um problema de layout.

Na verdade, não posso ajudar com organização ou práticas recomendadas, mas uma NUunidade extensão parece estar disponível para teste de formulários, NUnitForms.

Usei um download de teste semelhante a este produto (http://www.tethyssolutions.com/product.htm) e este produto (http://www.mjtnet.com/macro_scheduler.htm) anos atrás e fiquei feliz com os resultados.Estas são soluções bastante baratas e alguns desses produtos de gravador de macro podem realmente ser usados ​​para testes automatizados.

Um novo método disponível agora é usar Ruby, através da gem Ruby chamada win32-autogui.Isso fornece uma estrutura para testar aplicativos GUI do Windows.Combine-o com as ferramentas Ruby RSpec e Cucumber, e isso cria uma estrutura de teste bastante poderosa.

Como organizar os testes de UI depende de como você projeta os casos de teste.

Automatizar aplicativos Windows Forms em nível de teste de unidade pode usar estrutura TDD, como NUnit;ou use a estrutura BDD, como NSpec.

A automação de aplicativos Windows Forms em nível de teste funcional pode usar White, CodedUI ou até mesmo usar diretamente API de automação do Windows 3.0 (Automação de UI e MSAA).

Como todos esses itens mencionados acima são tecnologias e não soluções, é melhor construir algumas estruturas fundamentais de automação/script de testes baseadas nessas tecnologias antes de começar a escrever testes automatizados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top