PyUseCase é um software de teste de GUI para PyGTK.
testes GUI Sustentável com Uso Recorder Caso
Gravando a intenção em vez da mecânica
A maneira mais natural para criar testes através de uma interface de usuário é simplesmente realizar as ações que deseja executar e ter uma ferramenta que pode gravá-los e, em seguida, reproduzi-los mais tarde. Esta é uma maneira simples e rápida para criar testes de GUI e existem muitas ferramentas que fazem isso.
Mais ferramentas casal os testes firmemente à GUI
Os problemas começam quando você tem alguns testes e suas alterações GUI. A gravação pode ser uma ótima maneira de criar testes, mas é uma péssima maneira de manter um grande número deles. É, frustrante e muito demorado propenso a erros, uma vez que você tem alguns testes. A primeira geração de ferramentas registrados posições de pixel e quebrou assim que você mudou sua resolução de tela. Ferramentas de negócio de hoje em termos da mecânica GUI: encontrar uma mesa com um certo nome e clique na terceira coluna da quarta linha. Eles podem sobreviver as mudanças de tela e pequenas re-arranjos do GUI, mas não muito mais. Os scripts gravados são densos e não transmitem o objectivo do ensaio, e são um livro fechado para todas as pessoas não-técnicas (e às vezes para todos, exceto o autor da ferramenta).
O problema é essencialmente uma de acoplamento. Os testes e a GUI estão estreitamente acoplados um ao outro e não podem confortavelmente variar independentemente um do outro. Este ponto é bem feito por Robert C. Martin em seu blog aqui e sua conclusão é que os testes de GUI é intrinsecamente frágil e você deve fazer tão pouco dele como você pode se safar.
Isto parece um pouco derrotista embora. Há um enorme valor em ser capaz de demonstrar que os seus testes para fazer um usuário do sistema. Se os testes ignorar a interface do usuário, em seguida, esse processo exige uma quantidade razoável de habilidade técnica e um monte de confiança da parte do seu usuário. E de qualquer forma, os desenvolvedores de software resolver problemas de acoplamento o tempo todo. A resposta é, como de costume, para introduzir um outro nível de engano.
Quebrando o acoplamento com um mapa de interface do usuário
Executivos e usuários em geral, funcionam em casos de uso. Estas são descrições de alto nível de uma seqüência de ações em uma linguagem que eles entendem: ou seja, a do domínio. A idéia de um "Use Case Recorder" é, portanto, uma ferramenta que pode gravar e reproduzir tais sequências e, assim, captar a intenção do usuário. Este, então, permitir uma maior compreensão, menos dependência da forma exata do ajuste GUI e fácil de testes existentes, sem recorrer a clicar todos os botões novamente.
O mecanismo básico é que mantemos um mapeamento entre as ações que podem ser realizadas atualmente com a nossa GUI e declarações nesta língua domínio. Mudanças GUI, em seguida, dizer que este único mapeamento precisa ser atualizado, mas os testes podem permanecer intocado, continuando a descrever o que precisa ser feito no nível conceitual. Esse mapeamento assume a forma de um arquivo externo em PyUseCase 3.0 ea próxima JUseCase 3.0, enquanto em versões antigas ela assume a forma de instrumentação no código do aplicativo.
Verificar o comportamento através de registros e TextTest
Assim, o nosso gravador de caso de uso pode gravar e reproduzir casos de uso para nós. Mas como podemos verificar que o que vemos na tela é o correto? A maioria das ferramentas GUI fazer isso, permitindo que o script de teste para conter "afirmações", que se parecem um pouco de widget e verificar que algumas propriedades do que é igual a um valor codificado. Isto cria ainda mais a dependência do esquema do GUI corrente e não pode ser "gravado" em qualquer forma natural, mas tem de ser programado na após o fato. No "usecase" conteria naturalmente esta informação: se ele fez isso iria se transformar em um script de teste.
Esta discussão não é sobre o site TextTest para nada. Se só podemos chegar a nossa aplicação para produzir um relatório sobre o que a GUI parece que podemos verificar o que ele faz por meio do monitoramento do conteúdo de que o log usando TextTest. PyUseCase 3.0 faz isso para você: ele gera um tipo de log ASCII-arte da aparência GUI atual e monitora alterações. O aplicativo pode complementá-lo com a sua própria exploração madeireira da forma que desejar. Com outros gravadores de casos de uso o aplicativo precisa para construir seu próprio registro para esse fim atualmente.
Sincronizar testes de instrumentação de código
Quase todos os esforços de teste de GUI são atormentados por problemas com certificando-se o script aguarda tempo suficiente antes de prosseguir quando acontece alguma coisa no fundo. As soluções variam de maneiras misteriosas para esperar por algum widget para ter uma certa aparência (ainda mais dependências em GUI-mecânica) para "sono" declarações liberalmente espalhados ao redor. Quais falhar quando o sistema é carregado e fazer com que os testes para executar muito mais lentamente do que deveriam. Qualquer pessoa sem conhecimento íntimo do código é mal equipado para resolver tais problemas, mas fazê-lo é uma parte vital de escrever testes.
Gravadores de casos de uso introduzir o conceito de um "Evento de aplicativos". Este é basicamente alguns instrumentação no código que indica para o gravador de casos de uso que alguma coisa aconteceu que precisa ser esperou, permitindo assim que o gravador para gravar e replay espera, bem como cliques. Estes são descritos em mais detalhe aqui.
gravação de macros, bem como testes
De alto nível, facilmente manipulados "casos de uso" são úteis para outras coisas além de testes. Eles também são extremamente úteis para os usuários do sistema que podem criar suas próprias macros para seqüências de ações que eles executam com freqüência.
Estes são conhecidos como "atalhos GUI" aqui. Um gravador de Caso de Uso normalmente vai permitir que um aplicativo para solicitar uma "barra de ferramentas" a partir dele que contém controles para gravação e reprodução de los que podem ser inseridos na GUI aplicativo como desejar. Além de permitir que os usuários criem macros, eles também podem ser usados para criar abstrações nível ainda mais alto para o "idioma de teste" descrito acima, auxiliando na realização de testadores ações repetidas para alcançar um determinado tela para o teste. Estes são descritos em mais detalhe aqui.
Mais informações podem ser encontradas na página inicial do projeto
O que é novo nesta versão:.
- Suporte Muito básico para wxPython foi acrescentou.
- Há também uma série de melhorias e correções de bugs para PyGTK. Notavelmente, gtk.Dialog.run agora é suportado sem a necessidade de alterações no código-fonte.
- Python 2.6 e PyGTK 2.12 ou posterior agora são necessários.
- A interface baseada em instrumentação legado foi removido.
Requisitos :
- Python
- PyGTK
- TextTest
Comentários não encontrado