Comparing Mobile Automation Testing Tools: Appium, TestComplete, Automador UI, SeeTest, Robotium, XCUITest e mais
Tempo de leitura: 14 minutos
Teste móvel é mais complexo do que o teste web. Enquanto este último diz respeito a diferentes navegadores e a uma variedade de versões, os testes móveis concentram-se nas versões Android e iOS e nas resoluções de ecrã móveis. Para além do stock Android, os engenheiros de QA têm de lidar com UIs personalizadas. A maioria dos fabricantes de dispositivos adicionam-nos em cima do Android padrão para fornecer características extra e design mais distinto. Exemplos famosos incluem OnePlus’ OxygenOS e One UI.
da Samsung. Com este artigo, o nosso objectivo é facilitar a vida através da comparação de ferramentas de teste de automação móvel dedicadas. Incluímos as recomendações de peritos internos e externos que dão a sua opinião sobre ferramentas de automatização móvel.
Como testar aplicações móveis
Então, como é que os testes móveis acontecem? Os engenheiros de QA utilizam ferramentas de teste de automatização móvel para facilitar as interacções dos códigos de teste com a aplicação em causa. A questão é como executar os testes de automatização móvel. Há três opções.
através de dispositivos móveis locais ao vivo. Com dispositivos reais ligados a USB, os QAs podem testar a operacionalidade de uma aplicação na perspectiva do utilizador final. Podem acelerá-la ao executar testes em paralelo em vários dispositivos Android. Embora ainda seja bastante demorado devido à exigência de configurações manuais da infra-estrutura, tais testes fornecem os resultados mais precisos. Alternativamente, é possível utilizar serviços de testes em nuvem.
Utilizar uma verdadeira nuvem de dispositivos. Para expandir a cobertura de dispositivos, os QAs realizam testes num ambiente de teste remoto – device farm aka device cloud. Pré-instalados em SO e navegadores, as quintas de dispositivos fornecem aos testadores acesso a dispositivos físicos multi-versão. Os testadores têm um painel de controlo onde podem gerir todos os dispositivos conectados. Sauce Labs e BrowserStack são nuvens de dispositivos amplamente utilizados.
Via emulador Android / simulador iOS. Os QAs também testam aplicações móveis através de software que imita um dispositivo móvel no seu ambiente de trabalho. Em particular, o emulador Android imita ambientes de software e hardware do dispositivo alvo, enquanto que o simulador iOS – apenas o software móvel. É por isso que é necessário um computador Apple original para testes. Entre os principais prós dos emuladores, Alexander Kot, engenheiro de automação móvel da AltexSoft, cita a sua capacidade de alternar entre dispositivos muito rapidamente. Anastasiya Nalyhach, engenheira de automatização de testes da EPAM Systems, acrescenta que os emuladores permitem-lhe lançar rapidamente testes locais num PC quando não há nenhum dispositivo real disponível. No entanto, os emuladores não são tão fiáveis como os dispositivos reais.
Emulador Androide no Android Studio
Para compreender como todos estes componentes compõem o processo de teste, precisamos primeiro de compreender como funcionam os testes de automatização móvel no seu todo.
Como funcionam os testes de automatização móvel
Para desenvolver e testar dispositivos móveis, são utilizadas as seguintes IDEs: Android Studio e Apple Xcode. Estes IDEs têm todos os instrumentos necessários para trabalhar com código, incluindo depuradores de código (por exemplo, Ponte de Depuração Android), emuladores e simuladores.
Uma interface que permite a comunicação entre um dispositivo móvel e o seu computador é chamada de controlador móvel. Os controladores oficiais do Android são UI Automator e Espresso. Desenvolvidos pela Google, ambos os controladores estão incluídos na bem documentada Biblioteca de Suporte de Testes Android. Além disso, existem drivers de terceiros como Robotium e Selendroid ( Selenium para Android). Quanto ao iOS, o driver XCUITest é enviado com Xcode.
Se estiver a lidar com uma aplicação móvel disponível tanto no iOS como no Android, escrever testes separados para cada SO demorará algum tempo. Pode permitir a reutilização do código, tirando partido de uma ferramenta multi-plataforma. Como resultado, escreve o código apenas uma vez e é compatível com ambos os SO. O exemplo mais popular de uma ferramenta de teste móvel multiplataforma é o Appium.
Três formas de usar uma ferramenta de teste de automatização móvel
Vamos resumir todo o processo usando Appium como exemplo. Uma vez o código desenvolvido, o cliente Appium envia comandos para o servidor Appium através da sua API. Por sua vez, o Appium converte os comandos no formato aceite pela estrutura de testes nativa da plataforma correspondente (UIAutomator, XCUITest) e, como resultado, os comandos iniciais são executados na aplicação testada dentro de um simulador ou emulador. Em alternativa, pode utilizar uma nuvem de dispositivos como os Sauce Labs, que tem todos os dispositivos necessários pré-instalados para si. Assim, só precisa de se ligar à plataforma da nuvem. Caso decida manter dispositivos reais, terá de os ligar e configurar você mesmo.
Quando se pretende automatizar os testes móveis
Muitas vezes, os testes móveis são realizados manualmente devido à complexidade de automatizar este processo. As suas acções no ecrã táctil, como a rolagem e o puxar, são bastante complicadas de automatizar. Vamos distinguir os casos em que é razoável automatizar testes móveis e aqueles em que é mais sensato ater-se a verificações manuais.
Simples aos testes na web, existem múltiplos cenários para a aplicação automatizada QA:
1. Projectos a longo prazo. A automatização vale a pena a longo prazo, se planeia desenvolver e manter continuamente a aplicação.
2. Verificações de manutenção. Se uma aplicação móvel estiver a obter dados de um servidor remoto através de uma API, a sincronização da aplicação deve ser monitorizada diariamente. Muitas vezes, as alterações ocorrem do lado do servidor levando a diferentes esmagamentos como falhas no login ou falhas na exibição de alguns elementos no ecrã.
3. Testes de fumo. Se estamos a lidar com uma aplicação autónoma que não utiliza recursos externos, saltamos o passo anterior e passamos de imediato aos testes de fumo. Executado antes do lançamento, é uma verificação superficial das funções básicas.
4. Testes de regressão. É a verificação mais minuciosa, executando todos os testes de rotina que podem ser automatizados. A automatização é especialmente rentável para a regressão de grandes volumes.
5. Condutas de integração contínua. Uma vez que a integração contínua gira apenas em torno de testes automatizados, não há outra opção aqui.
Mas não se esqueça dos testes manuais. Será mais preciso em termos de interrupções como textos recebidos, chamadas, notificações push, etc. Isto também inclui testar o desempenho da aplicação em função dos diferentes tipos de ligação à Internet (3G, LTE, etc.), bem como offline.
Por isso, é importante ter tanto testes manuais como automatizados móveis. Enquanto os testes manuais se concentram em testes exploratórios ou de usabilidade, os testes de automatização tratam de testes funcionais altamente repetíveis. Para mais detalhes sobre testes manuais versus testes automatizados, consulte o nosso artigo dedicado.
Outros, apresentamos as ferramentas que o ajudarão a transformar o teste manual da sua aplicação num teste automatizado. Para saber mais sobre ferramentas gerais de testes automatizados, leia o nosso artigo sobre esse tópico. Aqui concentramo-nos nos testes móveis, embora alguns jogadores permaneçam, uma vez que suportam tanto os testes na web como os testes móveis.
Android e iOS ferramentas de teste de código aberto
Android ferramentas de automação móvel
Existem várias ferramentas populares para escrever testes automatizados para Android e emular o comportamento do utilizador na aplicação. A primeira coisa a verificar são as ferramentas que o próprio Google construiu para o seu sistema operativo, UI Automator e Espresso. Se estiver habituado ao Selenium em ambientes web, existe uma versão móvel do mesmo – Selendroid. Pode também verificar o popular e fácil de usar Robotium, que é suportado por uma grande comunidade de código aberto.
p>Então, vamos começar por comparar duas ferramentas de teste nativas Android – UI Automator e Espresso.
Espresso e UI Automator: um tandem para testes nativos Android
Projectado por iniciativa dos programadores, Espresso requer acesso ao código fonte. Assim, fornece teste de caixa branca em contraste com o UI Automator. Suporta aplicações Android a partir da versão 2.3. O UI Automator foi lançado mais tarde, pelo que mantém o Android 4.3+.
Há uma razão para o Google os manter a ambos. Cada estrutura tem algumas lacunas que a outra preenche. Enquanto o Espresso só pode funcionar dentro do nosso contexto de aplicação de teste, o UI Automator é capaz de verificar as interacções da aplicação do assunto com outras aplicações. As estruturas não são permutáveis, mas complementam-se mutuamente. Assim, uma melhor maneira é utilizar ambas as estruturas para testar a sua aplicação móvel.
Espresso e UI Automator pros:
- Teste de velocidade devido à sincronização de código (Espresso é mais rápido)
- Reliabilidade: mantida pelo próprio Google. Se alguma coisa quebrar, é corrigido quase imediatamente
li>Regravador de teste (apenas para Espresso)li>Uma comunidade activa onde os programadores estão constantemente a contribuir e a responder a perguntas
Contras do Automator Espresso e UI:
- Suporte linguístico limitado: Java e Kotlin.
- Controlos personalizados requerem boas capacidades de programação e uma compreensão profunda de como funciona o Android.
UI Automator Viewer, Source: Arseny Batyrov
Both Selendroid e Robotium foram desenvolvidos antes dos condutores oficiais. No entanto, não são tão bem suportados como as ferramentas do Google.
Selendróide: Ferramenta Selenium para testes de compatibilidade Android
Selendroid é uma ferramenta de automação móvel da Selenium, exclusivamente orientada para o Android. Mas utilizando ios-driver – um Selenium WebDriver API – juntamente com o Selendroid, poderá testar também aplicações iOS. Escrito no Selenium Web Driver API cliente, os testes Selendroid são totalmente integrados com as actuais estruturas Selenium. Utilizando o Selenium Inspector, uma ferramenta de desenvolvimento de casos de teste, Selendroid monitoriza o estado actual da UI.
produtos Selenium:
- A funcionalidade hot-plugging permite desligar o dispositivo sem interromper o teste. Em última análise, aumenta o número de dispositivos que podem ser testados em simultâneo.
- tem alta compatibilidade com o Protocolo de Fio JSON e Selenium 3 Ready.
- Compatibilidade retroativa. Por exemplo, pode suportar o Android API 10 (versão 2.3.3) através do API 19 (versão 4.4).
- Não são necessários ajustes de aplicação para automatizá-lo.
- Existe um driver Android incorporado no WebView app.
cons:
- Não há capacidade de automatizar o teste de actividades fora da aplicação como câmara, mapas, etc.
- Slow: É difícil de usar em algumas máquinas com menos de 4GB de RAM.
Robotium: biblioteca de testes de IU de caixa preta para aplicações Android
Robotium, uma das primeiras ferramentas de testes automatizados para Android, é frequentemente utilizada. Uma vez que é utilizada para testes de black-box, não há necessidade de dados adicionais sobre a estrutura da aplicação ou classes executadas. A única coisa que Robotium precisa de saber é o nome da classe fundamental e como se ligar a ela. Java é a linguagem preferida para a composição de testes de Robotium.
Robotium pros.
- Permite compor situações de teste de função, estrutura, e aceitação do utilizador.
- Tem uma grande comunidade: Há muitos programadores de código aberto que contribuem para introduzir mais funcionalidades em lançamentos subsequentes.
Perguntámos a Myhailo Skrypchuk, programador da Brandnic, sobre a sua utilização do Robotium para testar uma aplicação geradora de nomes comerciais: “Utilizamos a ferramenta em testes de operação para avaliar se a operação foi concluída com a utilização do fluxo de dados correcto. Também, nos testes de segurança – encontramos e eliminamos lacunas e vulnerabilidades, lançamos diferentes ciberataques simulados. Nos testes de desempenho, examinamos a aplicação com requisitos de memória e a sua velocidade para completar a tarefa”
Robotium cons:
- li> Ligado ao processo de uma aplicação, semelhante a Espresso.
“Se a sua aplicação chamar outra – Robotium não pode vê-la e executar qualquer acção lá”, acrescenta Myhailo.
- Sem capacidade de bloquear/desbloquear um smartphone ou um tablet.
- Sem funções de gravação e reprodução
- Falha para fornecer capturas de ecrã.
iOS ferramentas de teste de automação móvel
Se for apanhado no teste da aplicação do iPhone, verifique as opções que tem. Tudo se resume ao XCUITest – a ferramenta oficial de teste de IU da Apple. Dito isto, o Google fornece uma alternativa agradável – EarlGrey, que poderá achar mais adequada às suas necessidades.
XCUITest: métodos nativos para trabalhar com iOS UI
XCUITest funciona dentro do ambiente Xcode e os seus testes devem ser escritos em Swift ou Objective-C. O seu suporte de versão começa com iOS 9.
XCUITest pros:
- Execução de testes paralelos distribuídos
- Registrador de testes para testes simples, elementos de IU, e as suas características
XCUITest cons:
- Aplicação é mais lenta do que o Google em termos de resposta a bugs
- Documentação fraca: Não inclui uma descrição de todos os métodos e como utilizá-los.
- li>Muita comunidade: Vai achar difícil obter uma resposta à sua pergunta.
li>As velocidades de execução dos testes são lentas em comparação com os testes Android.li>As actualizações do quadro são raras.li>Testes fora da caixa apenas em simuladores, requer utilitários adicionais para funcionar com dispositivos reais. Um deles é o WebDriverAgent do Facebook (WDA). Executado num simulador ou num dispositivo real, o WDA transfere comandos via API para XCUITest.
EarlGrey: A resposta do Google ao XCUITest
Desenvolvido pelo Google em 2016, EarlGrey é muito semelhante a Espresso. O próprio Google utiliza a ferramenta para testes funcionais de aplicações iOS nativas como YouTube, Google Calendar, Google Photos, Google Translate, etc. Pode adicionar Earlgrey ao seu projecto Xcode manualmente ou utilizando um gestor de dependência .
Asso que se opõe ao XCUITest, esta estrutura de automatização UI partilha o mesmo processo com a aplicação: Os scripts de teste aguardam a ocorrência de eventos específicos de IU antes de iniciar directamente uma interacção com a IU da aplicação. Assim, o teste pode afectar a memória partilhada, alterando o comportamento do tempo de execução da aplicação. Embora EarlGrey sincronize automaticamente com a IU e pedidos de rede, ainda permite a implementação de timings personalizados.
Earl Grey advantages over XCUITest:
- Brings Espresso’s synchronization features to iOS testing
- Real devices support
Earl Grey cons:
- Relatórios estatísticos anónimos de volta ao Google
- Apenas um único teste de aplicação
Ferramentas de teste de automatização móvel multiplataforma
Ferramentas de teste móveis que funcionam para ambos os sistemas operativos irão poupar-lhe muito tempo e esforço. Embora seja fácil perder-se no conjunto de escolhas, seleccionámos as cinco primeiras estruturas – tanto grátis como licenciadas – que podem ajudá-lo a desenvolver testes automatizados móveis multiplataforma. O Appium é a primeira coisa que lhe vem à mente. Mas não é assim tão fácil de o descobrir, especialmente se não estiver na base do primeiro nome com Selenium. Por vezes, é melhor pagar mais por um automatizador sem guião. Iremos rever ambas as opções através das ferramentas desta lista.
Ferramentas de teste de automação móvel multiplataforma comparadas
Appium: uma estrutura de teste de IU móvel versátil
Se for qualificado em Selenium, o Appium será um passeio no parque para si. Trata-se basicamente de um WebDriver Selenium concebido para testar dispositivos móveis. A função principal do servidor Appium é receber pedidos de teste em formato JSON e convertê-los em comandos que possam ser ainda mais aceites pelas estruturas de teste nativas.
Como funciona o servidor Appium
Testes baseados em WebDriverIO e WebDriver podem ser executados utilizando a estrutura de automatização de testes WebDriverIO.
É a ligação WebDriver bindings para Node.js. WDIO tem o seu próprio test runner e é facilmente configurável. A sua interface de linha de comando vem com um bom utilitário de configuração que ajuda a criar o ficheiro de configuração em menos de um minuto. Também dá uma visão geral de todos os pacotes de terceiros disponíveis, como adaptações de estrutura, relatórios e serviços, e pode instalá-los.
Appium pros. O Appium é de longe a mais universal estrutura de teste de IU móvel.
- Poio suporta automatização em várias plataformas: iOS mobile, Android mobile, e Windows desktop.
- A ferramenta automatiza todos os tipos de aplicações: nativas, web móvel, e híbridas.
- Appium é compatível com todas as linguagens de programação populares: Ruby, Python, Java, JavaScript, PHP, C#, e RobotFramework. Com clientes escritos em cada uma destas linguagens, não há limites em termos de test runners e test frameworks. Na verdade, é inerente à filosofia Appium – não coloque restrições ao seu ambiente de testes para que possa geri-lo da forma que decidir.
Unlike other automation tools, Appium fornece uma interface estável baseada em WebDriver mantendo os seus testes fáceis apesar de quaisquer actualizações.
Exemplo de implementação do Appium para Android, Fonte: Thomas Hansson
Exemplo de implementação do Appium para iOS, Fonte: Thomas Hansson
Contras do Appium:
- Anastasiya Nalyhach nota que o Appium não interage directamente com um aplicativo, mas utiliza o protocolo HTTP para enviar comandos. Alexander Kot acrescenta: “A execução de comandos demora um pouco devido a uma longa cadeia de interacção sob o capô do Appium: Depois de lançar um dispositivo e criar uma sessão, o Appium continua a estabelecer uma ligação com o servidor WebDriverAgent. Só então, o servidor WebDriverAgent comunica com a estrutura de testes da Apple nativa, a fim de executar comandos no dispositivo”
- Sem acesso ao código fonte, há problemas com a modificação do estado da aplicação. Além disso, o Appium não permite zombar da parte de trás enquanto verifica a interface de utilizador. No final, certifique-se de ter hardware poderoso, uma vez que o Appium utiliza muitos recursos.
Calabash: Quadro de testes de desenvolvimento de comportamento
Se Xamarin estiver mais perto do seu coração, vá para Calabash. Em 2017, Xamarin deixou de apoiar Calabash, e com a ajuda da comunidade, Calabash transformou-se numa ferramenta de código aberto. Existem bibliotecas para cada plataforma: Calabash iOS e Calabash Android.
Calabash assegura que uma aplicação é composta pelas características certas, cenários e definições de passos, bem como se está a funcionar com as entradas certas.
Calabash pros:
- Sendo orientado para BDD, Calabash realiza testes de desenvolvimento com base no funcionamento da aplicação.
- Ao contrário do Appium agnóstico de ferramentas, Calabash está firmemente acoplado ao Cucumber orientado para o comportamento, utilizando-o para definir cenários de teste em linguagem simples. Isto torna-o compreensível mesmo para os membros não técnicos da equipa.
Calabash cons:
- Calabash permite interacções com a aplicação apenas para uma estrutura de teste baseada em Ruby.
- Não há funções de gravação e reprodução.
- Debugging de scripts de teste e manutenção de testes são as principais questões. Com o aumento dos dispositivos em teste, torna-se difícil manter os ficheiros de dados de teste.
- Li>Escrever scripts de teste de automação para Calabash requer um testador competente e proficiente.
SeeTest: plataforma comercial de teste contínuo
SeeTest by Experitest é a primeira ferramenta comercial de teste multiplataforma da nossa lista. Disponível com um período de teste de 30 dias, o plano de teste automático da SeeTest custa a um utilizador 199 dólares por mês se pago um ano antes ou 249 dólares por mês. Porquê pagar se existem ferramentas gratuitas?
p>SeeTest pros:
- Capacidades do Appium integradas numa interface conveniente com características tais como reflexão do dispositivo, gravador de teste, espião de objectos, e feedback visual
- Cobertura de automatização expandida incluindo código de barras & verificação de digitalização, características de áudio, simulação GPS e TouchID, ou elementos personalizados tais como selectores, colectores, tabelas, gestos e qualquer IU complexa.
- Acesso a mais de 1000 dispositivos móveis na nuvem e executar centenas de testes em paralelo
- Relatórios detalhados de testes com capturas de ecrã, vídeos e ficheiros de registo.
lI>Plug-ins IDE para desenvolver e executar testes em dispositivos reais directamente do Eclipse ou IntelliJ
SeeTest Reporter
Para resumir, O SeeTest enquadra-se perfeitamente no processo de IC, pois permite priorizar, programar e distribuir múltiplos testes em paralelo nos dispositivos e sistemas operativos relevantes para a construção específica.
SeeTest cons. Há sempre um mas. No caso do SeeTest, é o seu preço, pelo que a ferramenta não é adequada para projectos de pequena escala. Além disso, a ferramenta não é de código aberto, pelo que não há espaço para ajustes.
TestComplete: um módulo de teste móvel sem script proprietário
TestComplete é um produto do SmartBear, um líder em automatização de testes de software. Oferece módulos automatizados para testes móveis, desktop, e web. Com TestComplete, pode criar testes, gravando-os ou editando comandos de teste nos seus painéis e editores. Pode executar testes dentro da plataforma ou exportá-los para execução em aplicações externas.
TestComplete pros:
- Existe uma vasta gama de linguagens de programação (por exemplo, JavaScript, Python, Jscript.)
- ferramenta de gravação e repetição livre deScript permite gravar gestos multi-toque (deslizar, beliscar, arrastar, largar, ou rolar) e reproduzi-los de volta. Steve Pritchard, IT Consultant for Anglo Liners, afirma que tais testes são tão completos como os manuais.
TesteReprodução completa de gestos no ecrã táctil
- Pontos de controlo específicos verificam o estado da aplicação durante a execução do teste.
- Controlos automáticos validam aspectos chave. Steve confirma-o: “Graças à informação em tempo real que a ferramenta produz, somos capazes de acompanhar o progresso e estado das nossas páginas a partir de qualquer dispositivo simultaneamente”
- Há uma pré-integração com a ferramenta de teste SoapUI API.
TestComplete cons:
- Esta solução é dispendiosa. Para um módulo móvel juntamente com a própria plataforma, TestComplete irá cobrar-lhe $2.299 por ano, no mínimo. Isto é apenas para um único dispositivo informático. Tais extensões como execução de testes paralelos, repetições de testes em vídeo, reconhecimento visual alimentado por IA, auditorias automáticas na web para desempenho, acessibilidade, e SEO têm etiquetas de preço extra. Além disso, o TestComplete cobra separadamente pela formação e certificação. Com uma compra, os clientes TestComplete obtêm acesso ao Portal de Gestão de Casos onde podem recorrer para obter apoio. Antes de fazer qualquer compromisso, pode experimentá-lo durante um mês.
- iOS teste com TestComplete requer a instalação de ferramentas de virtualização de hardware no seu Mac.
Tricentis Tosca: Mobile Engine 3.0
Como parte da instalação padrão Tricentis Tosca, o Tosca Mobile Engine 3.0 tem de ser explicitamente seleccionado através da configuração personalizada. Juntamente com o Appium, a Tricentis permite aproveitar o poder do Appium sem ter de lidar com a sua complexidade técnica. Além disso, o Tosca Mobile Engine 3.0 utiliza componentes do AndroidSDK e ferramentas Xcode. Vem integrado em nuvens de dispositivos: Perfecto, Mobile Labs, Sauce Labs, e TestObject. Desta forma, não depende de ambientes de teste, mas pode envolvê-los quando surgir a necessidade.
Tricentis Tosca pros. Semelhante ao TestComplete, o Tricentis permite a automatização de testes sem script, juntamente com a escrita manual de código, o que o torna fácil de usar. Entre as capacidades do Tricentis que pode beneficiar, encontram-se
- Geração de dados de testes sintéticos,
- Testes baseados no risco,
- Concepção de casos de teste,
- Execução distribuída,
- Virtualização de serviços,
- Gestão e análise de testes,
- DevOps e integrações de ferramentas de Gestão do Ciclo de Vida da Aplicação
- Aplicação automatizada e arranque com testes lançados automaticamente e sem necessidade de interacção manual.
Tricentis Tosca cons: Tosca tem preços personalizados que se encontram no lado elevado. Faça contacto directo para o descobrir por si próprio.
Desafios dos testes móveis (em comparação com os testes web)
Em termos de implantação de funcionalidades, o desenvolvimento móvel baseia-se no conjunto de funcionalidades web existentes. Assim, a criação de uma aplicação de apoio deverá ser mais fácil. Mas isto não está relacionado com o processo de teste. Aqui, os testes móveis começam desde o início, não importa quão minuciosos tenham sido os testes da Web realizados. Agora, vamos analisar as principais dificuldades que os testes móveis têm em contraste com os testes na web.
Dispositivo de fragmentação. Tal como no caso dos testes em rede, em que estamos a lidar apenas com PCs e portáteis, os testes móveis abrangem telefones, tablets, smartwatches, etc. Assim, lidar com muitos fabricantes de hardware com vários tamanhos de ecrã e UIs personalizados, complica o processo de teste.
Duplo trabalho. Os testes Web tratam apenas de um ambiente – um browser onde a multi-versão não é tão importante como para os testes móveis. Mantendo um olho nos sistemas operativos móveis Android e iOS, os testadores têm de encontrar dois tipos de localizadores de objectos de página e implementar testes separados para características semelhantes. Suportando dois conjuntos de infra-estruturas de cada vez, o QA deve estar pronto para quaisquer actualizações push que possam causar quebras de teste.
Dispositivos de correspondência. Como sempre, o iOS requer um computador Apple para escrever testes automatizados.
Velocidade de teste. Os testes web são efectuados directamente no browser. Isto contrasta com os testes móveis onde o código passa por uma cadeia de acções mais longa antes de poder ser executado no dispositivo alvo. Isto resulta em atrasos no processo de testes móveis.
Equipamento e suporte. Ao contrário da automatização da web, a telefonia móvel tem uma comunidade menos madura, incapaz de responder a algumas questões. As suas ferramentas estão ainda a evoluir.