ios app testing beginners guide with practical approach
Coleta de conhecimento básico para teste de aplicativos iOS:
“Sabe, todo mundo tem um celular, mas não conheço ninguém que goste do celular. Quero fazer um telefone que as pessoas adorem. ” - Steve Jobs.
Era sobre o iPhone de Steve Jobs. Steve realmente fez a Apple trabalhar para tornar seu dispositivo móvel o favorito de todos os tempos.
Os usuários sempre adoraram os dispositivos móveis da Apple, seja o iPhone, o iPod Touch ou o iPad. Os dados atuais sugerem que há quase 1 bilhão de dispositivos Apple em operação no mundo que são executados no iOS.
Isso é um bilhão inteiro deles.
A seguir está a análise da participação de mercado de iPhones em 2016:
(imagem fonte )
O que você aprenderá:
- iOS
- Teste iOS
- Tipos de teste de aplicativos iOS
- Teste manual - usando dispositivo
- Teste manual - usando emulador
- Automação iOS
- Práticas recomendadas para testar aplicativos iOS
- Frameworks de automação iOS
- Conclusão
- Leitura recomendada
iOS
iOS é um sistema operacional móvel projetado pela Apple precisamente para seus dispositivos, geralmente chamados de iDevices. Desde 2007, quando o iOS foi feito apenas para iPhones, o sistema operacional evoluiu para suportar os dispositivos Touch e iPads também.
A pesquisa atual relata que o iOS é o segundo sistema operacional móvel mais popular do mercado. O Android roda em dispositivos de vários fabricantes, mas a beleza do iOS é que ele se restringe apenas ao hardware da Apple, o que demonstra claramente a popularidade do sistema operacional.
iOS viu um total de 10 grandes lançamentos ao longo dos anos e ofereceu atualizações de recursos notáveis em cada lançamento.
Este sistema operacional iOS é famoso por sua facilidade de uso, fluidez nas operações, aplicativos sem travamento, etc. Ao discutir os aplicativos, a loja de aplicativos do iTunes da Apple para iOS é muito rica, com um número de aplicativos chegando a 2,2 milhões. O download de aplicativos aumentou rapidamente para um número colossal de 130 bilhões.
iOS é um sistema operacional que não é restrito por nenhuma barreira zonal ou de idioma. Este é um dos principais fatores deste sistema operacional que está se tornando tão famoso em apenas 10 anos de seu desenvolvimento. Suporta 40 idiomas diferentes.
Não apenas os idiomas, até mesmo a IU dos dispositivos iOS é muito atraente e elegante também quando comparada aos dispositivos Android.
Ao falar sobre os aplicativos em detalhes, abaixo mencionadas são algumas das estatísticas sobre ele:
- A loja de aplicativos do iTunes da Apple recebe quase 1.000 novos envios de aplicativos por dia.
- Cerca de 1/3rddo total de aplicativos na loja de aplicativos Apple iTunes podem ser baixados gratuitamente.
- As taxas de aplicativos iOS pagos variam de 1,10 a 1,30 $ em média.
- O preço médio de um jogo iOS varia de 0,55 a 0,65 $.
Quantos aplicativos você usou no seu iPhone, iPod Touch ou iPad?
Bastante punhado! Direita? Começando com Gmail e Facebook para Clash of Clans and Asphalts. Esse tipo de aplicativo, os números e a variedade de usuários trazem aos testadores de software um negócio sério. Eles não?
Como um testador, não apenas a funcionalidade, mas um teste de IU profundo também precisa ser feito para verificar o aplicativo no iPhone, iPod e iPad devido à variação em seus tamanhos.
Teste iOS
Conforme discutido anteriormente, o iOS é limitado apenas a hardware Apple ou dispositivos feitos pela Apple. Isso é realmente um grande alívio. No entanto, existem vários dispositivos Apple e suas versões que suportam iOS.
O ponto principal é que a Apple tem um sistema fechado, ao contrário do Android, que é um sistema aberto. Os lançamentos de SO ou dispositivos são bem planejados.
passe um array para um método java
Esta é uma vantagem adicional porque:
- O tamanho dos dispositivos que estão disponíveis ou serão lançados são fixos e, como um controle de qualidade, precisamos ter uma ideia muito clara do que todos os dispositivos estão fora do mercado. Torna-se fácil para um controle de qualidade decidir a base de teste para o teste
- Como os dispositivos, não precisamos fazer uma análise profunda do sistema operacional, pois é um sistema fechado, que consome menos tempo (e esforço) para decidir sobre a bancada de teste para o teste do sistema operacional.
- A Apple tem uma boa variedade de suas próprias ferramentas de automação, embora sejam um pouco complicadas de aprender.
- Lembro-me que, para testes de GPS para Android, tive que gastar 2-3 dias para descobrir como criar scripts fictícios para enviar localização falsa. Mas era muito simples e direto no iOS, pois tinha uma funcionalidade embutida para enviar GPS falso para caminhada, corrida, ciclismo, etc.
- Para o teste inicial, não é recomendado testar o GPS por um teste de campo, o envio de dados de GPS fictícios é aconselhável e também economiza tempo.
- A Apple tem diretrizes rígidas para o envio de um aplicativo, isso é uma grande ajuda em vez de ser rejeitado após o envio e uma boa chance de sucesso, ao contrário de outros sistemas operacionais onde não há diretrizes rígidas.
- A funcionalidade do dispositivo e do próprio sistema operacional é fixa e direta, portanto, reduz as chances de perder as maneiras pelas quais um aplicativo pode funcionar. No iOS, não há como forçar a parada de um aplicativo, enquanto podemos matar e forçar a parada de aplicativos no Android. Assim, as complexidades são reduzidas para teste aqui.
Essas são algumas das vantagens que obtemos dos produtos Apple, mas não necessariamente que sejam as vantagens de todos os produtos ou aplicativos. Já para os aplicativos desenvolvidos em plataforma cruzada, o iOS é difícil de manusear.
O alto nível a classificação é conforme mostrado abaixo:
A primeira etapa para entrar no teste de aplicativos iOS é considerar o tipo de implementação.
A implementação do aplicativo pode ser qualquer um dos 3 tipos abaixo:
1) Aplicativos baseados na Web: Esses são os aplicativos que se comportam de forma semelhante à construção de aplicativos iOS. Esses são os sites normais que um usuário acessa no navegador Safari do iPhone.
2) Aplicativo nativo: Um aplicativo que é desenvolvido usando o iOS SDK (Software Development Kit) é executado nativamente nos dispositivos iOS suportados, como VLC, Flipboard, Uber etc.
3) Aplicação híbrida: Esta é a mistura ou híbrido de ambos os tipos mencionados acima. Isso dá acesso ao conteúdo da web por meio de uma área de visualização de conteúdo da web e também possui alguns elementos de interface do usuário para iOS. Por exemplo. Zomato, Twitter, Gmail etc
Tipos de teste de aplicativos iOS
Os diferentes tipos de teste de aplicativo iOS (feito em condições normais) podem ser os seguintes:
- Teste manual - usando dispositivo
- Teste de Sistema
- Teste de UI / UX
- Teste de Segurança
- Teste de Campo
- Teste manual - usando emulador
- Teste de Unidade
- Teste de integração
- Teste de interface do usuário
- Teste de automação
- Teste de Regressão
- Teste BVT
- Teste de Compatibilidade
- Teste de performance
Exemplo de um aplicativo:
Antes de passar para os vários aspectos dos processos de teste do iOS, vamos dar um exemplo de um aplicativo iOS típico.
Vamos levar em consideração um aplicativo de arrecadação de fundos para equipes esportivas. O aplicativo terá um login de conta social (Google / Facebook) e uma página de pagamento.
Antes de ir para a página de pagamento, deve haver uma opção para selecionar os valores definidos pelo sistema ou um campo personalizado para digitar o valor. Assim que o pagamento for concluído, um certificado em PDF deve ser exibido na tela e, ao mesmo tempo, o PDF também deve ser enviado por e-mail para a conta de e-mail do usuário que está logado no momento.
Teste manual - usando dispositivo
a) Teste de sistema:
Este tipo de teste de iOS é executado no sistema para verificar se os vários componentes do sistema funcionam juntos.
Neste processo de teste, o aplicativo iOS é iniciado em um dispositivo Apple real seguido por sua interação com a interface do usuário para acionar um conjunto específico ou conjuntos de ações do usuário. As ações típicas do usuário podem ser uma operação de toque ou uma operação de deslizar na tela.
Finalmente, o resultado é testado contra o resultado esperado.
Para nósExemplodado acima, um teste de sistema típico pode compreender as seguintes etapas:
quais são as etapas do sdlc
- Faça login na equipe de esportes do iOS e no aplicativo de arrecadação de fundos usando o login da conta do Facebook usando autenticação aberta.
- Selecione um valor de sistema predefinido de $ 10 entre as opções fornecidas.
- Prossiga para o portal de pagamento.
- Selecione a opção de carteira móvel PayTm para o processo de pagamento.
Os testes de sistema são as operações que cobrem principalmente os vários fluxos de ponta a ponta no sistema. Cada teste deve ser executado com as várias configurações disponíveis. E, também depende do dispositivo e da versão do iOS em que o aplicativo está instalado.
b) Teste de IU iOS
A UI / UX dos dispositivos iOS tem sido um elemento chave em sua história de sucesso.
Os testes de UI / UX em dispositivos iOS podem ser classificados nas seguintes categorias:
- Entradas: Os testes das funcionalidades da tela sensível ao toque (como toque longo / curto, toque 3D, rolagem), tamanhos dos botões, posicionamento dos botões, cor das fontes e seu tamanho etc., caem nesta categoria.
- Teclas de hardware: Os aplicativos nativos funcionam perfeitamente com as teclas de hardware / teclas físicas integradas presentes no dispositivo, como a tecla Home, botões de som, etc. O aplicativo em teste também deve interagir com as teclas de hardware de maneira semelhante.
- Teclas / teclado virtual: O quão irritante é quando o teclado não aparece quando você está na página de mensagens do Whatsapp? São necessários a aparência de um teclado, facilidade de se esconder quando não precisa dele, suporte para smileys, símbolos, todos os caracteres / símbolos etc.
- Na nossa Exemplo , o teclado pode entrar em cena em vários lugares, como inserir o valor personalizado, digitar as credenciais / detalhes do cartão no gateway de pagamento, etc.
- Tela: O aplicativo, se compatível com vários dispositivos, deve ser testado quanto à orientação em todos os dispositivos. Pode haver algumas alterações de resolução com base no dispositivo escolhido para o processo de teste. Ao mesmo tempo, deve-se testar também os modos retrato / paisagem e o uso do teclado em cada um dos casos.
Se seu aplicativo não foi criado apenas para iOS, existem algumas dicas que precisam ser testadas especificamente para iOS, como:
- Listas: No iOS, quando há uma lista a ser exibida, ela sempre mostra uma tela totalmente nova, ao contrário do Android, onde um pop-up é exibido.
A seguir está um exemplo do mesmo:
( fonte )
- Mensagens: Quando um aplicativo falha, a mensagem mostrada no iOS é diferente daquela em um Android. Além disso, se você observou, pequenas mensagens piscam em telefones Android quando você libera memória, como ‘# GB de memória liberada’ etc., mas nunca podemos ver mensagens flash no iOS.
A seguir está um exemplo:
( fonte )
- Confirmação de exclusão: Se você observar de perto um aplicativo iOS, em um pop-up de confirmação de exclusão, a ação Cancelar está à esquerda da opção Excluir. Enquanto no Android ou outro sistema operacional é vice-versa.
Estes são alguns dos exemplos que precisam de casos de teste e testes separados, já que o iOS tem sua IU padrão, mensagens etc., que não podem ser alteradas.
c) Teste de segurança:
Na nossa exemplo , temos um aplicativo com um gateway de pagamento e uma página de login suportada por integração de página social.
Por exemplo , vamos supor que você tenha um aplicativo ICICI em seu telefone e, ao fazer login, em vez de suas informações de conta, se as informações de outra pessoa forem exibidas ou se você realizar uma transferência de dinheiro e o aplicativo enviar o OTP para outro número de telefone que não seja seu , você pode imaginar o que vai acontecer. Portanto, o teste de segurança é obrigatório.
Os dados em termos de login de mídia social e gateway de pagamento devem ser criptografados ou protegidos para tornar o aplicativo protegido contra hacks.
d) Teste de campo:
Um teste de campo é feito para verificar o comportamento do aplicativo na rede de dados do telefone.
Este teste geralmente é feito quando o aplicativo atinge um estágio estável e não está travando quando testado internamente e todos os problemas de funcionalidade foram corrigidos. Isso é feito principalmente para testar o desempenho do aplicativo na rede de dados lenta.
Teste manual - usando emulador
a) Teste de Unidade:
Isso é feito principalmente pela equipe de desenvolvimento / desenvolvedor individual. Este teste verifica se um módulo específico do código-fonte está funcionando conforme o esperado ou não.
Os desenvolvedores projetam casos de teste de unidade para um único componente, ou seja, um módulo isolado no qual trabalham. Este teste prova que o módulo individual está funcionando, após o que ele é injetado no código-fonte para funcionar como um elemento da arquitetura integrada. Como diz o cabeçalho, este é principalmente um teste manual executado usando emulação de teste.
b) Teste de integração:
Nas etapas anteriores, discutimos mais sobre testes de unidade. Agora, como temos certeza da funcionalidade das unidades / módulos individuais, torna-se necessário verificar a integração também. Este teste é executado para descobrir os problemas relacionados a vários pontos de integração.
Na nossa Exemplos , podemos chamar o login como um módulo e o gateway de pagamento como outro módulo.
O teste de unidade abrangerá o teste de ambos individualmente. No entanto, o teste de integração testará a integridade de ambos os módulos.
c) Teste de IU:
Conforme explicado acima, um teste de IU precisa ser feito para um aplicativo, pois é um fator chave para o sucesso do aplicativo.
Comprar todos os modelos de telefone para teste é praticamente impossível porque custaria muito. Portanto, usar o emulador é a melhor opção, pois é gratuito e também bugs de interface do usuário óbvios são facilmente detectados em emuladores.
Automação iOS
a) Teste de regressão:
No ambiente em constante mudança, as mudanças são feitas continuamente para aprimorar o aplicativo ou para corrigir os problemas que foram encontrados na versão anterior. Ao implementar as mudanças, existe a chance de as mudanças feitas no aplicativo alterarem a funcionalidade existente.
Em termos simples, as alterações feitas podem introduzir um novo conjunto de problemas no aplicativo.
Para verificar se o aplicativo funciona da mesma maneira, mesmo depois que as alterações são implementadas, o teste de regressão deve ser executado. E, como é uma atividade repetitiva, a automação é útil para esse tipo de execução de teste.
b) Teste de BVT:
É um bom costume ter um conjunto automatizado rodando no novo build lançado para teste, pois economiza muito tempo e se as funcionalidades básicas estão travando, ele é relatado imediatamente. Quando comparados a um esforço manual, os resultados dos testes de verificação básica automatizados para aceitar ou rejeitar uma construção podem ser obtidos em minutos.
c) Teste de Compatibilidade:
Conforme discutido, existem vários dispositivos / tipos que são lançados pela Apple. Para ser exato, existem 15 tipos diferentes de iPhones, 6 modelos de iPod Touch, 10 modelos de iPad e 2 modelos de iPad Pro no mercado.
Agora, quando um aplicativo como o nosso (aplicativo de arrecadação de fundos para equipes esportivas) é desenvolvido, ele deve ser suportado por todos os dispositivos mencionados acima. Isso implica em uma coisa que- Todos os casos de teste devem ser executados em todos esses dispositivos.
Agora, o esforço manual não é possível quando o número de dispositivos é tão grande quanto este. Para compatibilidade, o teste de automação é preferido.
d) Teste de desempenho:
Alguns dos que são testados no teste de desempenho são:
- Como o aplicativo se comporta quando se torna operacional ou é executado por muito tempo. Durante o período operacional, faça com que o aplicativo se comunique / interaja / permaneça inativo.
- A mesma operação deve ser realizada com diferentes quantidades de cargas a cada vez.
- Como o sistema se comporta quando a transferência de dados é realmente grande.
Esses casos são repetitivos por natureza e, em sua maioria, são feitos usando automação.
Práticas recomendadas para testar aplicativos iOS
Testar aplicativos iOS pode ser difícil, complicado, desafiador, a menos que seja feito corretamente.
Para mover o teste de aplicativo iOS na direção certa, as seguintes práticas podem ser implementadas:
# 1) Esqueça os emuladores: Na maioria dos casos, os emuladores são preferidos aos dispositivos reais. Mas, esse não é o caso ideal. Coisas como interações do usuário, consumo de bateria, disponibilidade de rede, desempenho no uso, alocação de memória não podem ser testados nos emuladores. Portanto, tente testar em dispositivos reais o tempo todo.
# 2) Automatize as coisas em vez de fazer manualmente: Quão rápido você é para fazer uma tarefa específica? No mundo de hoje, todos se preocupam principalmente com o tempo gasto. A automação não apenas reduz o tempo de execução, mas também aumenta a eficácia, a eficiência e a cobertura dos testes de software.
# 3) Compartilhe o trabalho: Compartilhe o teste entre as equipes, incluindo a equipe de desenvolvimento. Podemos obter ajuda em termos de execução manual dos casos de teste, bem como obter ajuda da equipe de desenvolvimento em termos de automatização dos casos de teste manuais.
# 4) Capture os registros de falhas: O aplicativo para iOS pode estar travando ou travando em certas circunstâncias. Para corrigir o problema, os logs de travamento desempenham um papel vital.
As seguintes etapas podem ser executadas para capturar os logs de travamento:
- Para MacOS:
- Sincronize o dispositivo iOS com o computador (Mac).
- No Mac OS, mantenha pressionada a tecla Opção para abrir a barra de menus.
- Vá para o menu Go e clique em Library.
- Navegue até ~ / Library / Logs / CrashReporter / MobileDevice //.
- O nome do arquivo de log deve começar com o nome do aplicativo.
- For Windows OS:
- Sincronize o dispositivo iOS com o computador (Windows).
- Navegue até C: Users AppData Roaming Applecomputer Logs CrashReporter MobileDevice \
- O nome do arquivo de log deve começar com o nome do aplicativo.
# 5) Captura dos registros do console:
Os logs do console fornecem as informações gerais dos aplicativos no dispositivo iOS.
Isso pode ser feito usando ferramentas como o iTools. No aplicativo iTools, clique no ícone “Caixa de ferramentas” quando o dispositivo iOS estiver conectado ao sistema no qual o iTools está sendo executado. Clicar em “Registro em tempo real” fornece o registro do console em tempo real.
arquivos swf não reproduzem no navegador
# 6) Captura de tela: Torna-se fácil entender o problema e, portanto, é fácil de corrigir se as etapas forem visuais.
É aconselhável gravar a tela ou fazer capturas de tela dos problemas para que a equipe de desenvolvimento os compreenda melhor. A captura de tela pode ser tirada usando o recurso embutido pressionando o botão Liga / Desliga e Home juntos.
A gravação de uma tela pode ser feita usando a gravação Quick time player enquanto o dispositivo iOS está conectado ao Mac usando o cabo lightning.
Frameworks de automação iOS
Algumas das estruturas de automação mais comumente usadas estão listadas abaixo:
# 1) épocas;
O Appium usa o driver Selenium Web para automatizar o teste de aplicativos iOS.
Esta plataforma é independente e pode ser usada tanto na web quanto em dispositivos móveis (Android e iOS). Este é de código aberto e não está restrito por idioma. Não é necessário alterar o aplicativo ou acessar o código-fonte para automatizar o uso do Appium.
O Appium funciona perfeitamente independente do tipo de aplicativo: seja nativo, híbrido ou da web.
# 2) Calabash:
Calabash é uma estrutura de plataforma cruzada de código aberto que oferece suporte a testes de automação Android e iOS.
Os testes de cabaça são escritos em pepino, que é semelhante ao de uma especificação e é fácil de entender. O Calabash consiste em bibliotecas que permitem ao usuário interagir com aplicativos nativos e híbridos. Suporta interações como gestos, afirmações, captura de tela, etc.
# 3) Earl Grey:
Earl Gray é a própria estrutura de teste de IU interna do Google. Isso foi usado para testar o YouTube, Google Fotos, Google Play Música, Google Agenda, etc.
Earl Grey tornou-se código aberto recentemente. Algumas das principais vantagens do Earl Grey são: Sincronização embutida, verificações de visibilidade antes das interações, verdadeira interação do usuário (toque, deslize, etc.). É muito semelhante ao Espresso do Google, usado para automação de IU do Android.
# 4) Automação da IU:
UI Automation é desenvolvido pela Apple e é muito semelhante ao UI Automator para Android. As APIs são definidas pela Apple e os testes são escritos em JAVA.
# 5) COMO:
KIF significa “Keep it Functional”. Esta é uma estrutura de terceiros e de código aberto.
Esta é uma estrutura de teste de integração iOS que está intimamente relacionada e usada para destinos de teste XCTest. KIF é fácil de configurar ou integrar com o projeto Xcode e, portanto, servidor web adicional ou pacotes adicionais não são necessários. KIF tem uma ampla cobertura em termos de versões iOS.
Conclusão
O teste de aplicativos iOS pode ser uma tarefa muito desafiadora. Espero que você tenha entendido bem os testes de aplicativos iOS neste artigo.
No entanto, selecionar a abordagem certa, o melhor processo de teste possível, metodologias, ferramentas, emuladores / dispositivos, etc. tornará o teste de aplicativos iOS muito bem-sucedido.
Nosso próximo tutorial irá resumir todos os conceitos básicos envolvidos em Tutorial de teste de aplicativo Android .
Leitura recomendada
- Melhores ferramentas de teste de software 2021 (QA Test Automation Tools)
- Guia de teste de portabilidade com exemplos práticos
- Teste Alfa e Teste Beta (um guia completo)
- Teste Funcional Vs Teste Não Funcional
- Criar teste Appium para um aplicativo iOS
- Download do e-book do Testing Primer
- O que é teste inicial: teste cedo, teste frequentemente, mas como? (Um Guia Prático)
- Tutoriais de teste de aplicativos móveis (um guia completo com mais de 30 tutoriais)