Resultados para 'tdd'
Testes de interface no iPhone SDK com o UIRecorder
Escrito por Quintana em 15/01/10 12:30
Muitos desenvolvedores ainda não conhecem o grande poder da ferramenta Instruments, uma das três disponíveis no Kit de desenvolvimento do iPhone. Recentemente eu descobri que ela além de medir o desempenho de aplicações, uso de memória e tudo mais, também pode nos auxiliar nos testes de interface.
Já mostramos aqui, no nosso blog, a ferramenta open source Bromine, desenvolvida por nosso colaborador Felipe Barreto, com auxílio de Matt Gallagher. Com o Bromine é possível criar testes que simulam a interação com diversos elementos do iPhone (como tabelas, botões, etc) e verificar o resultado dessas interações. Contudo, como é possível testar interfaces mais complexas, como a de jogos, onde não existem botões, tabelas ou labels? Para isso, temos que ir no simulador e fazer os testes na mão mesmo. E se esses testes forem complicados de se reproduzir? Então usamos o UIRecorder!
O UIRecorder nada mais é do que um gravador e reprodutor das interações que você faz no iPhone Simulator. Primeiro, você deve abrir o iPhone Simulator e o Instruments e escolher o UIRecorder:

Dentro do UIRecorder, vá em "Attach to Process" e escolha o processo do iPhone Simulator. Com isso ele ficará vinculado ao iPhone Simulator e estará pronto para salvar as suas interações. Abaixo, existe um vídeo mostrando o funcionamento da ferramenta:
Um bom exemplo é o aplicativo Mobits Button Soccer, onde a interação com os botões é complicada de simular com outras ferramentas e de reproduzir. Com o UIRecorder eu posso gravar os testes, modificar o código e depois reproduzí-lo para ver se tudo funciona.
A única desvantagem do UIRecorder é que ele não é capaz de determinar de forma automatizada se o software está funcionando ou não, como o Bromine faz, mas já é uma mão na roda para quem quer reproduzir interações complexas e onde o custo de ficar olhando se elas estão corretas é pequeno.
Leia também:
Teste automático de interface para suas Apps
Escrito por Felipe Barreto em 03/03/09 00:24
Durante o desenvolvimento do nosso primeiro projeto para iPhone, encontramos o artigo do Matt Gallagher onde ele apresenta uma técnica para simular toques numa aplicação rodando no simulador do iPhone e, consequentemente, realizar testes automáticos de interface.
Eu já havia trabalhado com testes de interface para sistemas web com o Selenium e sempre gostei do poder que esta ferramenta acrescenta aos nossos teste e, portanto, fiquei muito feliz em ver esta possibilidade para o nosso projeto e coloquei logo em prática a técnica do Matt.
Observei algumas limitações bem como algumas dificuldades e comecei a modificar o código do Matt, chegando a soluções mais parecidas com o Selenium e achei que o troço tava ficando bom e merecia virar um projeto Open Source. Pedi então a autorização e o apoio do Matt para criar um projeto e tocar as ideias para a frente.
Eis que surge o Bromine!
Bromine - Bromo em Inglês, elemento seguinte ao Selênio na Tabela Periódica - está disponível para download via SVN no Google Code pelo endereço http://code.google.com/p/bromine/.
O Bromine possui uma seção wiki explicando como baixar e instalar o framework na sua aplicação, mas se tiver alguma dúvida não hesite em entrar em contato. E se quiser contribuir, melhor ainda! :D
Como funciona?
A ideia é simples: o Bromine disponibiliza comandos que permitem o desenvolvedor acessar e manipular os elementos da tela, deste modo, você pode, por exemplo, verificar se a tela que você está possui um título X, preencher uma caixa de texto e clicar num botão. Tudo isso automática, rápida e repetidamente, como um bom teste deve ser.
Para fazer essa mágica, o Bromine representa sua interface como um grande XML e seus comandos permitem acessar as views através de simples sentenças XPath.
Em breve, postarei um vídeo do Bromine em funcionamento para ilustrar melhor. Aguardem!