Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

details

Libere esse material sem enrolação!

Craque NetoCraque Neto

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

TESTES DE APLICATIVOS 
MÓVEIS 
AULA 4 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prof. Felipe Pedroti Raymundo 
 
 
2 
CONVERSA INICIAL 
 Em conteúdos anteriores, pudemos adentrar um pouco neste mundo dos 
testes de software, especificamente dando uma olhada em um tipo de teste que 
não somente vai garantir que nossas funcionalidades possam ter a garantia de 
funcionamento, bem como não precisa ser aplicado somente em dispositivos 
móveis, que são os testes unitários. 
 Conhecidos por serem testes de caixa branca (relembrando, são aqueles 
testes dos quais o desenvolvedor conhece as entradas, o funcionamento do 
código a ser testado e os resultados esperados), os testes unitários são 
amplamente utilizados em equipes com processos ágeis por meio do TDD, 
técnica que visa fazer com que código testável seja escrito desde o começo da 
implementação, fazendo um refinamento deste em seguida. 
 Porém, uma parte importante do software móvel não consegue ser 
“validada” por teste unitários, devido a validar uma parte importantíssima da 
construção de um software móvel: a interface do usuário. Nesta etapa, daremos 
seguimento aos nossos experimentos mostrando o que são esses testes, sua 
importância no mundo móvel e como podemos fazer esse tipo de teste, seja em 
tecnologias híbridas, seja em aplicativos nativos. 
 
Créditos: Rawpixel.com/Shutterstock. 
 
 
3 
TEMA 1 – TESTES EM INTERFACES GRÁFICAS 
É inegável que os smartphones, juntamente com os aplicativos, trouxeram 
mudanças nas nossas vidas, seja de coisas corriqueiras, como olhar uma 
agenda, fazer uma ligação, conversar sobre um assunto, ou até para ler notícias 
e artigos por esses dispositivos, o que trouxe dinamismo e acesso fácil a 
informação. Por isso, ao pensar em um aplicativo, desde sua concepção até a 
última etapa de execução, devemos testá-lo para que a qualidade do produto 
seja garantida e ele fique um passo mais perto do sucesso. 
Testes são grande parte no todo quando falamos de qualidade do produto, 
e “a prática mostra que na maioria dos casos, usuários abandonam o app se o 
mesmo tiver problemas de funcionalidade, não importa o quão promissor e 
engajador ele pareça” (Yevtushenko; Yalanska, [S.d.]). 
Sabendo que, no geral, “comemos com os olhos”, um aplicativo agradável 
ao usuário, conciso e normalizado com os padrões que o usuário espera faz com 
que galguemos mais alguns passos rumo ao seu sucesso. 
Yevtushenko e Yalanska ([S.d.]) enumeram alguns tipos de teste em 
aplicativos que podem (e devem) ser aplicados em determinadas fases do 
desenvolvimento, porém especificamente vamos tratar três tipos de testes que 
envolvem testar diretamente a interface gráfica de um aplicativo. 
1.1 Teste de usabilidade 
Segundo a NBR 9241-11:2002, usabilidade é “Medida na qual um 
produto pode ser usado por usuários específicos para alcanças objetivos 
específicos com eficácia, eficiência e satisfação em um contexto específico de 
uso” (ABNT, 2002). 
Teste de usabilidade são aqueles que vêm desde os estágios iniciais do 
projeto, verificando se o aplicativo em questão cumpriu com os objetivos 
previamente estabelecidos e teve uma boa resposta dos usuários. Yevtushenko 
e Yalanska ([S.d.]) afirmam que “O foco inicial deste tipo de teste é validar se o 
app é fácil e rápido de se usar, simples e garante a satisfação do usuário com 
toda a experiência”. Isso também é afirmado por Nayebi, Desharnais e Abran (p. 
1, 2012), quando eles enumeram três aspectos importantes que devem ser 
considerados em usabilidade não somente aplicativos móveis, mas para 
qualquer tipo de software: ele deve ser de uso mais eficiente, levar menos 
 
 
4 
tempo para completar uma tarefa; ser fácil de aprender, quando operações 
podem ser aprendidas e executadas apenas por observação, e trazer mais 
satisfação, atendendo a expectativa dos usuários. 
Isso deve ser validado desde os primeiros passos da criação do protótipo 
ou dos wireframes (esboços iniciais) do aplicativo, lá atrás, bem antes da escrita 
de qualquer código. 
1.2 Usabilidade em dispositivos móveis 
Com esse crescimento acelerado das tecnologias e a ascensão dos 
smartphones, um estudo apropriado para esse cenário teve de ser planejado e 
executado, visto que novos desafios seriam enfrentados, como limite de 
tamanho de telas, conectividade a redes e internet, bem como limitação da 
capacidade de processamento e de métodos de interação homem-máquina. 
Somado a tudo isso, os fabricantes vinham também com algumas 
restrições para os aplicativos executados naqueles sistemas operacionais. A 
Apple criou o que foi chamado de iOS Human Interface Guidelines, com 
características que vão desde os tipos de toque que um dispositivo com iOS 
permite ao usuário fazer, como ele deve realizar esses toques e até o tamanho 
de botões e outras características, sendo que esse guideline é validado pela 
empresa durante a validação de aplicativos submetidos à App Store. 
Parecido com a Apple, a Google, desenvolvedora do Android, criou o 
chamado Android User Interface Guidelines, em que, novamente, os 
desenvolvedores têm acesso a detalhes de todos os recursos de interface 
disponíveis que devem ser considerados ao criar aplicativos voltado a esse 
ambiente. 
 
 
5 
 
Créditos: Vitalii Vodolazskyi/Shutterstock. 
TEMA 2 – CONTINUANDO COM OS TIPOS DE TESTE DE INTERFACE 
Continuando nossa discussão sobre os tipos de teste que envolvem 
interface gráfica do usuário, vamos agora verificar um tipo de teste que atinge 
diretamente o usuário durante o uso do aplicativo. 
2.1 Teste de performance 
Este teste é um dos que devem ser feitos para validar o comportamento 
do aplicativo em condições em que os recursos de processamento estão 
esgotados no dispositivo, e é aqui que testar diretamente em um dispositivo com 
hardware real vai mostrar alguns gargalos que passaram despercebidos durante 
o teste de usabilidade e mesmo durante o teste funcional do aplicativo. 
Esse tipo de teste vai checar não somente o desempenho do hardware 
em si, mas também o desempenho dos recursos de conectividade do aplicativo. 
Vai validar o comportamento do aplicativo em alguns cenários, como bateria 
baixa, pouco armazenamento e pouca memória disponível, entre outras 
situações. 
 
 
6 
Tal teste pode ser automatizado (como veremos nas próximas etapas), 
evitando que o desenvolvedor tenha que o fazer manualmente em vários 
dispositivos com vários cenários diferentes de hardware e software. 
2.2 Teste de interrupção 
Este teste é importante, pois, como sabemos, problemas e outras 
atividades rotineiras no smartphone podem tirar o foco do aplicativo, colocá-lo 
em estado de suspensão, e isso pode afetar o desempenho dele, assim como 
os dados que estavam sendo trabalhados no momento da interrupção. Podemos 
citar aqui alguns tipos de interrupção mais comuns: 
• Ligações ou diferentes tipos de notificação. 
• Memória baixa. 
• Queda de conectividade a rede ou internet. 
• Qualquer tipo de reprodução de mídia. 
• Esgotamento total ou parcial da bateria do dispositivo. 
Baseados nessas informações, podemos chegar ao ponto crucial de todo 
o teste de interface: o design. 
TEMA 3 – NÃO DEVEMOS ESQUECER DO DESIGN 
Antes de continuarmos, vamos tomar a seguinte afirmação: temos que 
lembrar que todo produto digital, vulgo software, não é somente código escrito, 
mas sim um conjunto de interações, principalmente com o consumidor desse 
software, vulgo usuário. É claro que é bem melhor ter o software com código 
sendo executado e ver o que realmente está acontecendo do que somente testar 
“um produto de imaginação”, como muitos tratam os protótipos ou wireframes. 
Porém, devemos entender que, em um projeto de software, os testes 
devem ser feitos desde as fases iniciais até o final do ciclo de lançamento 
(lembrando aqui o Modelo V visto em contéudos anteriores). Com a modelagem 
inicial de um app, podemos dar uma ideia para o usuáriode o que ele vai ter no 
final do processo e receber feedback dele se isso vai solucionar os seus 
problemas ou causar mais. 
Por isso, vamos conhecer um pouco desse processo e de que como 
podemos aplicar os conceitos de teste estudados até agora nesse processo. 
 
 
7 
 
Créditos: Maicasaa/Shutterstock. 
3.1 Prototipagem 
Não existem diferenças entre o processo de construção de aplicativos e 
de outros tipos de software se ambos forem dirigidos a usuários. A prototipagem 
é parte inicial do projeto e é aqui que o cliente vai começar a ver o projeto 
ganhando forma. 
Existem inúmeras ferramentas que simplificam e aceleram esse processo 
de prototipagem inicial, e isso tem de ser utilizado e muito na fase de design da 
solução, pois, novamente, é aqui que o usuário final vai ter uma ideia de o que 
será construído e é com esse protótipo que ele vai ter uma ideia se isso vai 
resolver seus problemas e suas dores. Desta forma, os desenvolvedores vão 
receber uma versão homologada da solução, na qual mudanças não serão feitas 
e ou não terão grande impacto na interface. 
Prototipar significa fazer com que, nos testes, o cliente, o designer ou 
potenciais usuários validem toda a estrutura em que vai haver interação deles. 
Aqui, há um ponto de atenção: não devemos confundir o protótipo com a versão 
final do aplicativo ou software, porque eles são feitos com uma finalidade 
específica e única: servir de validador para um produto, garantindo que as 
escolhas de design foram assertivas e as soluções propostas foram apropriadas 
e adequadas para a necessidade para a qual eles foram desenvolvidos. 
 
 
8 
3.2 Ferramentas para prototipagem 
Agora que falamos sobre os protótipos e como eles são importantes para 
uma validação da interface dos nossos aplicativos, vamos conhecer algumas 
ferramentas para nos auxiliarem neste fim. Aqui vamos entender o seguinte: um 
protótipo não necessariamente vai ter código, pois geralmente ele é produzido 
por um time que não tem esse conhecimento (o time de UI ou time de Frontend). 
Por isso, existem algumas ferramentas que fazem com que toda a construção 
criativa seja feita e demonstrada para o usuário para depois somente ganhar 
vida pela mão dos desenvolvedores. 
A primeira ferramenta que vamos conhecer é o Sketch, que está 
disponível para download para usuários do macOS com uma versão de 
avaliação de 30 dias. Com essa ferramenta, é possível criar toda uma aplicação 
somente tendo o seu design, validando a interação do usuário por meio de 
operações simuladas e navegação simulada. 
Figura 1 – Tela inicial do Sketch 
 
A segunda ferramenta que vamos conhecer é chamada de Moqups. Esta, 
além de ter o mesmo poder que a ferramenta anterior, tem uma versão de início 
gratuita em que é possível criar toda a árvore de navegação do software, 
juntamente com seu design, para que os testes possam entender o fluxo do 
aplicativo e imaginar sua navegação. Inclusive, a ferramenta vem com um projeto 
 
 
9 
padrão de wireframe de uma aplicação móvel para início rápido e aprendizagem 
da ferramenta. 
Figura 2 – Tela de um projeto de exemplo no Moqups 
 
Como uma terceira alternativa, vamos conhecer também o proto.io, que 
contém uma versão de avaliação. Com ela, é possível criar as telas utilizando o 
design de qualquer uma das plataformas disponíveis e fazer com que haja 
interação entre elas, de forma que o usuário tenha ideia da navegação. Sua 
facilidade de uso e também seus componentes já estão de acordo com os 
padrões de cada plataforma, auxiliando e muito os designers a projetar um 
software que seja agradável ao usuário e que siga as orientações de interface 
de cada plataforma, principalmente no que diz aos guidelines de cada 
plataforma. 
 
 
 
10 
Figura 3 – Tela do Proto.io com projeto teste carregado 
 
TEMA 4 – COMO TESTAR UMA INTERFACE DEPOIS DE CONSTRUIDA 
Até agora vimos os conceitos e abrangemos os testes de interface nas 
fases iniciais do projeto, nas quais ainda estamos elaborando o que será escrito, 
porém já imaginando um cenário futuro, em que temos o software construído, 
nossas funcionalidades validadas por meio dos testes unitários e implementadas 
em cada elemento. Como podemos validar se o clique do botão está disparando 
o evento correto ou se está sendo exibido o dado de forma correta? 
 
 
11 
 
Créditos: Aleksandr_a/Shutterstock. 
4.1 Existem “testes unitários” para interface? 
Vamos voltar um pouco e relembrar o conceito de teste unitário: pedaço 
de software que testa se os resultados de operações estão corretos de acordo 
com como elas foram planejadas. Uma interface de usuário é um pedaço de 
software, podemos concordar com isso, mas como identificar se um texto foi 
exibido corretamente para um usuário? Um teste unitário garante que o texto foi 
gerado, mas sua exibição está de acordo? 
Testes unitários devem ser utilizados para garantir que o operacional do 
aplicativo está funcionando, porém é impossível fazer validações importantes, 
como se uma cor escolhida para o fundo está sobrepondo a cor do texto exibido, 
com um teste unitário (que deve ser simples e retornar asserções do tipo 
verdadeiro/falso). 
Além disso, uma validação da UI de forma manual ou automatizada (tema 
da próxima etapa) vai mostrar o que os nossos testes unitários não pegaram, por 
exemplo quando há alguma rotina que foi feita fora de um padrão de separação 
de classes, e o código está afetando a exibição da informação para o usuário. 
 
 
12 
4.2 Então, como testar de forma eficiente uma interface de usuário? 
Aqui, podemos elencar duas formas que vão resolver o problema: a 
primeira, como podemos imaginar, é o teste de usuário manual, em que 
distribuímos versões do aplicativo já com código implementado, e elas podem 
seguir o chamado roteiro de testes, que vai dizer um passo a passo para a 
funcionalidade, e o testador vai ser responsável por aprovar ou não o passo a 
passo, de acordo com o que ele viu ou fez para quebrar a interface. A segunda 
forma é um pouco mais prática, pois usa de automação para a realização do 
teste, seguindo scripts predefinidos pelo teste manual. Entraremos em detalhes 
deste assunto em etapa futura, mas podemos elencar alguns pontos que 
devemos considerar na hora de testar a interface de usuário: 
• Posicionamento, alinhamento, tamanho, comprimento e largura de todos 
os elementos da interface. 
• Tipos de dados que podem ser inseridos nos mais diversos tipos de caixa 
de texto, caracteres especiais e, principalmente, entradas inválidas. 
• Execução das funcionalidades do aplicativo. 
• Erros em dados. 
• Elementos de navegação. 
• Navegação em tabelas. 
• Barras de progresso. 
• Exibição e tratamento de erros. 
• Atalhos e itens de menu. 
• Botões de ação. 
TEMA 5 – O DESAFIO DO TESTE DE INTERFACE 
O termo UI (user interface), ou interface de usuário, às vezes é confundido 
com o termo GUI (graphical user interface) de forma errônea. A GUI é um tipo 
de UI que alguns softwares utilizam, fazendo uso de elementos gráficos 
construindo uma UI com as quais os usuários podem interagir. 
Isso faz com que o teste de UI seja um dos maiores e mais amplos tipos 
de teste que existem atualmente, dada a variedade de interfaces disponíveis 
hoje. E não vai muito longe: observe uma interface de um dispositivo com iOS e 
 
 
13 
a interface de um dispositivo com Android. Ambas têm as mesmas 
funcionalidades, mas com forma de interação totalmente diferente pelo usuário. 
 
Créditos: Production Perig/Shutterstock. 
5.1 Checklist básico para testes de interfaces 
Pensando nisto, vamos ter em mente um pequeno checklist que devemos 
seguir quando estamos pensando em testar uma interface gráfica, que de tão 
ampla chega a ser impossível de tratar um capítulo somente. 
1. Consistência: devemos verificar se nosso aplicativo está agradável aos 
olhos, validando se as cores, fontes e outros elementosvisuais estão de 
acordo com a proposta, sendo um teste manual na maioria dos casos. 
2. Escrita: este ponto é fatal para alguns usuários, no qual devemos verificar 
se há erros gramaticais na aplicação, não somente em títulos, menus ou 
outras caixas de texto, mas também em mensagens de erro e outras 
janelas informativas ao usuário, sendo novamente um teste manual, 
podendo ser automatizado com uma ferramenta ortográfica. 
3. Tipografia: são algumas perguntinhas que devemos responder para 
garantir que os textos são legíveis: O texto é fácil de ler? As cores não 
estão se misturando com o fundo da tela? Os usuários conseguem 
distinguir facilmente o que é um cabeçalho e o que é o corpo do texto? 
Novamente, aqui é um teste visual. 
4. Comportamento dos componentes interativos: aqui, verificamos se os 
botões, cliques e toques de tela, operações de arrastar e soltar funcionam 
 
 
14 
como deveriam funcionar. Isso pode ser totalmente automatizado 
(veremos nas próximas etapas). 
5. Validação funcional: as entradas produzem as saídas corretas? Por 
exemplo, se eu adicionar um produto ao meu carrinho de compras e se 
eu olhar o carrinho, o produto correto, com o valor correto e a quantidade 
correta, devem estar nele. Isso permite validações dos tipos de dado, 
como números negativos ou caracteres especiais. Isso tipicamente pode 
ser automatizado também. 
6. Adaptabilidade: como vimos no início dos conteúdos, existem diversos 
tipos de dispositivos, com diversos tipos de tela, formatos e por aí vai. 
Aqui o tester deve garantir que os elementos de tela se adaptem e sejam 
exibidos da forma correta nesses diferentes cenários. Aqui também temos 
como automatizar esses processos. 
5.2 Os desafios nos testes de interface 
Podemos entender até agora que os testes de interface não são somente 
de extrema importância, mas de extrema complexidade devido à ampla gama de 
soluções e interfaces disponíveis. Essa complexidade traz alguns desafios com 
os quais temos que lidar como profissionais. 
O primeiro grande desafio a ser vencido que podemos elencar é a 
volatilidade de uma interface. E faz muito sentido, pois é a parte do software 
com que realmente interagimos como usuários. Ela não somente deve estar de 
acordo com as propostas dos clientes e usuários que vão interagir com ela, mas 
também deve estar de acordo com as regras e os padrões determinados não 
somente pelo mercado, mas pelos guidelines das plataformas (como podemos 
observar no tema sobre usabilidade). Além disso, ainda em alguns países temos 
leis que devem ser seguidas para a construção dessas interfaces 
(principalmente leis de acessibilidade). 
Outro grande desafio a ser vencido é a lentidão nos testes de interface. 
Diferentemente de testes unitários, que devem ser rápidos, se observarmos o 
modelo de testes e verificarmos os testes de UI, eles serão mais demorados por 
terem muito mais nuances a serem verificadas do que pedaços de código, porém 
essa lentidão não deve ser muito acentuada, pois isso pode fazer com que o 
processo de QA fique lento e esses testes comecem a ser deixados de lado, o 
que é um perigo de falha gravíssima para o processo. 
 
 
15 
Por último, podemos citar o custo desse tipo de teste. A lentidão dos 
testes é um problema, porém o tempo necessário para criar a manter esses 
casos de teste é maior ainda. Dependendo da complexidade da interface, o time 
precisa de muito tempo para poder escrever e manter esses testes. Isso é um 
custo que deve ser observado, já que a grande maioria da equipe de teste não 
tem conhecimento para escrita de código, e essa responsabilidade tem que ser 
delegada a recursos que terão de ser custeados de uma forma ou de outra. 
Superar esses desafios vai muito das escolhas e da forma como o projeto 
foi planejado, principalmente a execução dos testes durante todo o ciclo de vida 
dele. Escolher uma forma automatizada de testes e/ou delegar as atividades 
para o teste manual devem ser muito bem planejadas e consideradas, para que 
a fase de teste não se torne um pesadelo. 
 
Crédito: TippaPatt/Shutterstock. 
FINALIZANDO 
Nesta etapa, pudemos ter uma visão dos testes de interface nos 
aplicativos móveis e o que isso pode impactar nos projetos de software, 
principalmente nos testes. 
Tivemos uma visão do que é o teste de interface, sendo ela o resultado 
que vamos "comer com os olhos" quando utilizarmos o aplicativo. Elencamos 
 
 
16 
também alguns dos tipos de teste que devem ser realizados nesse processo, 
começando com os testes de usabilidade, além de termos visto os aspectos mais 
importantes que devemos tratar em relação a usabilidade. Também pudemos 
dar uma olhada na usabilidade relacionada aos dispositivos móveis e em como 
as fabricantes trazem soluções e padrões que devem ser seguidos. 
Depois, continuamos a dar uma olhada nos tipos de teste de interface, 
quando falamos primeiro dos testes de performance, que vão checar o 
desempenho do aplicativo como um todo. Depois seguimos para conhecer os 
testes de interrupção e sua importância dentro dos cenários, visto que o 
dispositivo móvel pode sofrer interferências de estados internos sempre. 
Na sequência, tratamos um tema que muitas vezes pode até passar 
despercebido nas equipes, que é o design da interface. Ainda relembramos que 
aqui os testes também são importantes para garantir que o produto estará de 
acordo com o que o usuário esperava. Também conhecemos algumas 
ferramentas que podem nos auxiliar nesse processo criativo, mostrando 
soluções com que podemos desenhar o layout dos aplicativos, colocar ali 
interações para demostrar os fluxos do aplicativo, sem ter escrito nenhuma linha 
de código, validando a importância de prototipar nossas soluções. 
Também passamos a conhecer um pouco dos testes que serão feitos 
depois do software construído, já nas fases finais do processo de 
desenvolvimento. Reforçamos o conceito de que não existe teste unitário para 
interface e verificamos algumas formas eficientes de testar uma interface de 
usuário. 
Por fim, pudemos discutir um pouco sobre as dificuldades e os desafios 
dos testes de interface, enumerando um checklist básico que deve ser seguido 
para garantir que um teste de interface seja benfeito e conciso. 
 
 
17 
REFERÊNCIAS 
ABNT – Associação Brasileira de Normas Técnicas. NBR 9241-11: Requisitos 
ergonômicos para trabalho de escritórios com computadores. Rio de Janeiro, 
2002. 
NAYEBI, F.; DESHARNAIS, J.-M.; ABRAN, A. The state of the art of mobile 
application usability evaluation. 25th IEEE Canadian Conference on Electrical 
and Computer Engineering (CCECE). Montreal, 2012. 
YEVTUSHENKO, A.; YALANSKA, M. The brief guide to testing mobile interfaces. 
Tubik. Disponível em: <https://blog.tubikstudio.com/brief-guide-to-testing-
mobile-interfaces/>. Acesso em: 30 out. 2022.

Mais conteúdos dessa disciplina