Mind map
Testes automatizados
Map content
Testes automatizados
Qualidade
- Definição
- Gosto desta frase: Quality is a ‘state’… when expectations match the reality. Qualidade é um estado, quando as expectativas correspondem à realidade. Qualidade → SatisfaçãoSatisfação → Expectativas atendidas ou superadasatendimento das nossas expectativas, sejam elas explícitas ou implícitas.
- Cultura
- Historinha
- Eu sempre compro pizza na mesma pizzaria, costumo pedir os sabores que mais gosto após provar vários sabores. Sempre compro nesta pizzaria porque sei que as pizzas irão atender as minhas expectativas quanto ao sabor, tipo da massa, recheios, tempero, temperatura, pontualidade na entrega.
- Conclusão da historinha
- 1 - Qualidade leva à confiança. Se eu acredito na qualidade, isso faz com que eu confie no produto e volte a adquiri-lo. 2 - Confiança leva à popularidade. Quanto vocês apostam que eu já falei da Santo Disco para familiares, amigos? (agora pra vocês) 3 - Capacidade de produzir com qualidade leva à confiança na marca. Eu confio que o Fábio (dono) e as pessoas que trabalham com ele ou na execução do serviço são capazes, responsáveis e seguidoras das melhores práticas. No caso do Santo Disco é a confiança no produto sendo levada para a marca. Nisso, a percepção de qualidade das pizzas do Fábio está relacionada ao número de novos clientes que ele ganha, ao número de clientes que permanecem consumindo suas pizzas, e ao número de clientes que falam bem de sua marca. No desenvolvimento de software não é diferente. Podemos fazer vários paralelos com produtos e serviços de software. As conclusões finais serão as mesmas. Focar na qualidade é um dos fatores decisivos não apenas para a sobrevivência, mas também para o total sucesso do seu negócio.
- Objetivo da apresentação
- qualidade está relacionada às pessoas, sejam elas usuários, stakeholders, testadores, ou desenvolvedores. E se está relacionado às pessoas, sempre teremos margem para ambiguidades, conceitos relativos, aspectos culturais e opiniões divergentes. Então, com toda essa subjetividade, como saber que seu software atende aos padrões de qualidade esperados? teste de software visa garantir a qualidade, minimizando as incertezas e sistematizando os critérios de aceitação.
- “… Computadores são desenvolvidos para fazer trabalhos repetitivos. Quando você faz trabalhos repetitivos, os computadores se juntam para rir de você…” (Neil Ford)
- Computadores são bons em fazer trabalhos repetitivos e a execução de testes é quase sempre um trabalho repetitivo. A automação permitirá que você escreva o teste uma única vez e depois, de tempos em tempos, um robô executará todos os testes que você escreveu para o seu software. O seu time ganha confiança porque a automação cria uma espécie de rede de proteção evitando que resultados inesperados se propaguem, dando a possibilidade do time resolvê-los antes que cheguem nas mãos dos clientes. Os testes ficam mais baratos e seu cliente mais satisfeito por não encontrar erros no seu produto.
- Definição
Teste de Software
- O foco da etapa de testes é garantir que o software atenda aos requisitos especificados conforme defende Softex (2012)
- Conceitualmente é um processo que faz parte do desenvolvimento de qualquer aplicação — ou pelo menos deveria — e tem como principal intuito revelar falhas/bugs. O objetivo principal é chegar a um determinado nível de qualidade. Nesta definição encontramos a palavra qualidade que é exatamente a proposta de trabalharmos com testes de software.
O que é e quais as vantagens dos testes automatizados?
- Para Veloso (2014), um teste automatizado é o uso da inteligência de software que controla a execução e a aderência dos resultados obtidos comparando-os com os resultados esperados, tentando alcançar através de ferramentas e técnicas adequadas um processo de qualidade aceitável.
- Ao automatizar os testes continuamente, a equipe poderá rodar testes em vários cenários rapidamente e reduzir o risco de redundância e vazamento de defeitos. O número de dispositivos e plataformas tecnológicas para o usuário final continuará a crescer, a capacidade de acompanhar e o sucesso disto está diretamente ligado a habilidade em automatizar. Com um processo sólido de testes de software implementado, é possível dedicar mais tempo na criação e aprimoramento de novas funções, assim como na melhoria da qualidade da entrega, resultando em aumento de competitividade no mercado.
- Esse é o primeiro erro na construção de um sistema, isso porque você não tem garantia que todas funcionalidades estarão sempre funcionando em harmonia. No sistema citado acima, ocorreu uma atualização de versão do Django e foi o suficiente para quebrar a aplicação.
- você ganha mais segurança e maturidade no seu código e isso pode evitar dor de cabeça no futuro.
- garante a menor incidência de erros no pós entrega.
- O objetivo final dos testes automatizados é minimizar os problemas da abordagem manual, o tempo despendido e, consequentemente, o custo final.
- Automatizar vai ajudar a reduzir tempo? Vai suprir as demandas do cliente? Será possível reduzir custos? A qualidade do teste manual será mantida?
- Essas são vantagens significativas para o uso do teste de softwares automatizados. Testes automatizados oferecem: qualidade, redução de custos e melhor retorno sobre investimento, o ROI.
Quem ganha com a automatização?
- Para Meszaros e Wesley (2007), uma forma de tornar os testes de software mais independentes comparados com a intervenção humana, é o uso de testes automatizados como uma boa prática que consiste na criação de scripts que verificam um sistema em teste, desta forma é possível capturar comportamentos e retornos de maneira automática e dinâmica. O autor defende que os testes automatizados afetam diretamente a qualidade dos sistemas de software, portanto agrega valor ao produto, mesmo que os artefatos adicionais produzidos não sejam visíveis para os usuários finais dos sistemas. Estes testes podem ser divididos em diversos tipos, o que facilita a manutenção dos mesmos.
- Aumento da carga de trabalho A ausência de testes automatizados resulta no aumento exponencial da carga de trabalho (passado e presente precisam ser testados), elevando o custo financeiro do time e, como consequência, diminuindo o tempo de resposta para os clientes. Podemos fazer um paralelo com o aquecimento global. No início, o crescimento é muito sutil e, quando nos damos conta, já é praticamente impossível reverter o problema.
Minha jornada até aqui!
- O Hedcler me deu um desafio de criar os testes para as APIs do produtos do iQ, além de documenta-las.
- Aprendizados
- Fazia um bom tempo que não me motivava no trabalho com os testes, pois sempre foi muito massante a quantidade de testes manuais. Hoje, com esta oportunidade de estruturar melhor a área e trabalhar com automação tem me motivado muito. Estou fazendo 3 cursos e buscando o máximo de conhecimento para agregar na área de QA, DEV e demais áreas
- Dificuldades
- Nunca ter trabalhado com APIs, com NodeJs, com o Jest. Entender a estrutura do projeto, os matchers do Jest
- Desafios
- Aprender a fazer um planejamento para automação; Planejar é extremamente importante para garantir que todo o time siga as mesmas técnicas e métodos, e não torne, futuramente, o projeto algo de difícil manutenção. Além de continuar estudando e implementando os testes de API, estruturar os outros tipos de testes (funcional/UI).
- Humble e Farley (2010) afirmam que no mundo DevOps e de entrega contínua, testadores colaboram com os desenvolvedores e usuários para a escrita de testes automatizados desde o início do projeto, escrevendo testes antes que os desenvolvedores iniciem seus trabalhos nessas funcionalidades.
- mensurar o ROI da automação de testes
- Em tempos de metodologia ágil, os testes, teoricamente, passam a ser a melhor documentação sobre o produto desenvolvido, servindo de referência para quem está mexendo na aplicação pela primeira vez.
- A escrita dos cenários é um momento extremamente rico, quando os seus construtores podem explorar toda a capacidade criativa para levantar fluxos funcionais e não funcionais que não foram pensados durante o processo de planejamento da funcionalidade. Após a criação do cenário, os mesmos podem ser apresentados ao time, que decidirá quais serão automatizados e quais serão executados manualmente. A aprovação do time para os cenários levantados é extremamente importante, pois alinha com todos os envolvidos as expectativas do projeto de automação.
- 1. Documente os requisitos de teste Cada teste envolve a parte inicial como coleta de requisitos. Assim, antes de criar casos de teste de API, é muito importante entender detalhes sobre o aplicativo, como: Qual é o objetivo da API?Qual é o workflow do aplicativo? (Forneça uma visão geral da arquitetura completa do aplicativo)Quais são as integrações suportadas pela API? (Dê exemplos de tipos de aplicativos e sistemas, juntamente com tecnologia, ambiente e plataforma)Quais são os recursos e funções da API?
- 2. Defina o resultado dos testes Já achou desafiador especificar esse resultado? Estamos falando sobre cenários pass/fail.O que pode ser feito nessa situação?Podemos comparar os testes da API com suas respostas ou com o comportamento entre as várias chamadas da API. 3. Concentre-se em pequenas funções da API pequenas funções de API, podemos escrever um pequeno código de teste de API e testar se o resultado é esperado ou inesperado.
- Testes automatizados da API do File Manager
- Quando se deseja melhorar o desempenho da equipe e acelerar o processo de desenvolvimento sem perder a qualidade, uma possível saída é adotar o procedimento de automação de testes nas API’s. Automatizar os testes em API’s é fazer com que as diversas circunstâncias que os métodos de uma API possam enfrentar durante sua execução sejam previstas e tratadas de maneira automática, de forma a detectar rapidamente problemas presentes nesses métodos, facilitando a correção. Peguei 2 bugs - relatar
- Framework - JEST
- Testes em APIs
- O teste de API é igualmente importante como qualquer outro tipo de teste de aplicativo, pois ajuda a garantir o funcionamento, o desempenho e a confiabilidade de diferentes aplicativos e sistemas baseados em dados, ao certificar as trocas e comunicações entre aplicativos, sistemas, bancos de dados e redes. Além disso, quando analisamos as últimas tendências de teste de software, os testes de API estão na lista de prioridades para verificação das dependências dos aplicativos com outras aplicações. É por isso que precisamos nos concentrar mais no teste de API.
- Em termos práticos, isto significa que a principal vantagem dessa abordagem é a criação de testes complexos e robustos por meio de uma linguagem de programação de alto nível (Java, C++, C#, etc). Por esta razão, os testes automatizados baseados em API viabilizam a criação de testes automatizados com maior profundidade e amplitude, sem que seja necessário interagir com a interface gráfica da aplicação. Os testes automatizados baseados em API representam a evolução natural dos testes automatizados baseados na linha de comando. No entanto, a robustez e a flexibilidade oferecidas por esta abordagem exigem grandes modificações no código da aplicação para criar e expor as APIs ao mundo exterior.
Perguntas iniciais
- O que é qualidade? O que é qualidade de software? O que são testes automatizados? Qual(is) a(s) importância dos testes automatizados? O que se ganha com a automação dos testes?
Information
- Description
- Mind Map on Testes automatizados, created by Nando Medeiros on 14/07/2019.
- Created by
- Nando Medeiros · Jul 2019
- Updated
- Jul 15, 2019
- Views
- 1
- Rating