Mobile Testing – Dicas para refletir

Aproveitando que tinha deixado as traças o blog, resolvi pegar a thread que fiz no #AgileTesters e postar aqui. Futuramente vou atualizando o assunto e colocando outras “coisitas mas”…

Uma coisa que anda causando um “auê” de uns anos para cá seria como testar tecnologias móveis. Desde a entrada comercial do iphone uma avalanche de oportunidades, apps, idéias, etc etc surgiram.. E nisso entra “Como testar apps em dispositivos móveis?”.

Vendo isso (E já sofrido com essa dúvida), irei deixar algumas dicas de como fiz (e ando fazendo) para garantir a qualidade em apps moveis.

Segue pontos em que tomo cuidado em sempre ver. Muita coisa pode se misturar com o dia a dia em termos de teste, mas é assim mesmo. Minha experência é metade em times ágeis e o restante em modo waterfall.

1) Propósito/Objetivo: Parece engraçado começar com algo tão “banal” mas essa visibilidade é importante. Conforme o produto vai sendo elaborado e depois dando “cria” as coisas podem ficar meio fora do controle. Tenha em mente do que o app pode fazer e o que ele não pode fazer. Quando se está trabalhando em equipe, e por ventura, receba muito ruído externo, é importante estar bem alinhando com o objetivo do app. Mudanças ocorrem e elas devem ser feitas/aceitas pela equipe ou não.
Se o app foi recebido já pronto para homologação, sem que tenha participado do processo de desenvolvimento, ainda assim se preocupe com esse item.

2) Ambiente e dispositivos: Eu sei, eu sei…item delicado, mas é importante ver isso no inicio. Se vai adquirir aparelhos, se pode utilizar serviços na nuvem, se vai tentar a sorte e não testar nada (brinks, hehehe). E um mundo ideal se teriam todos os aparelhos de todas as marcas e tudo seria maravilha. Imagina o tempo para fazer tudo isso? Irreal!. Planeje junto com a equipe, como abordar para o app. Valide o marketshare do seu pais, analise as vendas de black friday, converse com outros profissionais…Junte dados para ter uma decisão consistente e um ambiente que a equipe possa criar e gerar sua manutenção.
Caso esteja no modo waterfall e já possua uma infra e aparelhos para os testes, verifique se o que tem contempla para a qualidade do app. Caso precise adquirir, ou “pedir emprestado” verifique a disponibilidade. Deixe claro da capacidade do seu setor e veja se não consegue uma “parceria” para aquisição/emprestimo de aparelhos e/ou ambiente. Isso pode ser extremamente útil.

Sobre os aparelhos: Isso pode ser muito custoso para um projeto. Por isso, se o nível de segurança da sua empresa permite virtualização, aposte nisso. Existe bons serviços:

http://xamarin.com/test-cloud

http://www.perfectomobile.com/

https://saucelabs.com/mobile/

3) Automaçao: Yeap. Você leu perfeitamente. No projeto veja tudo que pode (e que entraga valor) para automatizar e faça. Isso ajuda nos próximos sprints e mantem bastante a qualidade do que está sendo feito. Entregas com mais qualidade resultam em menos problemas nas “stores da vida”.

Caso não possua tempo, pergunte se no momento do desenvolvimento houve alguma automação. Peça alguma evidência dos testes. Caso não tenha nenhuma, alinhe com o responsável sobre ter isso no projeto e como pode ser útil para futura manutenções e “garantias de qualidade”

Sobre automação: Existem algumas opções pagas e open source. Atualmente estou vendo uma solução paga. Se chama Rational TestWorkbench (mobile edition).
Opinião pessoal: Gosto muito das ferramentas open source pela facilidade de modificar algo no “core” se necessário. As que já usei e tem um bom ganho eu automação

    - Calabash iOS/Android: http://calaba.sh/
    - Appium: http://appium.io/
    - Selendroid: http://selendroid.io/
    - iOS driver : http://ios-driver.github.io/ios-driver/

    Alguns pagos que "ajudaram"
        Squish: http://www.froglogic.com/squish/gui-testing/
        RTW: http://www-03.ibm.com/software/products/pt/rtw

4) Integração: Nunca, mas nunca esqueça desse cara. Sério, nunca esqueça do ambiente integrado. Isso pode ser o sucesso ou o fracasso do app.

5)Interface: Importante ter alguém na equipe que enteda de UX ou arquitetura da informação. Estamos em um momento que “menos é mais”. Quanto menos o usuário tiver que movimentar para achar algo, melhor para ele (e mais trabalho para a equipe).

Eu gosto muito de visitar esse site para refletir e ter idéias..

    http://www.pttrns.com/

Ajuda a ter idéias sobre padrões…. =)

6) Explore: estória entregue? Hora de “navegar” sobre ela. Não tenha medo e usar e abusar. Só lembre do primeiro item.

Se está em um modo mais tradicional, não gaste muito tempo criando os casos sem colocar a mão no app ou um protótipo. Mas só por documentação pode ser perda de tempo. Na minha opinião, é preciso ver e utilizar o app para ter uma noção de como validar a qualidade do mesmo.

Bom isso foram dicas para ter um “guia” na parte de mobile testing. Espero futuramente pegar esses itens e detalhar melhor..

7fWBVbw.png

Anúncios

First!

Bom, a algum tempo venho querendo criar um blog para colocar algumas das minhas experiências no mundo dos testes (e por que não também na parte de programação). Acho que quase todo mundo que conheço, tem (ou teve) um blog. É uma maneira muito boa de divulgar informação, trocar informação, etc..

Eu relutei muito em fazer isso. Um pouco de medo…Um pouco de receio do que pode acontecer…Mas no final de contas, ou eu faço agora, ou acho que não farei nunca mais.

Irei trazer aqui o que sei (e o que espero aprender) relacionado a testes. Tanto na parte de performance, como na parte de automação (web e mobile)…
Acho que irei arriscar um pouco de programação (como falei anteriormente..), mas veremos mais adiante.

Espero que tenha tempo para alimentar esse blog com informação útil…

E eu espero que quem acompanhe, goste…

Até =)