Pergunta

Eu estou trabalhando sobre a questão de testar meu GUI e não estou inteiramente certo da melhor abordagem aqui. Meu GUI é construída usando uma estrutura tradicional MVC assim que eu sou facilmente capazes de testar as partes lógicas da GUI sem abrir o próprio GUI. No entanto, quando se trata de testar a funcionalidade do GUI, eu não tenho certeza se eu deveria se preocupar com individualmente componentes testando GUI ou se eu deveria principalmente se concentrar apenas em testes funcionais do sistema. É um sistema muito complexo no qual testar a GUI com frequência envolve o envio de uma mensagem para o servidor e, em seguida, observando a resposta na GUI. Meus pensamentos iniciais são de que o teste funcional é o caminho a percorrer aqui desde que eu preciso todo um sistema em execução para realmente testar a interface do usuário. Comentários sobre esta questão seria apreciada.

Obrigado, Jeff

Foi útil?

Solução

Você tem (pelo menos) 2 questões -. A complexidade do ambiente (o servidor) e da complexidade do GUI

Existem muitas ferramentas para automatizar testes de GUI. Todos eles são mais ou menos frágil e requer praticamente manutenção constante em face da mudança de layout. Há benefício a ser adquirida a partir de usá-los, mas é um benefício a longo prazo.

O ambiente, por outro lado, é uma área que pode ser domado. Se sua aplicação for arquitetado usando a injeção de dependência técnica / Inversão (onde 'injetar' o componente de servidor na aplicação), então você pode usar uma 'falsa' das interfaces de servidor relevantes para que você possa casos de teste script.

A combinação destas duas técnicas lhe permitirá automatizar testes GUI.

Um pensamento final - boa sorte

Outras dicas

Outras ferramentas de teste de GUI que eu posso oferecer são: Thoughtworks Branco , PyWinAuto , AutoIt , AutoHotKey .

Uma coisa para manter em mente quando se tenta automatizar GUIs é que a única maneira que você pode fazer isso é construir a GUI com automação em mente. devs esmagamento que pensam que suas GUIs deve não suporte a capacidade de teste no início do projeto e, felizmente, expor todos os ganchos que podem ajudar na automação sob demanda como suas necessidades de teste exige isso.

Dependendo de onde no espectro de MVC (que é um termo usado em demasia) você se sentar, testando a visão poderia ser um processo mecânico de assegurar que os métodos de modelo corretos são chamados em resposta às entradas corretas para o fim de testar algum cliente validação do lado de quem sabe.

Um monte de padrões que foram evoluiu a partir de MVC (eu estou pensando vista passiva , supervisão controlador) estão se esforçando para fazer o ponto de vista exigem muito pouco teste porque ele realmente é apenas fiação entradas do usuário para o apresentador ou modelo (dependendo da variante exata do padrão que você está usando).

"testar a GUI com frequência envolve o envio de uma mensagem para o servidor e, em seguida, observando a resposta na GUI" Esta declaração me preocupa.

Estou imediatamente pensar que o GUI deve ser testado utilizando uma maquete ou esboço do servidor para o teste que as interações corretas estão ocorrendo e as responde GUI adequadamente.

Se precisar de testes funcionais automatizados do servidor, não vejo a necessidade de ter o GUI envolvido naqueles.

Mercury QuickTest Pro, Borland SilkTest, e Recorder Ranorex são alguns GUI ferramentas de teste.

Se seu aplicativo é baseado na web, você pode escrever testes utilizando ferramentas como WatiN ou Selenium .

Se seu aplicativo é baseado em Windows .NET, você pode tentar Branco .

Meu conselho: esqueça o teste GUI tradicional. É muito caro. Codificação dos testes tem um monte de tempo, as ferramentas não são realmente estáveis ??para que você terá resultados não confiáveis. O acoplamento entre o código eo teste é muito forte e você vai gastar um monte de tempo com a manutenção.

A nova tendência é ignorar os testes de GUI. Ver o padrão Model-View-Presenter de Fowler como uma diretriz link de texto

A maneira mais clara que posso dizer é:

não perca seu tempo escrevendo testes automatizados de GUI .

Especialmente quando o seu trabalho com um aplicativo MVC - no seu caso, quando você enviar uma mensagem para o servidor, você pode ter certeza que o número mensagem certa volta e ser feito. Você pode adicionar alguns casos adicionais -. Ou outro teste completamente para se certificar de que o GUI é converter a mensagem de ID de nas cordas certas, mas você só precisa executar esse teste uma vez

Nós fazemos testes de GUI incorporar em nosso projeto, e tem seus efeitos colaterais. Os desenvolvedores têm, contudo, um princípio de projeto crítica: Mantenha a camada de GUI o mais fino possível

Isso significa que nenhuma lógica nas classes GUI. Separar isso em modelos de apresentação responsáveis ??pela validação de entrada etc.

Para testar em uma máquina Unix, usamos o servidor Xvfb como a exibição ao executar os testes.

Tente o corredor teste de usabilidade . É barato e útil: ir para o corredor mais próximo, pegar a primeira pessoa que passa, fazê-los sentar em seu computador e usar o seu software. Assista por cima do ombro, você vai ver o que eles tentam fazer, o que o frustra, e assim por diante. Faça isso algumas vezes e observe os padrões.

O que você está procurando é "teste de aceitação." Como você faz isso depende das estruturas que você está usando, que tipo de aplicativo que você está criando e em que idioma. Se você google seu determinada tecnologia ea frase acima, você deve encontrar algumas ferramentas que você pode usar.

Eu encontrei WinTask ser uma boa forma de fazer testes de GUI. Desde que você não constantemente mudar a maneira como o sistema operacional refere-se a cada elemento da interface do usuário, WinTask aborda os elementos de interface do usuário por nome, por isso mesmo que as alterações de layout, os elementos de interface do usuário pode ainda ser pressionado / tweaked / selecionada.

não perca o 'U' em 'GUI'
Quero dizer: se o que você está tentando teste é tudo funciona direito e trabalha como ele foi planejado para o trabalho, então você pode seguir o Seb Rose resposta .

Mas, por favor, não se esqueça de uma interface Usuário tem que ser feita pensar sobre usuários , e não qualquer usuário, mas o usuário-alvo foi feito o pedido para. Então, depois de ter certeza todos os trabalhos como ele tem que trabalhar, colocar cada visão / tela / formulário em um teste com uma equipe composta dos utilizadores que representam cada grupo de usuários diferentes que podem utilizar o aplicativo: usuários avançados, administradores, MS Office usuários, usuários de baixa de computador em seu perfil, o perfil de utilizadores alta de computador ... e, em seguida, obter as críticas de cada usuário, fazer uma mistura, re-tocar sua GUI se é neccesary e de volta para o teste de usuário GUI.

Para baseada SIMPLES Web GUI testes tentativa iMacros (a simples Firefox plug-in, tem um recurso interessante para enviar todo o teste para outra pessoa) Note-se que SIMPLES foi escrito com iniciais ...

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