Notícias > Artigos de opinión

Um aplicativo com erros é um investimento perdido

14 Dezembro, 2015

Entrevista a Raquel Jiménez Garrido, Gerente de Operações da MTP

Os aplicativos móveis têm cada vez mais peso na atividade de todo tipo de empresas. Na hora de desenvolver um aplicativo os objetivos sempre devem obter uma conversão em vendas e melhorar a reputação da marca. Por isso, é muito importante assegurar‑se de que ele está perfeitamente construído. Se não for assim, o esforço destinado ao seu desenvolvimento não terá servido de nada.

As empresas tiveram que adaptar suas tecnologias à realidade móvel em um curto espaço de tempo, o que exigiu o uso de novos aplicativos e soluções em seus processos de negócio. Como está ocorrendo esta mudança?

As empresas estão avançando pelo caminho mais lógico, começando por web mobile, usando tecnologias como HTML5 e frameworks como Phonegap, que lhes permitem estra presentes no mercado através de um aplicativo de mobilidade, mesmo que seja com funcionalidades básicas, em sistemas operacionais e terminais específicos, e criar seus próprios aplicativos nativos para poder dar cobertura a funcionalidades mais complexas, assim como a um maior número de sistemas operacionais e terminais.

Quais são as consequências deste novo panorama do ponto de vista da qualidade do software?

Desde o início de sua construção ou desenvolvimento é necessário testar os aplicativos móveis tendo em conta, precisamente, seu próprio contexto de mobilidade e considerando o cumprimento das características de funcionalidade, usabilidade, segurança e rendimento dos mesmos.

Assim, ao definir a estratégia de desenvolvimento de aplicativos móveis é importante analisar a arquitetura do aplicativo existente. Também é necessário garantir a coerência entre o desenvolvimento do site clássico e a parte de mobilidade a fim de facilitar e reduzir os custos dos testes. Podemos dizer que a complexidade da garantia da qualidade do software nos aplicativos móveis consiste na existência de diferentes sistemas operacionais e inúmeros modelos de dispositivos. Sendo assim, um aplicativo devidamente construído e de qualidade será aquele que funcione corretamente em todos os dispositivos móveis e com todos os sistemas operacionais existentes no mercado.

Como associar os tipos de testes do software com o uso dos aplicativos móveis?

O objetivo é desenvolver um aplicativo móvel que permita à empresa proprietária obter uma conversão em vendas, melhorar a reputação da marca, cumprir as expectativas dos usuários e minimizar o tempo de aprovação do aplicativo nos diferentes market stores.

Os testes funcionais deveriam ser realizados considerando as características próprias destes dispositivos. Portanto, é diferente o uso que se faz e a forma de apresentar as informações em um smartphone e em um tablet ou um computador. Além disso, o aplicativo deve ser capaz de salvar, tanto de forma efetiva como seletiva, as informações, deixando no servidor os dados que necessitam de recursos adicionais. Finalmente, é necessário observar o comportamento e as falhas do aplicativo quando puder ser afetado por uma situação de pouca bateria, entrada de chamadas ou mensagens enquanto estivermos realizando uma operação com o mesmo.

Muitas das falhas funcionais de um aplicativo móvel podem ser evitadas facilmente, assim como seus custos associados, através da adoção de ações de garantia da qualidade do software desde as primeiras fases de desenvolvimento do aplicativo. Não devemos esquecer que se o usuário perceber que um app móvel é complicado de utilizar, lhe atrasa e não consegue satisfazer suas necessidades no tempo e da forma que ele espera, ele o trocará por outro que consiga fazer tudo isso.

Que outros fatores influenciam no controle de qualidade dos aplicativos móveis?

Por um lado, aparece o conceito de usabilidade do aplicativo. Aqui é necessário prestar especial atenção ao desenvolvimento de testes que permitam garantir que o design e a interface sejam simples e intuitivos, e que o fluxo de comunicação entre o app e o usuário seja natural e lógico.

Por outro lado, o comportamento de um app móvel também preocupa o usuário do ponto de vista da segurança, já que estão disponíveis em dispositivos que podem ser roubados ou usados de forma fraudulenta. Neste sentido, é imprescindível assegurar, entre outros fatores, que o app mantenha a confidencialidade dos dados privados fornecidos, a verificação de que o usuário é quem diz ser, os diferentes perfis que um usuário pode ter dentro do mesmo aplicativo ou a autorrecuperação de um histórico de operações ou atividades realizadas.

O abandono do serviço por parte do usuário é uma preocupação para as empresas?

Claro que sim. É necessário que as empresas controlem os possíveis erros dos seus aplicativos móveis para evitar que o cliente abandone o aplicativo devido a quedas ou a um tempo excessivo em sua execução. Um alto consumo de bateria, a velocidade em que se desenvolve dependendo do navegador utilizado ou as características de cada sistema operacional, são fatores que podem influenciar de forma decisiva nesta questão, e que solucionamos através da execução de testes de rendimento.

A conexão de Internet, os diferentes pontos de acesso, redes móveis, wifi, etc., assim como a recuperação do aplicativo quando ocorre uma perda de conexão e handover entre diferentes tipos de redes, também são aspectos que devem ser considerados em relação aos testes de software.

Finalmente, é necessário prestar atenção aos caracteres especiais de escrita dos diferentes idiomas, às moedas de cada país, aos formatos de códigos postais, datas, endereços, números de telefone, entre outros, que deveriam ser vistos de acordo com a zona geográfica onde o usuário está.

Que fatores deveriam ser considerados se pensamos na qualidade dos aplicativos móveis do ponto de vista da própria execução dos testes?

Em primeiro lugar, seria necessário conhecer a natureza do aplicativo que será testado. Estes aplicativos podem ser nativos, que apresentam maior custo e maior desenvolvimento ao ter que adaptar‑se a cada dispositivo; podem ter natureza web, que são mais baratos e mais fáceis de criar e manter funcionando corretamente em todos os dispositivos móveis, dependendo unicamente da conexão de internet e, finalmente, podem ter natureza híbrida, que reúnem as vantagens das duas anteriores: redução da manutenção, maior conteúdo, construído para cada sistema operacional e conexão web para ampliar as informações.

Em função do tipo de aplicativo, sobretudo os dois primeiros, a forma de realizar os testes variaria, assim como as ferramentas que seriam usadas para realizar os testes, sobretudo do ponto de vista da automatização. Desta forma, quando se trata de um aplicativo nativo, os testes começam na instalação e execução do aplicativo, sendo necessário ter acesso ao dispositivo para realizá-los. A funcionalidade e usabilidade deverão ser testadas nos diferentes dispositivos e já que as aplicações nativas têm acesso ao API, convém testar também estas conexões. Nos aplicativos web não é necessário instalá-lo. Por sua própria condição web devem ser testados nos diferentes navegadores, prestando especial atenção ao tempo que demora para carregar. Finalmente, nos aplicativos híbridos, além de se levar em consideração tudo o que foi dito anteriormente, deve-se considerar também os testes de rendimento da integração da parte web com o resto do aplicativo.

Execução de testes: manual ou automatizada?

Depende. Em alguns casos, a única alternativa possível será realizá-las de forma manual. Em outros, embora seja necessário definir uma estratégia de testes para aplicativos multiplataforma em múltiplos dispositivos e com uma maior complexidade técnica, a melhor opção será utilizar a automatização. Deve-se ter em conta que a maior parte dos desenvolvimentos de mobilidade são realizados com metodologia ágil e a automatização dos testes é uma premissa básica.

Um aspecto muito importante é assegurar-se de que os testes que serão realizados garantem o correto funcionamento dos aplicativos em qualquer dispositivo móvel e com qualquer sistema operacional. Neste ponto, é possível garantir que o software de um aplicativo se comporte corretamente executando os testes em emuladores/simuladores e dispositivos reais, cada um deles está indicado para diferentes momentos do desenvolvimento de um aplicativo.

Os emuladores são especialmente apropriados para o começo do desenvolvimento, para poder realizar smoke‑test rápidos com os quais assegurar a funcionalidade básica do software e verificar como funciona nos diferentes sistemas operacionais. Existe uma grande variedade de emuladores para todos os sistemas operacionais móveis do mercado (Windows Phone, Android, IOS, Symbian, etc.), mas estes são diferentes do comportamento real de um dispositivo físico. Cada fabricante possui seu próprio sistema operacional, de acordo com seu dispositivo e com suas próprias particularidades e, portanto, a adaptação a um comportamento real através de um emulador ainda não é totalmente precisa. Por este motivo, é necessário complementar estes testes feitos em emuladores com os realizados em dispositivos reais, que podem ser locais, ou seja, ligados ao PC. Estes testes são, geralmente, rápidos, de baixo custo e destinados à funcionalidade, acessibilidade e experiência do usuário.

De um modo geral, podemos afirmar que é conveniente realizar os testes unitários e os de integração através de emuladores e o resto dos testes: de sistema, regressão, compatibilidade, GUI, rendimento, segurança e sincronização, através de dispositivos reais.

Para os testes em dispositivos reais ligados ao PC, existem diferentes soluções no mercado, das quais a MTP é parceira e que dão cobertura à maior parte dos sistemas operacionais como a solução M‑eux Test da Jamo Solutions ou Silkmobile da Borland.

Por outro lado, estão os testes realizados em dispositivos reais, mas executados de forma remota através da Nuvem (cloud testing), que permitem executar testes com várias operadoras, terminais ou sistemas operacionais. Neste caso, a MTP possui uma parceria de ferramentas como a Mobile Testing Keynote da DeviceAnywhere, que vai além dos testes funcionais e permite fazer tanto o monitoramento como testes de carga nos terminais, testes de roaming em uma determinada localização, além da possibilidade de programar e lançar os testes de forma remota.

Outro ponto importante é a forma como este novo conjunto de ferramentas se integra com as já existentes na empresa. Tanto se falamos de metodologias ágeis, como se incorporam ao ciclo de integração contínua, como se falamos de reporting, como os relatórios gerados por este tipo de ferramenta podem ser integrados aos gerados por outras ferramentas de testes existentes na empresa, tipo HP ALM, Microsoft Visual Studio e IBM Rational.

A garantia da qualidade e o correto funcionamento dos aplicativos móveis consistem na combinação de ambas as plataformas de testes, emuladores e dispositivos reais, tudo isso utilizando estratégias de automatização que permitem reduzir custos e ganhar eficiência no próprio processo de testes.

Para mais informações sobre a proposta de Soluções de Testes da MTP, entre em contato conosco.

Share