Desenvolvimento

Desenvolvimento

A importância do QA para o desenvolvimento mobile

4 nov, 2014
Publicidade

Por definição, o profissional de Quality Assurance (QA) é responsável por garantir que os requisitos delimitados para um produto sejam cumpridos. O trabalho desse profissional envolve um processo sistemático de testes e mais testes que garantem que o produto final não apresente nenhum erro ou mau funcionamento. Se essa função já era importante no desenvolvimento para desktops e web, no desenvolvimento mobile chega a ser indispensável.

Isso porque o lançamento de um app de má qualidade pode gerar problemas irreparáveis para a sua empresa. A frustração do usuário com o alto tempo de carregamento, erros, problemas, conteúdo confuso, navegação não-intuitiva, experiência ruim entre diferentes dispositivos, vulnerabilidade de segurança etc. pode causar não só o abandono do app, como prejudicar a reputação da sua marca. De acordo com a Compuware, apenas 16% dos usuários dão uma segunda chance a um aplicativo que não funcionou, enquanto a Apigee afirma que 44% dos usuários deletam um app nativo imediatamente se ele não funciona.

apps

Isso faz com que os usuários deixem revisões negativas nas lojas de aplicativos (o que afugenta novos clientes) e faz com que você perca até receita. Afinal, mesmo que seu aplicativo seja gratuito não significa que você não possa ganhar dinheiro com ele. Além das óbvias oportunidades de vendas via mobile, um aplicativo de má qualidade pode gerar também insegurança nos usuários desktop e web, construindo uma opinião negativa sobre a marca em geral.

O que fazer, então?

De acordo com um relatório recente da Capgemini, apenas 31% das organizações testam suas aplicações mobile. É um número preocupante, mas não basta só testar. Para não frustrar seu usuário, primeiramente você tem que testar seu app como se fosse ele. De nada vai adiantar seguir seus testes in-house se quando seu app for parar na mão do usuário ele não funcionar de forma coerente.

Tradicionalmente, os testes eram feitos depois de todo o desenvolvimento. Só quando o produto já estava pronto o profissional de QA fazia todos os testes e, com os bugs documentados, tudo voltava para que os desenvolvedores fizessem os updates, processo que causava perda de tempo e dinheiro.

quality

Além disso, em desktop e web, o profissional tinha que lidar com um único ambiente. Claro que era necessário considerar os diversos browsers e sistemas operacionais, mas as preocupações com hardware ou conexão eram mínimas. Assim, o trabalho limitava-se a definir padrões e processos e segui-los de acordo com o projeto.

As mudanças de ambiente em desenvolvimento móvel, ao contrário, são constantes e muito mais rápidas. É preciso pensar em como conectar as pessoas por meio de diversos sistemas operacionais e uma infinidade de aparelhos, o que não dá nenhuma opção ao desenvolvedor a não ser testar. E para garantir a qualidade e boa performance, é importante que esses testes comecem já nos primeiros estágios do desenvolvimento.

Automação é a chave!

Para garantir a qualidade, é preciso que o QA seja uma parte ativa do processo de desenvolvimento. Em vez de acontecerem só no final, os testes devem ser integrados a toda a estratégia de desenvolvimento mobile. Fatorar os testes de QA no processo de desenvolvimento desde o início permite que os desenvolvedores identifiquem e consertem os bugs assim que eles forem descobertos. A integração contínua é a principal maneira de fazer isso acontecer do jeito certo.

integration

 

Ela permite que os testes sejam executados sem a necessidade de intervenção humana sempre que uma alteração significativa tenha sido realizada no código-fonte. Isso dá ao desenvolvimento mais agilidade, pois qualquer erro que possa ter sido incluído nessa nova versão será detectado e notificado para os desenvolvedores em um curto período de tempo. Com isso, o desenvolvedor que realizou a alteração, que ainda está com as informações na memória, poderá, mais rapidamente, identificar a causa do erro e corrigi-lo.

Para definir o que é uma alteração significativa, é preciso analisar o contexto do projeto. Pode ser uma release ou um simples commit, dependendo de suas características. O processo de integração contínua deve, então, realizar a criação dos entregáveis, instalá-los em diversos aparelhos e emuladores e realizar os testes.

Os testes devem ser, no mínimo, executados antes da criação de uma release. Se encontrar um erro, o CI deve impedir que o build seja gerado e notificar os desenvolvedores. Se os testes forem executados com sucesso, o build será gerado e um relatório da execução será disponibilizado para a equipe de desenvolvimento.

A execução contínua dos testes ajuda a diminuir a ansiedade, tanto dos clientes quanto dos desenvolvedores. Ao saberem que os testes estão sendo executados, os clientes podem ver o aplicativo funcionando, o que controla a expectativa durante o processo de desenvolvimento. Para os desenvolvedores, diminui a preocupação de que alguma de suas alterações possa ter quebrado alguma parte do sistema, pois os testes irão garantir que qualquer divergência no comportamento do aplicativo seja notificada.

Outro ponto importante dos testes é que eles podem ser utilizados para a validação de UX. Como os testes são executados em diversos aparelhos e emuladores, é possível tirar prints das telas a cada passo realizado. Isso permite que o profissional de UX analise se as telas estão de acordo nos diversos aparelhos, problema bastante enfrentado quando desenvolvemos para Android.

Desafios

Atualmente, um dos problemas dos desenvolvedores mobile é a falta de padrões e ferramentas de testes. Como o mobile está “na moda” há três ou quatro anos, ainda não foram desenvolvidas ferramentas maduras de testes. Atualmente, temos à disposição algumas ferramentas como Selendroid, ios-driver, e Espresso, mas elas são limitadas e não atendem a todas as necessidades.

Devido à dificuldade de encontrar uma ferramenta adequada, muitas companhias estão optando por buscar um QA offshore, mas isso pode trazer controles de qualidade pobres, que não excluem os bugs e resultam em produtos de baixa qualidade. Isso porque com um QA offshore os custos variam de acordo com a quantidade de testes realizados, e aí apenas algumas versões do aplicativo são testadas para evitar custos elevados.

Outro problema, esse enfrentado por toda a área de TI, é a falta de profissionais qualificados. O desenvolvimento mobile está mudando a forma como nós nos comunicamos, trabalhamos e socializamos, e isso cria a necessidade de novos padrões e procedimentos para os testes de QA. A automação do controle de qualidade pode ajudar a aliviar o stress da demanda do mercado de apps, promovendo uma melhoria no processo de desenvolvimento ágil.

profissionais

Uma prática interessante é incluir um profissional de QA nas equipes ágeis. Isso garante que os testes estejam sempre atualizados e algumas práticas, como o BDD (Behavior Driven Development), sejam executadas durante o processo de desenvolvimento. Assim, além dos layouts das telas, os desenvolvedores receberiam os requisitos do sistema documentados em formato de testes, o que poderia guiar o desenvolvimento e garantir o sucesso.

Portanto, se as empresas querem tornar a oportunidade mobile uma vantagem de negócio, elas precisam investir em habilidades fortes de QA testing. Um método bom pode cortar custos e tempo, principalmente com manutenção e correção de bugs, e garantir o sucesso do seu aplicativo e a satisfação dos seus clientes.