Publicado: outubro 13, 2022
Crie aplicativos melhores com uma abordagem de desenvolvimento de baixo código.
De ser uma opção, DevOps Está se tornando rapidamente uma necessidade para a maioria das empresas nos últimos tempos. DevOps Permite que as empresas colaborem perfeitamente entre várias equipes multifuncionais, entreguem recursos mais rapidamente e reduzam as falhas de lançamento, otimizando os recursos ao máximo. Para aproveitar ao máximo o DevOps Na era da revolução tecnológica, as equipes de TI, negócios, desenvolvimento e qualidade devem trabalhar em sintonia. O desenvolvimento low-code é uma nova abordagem que permite que membros técnicos e não técnicos trabalhem juntos em projetos de desenvolvimento de software para atender às demandas de TI em constante mudança.
Uma visão geral do desenvolvimento de baixo código
O desenvolvimento low-code é uma nova abordagem de desenvolvimento de software que permite aos desenvolvedores criar software rapidamente usando interfaces de usuário visuais aprimoradas por lógica orientada a modelos, eliminando a necessidade de codificar aplicativos manualmente. Os usuários podem simplesmente arrastar e soltar código usando modelos e trechos de código predefinidos. Essa abordagem não apenas acelera o processo de desenvolvimento, mas também permite que pessoas com diferentes níveis de habilidade em programação colaborem e contribuam para o desenvolvimento do código de forma integrada.
A evolução do desenvolvimento de baixo código
Desde as linguagens de montagem, que lidavam com zeros e uns, até as linguagens de codificação atuais, de fácil leitura, o desenvolvimento de software percorreu um longo caminho. No início, as linguagens de montagem eram usadas para escrever programas de computador. Esses programas eram fáceis de entender para os computadores, mas extremamente complexos para os desenvolvedores, pois tinham que lidar com sistemas de codificação binária, envolvendo zeros e uns.
Na década de 1950, linguagens de montagem como COBOL e FORTRAN dominavam o mundo do software. Essas linguagens trabalhavam em estreita colaboração com a arquitetura e o hardware do sistema. A década de 1960 viu a introdução do SNOBOL, uma extensão do COBOL. Mais tarde, na década de 1970, a linguagem C foi introduzida e tornou-se extremamente popular. No final dessa década, a Programação Orientada a Objetos (POO) foi adicionada ao C. O SQL também surgiu nesse período, permitindo aos usuários gerenciar dados.
Na década de 1980, FoxPro e MATLAB se popularizaram. Enquanto o FoxPro lidava com SGBDs (Sistemas de Gerenciamento de Banco de Dados), o MATLAB era usado para algoritmos e visualizações. O período entre 1990 e 2000 viu a introdução de linguagens populares como Java, Python, PHP e Ruby. O JavaScript estendeu o Java para gerenciar aspectos da interface do usuário. A nova década viu o C# ganhar popularidade no desenvolvimento de aplicativos web e desktop. Foi seguido por linguagens como Go e Rush. Com a proliferação de dispositivos móveis na década atual, o Kotlin se popularizou para o sistema operacional Android, enquanto o Swift dominou o segmento iOS.
A razão para essa transição de linguagens assembly associadas ao hardware para linguagens de programação centradas no usuário é reduzir a complexidade da codificação, tornar o código mais limpo e melhorar o desempenho e a produtividade.
Os programas escritos em linguagem assembly envolviam código complexo e eram difíceis de entender para os desenvolvedores. Por exemplo, observe um programa simples de adição escrito em linguagem assembly:
O mesmo código fica mais simples em Java:
Influência das linguagens de programação
As linguagens de programação atuais são influenciadas por linguagens anteriores. Por exemplo, a linguagem mais popular, Java, foi inspirada em C++ e Smalltalk. Curiosamente, tanto Smalltalk quanto C++ foram influenciados por Simula. C++ é uma extensão da linguagem C. C e Pascal foram influenciados por Algol 68, que por sua vez foi influenciado por Algol 60. Pascal influenciou Modula e ML, e ML influenciou Haskell.
O que torna as linguagens de programação bem-sucedidas?
Para que uma linguagem de programação seja bem-sucedida, o requisito fundamental é que ela resolva um problema. Por exemplo, C oferece programação de sistemas eficiente, enquanto JavaScript pode ser executado diretamente no navegador. Além disso, produtividade e desempenho são requisitos essenciais. A linguagem deve contar com um bom ambiente, incluindo um interpretador e um compilador, desenvolvedores influentes e, ao mesmo tempo, segurança. Obviamente, a portabilidade contribui para sua popularidade.
Visualização de código
Como forma de simplificar a codificação, os desenvolvedores experimentaram métodos de desenvolvimento sem código, como a visualização do código por meio de fluxogramas.
Em 2000, a Mercury introduziu o modelo de visualização Keyboard View, que simplificou a visualização de código.
Por que os métodos 'antigos' sem código falharam?
Embora os antigos métodos sem código facilitassem a compreensão do código, eles não reduziam sua complexidade. Quando a lógica do código se tornava complexa, as apresentações visuais também se tornavam. A escalabilidade e a refatoração do código também representavam um desafio. A ausência de bons sistemas de controle de versão e outras ferramentas de colaboração contribuiu para o fracasso.
Desenvolvimento orientado por comportamento
O desenvolvimento orientado a comportamento (BDD) é outra abordagem alternativa que combina métodos com e sem código para simplificar o processo de desenvolvimento. O Cucumber é uma ferramenta popular de BDD.
Nesse método, são criadas histórias de usuário para cada cenário, e trechos de código são escritos para esse cenário, e então cada história de usuário é associada ao trecho de código específico.
Este método possui três componentes principais:
- A característica Aborda uma funcionalidade específica usando uma descrição de alto nível.
- Cenário Converte a especificação comportamental em exemplos e etapas formais.
- Especificações executáveis Falar sobre a sintaxe ágil "Dado, Quando e Então"
Por exemplo, quando você está testando o desempenho de uma funcionalidade de login em um aplicativo de demonstração: aplicativo Eribank
Os usuários sem conhecimento de desenvolvimento deverão escrever um cenário para o recurso da seguinte forma:
- @AddScenario
- Cenário: Login no aplicativo Eribank
- Dados: Credenciais de entrada
- Ao clicar no botão de login
- Em seguida, verifique o login.
Agora, os engenheiros de automação de testes criarão o código para cada ação usando uma linguagem de programação e mapearão cada ação com o trecho de código correspondente.
Teste baseado em modelo
Para obter a melhor cobertura em seus projetos de automação de testes, compreender e analisar os requisitos é fundamental. Sem um sistema automatizado para coleta de requisitos, a fase inicial de automação de testes torna-se ineficiente. Os testes baseados em modelos resolvem esses desafios e permitem que você aproveite ao máximo a automação de testes com um número mínimo de casos de teste.
O teste baseado em modelos é uma parte importante do ciclo de vida de desenvolvimento de software. Nessa abordagem, são criados modelos que capturam o comportamento de um sistema. Eles descrevem estratégias de teste, ambientes, geram casos de teste e avaliam a qualidade dos testes.
Primeiramente, cria-se um modelo que captura o comportamento do sistema em teste. Em seguida, a ferramenta baseada em modelo analisa e interpreta esse comportamento para criar scripts de teste manuais e automatizados.
O desafio da abordagem MBT reside na criação e manutenção do modelo. É necessário também criar um mapeamento do modelo. Por exemplo, ao criar um modelo para a função de login, é preciso criar a lógica que leva à próxima tela. Da mesma forma, é necessário identificar as mudanças.
Digital.ai Continuous Testing integração com plataformas de desenvolvimento de baixo código
Digital.ai Continuous Testing é uma plataforma abrangente de automação de testes em nuvem que permite executar uma variedade de casos de teste em diversos dispositivos e navegadores localizados em diferentes regiões. Agora, Digital.ai Continuous Testing Permite integrar plataformas de desenvolvimento de baixo código para executar testes baseados em modelos.
Digital.ai Continuous Testing A plataforma de nuvem para automação de testes oferece um bot de inteligência artificial (IA) que resolve os desafios de testes baseados em modelos, combinando o poder da IA com a intervenção humana.
Aqui está uma demonstração.
Quando você faz login no Digital.ai Continuous Testing Acesse sua conta e clique em Dispositivos; você verá uma lista de dispositivos disponíveis para o teste.
Agora, clique em um dispositivo:
Acesse a seção de Aplicativos e instale um aplicativo bancário de demonstração, o ERIBANK.
Após a instalação do aplicativo, inicie-o.
Ao clicar no botão de login, aparece uma mensagem de erro solicitando nome de usuário e senha.
Se você fornecer o nome de usuário e a senha, será direcionado para a próxima tela.
Portanto, sem o nome de usuário e a senha, você não tem muito o que testar aqui. Logo, você precisa encontrar maneiras de realizar mais testes.
Digital.ai Continuous Testing O aplicativo de bot de IA irá ajudá-lo a fazer isso.
Então, abra a página do aplicativo de IA e clique em criar um novo projeto.
Insira o nome do projeto e clique em Avançar.
Na tela seguinte, você precisa selecionar o aplicativo.
Você pode fazer o upload do aplicativo ou escolher um do repositório na nuvem e clicar em Criar Projeto.
Agora, clique em Iniciar Exploração. O bot de IA começará a explorar o aplicativo.
Na tela seguinte, dê um nome à exploração e selecione os dispositivos que deseja explorar. Para esta demonstração, foram selecionados 4 dispositivos.
Agora, a exploração começou.
Quando você vai à Digital.ai Continuous Testing Ao acessar o painel de controle e clicar em dispositivos, você poderá ver que 4 dispositivos estão executando o teste.
Agora, acesse a página do bot de IA e clique em Portões. Você verá que o bot já identificou um portão.
Ao clicar em desbloquear, você poderá verificar os detalhes do portão. Aqui, está sendo exibida a tela de login, que precisa da sua ajuda para ser desbloqueada.
Existem duas maneiras de fornecer essas informações. Você pode escrever um trecho de código usando Appium/Selenium ou simplesmente preencher este pequeno formulário com as credenciais do usuário, conforme mostrado abaixo:
- Nome de usuário => empresa
- Senha => empresa
- Entrar =>
Agora, clique em salvar.
Agora você pode ver que o portão está destrancado.
Agora, acesse a aba Explorações e clique no nome da exploração. Você poderá visualizar a atividade de exploração em formato gráfico.
Agora, o bot coletará as informações e continuará a exploração. Quando as credenciais do usuário forem fornecidas, ele passará pela tela de login e entrará na próxima tela. Os outros trabalhadores usarão essas informações para realizar diversas atividades de teste nos aplicativos, distribuindo o tempo de teste entre si.
Aqui, você pode ver que cada dispositivo está executando um teste diferente, verificando uma tela e funcionalidade diferentes.
Se você verificar a visualização gráfica da exploração agora, poderá ver um gráfico maior com várias atividades.
Se você verificar a aba de portões agora, poderá ver que foram identificados mais portões. (ex: MakePaymentActivity, MortageRequestOneActivity)
Por exemplo, clique em Desbloquear e forneça as informações para efetuar o pagamento.
Telefone=>111
Nome=>cara
Quantidade => 100
Selecione => Índia =>
Enviar =>
E clique em salvar. Agora, o bot usará essas informações para desbloquear o portal de pagamento e realizar mais explorações.
Agora, clique em salvar.
Você pode ver que o novo portão está destrancado. Se você verificar agora a visualização gráfica da exploração, poderá ver que o gráfico está se expandindo.
É possível visualizar todas as conexões entre as telas e a lógica por trás da funcionalidade do aplicativo em uma interface gráfica. A análise de execução também é coletada para diferentes casos de uso.
Teste casos de uso de bots de IA
Essa abordagem de automação de testes com IA baseada em modelos resolve diversos desafios. Aqui estão os mais importantes:
Auxiliar manual e de automação
O recurso auxiliar de navegação do aplicativo permite que você inicie seu aplicativo no estado desejado. Isso significa que você pode começar em qualquer tela do aplicativo. Da mesma forma, o auxiliar de automação permite que você encontre a árvore de visualização da interface do usuário (dump) de qualquer tela do aplicativo. Por exemplo, se você for um desenvolvedor Appium, poderá encontrar facilmente os elementos XPath, pois todo o modelo é salvo aqui.
Identificação de falhas do aplicativo
Este aplicativo de IA inclui um teste de identificação de falhas de aplicativos. Ao dimensionar o modelo e executar o teste em milhares de dispositivos com diferentes versões, fabricantes, tamanhos de tela e resoluções, ele identificará falhas e anomalias no seu aplicativo. Você também pode realizar um teste de fumaça.
Informações sobre o aplicativo
Após a exploração, a ferramenta também fornecerá a análise do teste.
Aqui você pode ver algumas informações sobre os testes. Por exemplo, será apresentado um resumo da pontuação geral da experiência do usuário (UX). Além disso, serão apresentadas anomalias de desempenho.
Nesta demonstração, fica claro que o
- O login está mais lento na versão 2.14.
- O iOS 14.1 está se comportando de maneira diferente na tela de transferência de dinheiro.
Outra descoberta importante é que uma nova atividade foi identificada na versão 2.34. Assim, ela identifica automaticamente as mudanças de tela no aplicativo em teste.
Auxiliar de automação
Se você usa Appium, essa ferramenta permite navegar até o local desejado no modelo e executar o código a partir dessa área. Isso significa que você pode reduzir significativamente o código de navegação do Appium, diminuindo a quantidade de código e, consequentemente, a complexidade do mesmo. Além disso, permite lidar de forma eficiente com pop-ups e eventos inesperados usando o recurso XPath Listener.
Resumo
Para aproveitar ao máximo a abordagem de testes baseada em modelos e, ao mesmo tempo, eliminar seus desafios, Digital.ai Continuous Testing A solução vem integrada com uma ferramenta de teste baseada em modelos e com inteligência artificial. Essa abordagem combina o bot de IA com um ser humano, permitindo que trabalhem juntos para construir um modelo para projetos de automação de testes. Com a exploração autônoma da aplicação e a rápida criação de grafos da aplicação, ela possibilita que os engenheiros de teste gerem e executem testes automatizados em um modelo e analisem os resultados rapidamente. Embora o bot de IA realize a maior parte das explorações, ele requer assistência humana para desbloquear certas áreas, como telas de login.
Agora, crie aplicativos melhores mais rapidamente com essa abordagem de desenvolvimento de baixo código!
Para ver mais, assista ao vídeo completo. Webcast sobre desenvolvimento low-code aqui.
Também recomendamos
VELOZES E FURIOSOS: Por que a IA híbrida supera a queima de tokens
É evidente que vivemos em tempos interessantes e de rápidas mudanças. Recentemente, sentei-me…
Repetir o processo é fácil. Saber o que te disseram, não.
Se você executar um teste Appium, já poderá tentar novamente…
Tentativas repetidas não corrigem um localizador defeituoso.
Um teste de login é aprovado na segunda-feira, falha na terça-feira e…