Buscar

AUTOMAÇÃO DE TESTES FUNCIONAIS NO PROCESSO DE FOTA DE DISPOSITIVOS MÓVEIS

Prévia do material em texto

Lauro de Freitas 
2016 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ISAIAS SANTOS SILVA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
AUTOMAÇÃO DE TESTES FUNCIONAIS NO PROCESSO DE FOTA 
DE DISPOSITIVOS MÓVEIS 
 
Lauro de Freitas 
2016 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
AUTOMAÇÃO DE TESTES FUNCIONAIS NO PROCESSO DE FOTA 
DE DISPOSITIVOS MÓVEIS 
Trabalho de Conclusão de Curso apresentado 
à UNIME, como requisito parcial para a 
obtenção do título de bacharel em Sistemas de 
Informação 
 
Orientador: Prof. Jorge Farias, Equipe de 
Tutores - AVA 
 
ISAIAS SANTOS SILVA 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
SANTOS SILVA, Isaias. Automação de Testes Funcionais no Processo de FOTA 
de Dispositivos Móveis. 2016. 28. Trabalho de Conclusão de Curso de Sistemas 
de Informação – UNIME, Lauro de Freitas, 2016. 
 
RESUMO 
 
O desenvolvimento deste trabalho foi proposto com o objetivo de resolver e eliminar 
um problema na forma de execução de testes funcionais, durante o processo de 
teste da funcionalidade de FOTA em dispositivos móveis. FOTA é uma feature que 
tem por objetivo validar e testar todos os processos de atualização de software de 
dispositivos móveis, antes, durante e após a sua atualização. Para isso, a atividade 
de customização foi automatizada, resolvendo assim problemas de preenchimento 
manual da checklist, passível de erro do participante e diante da criticidade e 
importância desta feature para o cliente. A automação de testes funcionais foi 
realizada através de uma ferramenta proprietária denominada ATS e aplicada ao 
contexto de uma grande fabricante coreana de dispositivos móveis em atuação no 
Brasil. Para fundamentar o tema, pesquisas bibliográficas sobre teste de software e 
automação foram realizadas e as boas práticas do Syllabus e AQuA foram seguidos. 
Através da prova de conceito realizado em um laboratório de teste independente, foi 
provado que ganhos em tempo, produtividade e qualidade no software pode ser 
obtido através da automação. 
 
Palavras-chave: Teste de software; testes automatizados; Qualidade de software; 
automação; caixa preta. 
 
 
 
 
 
 
 
 
 
 
 
 
SANTOS SILVA, Isaias. Functional Test Automation in the Process FOTA of 
Mobile Devices. 2016. 28. Conclusion Work of Information Systems Course - 
UNIME, Lauro de Freitas, 2016. 
 
ABSTRACT 
 
The development of this work was proposed with the objective of solving and 
eliminating a problem in the execution of functional tests, during the process of 
testing FOTA functionality in mobile devices. FOTA is a feature that aims to validate 
and test all software update processes for mobile devices before, during and after 
their upgrade. For this, the customization activity was automated, thus solving 
problems of manual filling of the checklist, subject to error of the participant and 
before the criticality and importance of this feature for the client. The automation of 
functional tests was performed through a proprietary tool called ATS and applied to 
the context of a large Korean manufacturer of mobile devices operating in Brazil. To 
support the theme, bibliographic research on software testing and automation was 
carried out and the good practices of Syllabus and AQuA were followed. Through the 
proof of concept carried out in an independent test laboratory, it was proved that 
gains in time, productivity and quality in the software can be obtained through 
automation. 
 
Keywords: Software testing; automated testing; Software quality; automation; black 
box. 
 
LISTA DE FIGURAS 
FIGURA 1 - CUSTO DOS DEFEITOS COM PASSAR DO TEMPO DO PROJETO ........................... 14 
FIGURA 2 - MODELO CAIXA PRETA ............................................................................... 17 
FIGURA 3 - MODELO DE CAIXA BRANCA ......................................................................... 19 
FIGURA 4 - PROCESSO DE FOTA .................................................................................. 26 
FIGURA 5 - REPORT ISSUE - FACEBOOK AND TWITTER APP DISAPPEAR ............................. 30 
FIGURA 6 - REPORT ISSUE - VULNERABILITIES ................................................................ 30 
FIGURA 7 - ERROR DURING INSTALLATION ...................................................................... 30 
FIGURA 8 - FRAGMENTAÇÃO DO ANDROID ...................................................................... 34 
FIGURA 9 - EXEMPLO CASO DE TESTE - REMOVE TO BATTERY ......................................... 36 
FIGURA 10 - ATS VERSÕES .......................................................................................... 37 
FIGURA 11 - ATS CONNECTIVITY PANEL ........................................................................ 38 
FIGURA 12 - ATS TEST MANAGER ................................................................................ 39 
FIGURA 13 - AMOSTRAS SELECIONADAS ........................................................................ 40 
FIGURA 14 - ATS CUSTOMIZATION ................................................................................ 41 
FIGURA 15 - ATS SCENARIO ALARM.............................................................................. 42 
FIGURA 16 - ATS COMANDOS ....................................................................................... 42 
FIGURA 17 - ATS AFTER AUTOMAÇÃO ........................................................................... 45 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
https://d.docs.live.net/1f382d5ade128170/TCC%202016.2/AUTOMAÇÃO%20DE%20TESTES%20FUNCIONAIS%20NO%20PROCESSO%20DE%20FOTA%20DE%20DISPOSITIVOS%20MÓVEIS.doc#_Toc474086316
 
 
 
 
 
 
 
LISTA DE GRÁFICOS 
GRÁFICO 1 - COMPARATIVO TEMPO GASTO POR PARTICIPANTE ........................................ 53 
GRÁFICO 2 - COMPARATIVO TEMPO GASTO ADDWIFI PELOS PARTICIPANTES. .................... 54 
GRÁFICO 3 - OPINIÃO DOS PARTICIPANTES SOBRE AS ATIVIDADES .................................... 55 
GRÁFICO 4 - OPINIÃO DOS PARTICIPANTES SOBRE O NÍVEL DE ATITUDE ............................ 56 
GRÁFICO 5 - OPINIÃO - SATISFAÇÃO DO PARTICIPANTE POR AMOSTRA .............................. 57 
 
 
LISTA DE TABELAS 
TABELA 1 - CLASSIFICAÇÃO DE DISPOSITIVOS MÓVEIS .................................................... 33 
TABELA 2 - CARACTERÍSTICAS AMOSTRAS ...................................................................... 40 
TABELA 3 - QUANTIDADE DE CASOS DE TESTE POR FUNCIONALIDADES .............................. 48 
TABELA 4 - PASSOS PARA EXECUÇÃO DOS TESTES POR TIPO ........................................... 49 
TABELA 5 - CRONOGRAMA DE TESTES ........................................................................... 50 
TABELA 6 - TEMPO DE CUSTOMIZAÇÃO POR AMOSTRA .................................................... 50 
TABELA 7 - TEMPO DE EXECUÇÃO MANUAL POR PARTICIPANTE ......................................... 51 
TABELA 8 - TEMPO DE EXECUÇÃO AUTOMATIZADA POR PARTICIPANTE .............................. 52 
TABELA 9 - COMPARAÇÃO TEMPO MANUAL X AUTOMATIZADO ......................................... 54 
TABELA 10 - ERROS NA CUST SINALIZADOS PELO CLIENTE .............................................. 59 
 
 
LISTA DE SIGLAS 
APN ACCESS POINT NAME 
ADT ANDROID DEVELOPMENT TOOLS 
ATS AUTOMATED TEST SYSTEM 
CTFL CERTIFIED TESTER FOUNDATION LEVEL 
ETA EMBEDDED TEST AGENT 
FOTA FIRMWARE OVER THE AIR. 
GDMS GLOBAL DEALER MANAGEMENT SYSTEM 
GUI GRAPHICAL USER INTERFACE 
IDE INTEGRATED DEVELOPMENT ENVIRONMENT 
IMEI INTERNATIONAL MOBILE EQUIPMENT IDENTITY 
ISQTB INTERNATIONAL SOFTWARE TESTING QUALIFICATIONS 
BOARD 
LGUP LG ELECTRONICS UPLOAD 
OS OPERATION SYSTEM 
QA 
 
RST 
QUALITY ASSURANCE 
 
STRATIFIED RANDOM TEST 
USB UNIVERSAL SERIAL BUS 
 
 
 
 
 
 
 
 
 
 
SUMÁRIO 
 
INTRODUÇÃO ............................................................................................................9 
1.1 APRESENTAÇÃO DO TEMA ......................................................................... 11 
1.2 PROBLEMA .................................................................................................... 11 
1.3 OBJETIVO ...................................................................................................... 12 
1.3.1 Objetivos Específicos .............................................................................. 12 
FUNDAMENTAÇÃO TEÓRICA ................................................................................ 13 
2.1 A IMPORTÂNCIA DE TESTAR UM SOFTWARE ........................................... 13 
2.2 TESTES FUNCIONAIS ................................................................................... 15 
2.2.1 Teste de Caixa Preta (black box) .......................................................... 16 
2.2.2 Teste de Aceitação ................................................................................ 17 
2.2.3 Teste de Regressão ............................................................................... 18 
2.3 TESTES NÃO FUNCIONAIS .......................................................................... 18 
2.3.1 Teste de Caixa Branca (white box) ...................................................... 18 
2.3.2 Teste de Desempenho/Performance .................................................... 19 
2.3.3 Teste de Carga ........................................................................................ 20 
2.3.4 Teste de Stress ...................................................................................... 20 
2.3.5 Teste de Segurança ............................................................................... 20 
2.3.6 Teste de Portabilidade .......................................................................... 21 
2.4 AUTOMAÇÃO DE TESTE .............................................................................. 21 
2.4.1 Quando Não Automatizar? ................................................................... 22 
2.4.2 Dificuldades no Processo de Automação dos Testes ....................... 22 
2.4.2 Técnicas de Automação de Software .................................................. 23 
FOTA (FIRMWARE/SOFTWARE OVER THE AIR) .................................................. 25 
3.2 TIPOS DE FOTA ............................................................................................... 26 
3.3 VANTAGENS E DESVANTAGENS DO FOTA ........................................................... 28 
3.4 PRINCIPAIS BUGS DE FOTA ............................................................................... 29 
AUTOMAÇÃO DE TESTES FUNCIONAIS NO PROCESSO DE FOTA .................. 32 
4.2 TESTES EM DISPOSITIVOS MÓVEIS ...................................................................... 32 
4.3 VISÃO GERAL ................................................................................................... 32 
4.4 AMBIENTE DE TESTE ......................................................................................... 33 
4.5 CRITÉRIOS DE TESTE EM DISPOSITIVOS MÓVEIS .................................................. 34 
4.6 FERRAMENTA UTILIZADA .................................................................................... 36 
4.7 PROVA DE CONCEITO (AUTOMAÇÃO) ................................................................... 39 
ESTUDO DE CASO .................................................................................................. 47 
5.2 SELEÇÃO DOS PARTICIPANTES ........................................................................... 47 
5.3 MÉTRICAS ........................................................................................................ 47 
5.4 ANÁLISE E EXECUÇÃO DO ESTUDO ...................................................................... 48 
5.4.1 Análise Quantitativa ................................................................................. 49 
5.4.2 Análise Qualitativa ................................................................................... 55 
RESULTADOS .......................................................................................................... 58 
CONCLUSÃO E TRABALHOS FUTUROS .............................................................. 61 
REFERÊNCIAS ......................................................................................................... 63 
 9 
INTRODUÇÃO 
Nos dias atuais os dispositivos móveis têm obtido sucesso de vendas 
quando comparados com computadores de mesa (desktops) e notebooks. São 
diversos modelos de aparelhos celular e tablets lançados, acompanhados das mais 
novas versões dos softwares (Android, iOS e Windows Phone), funcionalidades e 
recursos. Um aparelho lançado há dois anos, já pode ser considerado velho e 
defasado, uma vez que novas implementações de melhorias, correções de bugs ou 
path de segurança no software são realizados e disponibilizados aos usuários. 
Aplicativos são lançados e baixados constantemente e a alta concorrência no mundo 
mobile tem agradado ao público de uma forma extraordinária, tornando a aquisição 
de dispositivos algo quase que obrigatório. 
Para chegar a esse nível de gratidão, centenas e milhares de defeitos no 
software são encontrados, analisados e corrigidos. É bastante comum os usuários 
encontrarem defeitos e bugs durante a utilização do seu dispositivo. Mas a maioria 
destes bugs são classificados como baixo impacto devido ao pouco impacto que ele 
irá causar em outros módulos do software. Um erro no aplicativo de calculadora por 
exemplo não irá impactar o uso de outros aplicativos utilizados pelo usuário, porém 
um erro no aplicativo de chamadas, no volume das músicas ou vídeos, sons, tela e 
no processo de atualização do software (FOTA) que podem inviabilizar o uso do 
dispositivo e estressar o usuário. Um bug crítico de FOTA pode fazer com que o 
usuário acione a assistência técnica do aparelho, podendo tornar o aparelho 
inutilizável devido a sua não inicialização, ficar em loop de reinicio, apresentar 
crashes e tornar o uso do aparelho como algo desagradável. Softwares não testados 
ou mal testados são propícios para causar problemas financeiros, manchar a 
reputação da empresa e a integridade física do usuário. É durante os testes que os 
principais bugs são encontrados. 
Quando um bug é encontrado e reportado para correção por parte da equipe 
de desenvolvimento, novas versões do software é lançada com as devidas 
correções e assim um novo ciclo de teste é iniciado para validar os bugs reportados 
anteriormente e outros que possam surgir ou não identificados na fase anterior. 
Casos de testes, checklists, testes exploratórios dentre outros devem ser executados 
para cobrir o máximo de cenários possíveis em um software. 
 10 
Uma outra alternativa para a identificação de falhas no software é através da 
automação de teste. A automação do teste é quando uma atividade realizada 
manualmente é repassada e programada em um computador para que este possa 
realiza-la automaticamente. A automação dos testes funcionais é realizada através 
de uma ferramenta na qual scripts são desenvolvidos para automatizar a interface do 
dispositivo, simulando assim as ações do usuário. 
A automação de teste realizada neste trabalho consiste na criação de scripts 
ou códigos que identifique os valores defaults ou originais do dispositivo móvel a ser 
testado e alimente uma planilha excel com tais valores; em seguida o script deve 
efetuar uma modificação em todos os valores encontrados anteriormente para outros 
valores quaisquer, simulando assim uma customização realizada pelo usuário. Após 
a atualização é necessário que o script verifique através de uma análise comparativa 
se os valores foram modificados ou se permaneceram. Portanto, justifica-se a 
automação de atividades simples e repetitivas, onde o participante passa a focar e 
dedicar-se a execução de outras atividades de tomada de decisão e na realizaçãode casos de testes mais críticos e de alta prioridade. 
Para que o objetivo deste trabalho fosse alcançado algumas etapas 
precisaram ser superadas. Na primeira etapa foi realizado um estudo sobre teste de 
software funcionais e não funcionais e, suas principais técnicas, processos e 
metodologias que possam auxiliar, embasar e instruir o participante na identificação 
do bug. Foram buscados na internet artigos, dissertações, teses e cases de sucesso 
sobre teste e automação de software. O livro base de conhecimento de teste de 
software de Aderson Bastos, Emerson Rios, Ricardo Cristalli e Trayahú Moreira foi 
fundamental para iniciação deste trabalho e o mesmo é utilizado como a principal 
base de consultas. Como fruto da pesquisa, aprendizado e execução diária dos 
testes uma certificação internacional CTFL foi obtida, corroborando ainda mais com 
os conhecimentos adquiridos. Além disso cursos, workshops e palestras 
relacionadas ao tema foram acompanhadas. Todos os testes foram executados no 
maior laboratório de teste de software da américa latina de uma grande fabricante 
sul coreana de dispositivos móveis e um know-how entre diversos outros 
participantes de teste foi possível para o enriquecimento deste trabalho. (ISQTB, 
2016) 
Na segunda etapa deste trabalho é explicado o que é FOTA e detalhado 
todo seu processo de teste. Na terceira etapa dois casos de teste de automação 
 11 
foram realizados, objetivando-se demonstrar como foi feito todo o processo de 
automação desta feature aplicada a dispositivos móveis. Uma coleta e análise de 
métricas aplicadas no estudo de caso corroboram na comparação entre a execução 
do teste manual e automatizado. Pretende-se no dia da defesa desta monografia 
demonstrar a automação realizado pelo PC e realizada no dispositivo móbile. 
Por fim, o êxito deste trabalho está relacionado na aplicação das técnicas de 
testes de software por meio da automação de processos que mantenham a 
qualidade do produto, minimizem erros e tragam ganhos de tempo e produtividade 
para a organização e conhecimento e satisfação para o autor deste trabalho. 
1.1 APRESENTAÇÃO DO TEMA 
O tema proposto é um estudo do processo de teste da funcionalidade FOTA 
(firmware-over-the-air) em dispositivos móveis seguindo os padrões e técnicas de 
testes que mantenham a qualidade do software. Pretende-se responder e comparar 
o esforço e tempo gasto para testar um software de forma manual. Como hipótese 
inicial levantada questionou-se alguns processos e ou funcionalidades podem ser 
automatizados. Neste sentido, o ganho de tempo e produtividade entre o teste 
automatizado em relação ao manual pode ser percebível. 
1.2 PROBLEMA 
No mundo mobile, existe uma funcionalidade utilizada por diversas 
fabricantes de smartphones e tablets, denominada de FOTA, na qual diversos 
processos são executados para testar e validar essa funcionalidade. Devido à alta 
criticidade desta feature e de seus diversos processos os testes são executados no 
dispositivo e os resultados obtidos são inseridos em uma planilha do excel. Esses 
valores são preenchidos durante três momentos distintos do teste: 
 Preencher o valor default encontrado no dispositivo; 
 Simular a customização (Customization) realizada pelo usuário, 
modificando valores default para outros valores quaisquer; 
 Efetuar o processo de FOTA, inserir e checar se os valores 
personalizados pelo usuário permaneceram ou se sofreram modificações 
após o FOTA. 
 12 
Esse processo manual de anotar valores na planilha apesar de simples e 
bastante repetitivo, tornou essa atividade extremamente desgastante e suscetível a 
erro inerentes ao ser humano como: humor, memória, capacidade de concentração, 
relacionamento e saúde física pode influenciar negativamente na qualidade do 
produto ou na inserção de valores errados ou diferente do esperado. Outro fator 
negativo é o incremento de novas funcionalidades passiveis de customização ao 
longo do lançamento das novas versões de OSs Android como: o KitKat, Lollipop, 
Marshmallow e Nuget. 
Diante disso, este trabalho propõe discutir e propor soluções de como 
otimizar o tempo gasto na execução do processo de FOTA?; como melhorar a 
confiabilidade do teste? E como substituir as tarefas realizadas manualmente, 
suscetíveis a erros inerentes do ser humano. 
1.3 OBJETIVO 
Esse trabalho tem como objetivo automatizar o processo de customização 
da feature de FOTA, eliminando a execução de atividades manuais e repetitiva, além 
de evitar que fatores humanos e pessoais possam interferir negativamente para esse 
processo tão crítico. 
1.3.1 Objetivos Específicos 
 Explorar, avaliar e testar a feature de FOTA por meio de uma ferramenta 
proprietária denominada ATS; 
 Entender a importância do teste de software, suas principais técnicas e 
processos; 
 Compreender o porquê a automação pode resolver o problema proposto; 
 Analisar as métricas comparativa entre o teste feito anteriormente sem a 
automação e posteriormente com a automação. 
 13 
FUNDAMENTAÇÃO TEÓRICA 
Um teste é executado para encontrar erros. Segundo Pressman, para obter 
êxito neste objetivo, uma série de passos de testes é planejada e executada 
(PRESSMAN, 2006). Testar um software mobile com qualidade é um desafio diante 
da particularidade destes devices e da complexidade de diversos modelos lançados 
no mercado. Os clientes não esperam apenas um dispositivo que faça o basicão, 
mas eles esperam que sejam seguros, eficientes, bonitos, rápido etc. 
2.1 A IMPORTÂNCIA DE TESTAR UM SOFTWARE 
O teste de software pertence a uma das etapas do ciclo de desenvolvimento 
de software e tem como objetivo principal reportar possíveis defeitos encontrados no 
sistema para que o desenvolvedor possa soluciona-los. Segundo Molinari, o principal 
objetivo da realização do teste de software é reduzir a probabilidade de ocorrência 
de erros quando o sistema estiver em produção (MOLINARI, 2012). 
Antigamente, na década de 70 os testes possuíam pouca importância e 
eram realizados pelos próprios desenvolvedores, porém com o passar do tempo, 
devido à alta concorrência no mercado e ao aumento da complexidade dos novos 
sistemas desenvolvidos, o nível de exigência do cliente por qualidade aumentou e 
com isso a necessidade de testes mais eficazes. Para (PRESSMAN, 2006), "teste 
de software é um elemento crítico da garantia de qualidade de software e representa 
a revisão final da especificação, projeto e geração de código". 
Hoje em dia a atividade de teste deve ser iniciada nas primeiras etapas do 
processo de desenvolvimento do software e serem realizados simultaneamente, até 
a entrega do software ao usuário, para que os resultados de qualidade sejam 
atingidos (RIOS, 2012). O teste nas fases iniciais do desenvolvimento reduz os 
custos do projeto consideravelmente, pois, segundo Rios (2012), “os defeitos 
detectados quando o sistema ainda está nos seus estágios iniciais de 
desenvolvimento, podem ser mais baratos do que aqueles corrigidos quando o 
sistema já está em produção”. 
Conforme apresentado na Figura 1 e segundo a “Regra 10 de MYERS e 
SANDLER, o custo de correção dos defeitos cresce exponencialmente à medida que 
 14 
desenvolvimento vai avançando dentro do ciclo de vida do sistema” (RIOS, 2012). 
Portanto quanto mais cedo o defeito é identificado, menor é seu custo de correção. 
 
Figura 1 - Custo dos defeitos com passar do tempo do projeto 
 
Fonte: (Custo de correção de defeitos: Extraído de Bastos; Cristalli; Moreira; Rios, 2007) 
O teste de software não é uma atividade barata e fácil, normalmente o valor 
gasto com teste varia de 30% a 40% do valor total do projeto, dependendo das 
técnicas de teste que foram utilizadas e da tolerância a falhas exigidas pelo projeto 
(BASTOS; CRISTALLI; MOREIRA; RIOS, 2007). 
Outro fator levado em consideração para a produção de um software com 
qualidade é o alto risco em se produzirum software com defeitos. Esse risco justifica 
a utilização de testes. Testar reduz e mitiga os riscos. Os riscos e os defeitos em um 
código ou produto sempre existirão e testar exaustivamente afim de evitar esses 
riscos não é recomendável, uma vez que é quase impossível verificar todas as 
entradas e saídas possíveis. O recomendável para minimizar os riscos é o teste 
independente pois é realizado por uma pessoa, equipe ou organização 
independente da equipe de desenvolvimento. 
Percebe-se que existe uma tendência no mercado em fazer com que os 
testes de software sejam realizados de forma independente do desenvolvimento e 
 15 
que as evidências de qualidade sejam realizadas por empresas especializadas em 
testes (BERTOLINO, 2007). 
Portanto testar um software é fundamental no processo de desenvolvimento 
de um software, pois correspondem a um último momento de corrigir eventuais 
problemas no produto antes da sua entrega ao usuário final (PRESSMAN, 2006). 
2.2 TESTES FUNCIONAIS 
A partir da década de 70 que o teste de software ganhou destaque e 
começou a crescer, assim automaticamente os sistemas foram tendo mais qualidade 
e eficiência. Os testes de caixa preta, também conhecidos como testes funcionais 
são frequentemente utilizados para validação do software, pois é o comportamento 
ou a funcionalidade da aplicação sem a necessidade de conhecimento de uma 
linguagem de programação para testa-lo. (VIANA, 2007). 
O teste funcional evolve a identificação das funções que o software deve 
executar e em seguida a criação de casos de testes capazes de verificar se o 
resultado encontrado é conforme o resultado esperado. As funções são identificadas 
pela documentação ou especificação do software. Além disso alguns critérios de 
testes funcionais são utilizados na especificação e descritos abaixo: 
Particionamento de Equivalência - É o processo que identifica um 
conjunto de classes de domínios que equivalem a condições de entrada a ser 
testado, onde o objetivo é minimizar os casos de teste de testes necessários de 
forma a cobrir as condições de entrada. Segundo (PRESSMAN, 2006) as seguintes 
diretrizes devem ser utilizadas para definir um caso de teste: 
 Se uma condição de entrada especifica uma faixa de valores ou requer 
um valor específico, uma classe de equivalência válida (dentro do limite) e 
duas inválidas (acima e abaixo dos limites) são definidas; 
 Se uma condição de entrada especifica um membro de um conjunto ou é 
lógica, uma classe de equivalência válida e uma inválida são definidas. 
 Se uma condição de entrada do programa é booleana, uma classe de 
equivalência válida e uma inválida devem ser definidas. 
Análise de Valor Limite - Com base em experiências obtidas é possível 
afirmar que casos de testes que exploram as condições de fronteiras apresentam um 
maior retorno de incidentes em relação a outros casos de teste. Tais condições são 
 16 
valores acima ou abaixo dos limites das classes de equivalência de entrada ou de 
saída. O objetivo desta técnica é testar e saber que o software funcionará no limite 
de sua capacidade, sendo aprovado nesse teste ele provavelmente funcionará bem 
sob condições normais. Segundo (MYERS e SANDLER, 2004), essa análise de 
valor limite que os elementos de suas fronteiras e limites iniciais e finais seja 
submetido ao teste. 
Teste Exploratório/Suposição do Erro - Método de uma abordagem ad 
hoc, baseado na intuição e na experiência dos profissionais, afim de identificar 
testes e casos de testes que provavelmente mostrará erros. 
2.2.1 Teste de Caixa Preta (black box) 
Segundo (MYERS e SANDLER, 2004), o teste de caixa preta, possui esse 
nome devido ao conteúdo a ser testado ser desconhecido, assim como o conteúdo 
em uma caixa preta, onde só é possível visualizar o lado externo da caixa, bem 
como da aplicação. O teste consiste no fato de analisar o comportamento de um 
objeto, sem se preocupar como é seu funcionamento interno. Na pratica o testador 
não precisa ter conhecimentos avançados sobre a arquitetura, código ou linguagem 
de programação que o software foi desenvolvido, uma vez que o mesmo não possui 
acesso ao código fonte do software. Sua interação ocorre apenas com a interface do 
dispositivo, na qual ele insere as entradas de dados e obtém as saídas. Através da 
Figura 2, é possível identificar os valores de entrada e saída de uma aplicação, 
porém não é possível visualizar ou ter contato com o código fonte daquela aplicação. 
Segundo (KOSCIANSKI, 2006), o teste é particularmente útil para revelar 
problemas tais como: Funções incorretas ou omitidas, erros na interface, erros de 
comportamento ou baixo desempenho e erros de iniciação e término. 
 
 
 
 
 
 
 17 
Fonte: Modelo de Caixa Preta: autoria Própia 
2.2.2 Teste de Aceitação 
Nesta etapa o teste é conduzido pelos usuários finais do sistema e tem por 
objetivo verificar se o software está de acordo com os padrões documentais da 
especificação. O software é disponibilizado ao cliente para que este interaja com o 
sistema verificando se as funcionalidades requisitadas no início do projeto estão 
corretas (BARTIÉ, 2002). Segundo o mesmo autor, se essa fase apresentar muitas 
falhas, é sinal de que os processos de detecção de erros anteriormente executados 
não estão sendo implementados corretamente (BARTIÉ, 2002). 
Normalmente os testes de aceitação são executados após os testes 
funcionais e não funcionais, uma vez que durante esses testes bugs serão 
encontrados e corrigidos. Diz-se que é um dos últimos testes antes da liberação do 
software comercial. Há dois tipos de testes que se enquadram nos testes de 
aceitação. 
Testes Alfa: Teste de aceitação realizado por um número restrito de 
usuários. Na maioria dos casos o teste é executado na própria empresa e utilizado 
num ambiente real com a presença do desenvolvedor que registra erros e problemas 
de uso (PRESSMAN, 2006); 
Testes Beta: Teste de aceitação realizado em maior escala, sem restrição 
ou limitação de quantidade de usuários, na maioria das vezes são os próprios 
usuários que identificam issues e reportam diretamente ao desenvolvedor, apesar da 
quantidade de problemas encontrados serem bem reduzidas. O usuário registra os 
problemas encontrados e relata-os ao desenvolvedor (PRESSMAN, 2006). 
Figura 2 - Modelo Caixa Preta 
 18 
2.2.3 Teste de Regressão 
O teste de regressão, também chamados de teste de confirmação é uma 
estratégia de teste que visa reduzir possíveis efeitos colaterais. A cada nova versão 
de software lançada, todos os bugs encontrados em versões anteriores são 
verificados afim de confirmar ou não sua reprodução. Os testes de regressão podem 
ser aplicados em qualquer fase do teste. 
Conforme (PAULA FILHO, 2005), o teste de regressão, tem por objetivo 
evitar que o desenvolvedor ao modificar ou efetuar a correção de erros detectados 
acabe introduzindo outros erros em partes do software previamente testadas. Por 
ser executado diversas vezes em cada lançamento de versão ou na confirmação de 
cada bug encontrado, os testes de regressão são considerados testes longos, 
tornando-se assim um dos maiores argumentos para a automação deste tipo de 
teste. 
2.3 TESTES NÃO FUNCIONAIS 
Diferentemente dos testes funcionais, os não-funcionais tem por objetivo 
verificar o funcionamento do sistema em condições extremas e incomuns. Apesar de 
não ser o escopo deste trabalho, abaixo são descritos alguns testes não-funcionais 
que podem ser aplicados aos dispositivos móveis. 
 
2.3.1 Teste de Caixa Branca (white box) 
SOMMERVILLE, define como teste de caixa branca aqueles que possibilitam 
avaliar, estudar, implementar e desenvolver testes baseado na estrutura interna do 
software, desde sua codificação, execução dos componentes elementares, onde tais 
informações são utilizadas para criar, executar e depurar casos de testes 
(SOMMERVILLE, 2007). Para sua execução é necessáriode conhecimento técnicos 
e avançados em desenvolvimento e da arquitetura interna do software, uma vez que 
a interação com o código será constante. Conforme a Figura 3, é possível visualizar 
os dados de entrada e saída da aplicação, além de visualizar, ter acesso e 
manipular o código fonte, estrutura, módulos e arquitetura do código. 
 19 
 
Figura 3 - Modelo de Caixa Branca 
 
Fonte: Modelo de Caixa Branca: autoria Própia 
 
Existem ainda o teste de caixa cinza que basicamente uma adequação entre 
os testes de caixa preta e branca. 
2.3.2 Teste de Desempenho/Performance 
Como o próprio nome diz, o teste de desempenho visa identificar o 
desempenho do dispositivo diante de vários cenários propostos, como por exemplo: 
execução de diversos aplicativos rodando em background, execução de um game 
pesado, recepção e envio de mensagens instantâneas, navegação em redes sociais 
e pela internet. O teste tem como objetivo verificar como o software reagirá em 
citações descritas acima. Em dispositivos móveis o teste está condicionado a 
percepção e experiência do tester em identificar delay excessivo, atraso ou 
travamentos. Conforme (BARTIÉ, 2002), os testes podem ser executados da 
seguinte forma: 
 Validar todos os requisitos de desempenho identificados; 
 Simular número de usuários acessando simultaneamente a mesma 
informação; 
 Simular número de usuários processando simultaneamente a mesma 
transação; 
 20 
 Simular número de usuários no tráfego de rede; 
 Aumentando o número de usuários simultâneos; 
 Combinar todos esses elementos. 
2.3.3 Teste de Carga 
Verificar o comportamento do sistema diante de uma grande carga de dados 
de entrada. Os dados de entrada podem ser simulados em situações normais ou em 
situações de pico, como por exemplo: verificar se um formulário de inscrição aceita 
50 mil inscrições em um curto período estipulado sem sair do ar. Algumas 
ferramentas de teste de carga bastante conhecidas são: IBM Rational Performance, 
Tester, Apache JMeter, Silk Performer, Visual Studio Load Test etc. Segundo 
(BARTIÉ, 2002), os testes podem ser executados da seguinte forma: 
 Elevando e reduzindo o número de transações simultâneas; 
 Aumentando e reduzindo o tráfego de rede; 
 Aumentando o número de usuários simultâneos; 
 Combinando todos esses elementos. 
2.3.4 Teste de Stress 
Verificar o comportamento do software em condições anormais é o objetivo 
deste teste. Este teste possui estreita relação com o teste de carga, diferenciando-se 
na aplicação de valores anormais ou cargas acima do especificado nos requisitos. 
Segundo (BARTIÉ, 2002), alguns cenários do teste de stress são: conexões 
intermitentes com a rede e o banco de dados ou aplicação de cargas de dados em 
diferentes processos responsáveis por consumir memória e processamento no 
servidor do dispositivo. 
2.3.5 Teste de Segurança 
Teste que visa expor ou procurar expor todas as vulnerabilidades que o 
sistema possa possuir, assim sendo pode-se determinar se informações sigilosas 
dos usuários estão devidamente protegidas de ataques. Existem diversas formas de 
ataque ao sistema, sucessivamente passa a existir diversas provas de protege-lo. 
 21 
Segurança de redes wifi, do firmware, hardware, de aplicações que rodam no cliente 
e de aplicações que rodam diretamente no servidor são as principais áreas de 
ataques e de testes de segurança que devem ser desenvolvidos. Segundo (BARTIÉ, 
2002), os testes podem ser executados da seguinte forma: 
 Acessar funcionalidades e informações que requerem perfil avançado; 
 Tentar invadir/derrubar o servidor de dados/internet; 
 Tentar extrair backups de informações sigilosas; 
 Tentar descobrir senhas e quebrar protocolos de segurança; 
 Tentar processar transações geradas de fontes inexistentes; 
 Tentar simular comportamento/infecção por vírus. 
2.3.6 Teste de Portabilidade 
Verifica-se o aplicativo ou software desenvolvido consegue rodar em 
diferentes sistemas operacionais. Se um sistema em sua fase inicial não for 
desenvolvido pensando na portabilidade, é bem provável que o aplicativo criado não 
seja portável ou outros sistemas operacionais. Abaixo (BARTIÉ, 2002), descreve 
alguns a transferência de software de um computador para outro, execução do 
executável em diferentes plataformas e utilização de diferentes navegadores para 
testar uma aplicação como exemplos do teste de portabilidade. 
2.4 AUTOMAÇÃO DE TESTE 
Segundo Molinari, existem duas razões básicas para a automatização dos 
testes: O grande crescimento das aplicações e sistemas e o elevado grau de 
complexidade dos sistemas. Segundo as razões citadas por Molinari, e devido ao 
crescimento exponencial do mercado mobile, dos aplicativos desenvolvidos e dos 
dispositivos lançados, uma solução viável para a execução dos testes é a 
automação dos mesmos, levando em consideração o tipo de teste que será 
realizado e da função a ser realizada, tornando assim algumas vezes a execução do 
teste manual inviável (MOLINARI, 2008). 
Hoje em dia o participante de automação necessita entender a programação 
do sistema desenvolvido e sua lógica de implementação. Há também a necessidade 
do conhecimento e as características da ferramenta a utilizar na automatização, que 
 22 
muitas vezes possuem linguagens próprias para o seu desenvolvimento (MOLINARI, 
2008). 
Existem várias soluções propostas para melhorar a eficiência e eficácia de 
atividades executadas no dia a dia, sem dúvida a automação é a principal delas. Na 
automação de testes, tarefas antes realizadas manualmente e suscetíveis a erros de 
cunho pessoal, são repassadas ao computador através de ferramentas de 
automação. A automação é uma das maneiras mais eficiente de reduzir e melhorar o 
tempo de teste durante o ciclo de vida do software, e sucessivamente reduzir custos, 
aumentar a produtividade e qualidade do software. Tais resultados são obtidos 
através do teste de regressão e substituição de testes manuais e repetitivos pela 
automação. 
2.4.1 Quando Não Automatizar? 
A automação reduz significativamente o tempo e esforço na execução de 
atividades repetitivas, porém nem tudo deve ser automatizado. Há uma necessidade 
de planejamento e analise da quantidade e volume de teste que o software 
necessita e o tempo gasto para sua execução. Caso o projeto de software possuir 
baixa complexidade, onde poucos testes seriam necessários para cobrir todo o 
escopo do projeto, o esforço na implantação de uma metodologia de testes 
automatizados poder sair mais custosos e trabalhosos que os testes manuais. 
Uma outra situação em que a automação não é recomendável diz respeito a 
interfaces quer sofrem constantes modificações. O teste automatizado, comunica-se 
por meio de uma ferramenta de teste, efetuando assim modificações na interface do 
dispositivo. Caso essa interface sofra alterações, a automação perde-se sentido uma 
vez que modificações durante o teste deve ser realizada pela automação e não pelo 
usuário. (ALMEIDA, 2016). Os custos iniciais no processo de automação podem ser 
elevados, e deve ser analisado antes da tomada de decisão. 
2.4.2 Dificuldades no Processo de Automação dos Testes 
Equipe despreparada, sem experiência, alto custo inicial e de manutenção, 
mão de obra não especializada ou certificada, dificuldade no entendimento dos 
casos de testes e de lógica de programação do software, são algumas dificuldades 
 23 
encontradas ao longo do desenvolvimento do software, e podem ocorrer desde a 
fase inicial até a fase final do projeto. (KOSCIANSKI, 2006) 
Nas grandes organizações e fabricas de teste de software a principal 
dificuldade é o processo de implantação de testes automatizados, uma vez que, 
inicialmente a automação dos testes possui um custo elevado, devido a aquisição de 
ferramentas, treinamento da equipe, contratação de um especialista para orientação 
inicial, e entre outros. Inicialmente uma empresadevem levar em consideração que 
no princípio da implementação do teste o retorno será mínimo, porém ao longo prazo 
ela colherá os frutos, não só de uma base de dados de scripts de automação já 
prontos como de participantes treinados e capacitados, gerando como consequência 
um teste realizado com qualidade e em um menor tempo. (MOBIZOO, 2016) 
Como exemplo prático das dificuldades encontrada no processo de 
automação dos testes, diz respeito a uma grande empresa de teste de software 
independente com cerca de 200 participantes em quatro estados do Brasil, onde a 
ideia de automação dos testes da feature de FOTA foi proposta, idealizada e 
realizada pelo autor deste trabalho. 
2.4.2 Técnicas de Automação de Software 
As quatro principais técnicas de automação existentes são apresentadas a 
seguir. 
1. A técnica record & playback utiliza uma ferramenta de gravação de 
todas as ações executadas pelo usuário na interface do dispositivo, onde 
essas ações são convertidas em scripts, que por sua vez é executado 
quantas vezes for necessário durante os testes. Para cada caso de teste da 
checklist, a técnica record & playback é executada e nos casos de teste é 
incluído uma description do teste (passo a passo para execução do teste), os 
dados de entrada, os dados de saída e as ações do tester sobre o dispositivo. 
Entretanto por ter um alto custo, baixa taxa de reuso, dificuldade de 
manutenção, curto tempo de vida e por sofrer alta sensibilidade a mudanças 
no software acaba tornando o uso desta técnica desnecessária. Por exemplo, 
uma alteração, inclusão ou remoção de um aplicativo na interface do 
dispositivo pode exigir uma refatoração em todos casos de testes e 
regravação de todos scripts. (FEWSTER, 2001). 
 24 
2. A técnica de programação de scripts é uma extensão da técnica anterior 
onde os scripts gerados são modificados e programados a desempenharem 
um comportamento especifico. Desta forma, os scripts alterados podem 
contemplar outros cenários e verificar os resultados esperados. Essa técnica 
possui a vantagem de possuir uma alta taxa de reuso, uma vez que um caso 
de teste similar por exemplo, pode ter seu script copiado e em seguida 
implementar as particularidades deste novo caso de teste baseado no caso 
de teste anterior, uma outra vantagem é a manutenção dos scripts que se 
adequam facilmente a mudanças na interface, a desvantagem da técnica 
ficaria pela quantidade de scripts de testes criados e a compreensão do que 
faz cada script. (FEWSTER, 2001). 
3. Na técnica data-driven (técnica orientada a objeto) os scripts de teste são 
extraídos e armazenados em arquivos. Os scripts agora passam a conter a 
lógica de execução e as ações de teste sobre a aplicação. Assim, os dados 
de testes não ficam no próprio código e sim em arquivos separados. A 
principal vantagem desta técnica é sem dúvida a facilidade de adicionar, 
modificar ou remover dados de teste com apenas pequenas modificações no 
script de dados. Essa técnica possibilita que o projeto e a implementação do 
teste possam trabalhar em diferentes níveis de abstração, uma vez que, o 
participante apenas projeta os dados de teste, sem se preocupar com a lógica 
interna ou questões técnicas de como funciona a automação daquele 
processo. (FEWSTER, 2001). 
4. A técnica keyword-driven (técnica orientada a palavras chaves) é 
semelhante à anterior, onde os scripts extraídos passam a conter ações 
especificas do teste sobre a aplicação e identificados através de palavras 
chaves. Tais ações podem recebem parâmetros ativados através das 
palavras chaves, e os dados são armazenados em arquivos separados na 
forma de um conjunto ordenado de palavras chaves com seus respectivos 
parâmetros. A principal vantagem da técnica keyword-driven é a possibilidade 
de adição, modificação e remoção de passos de execução do teste e a 
mínima manutenção dos scripts de teste. (FEWSTER, 2001). 
 
 25 
FOTA (FIRMWARE/SOFTWARE OVER THE AIR) 
Segundo a LG, Firmware/Software Over-The-Air (FOTA) é um recurso 
tecnológico que permite que o usuário atualize o software de seu aparelho para uma 
versão mais recente de forma simples e prática, sem a necessidade de conexão de 
um cabo USB, através apenas de uma rede wifi ou rede de dados. Esse recurso 
serve para melhorar o desempenho do software em vários aspectos, como a 
correção de falhas do OS, melhorar a conectividade dos aplicativos com os demais 
recursos do dispositivo móbile, inserir ou remover funções do aparelho entre outros 
benefícios. (FOTA LG, 2016) 
A atualização do software possibilita aos fabricantes inserirem novas 
funcionalidades, corrigir bugs, modificar a UI (User Interface) o que aumenta a 
satisfação do cliente e reduz a necessidade de suporte técnico. Os anúncios de 
atualização de software podem estar localizados em local de suporte do site do 
fabricante, fóruns de tecnologia ou em uma na data pré-programada pela fabricante, 
onde um popup aparece no dispositivo informando ao usuário sobre a atualização. 
O processo de FOTA tem sido amplamente utilizado no mercado de celulares 
desde meados da década de 2000. É um conceito comprovado em bilhões de 
telefones celulares e outros dispositivos móveis e possibilita a interação da 
fabricante com seus clientes, mesmo após o dispositivo ser vendido. (FOTA LG, 
2016) 
Quando há um pacote de atualização aprovado disponível, somente as 
alterações (isto é, as diferenças) entre versões de software são enviados ao 
dispositivo destino, economizando assim largura de banda da rede, wifi e tempo de 
execução dos serviços. Essa técnica algorítmica chamada de “Diff” e identifica de 
forma eficiente as diferenças entre as versões do software. (ROMEYKE, 2007) 
Para os dispositivos mobile o processo de teste de FOTA é tratado como 
prioridade “high”, uma vez que visto que modificações e erros durante esse processo 
afeta diretamente em dados e informações pessoais do usuário. Na Figura 4 é 
descrito passo a passo para o usuário possa executar a atualização do software em 
seu dispositivo. 
 26 
Figura 4 - Processo de FOTA 
 
Fonte: O que é FOTA? : (FOTA LG, 2016) 
 
Toque em Aplicativos [ ] e selecione a opção (1). Ajustes [ ]; 
selecione a opção (2) Sobre o telefone > (3) Atualização de Software (4) Clique 
em Instalar Agora para iniciar a instalação. O aparelho será reiniciado neste 
momento). (5) Popup, informando que a atualização foi realizada com sucesso. 
3.2 TIPOS DE FOTA 
Devido a criticidade a respeito do teste de FOTA, sua importância para o 
mercado e os benefícios alcançados com essa tecnologia, faz-se necessário simular 
cenários que cubra o máximo caso de testes possíveis, para isso o teste de FOTA é 
dividido em cinco tipos: 
 27 
 FOTA BASIC – Testa-se a UI (User Interface) do dispositivo antes do 
FOTA, afim de checar seu respectivo comportamento e depois do FOTA, 
afim de checar mudanças devido a atualização, também se testa a 
FUNCTION depois do FOTA. 
 FOTA FULL – Testa-se as mesmas coisas do FOTA BASIC, e o 
dispositivo recebe uma customização de valores e configurações, afim de 
checar a persistência dos mesmos após o FOTA, através de uma 
minuciosa comparação. 
 FOTA MR – Testa-se as mesmas coisas do FOTA FULL, bem como o 
teste de versões anteriores do software, até a sua versão mais recente. 
 FOTA DUMMY – Testa-se se o dispositivo possui a versão mais recente e 
verifica-se o link com o servidor de atualização está funcionando 
corretamente. 
 FOTA OS – Valida-se a atualização de um sistema operacional para 
outro. 
Para qualquer tipo de teste a ser realizado, é necessário o levantamento 
prévio de algumas informações como: qual a versão SOURCE (fonte)? Para qual 
versão TARGET (alvo) o software deverá ficar o dispositivo após o FOTA? Todos os 
pré-requisitos estão aprovados? Após o levantamento dessas informaçõesé 
necessário cadastrar tais informações no sistema GDMS (Global Device 
Management System), que é um sistema da LG, que gerencia todos os pacotes de 
FOTA, IMEI, RST, WEB-Download, através de poucos cliques o usuário pode 
comunicar-se com o sistema, verificando assim se há pacotes de atualizações 
disponíveis e a devida atualização do seu software de uma maneira segura e 
eficiente. 
O processo de comunicação do dispositivo com o servidor dar-se através do 
IMEI, que é um código único de quinze caracteres que cada aparelho possui, o 
sistema identifica primeiramente a versão atual do aparelho e em seguida verifica a 
existência de versões posteriores, existindo fica ao cargo do usuário efetuar a 
atualização ou não. Todo esse processo de atualização é a prova de falhas, ou seja, 
caso ocorra algum problema durante o FOTA o dispositivo precisa se recuperar e ser 
restaurado para o estado anterior antes de quando a falha ocorreu, e o teste de 
FOTA é o responsável pela verificação dessa checagem. Depois que a atualização 
 28 
for concluída com êxito, uma mensagem é enviada para o GDMS, afim de fornecer 
informações sobre o recém - versão de software instalada no dispositivo. 
3.3 VANTAGENS E DESVANTAGENS DO FOTA 
O Android é o OS mobile mais utilizado no mundo, ele domina o mercado 
mundial de dispositivos móveis marcando presença em mais de 80% dos 
smartphones. (TUDO CELULAR, 2016). A soberania do Android é inegável, bem 
como suas vantagens como: 
É código aberto e possibilita a liberdade de customização pelo 
desenvolvedor; 
É utilizado por grandes fabricantes (Samsung, LG, HTC, Lenovo, Asus); 
Grande variedade de dispositivos roda Android; 
Maior integração entre os serviços da Google e sua Loja de aplicativos. 
A atualização do software está relacionada com as vantagens citadas acima, 
uma vez que quando um problema no aplicativo ou no software é resolvido, é a 
atualização a responsável por tornar um produto já lançado melhor, otimizado e 
seguro. Abaixo ISABEL, 2013) descreve algumas vantagens e desvantagens do 
FOTA. 
Torna a interface do dispositivo mais atraente através da inserção de temas, 
fotos, vídeos, cores e papeis de parede; 
Inserir novos recursos que facilitarão o uso do dispositivo pelo usuário. Ex: 
Knock On, permite ligar o dispositivo com apenas dois toques na tela; 
Corrigi bugs em aplicativos e de bugs de segurança ou vulnerabilidade; 
Permite remover aplicativos e personalizações da operadora. Há situações 
em que o dispositivo é vendido com games, aplicativos embarcados e aplicativos da 
operadora, que após o FOTA desaparecem tornando o software mais puro e limpo. 
(MOBIZOO, 2016). 
 
Apesar das inúmeras vantagens em ter o dispositivo com a versão do 
software mais recente, a desvantagem está associada aos riscos e erros da 
ausência do teste sobre o software. É exatamente para minimizar essas 
desvantagens que o teste de software se torna tão necessário. Ainda segundo 
(ISABEL, 2013) a principal desvantagem do FOTA é descrita abaixo: 
 29 
 A depender do tamanho do pacote da versão lançada pode ocupar mais 
espaço no dispositivo; há situações que a atualização deixa o 
sistema mais lento e mais pesado; 
 O dispositivo pode ser danificado, uma vez que a mudança de firmware 
está relacionada a partes essenciais para o bom funcionamento do 
aparelho. Caso alguma dado falhe durante o processo de atualização, o 
aparelho pode não ligar, apresentar tela preta, e seu funcionamento pode 
ficar comprometido. 
 Dados pessoais podem ser perdidos. A Integridade de informações 
pessoais é de extrema importância. 
 A atualização pode comprometer a segurança abrindo brechas para 
invasão de crackers no dispositivo. 
 Idioma pode mudar para outro diferente do escolhido pelo usuário. 
 Como pode ser observado o Android e o FOTA apesar de possuírem suas 
vantagens e agradarem os usuários, necessitam ser testados afim de 
minimizar e eliminar diversos problemas ocasionados por uma atualização 
de software inconveniente. 
3.4 PRINCIPAIS BUGS DE FOTA 
Após um período de tempo, o Google libera o código fonte das versões 
Android para desenvolvedores e fabricantes efetuarem uso. Nesta fase o OS possui 
diversos bugs. São bugs do OS, aplicativos e de atualização entre essas versões 
fragmentadas. Todos esses cenários de testes devem ser validados afim de 
identificar não somente bugs do processo de FOTA, mas também do Android. Nas 
Figuras 5, 6 e 7 os três bugs mais comum em FOTA e o report destes bugs é 
descrito. (ANDROIDPIT, 2016) 
 30 
 
Figura 5 - Report Issue - Facebook and Twitter app disappear 
 
Fonte: Report Issue: autoria Própia 
 
Figura 6 - Report Issue - Vulnerabilities 
 
Fonte: Report Issue Vulnerabilities: autoria Própia 
 
Figura 7 - Error during installation 
 
Fonte: Error during installation: autoria Própia 
 
 31 
Analisando os três bugs citados é possível identificar a quantidade de 
problemas que foram minimizados através do teste de software. Bugs de segurança 
e vulnerabilidade do OS fazem com que muitos usuários evitem fazer 
movimentações financeiras em seu dispositivo, enquanto bugs em aplicativos de 
redes sociais desagradam a maior parte dos usuários que se relacionam, navegam e 
se divertem por meio destas aplicações. Por outro lado, um bug no processo de 
atualização do software pode inviabilizar o uso do dispositivo. 
 
 32 
AUTOMAÇÃO DE TESTES FUNCIONAIS NO PROCESSO DE FOTA 
A seguir é descrito como foi realizado os testes funcionais no processo de 
FOTA. 
4.2 TESTES EM DISPOSITIVOS MÓVEIS 
Teste em dispositivos móveis (do inglês, Mobile Testing) é aplicado para 
smartphones, tablet, notebooks, smartwatches e smartbands nada mais é que um 
computador de bolso e portátil. Teste nestes dispositivos é efetuado utilizando 
diversas ferramentas que possam garantir qualidade, funcionalidade, desempenho, 
comportamento frente a situações extremas, que possa garantir as características de 
mobilidade, interoperabilidade, conectividade, usabilidade, segurança e privacidade 
(Gao et al., 2014). 
Aplicações em dispositivos móveis possuem características especificas, tais 
como a necessidade de avaliar o software em diferentes sistemas operacionais 
android ou não levando em consideração a possível fragmentação do OS em 
versões menores, possuem uma diversidade de tamanho de telas, tipos de 
comunicação em rede, tamanho da memória, capacidade de processamento, 
diversidade de fabricantes, diversidade de modelos lançados etc. Dessa forma, 
cobrir todas as combinações possíveis de teste de software em dispositivos móveis 
pode tornar-se inviável. 
4.3 VISÃO GERAL 
Conforme descrito por (Carsten, 1989) prova de conceito é um modelo que 
possui como objetivo principal a provar o conceito (teórico) de uma pesquisa. Para a 
execução da prova de conceito, foram separados os seguintes tópicos de estudo: o 
ambiente de teste, o critério de teste a ser executado e a execução de casos de 
testes do processo de FOTA a ser executado. Após a execução é a análise dos 
resultados. 
Foram selecionadas quatro amostras para o teste, com sistemas 
operacionais android diferentes e executados sessenta e cinco casos de teste de 
 33 
customização para cada amostra utilizada. Em seguida, diversas análises foram 
realizadas, com o objetivo de verificar o tempo de execução manual e automatizada 
entre os dispositivos é provar a viabilidade de introduzir a automação dos testes de 
customização no estudo proposto na pesquisa. 
4.4 AMBIENTE DE TESTE 
Todos os testes foram realizados e controlado no maior laboratório de teste 
de software independente da america latina. O ambiente utilizado foi um Ultra book 
Dell, rodando Windows 8.1, processador i7, 8GB de RAM e 2 Terabites de HD. 
Foram utilizadas três amostras com diferentes versões de OS Android, tamanhos de 
tela, capacidade, processamento, armazenamento etc. As ferramentas, ATS 6,LGUP, TestManager, Connectivity Panel, Eclipse, ADT (Android Development 
Tools), Java, Microsoft Office 2013 foram previamente instaladas e configuradas. 
Para que um uso eficiente das ferramentas obtivesse sucesso no 
desenvolvimento do projeto e baseando-se no que diz (Kirubakaran e Karthikeyani, 
2013), os testes foram divididos em três categorias de dispositivos móveis conforme 
suas características principais. As listas destas categorias são ilustradas na Tabela 
1. 
 
Tabela 1 - Classificação de Dispositivos Móveis 
 
Fonte: Classificação de dispositivos móveis: autoria Própia 
 
Além da classificação usada por (Kirubakaran e Karthikeyani, 2013) e de 
acordo com os desenvolvedores da Google (DEVELOPER, 2016), responsáveis pelo 
lançamento de versões do sistema operacional Android, e por sua fragmentação, o 
Android Lollipop 5.0 está presente hoje em cerca de 35% dos smartphones. O 
Lollipop é uma das versões de OS que mais apresentaram bugs, que vai deste ao 
https://marketplace.eclipse.org/content/android-development-tools-eclipse
https://marketplace.eclipse.org/content/android-development-tools-eclipse
 34 
alto consumo da bateria, problemas com o microfone e respectivamente com as 
chamadas, problemas com Wifi, reprodução de vídeos, falhas na lanterna, reinicio 
frequente de aplicativos e atraso no sistema etc. Na Figura 8, é possível identificar 
que o Android Lollipop e Marshmallow possuem uma enorme fatia de dispositivos 
instalados, enquanto o recém lançado Android Nouget ainda possui poucos 
dispositivos que fazem uso do seu OS. (ANDROIDPIT, 2016). 
 
Figura 8 - Fragmentação do Android 
 
Fonte: Fragmentação do Android: (Developer, 2016) 
 
Baseado na fragmentação e uso do android coletadas na página dedicada 
aos desenvolvedores do Android no ano de 2016 e no ambiente de teste, foi definido 
que serão utilizados os dispositivos (LG-G5, LG-X Screen, LG-K4 e LG-G3 Stylus) 
para serem usados como prova de conceito. 
4.5 CRITÉRIOS DE TESTE EM DISPOSITIVOS MÓVEIS 
Ciente da particularidade dos dispositivos móveis e da diversidade de 
fabricantes e modelos, foi necessário definir critérios de testes para este tipo de 
dispositivo. Um grupo de desenvolvedores e empresas denominados Aqua (em 
inglês, App Quality Aliance), se uniram para estabelecerem critérios para testes em 
aplicativos móveis. Aqua é um grupo sem fins lucrativos, liderada por membros das 
principais indústrias de eletrônicos - AT&T, LG Eletronics, Motorola/Lenovo, Nokia, 
 35 
Positivo Informática, Oracle Samsung e Sony Mobile. As diretrizes definidas pelo 
Aqua, servem como base para que desenvolvedores independentes e empresas 
possam garantir a qualidade das aplicações desenvolvidos dentro dos padrões pré-
estabelecidos, facilitando assim o entendimento e manutenção destes apps. (Aqua, 
2016). 
Os critérios da Aqua para a plataforma android, sugerem passos que os 
desenvolvedores precisam seguir, para que suas aplicações sejam aprovadas nos 
testes realizados. Um caso de teste de FOTA por exemplo contém: um título, 
descrição detalhada do teste, pré-condições, passos a serem executados, resultados 
que se esperam, resultado obtido no teste e finalmente o resultado final do teste 
indicando se o mesmo passou (em inglês, Pass) ou falhou (em inglês, Fail). A Figura 
9 apresenta um exemplo de um caso de teste definido pela Aqua que define alguns 
critérios como: 
 Instalação e Desinstalação de Aplicação deve ocorrer com sucesso; 
 Inicialização de Aplicação não deve demorar mais que 2~3 segundos; 
 Deve permitir download de Pacotes e atualizações; 
 Uso de Memória durante execução; 
 Tratar a suspensão e reinicialização do aplicativo; 
 Cancelar operação (caso o usuário deseje); 
 Permitir efetuar download de aplicações pela PlayStore ou Browsers; 
 Manipulação de Eventos; 
 Mensagens e Ligações devem ser realizadas com sucesso; 
 Enviar e Receber Mensagens devem ser realizadas com sucesso; 
 Deve permitir a múltipla entrada de dados (teclado qwerty, teclado 
virtual...); 
 Seleção Manual de linguagem (internacionalização); 
 Tarefas de background devem ser realizadas 
 36 
Figura 9 - Exemplo Caso de Teste - Remove to battery 
 
Fonte: Exemplo Caso de teste: Autoria Própia 
 
 Diante dos desafios dos testes em dispositivos móveis e as 
particularidades do processo de teste do FOTA, aliado aos critérios definidos pelo 
Aqua, foi realizado a análise das quatro principais atividades do FOTA, como: 
customization, ui (user interface), function e mr versions. Baseado no 
conhecimento empírico da equipe sobre a feature FOTA, estudos e reuniões, foi 
definido que a atividade de customization é a única das quatro atividades que 
consomem um tempo excessivo para ser executada, está sujeita a erros de 
preenchimento se comparada com as demais, é altamente repetitiva e cansativa na 
sua execução diária e absolutamente passível de ser automatizada. Para isso foi 
proposto que todos os 65 casos de teste de customization fosse automatizado. 
4.6 FERRAMENTA UTILIZADA 
ATS é uma ferramenta proprietária especifica para desenvolver scripts de 
teste automatizado para dispositivos móveis, desenvolvido e mantido por uma 
grande fabricante de software e hardware para dispositivos móveis com atuação no 
Brasil. O ATS foi concebido e disponibilizado para que diversos modelos de telefone 
 37 
celular que possuem as mesmas funcionalidades e uma elevada quantidade de 
casos de testes em comum sejam aplicados para todos os dispositivos. (RECHIA, 
2005). Os scripts são desenvolvidos no ATS baseado em casos de testes que após 
a automação poderão ser reutilizados em diversos outras amostras que 
implementam as mesmas funcionalidades. Essa automação reduz o tempo gasto no 
ciclo de desenvolvimento dos softwares e permite a eliminação de execução manual 
de diversos casos de testes. 
A ferramenta permite enviar comandos para o dispositivo, basta para isso 
conectar o dispositivo via interface USB (Universal Serial Bus) e provê funções que, 
por exemplo, retornam o conteúdo que está sendo mostrado na tela e que simulam o 
pressionamento de teclas do telefone (ESIPCHUK; VALIDOV, 2006). Através do 
plugin do pyhton é possível o próprio usuário criar seus próprios comandos no 
projeto. Ao desenvolver um projeto de teste na ferramenta, é necessário o uso da 
IDE eclipse, onde através desta é possível desenvolver os scripts. Conforme a 
Figura 10, a ferramenta vem evoluindo acompanhando a evolução do Android e dos 
seus novos recursos. A evolução vem passando desde o seu núcleo feito em C++ 
até a linguagem Pyhton. 
 
Figura 10 - ATS Versões 
 
Fonte: ATS Versões: autoria Própia 
 
Para uma comunicação de sucesso entre o dispositivo e a ferramenta é 
necessário que um aplicativo denominado ETA esteja instalado no dispositivo e ser 
testado e esteja ativado. O ETA (Embedded Test Agent), interpreta os comandos 
enviados pelo ATS para o dispositivo Android. Além de ativar o ETA, a depuração 
USB também deve estar ativada e dispositivo reconhecido no painel de 
conectividade. 
 38 
Conforme visto na Figura 11, o ATS Connectivity é um painel aberto no 
Windows, que registra e gerencia as conexões com o dispositivo de destino. Quando 
o ETA e a depuração USB estão ativados ao abrir o Connectivity os dispositivos são 
automaticamente reconhecidos. 
 
Figura 11 - ATS Connectivity Panel 
 
Fonte: ATS Connectivity Panel: autoria Própia 
 
Uma vez que a conexão foi bem-sucedida é necessário utilizar o ambiente 
Test Manager que roda diretamente no navegador. O Test Manager é um ambiente 
de execução de pacotes de testes, onde as configurações de todos elementos 
relacionados para a automação como: (dispositivos conectados, parâmetros do 
cenário, interações, quantidade de execuções etc.) são realizadas diretamente no 
dispositivo e os resultados (registros de testes) são colhidos e visualizados no 
dispositivopor meio da automação e após o término da automação, colhidos através 
da geração de uma planilha excel para análise e tomada de decisão posterior por 
parte dos gestores. A Figura 12 mostra a tela inicial do Test Manager. O Test 
Manager roda diretamente no navegador web, e com ele é possível personalizar 
determinados valores passado por parâmetro, para isso é necessário que o 
desenvolvedor do script tenha passado esse parâmetro e escrito o script de forma 
dinâmica, atendendo assim o desejo do usuário e não de forma estática, onde o 
valor pré-determinado ficará no código fonte. 
 39 
 
Figura 12 - ATS Test Manager 
 
Fonte: ATS – Test Manager: autoria Própia 
4.7 PROVA DE CONCEITO (AUTOMAÇÃO) 
Segundo (Carsten, 1989) prova de conceito tem como seu principal objetivo 
provar o conceito (teórico) de uma pesquisa através de um experimento prático. 
Para a execução da prova de conceito, foram definidos os seguintes procedimentos: 
 Definir em que ambiente o teste será executado; 
 Definir o critério de teste a ser executado 
 Definir quais os modelos, softwares ou aplicações serão testados. 
A fabricante disponibilizou quatro modelos (amostras) já disponíveis no 
mercado mobile para o teste de automação. Para cada amostra os 65 casos de 
testes de customização foram executados. Essas amostras possuem configurações 
e características diferentes, inclusive o sistema operacional android. O Objetivo é 
verificar o comportamento da automação em diferentes softwares, amostras, 
características, performance, sistema operacional Android e verificar o 
comportamento da automação do processo de FOTA diante destas caracteristicas. A 
 40 
Figura 13 mostra as amostras selecionadas e a Tabela 4 as características principais 
dos modelos selecionados. 
Figura 13 - Amostras selecionadas 
 
Fonte: http://www.tudocelular.com/compare 
 
Tabela 2 - Características amostras 
Fonte: http://www.tudocelular.com/compare/ 
 Após a seleção das amostras, um único script de automação foi desenvolvido 
para ser executado nos quatro modelos testados. Durante o desenvolvimento do 
script houve a necessidade de contemplar os 65 casos de testes da customização 
do FOTA. 
A Customização é um processo de identificação das configurações e valores 
default encontrados no dispositivo e em seguida modificar esses valores para outros 
valores quaisquer. Podemos destacar alguns valores que sofrem modificações 
como: quantidade de gravações de voz, mensagens recebidas, alarmes, eventos no 
http://www.tudocelular.com/compare
 41 
calendário, games baixados, linguagem do aparelho, total de estações de rádios 
salvas etc. são adicionados em uma planilha do excel. Normalmente esses valores 
são zero. A Figura 14 mostra a planilha excel com alguns valores possíveis de 
customização. As configurações default para cada funcionalidade é selecionado e 
preenchido na coluna rosa com título “Default value After factory reset”. 
 
Figura 14 - ATS Customization 
 
Fonte: ATS Customization: autoria Própia 
 
Após a customização dos 65 casos de testes o software deve ser atualizado e 
os valores encontrados após a atualização é inserido em uma terceira coluna desta 
planilha. O objetivo deste processo é validar a integridade das informações do 
usuário após o processo de atualização de software. Caso a atualização efetue 
modificações para outros valores quaisquer ou retorne ao valor default o teste é 
falhado e um bug deve ser reportado para correção do desenvolvedor. Caso o valor 
encontrado após o FOTA seja o mesmo valor da customização o teste é aprovado. 
Esse processo quando realizado manualmente, demanda um tempo 
considerável, é repetitivo, e suscetível a erro humano. Devido a esse problema 
houve a necessidade de automação de todo esse processo, para isso scripts foram 
 42 
escritos para simular esses cenários. Por fazer uso de uma ferramenta proprietária, 
o ATS identifica facilmente o comando android que executa o alarme (clock) por 
exemplo, para isso basta selecionar a tecla space do teclado que várias dicas da 
feature é mostrado. As Figuras 15 e 16 demonstra as vantagens de uso do ATS. 
 
Figura 15 - ATS Scenario Alarm 
 
Fonte: ATS Scenario Alarm: autoria Própia 
 
 
Figura 16 - ATS Comandos 
 
Fonte: ATS Comandos: autoria Própia 
 43 
def getscenarioparameters(): 
 scenarioparameter = 0 
 
 aux = system.getscenarioparameter('number of 
wi-fi to add') 
 if aux != '': 
 try: 
 scenarioparameter = int(aux) 
 setnumberofwifis(scenarioparameter) 
 
 except valueerror: 
 system.finish(t_failed, 'failed to get 
number of wi-fi to add', job_stop) 
def setnumberofwifis(scenarioparameter): 
 global numberofwifis 
 
 numberofwifis = cenarioparameter 
def getnumberofwifis(): 
 global numberofwifis 
 return numberofwifis 
 
def skiptutorial(): 
 if dev1.uiclickbytext('cancel') == 
at_success: 
 if dev1.uiclickbytext('no') == 
at_success: 
 dev1.uiclickbytext('close tutorial') 
 
 dev1.sleep(2) 
 
A automação do AddWifi, visa cadastrar cerca de (100) cem redes APN 
(Access Point Name) no dispositivo. O APN é extremamente importante para a 
conexão entre o dispositivo e a operadora. Como essa tarefa é árdua, chata de ser 
executada e repetitiva, o ato de criar manualmente para cada projeto diferente cem 
redes APNs é bastante cansativo, devido a isso o seguinte script foi desenvolvido no 
ATS. 
 44 
def setStateByTypeIndex(type, index, state): 
result = DEV1.UISetStateCheckableObjectByTypeIndex(type, index, state) 
 if result != AT_SUCCESS: 
 index = 0 
 for i in range(0, 3): 
 result, actual = DEV1.UIGetStateCheckableObjectByTypeIndex(type, i) 
 if result == AT_SUCCESS: 
 if actual: 
 result = DEV1.UISetStateCheckableObjectByTypeIndex(type, i, state) 
 if result == AT_SUCCESS: 
 break 
 else: 
 System.Finish(T_FAILED, 'Failed to activate Wi-Fi', JOB_STOP) 
 
 
 DEV1.debugMessage('Start creation of Wi-Fi') 
 for i in range(0, getNumberOfWifis()): 
 DEV1.KeyPressByAlias('menu') 
 DEV1.sleep(2) 
 DEV1.UIClickByText(DEV1.regexParser('Add'), 0, UITarget.Popup) 
 DEV1.sleep(2) 
 text = 'Wi-Fi ' + str(i + 1) 
 DEV1.UISetTextByHint(DEV1.regexParser('SSID'), text, True) 
 DEV1.sleep(1) 
 DEV1.UIClickByTypeIndex('avwSpinner', 0) 
 DEV1.sleep(1) 
 DEV1.UIClickByText(DEV1.regexParser('PSK'), 0, UITarget.Popup) 
 DEV1.sleep(1) 
 DEV1.UIClickByText('Done', 0, UITarget.SoftKeyPad) 
 DEV1.sleep(1) 
 DEV1.UISetTextByName('password', '12345678', True) 
 DEV1.sleep(1) 
 DEV1.UIClickByText('Connect') 
 DEV1.debugMessage(text + ' created') 
 DEV1.sleep(1) 
 DEV1.debugMessage('Wi-Fi creation finished') 
 
 No código acima no método “setNumberOfWifis” a variável global 
“numberOfWifis” recebe por parâmetro o valor digitado pelo participante no 
TestManager. No método “getNumberOfWifis” essa variável é retornada. O prefixo 
DEV1, corresponde ao dispositivo móvel conectado no momento. Ainda no primeiro 
quadro negro é apresentado um menu que possibilita o usuário ao clicar no texto 
cancelar o processo de adição de APNs. No método “getScenarioParameters” a 
variável “aux” irá contar e mostrar no TestManager os números de APNs que forem 
adicionados em tempo real, caso ocorra algum erro uma exceção será lançada. No 
segundo quadro do código o método “setStateByTypeIndex” recebe três parâmetros 
do dispositivo: “type” “index” e “state”, enquanto um destes três parâmetros não 
forem preenchidos com sucesso, ocorrerá um erro na execução da automação, 
porém a automação tentará três vezes a checagem do preenchimento destes três 
parâmetrosaté a obtenção do sucesso dos mesmos, caso isso não ocorra o código 
é finalizado e uma mensagem de erro é apresentada. Caso os três parâmetros 
passados e as pré-condições como idioma em inglês estejam atingidas a automação 
 45 
iniciará no método main. Para identificar os APNs adicionados de 0 a 100 a função 
STR é utilizada para adicionar o texto “Wi-Fi” com o número de APNs adicionados. 
A codificação no ATS é bastante simples, em determinadas situações os 
valores que não sofrem modificações são adicionados estaticamente no código e 
valores que podem variar são solicitados via parâmetro pelo TestManager, que roda 
diretamente no navegador web. 
Após a codificação do script, o participante importa o código desenvolvido no 
ATS/Eclipse para o TestManager e executa a automação. Finalmente após o término 
da automação, o ATS gera uma planilha excel mostrando os valores default, valores 
que sofreram customização e os valores obtidos após o processo de FOTA, 
respondendo inclusive se o teste foi aprovado PASSED quando os valores não 
sofreram modificações ou FAILED (falha) quando sofreram modificações. A Figura 
17 mostra a planilha de customização completa após todo o processo de automação 
e com os resultados que serão enviados para o cliente. 
 
Figura 17 - ATS After Automação 
 
Fonte: ATS after automação: autoria Própia 
 
 46 
Há quatro bugs identificados pela ferramenta ATS e grifado na planilha em 
vermelho como como “Failed”: 
1. O usuário escolheu uma foto de família como wallpaper e após o FOTA foi 
modificada para o wallpaper default do dispositivo; 
2. A fonte escolhida foi Purewhite e o tamanho foi small, após o FOTA foi 
modificado para NewSmartGothic e o tamanho médium; 
3. A Linguagem escolhida foi o English e após o FOTA foi modificado para o 
Coreano; 
4. O Time Zone escolhido foi o Argentina Standard Time e após o FOTA foi 
modificado para o Coreano Standard Time. 
 
Estes bugs serão reportados para que o desenvolvedor possa corrigi-los. 
Devido a diversidade de modelos, tamanhos de telas, recursos e funcionalidades 
existentes nos dispositivos móveis o script desenvolvido não conseguiu cobrir com 
perfeição três funcionalidades, sinalizando assim como: Check Manually. Portanto 
para trabalhos futuros há uma necessidade de desenvolver novos scripts para cobrir 
esses novos recursos inseridos. Uma outra limitação da ferramenta ocorre quando 
uma nova versão do Android é disponibilizada pelos desenvolvedores da google, na 
qual torna necessário a revisão e refatoração do script de automação afim de validar 
as novas funcionalidades inseridas no OS. 
 
 
 47 
ESTUDO DE CASO 
Baseando-se na prova de conceito, ambiente de teste, ferramenta ATS, 
critérios utilizados na automação, técnicas de teste de software aplicadas e amostras 
selecionadas, o seguinte estudo de caso visa obter dos usuários que executam os 
testes de FOTA sua percepção de utilidade na execução, tempo de execução, 
eficiência e produtividade da feature após todo o processo de automação. 
5.2 SELEÇÃO DOS PARTICIPANTES 
Os participantes para esse estudo foram obtidos através de uma lista de 100 
participantes de uma empresa especializada em teste de software. Entretanto, para 
participarem do estudo os participantes tiveram que: 
 
 Manifestar interesse em participar do estudo; 
 Possuir certificação internacional do ISQTB; 
 Ter mais de três anos de experiência de teste de software; 
 Ter conhecimento em automação de software; 
 Ter executado os testes da feature FOTA pelo menos uma vez. 
 
Os cinco requisitos propostos foram solicitados pela fabricante, afim de 
viabilizar e validar ou não a automação da feature FOTA. Sete participantes foram 
selecionados para executarem a automação dos testes funcionais no processo de 
FOTA de dispositivos móveis. Entre os sete participantes apenas o autor deste 
trabalho participou na criação dos scripts de automação, enquanto os demais 
participaram na execução da automação. 
5.3 MÉTRICAS 
Os 65 casos de teste da feature de customization foram automatizados, para 
isso foi analisado o tempo de execução dos casos de testes em duas partes: 
 48 
1. Tempo de Execução (TE), é o tempo de execução gasto em um 
conjunto de casos de testes segundo a sua funcionalidade. A Tabela 5, 
separa as sete funcionalidades e o total de casos de teste por funcionalidade. 
 
Tabela 3 - Quantidade de casos de teste por funcionalidades 
APP CALL MM MSG AV CONN PIM 
8 5 12 7 13 7 13 
Fonte: Quantidade de casos de testes por funcionalidades: autoria Própia 
 
2. Tempo de Execução Total (TT), é o tempo total dos 65 casos de testes 
e considera todo o processo de teste, desde a configuração dos ambientes, 
instalação do ETA, e execução do script no teste manager até a apresentação 
dos resultados. 
 
Foi analisado também o número de caso de testes que falharam nos dois 
ambientes de testes (manual x automatizado) 
5.4 ANÁLISE E EXECUÇÃO DO ESTUDO 
Os participantes selecionados obtiveram um pequeno treinamento para 
definir a ordem de execução da automação. Foi instruído os passos a serem 
seguidos ao executarem os testes de forma manual e de forma automatizada. Os 
únicos pré-requisitos antes do início dos testes foram que as amostras estivessem 
com o nível de bateria acima de 70%, para garantir que a mesma não irá 
descarregar no decorrer dos testes, o segundo pré-requisito é que a amostra já 
esteja com o software instalado. Os passos para cada execução foram definidos 
conforme a Tabela 6 e os tempos TE e TT foram colhidos. 
Durante a execução dos testes manuais algumas técnicas de teste de 
software podem ser utilizadas, como por exemplo o teste exploratório. Um exemplo 
do teste exploratório é quando não é possível customizar uma determinada feature 
devido a algum bug na mesma, por exemplo: se o bluetooth estiver com o bug de 
crash ou overlap ao modificar o seu nome o teste não poderá ser executado 
justamente devido a esse bug. Para contornar este problema é aplicado um N/A 
(Não Aplicável) no teste e o mesmo é encaminhado ao participante responsável pelo 
reporte deste tipo de bug. 
Na Tabela 4 é possível observar o ganho de tempo, entendimento e 
 49 
produtividade nos passos a serem realizados para executar a mesma tarefa. 
Enquanto no teste manual foram necessários 17 passos, no teste automatizado 
apenas 4 passos foram utilizados. A seguir outros dados colhidos e analisados são 
mostrados corroborando assim a prova de conceito em relação as vantagens obtidas 
após a automação. 
 
Tabela 4 - Passos para execução dos testes por tipo 
TIPO PASSOS 
MANUAL 1° Registrar data e hora de início dos testes; 
2° Abrir a planilha de FOTA, na aba de customization. 
3° Iniciar o contador de tempo, marcando a data e hora do 
início do teste. 
3° Executar os 8 casos de teste de APP 
4° Anotar a hora de término dos 8 casos de teste de APP. 
5° Executar os 5 casos de teste de CALL 
6° Anotar a hora de término dos testes de CALL. 
7° Executar os 12 casos de teste de MM; 
8° Anotar a hora de término dos testes de MM. 
9° Executar os 7 casos de teste de MSG; 
10° Anotar a hora de término dos testes de MSG. 
11° Executar os 13 casos de teste de AV; 
12° Anotar a hora de término dos testes de AV. 
13° Executar os 7 casos de teste de CONN; 
14° Anotar a hora de término dos testes de CONN. 
15° Executar os 13 casos de teste de PIM 
16° Anotar a hora de término dos testes de PIM. 
17° Registrar data e hora de finalização dos testes; 
AUTOMA
TIZADA 
1° Registrar data e hora de início dos testes; 
2° Acessar o Test Manager e selecionar onde a planilha será 
salva. 
3° Iniciar a automação. 
4° Registrar data e hora de finalização dos testes; 
Fonte: Passos para execução dos testes por tipo: autoria Própia 
 
5.4.1 Análise Quantitativa 
Neste estudo foi realizado uma análise quantitativa em cima dos dados 
obtidos. Os dados de tempo foram coletados separadamente, primeiro

Continue navegando