Prévia do material em texto
UNIVERSIDADE PITÁGORAS UNOPAR ANHANGUERA SUPERIOR DE TECNOLOGIA EM DEVOPS MARCUS DE JESUS AZEVEDO DOS SANTOS ATIVIDADE PRÁTICA QUALIDADE E AUTOMAÇÃO DE TESTES NITERÓI 1 NITERÓI 2024 MARCUS DE JESUS AZEVEDO DOS SANTOS ATIVIDADE PRÁTICA QUALIDADE E AUTOMAÇÃO DE TESTES Trabalho apresentado à Universidade, como requisito parcial para a obtenção de média semestral nas disciplinas norteadoras do semestre letivo. Tutor (a): Rafael Ranieri Fassula NITERÓI 2 NITERÓI 2024 SUMÁRIO 1 INTRODUÇÃO ......................................................................................................... 3 2MÉTODOS E RESULTADOS .................................................................................... 4 21 ATIVIDADE 1 ......................................................................................................... 4 2.2 TÉCNICAS UTILIZADAS ....................................................................................... 5 2.3 CASOS DE TESTE ............................................................................................... 5 2.4 RESULTADOS E DISCUSSÃO ............................................................................. 6 3 CONCLUSÃO ........................................................................................................... 8 REFERÊNCIAS BIBLIOGRÁFICAS ............................................................................ 9 3 1 INTRODUÇÃO A automação de testes tem se tornado uma prática essencial no desenvolvimento de software, promovendo a confiabilidade, a eficiência e a manutenção da qualidade do código. Através da automação, é possível identificar falhas mais rapidamente, garantindo que o software funcione conforme esperado, mesmo em cenários complexos. Este portfólio tem como foco principal a prática de Qualidade e Automação de Testes, envolvendo atividades que exploram a escrita e validação de testes no ambiente online Replit, utilizando a linguagem Python. O primeiro passo foi acessar a plataforma Replit no endereço https://replit.com/languages/python3 para a criação e validação de testes automatizados. Essa ferramenta foi escolhida por oferecer um ambiente simplificado e acessível para a execução de códigos em Python diretamente no navegador. A atividade se concentrou em entender os princípios da escrita de testes, aplicando boas práticas e técnicas que asseguram a qualidade do software. Entre as atividades realizadas, destacou-se a implementação de um teste de caixa branca, cujo objetivo foi verificar a comparação de valores e identificar o maior valor em um conjunto de dados. Essa técnica permitiu um controle direto sobre a lógica interna do código, proporcionando uma análise detalhada do comportamento do sistema. Ao final da atividade, foi gerado um relatório que documenta as etapas do processo, os resultados obtidos e as lições aprendidas ao longo da prática. Por meio dessas práticas, o portfólio visa demonstrar o conhecimento adquirido sobre a importância da automação de testes, oferecendo uma base sólida para a aplicação de testes automatizados em projetos futuros. 4 2MÉTODOS E RESULTADOS 21 Atividade 1 1. Realização A função fornecida, chamada `maximo(a, b)`, recebe dois números inteiros como parâmetros e compara seus valores para determinar qual é o maior. O código foi acessado e validado no ambiente Replit, onde foi possível executar testes de caixa branca com a técnica de cobertura de código. A função foi implementada da seguinte maneira: def maximo(a, b): if a > b: print("O numero {} é o maior".format(a)) else: print("O numero {} é o maior".format(b)) maximo(10, 20) O teste de caixa branca foi realizado para verificar se a função cobria todos os casos possíveis de execução. Foram elaborados três casos de teste: 1. Quando o primeiro número é menor que o segundo. 2. Quando o segundo número é menor que o primeiro. 3. Quando ambos os números são iguais. 5 2.2 Técnicas Utilizadas Para a validação dos testes, utilizamos a técnica de cobertura de código, garantindo que todas as instruções dentro da função fossem executadas ao menos uma vez. Além disso, foram considerados os diferentes cenários de comparação de valores para cobrir todos os caminhos de execução possíveis. As técnicas de teste de valores limite e análise de fluxo de dados também foram utilizadas implicitamente ao testar diferentes combinações de valores, assegurando que a função lida corretamente com dados válidos em todos os cenários. 2.3 Casos de Teste A seguir estão os três casos de teste desenvolvidos para validar a função `maximo(a, b)`: 2.3.1. Caso de teste 1: Primeiro número menor que o segundo # Caso 1: a = 10, b = 20 print("Caso 1:") maximo(10, 20) • Valores testados: `a = 10`, `b = 20` • Resultado esperado: "O número 20 é o maior" • Resultado obtido: "O número 20 é o maior" • Explicação: Como a b será False, e o programa executará a instrução dentro do bloco else, retornando que b é o maior. • Conclusão: O teste foi bem-sucedido, pois a função retornou o valor correto quando o primeiro número é menor. 2.3.2 Caso de teste 2: Segundo número menor que o primeiro # Caso 2: a = 30, b = 20 print("\nCaso 2:") 6 maximo(30, 20) • Valores testados: `a = 30`, `b = 15` • Resultado esperado: "O número 30 é o maior" • Resultado obtido: "O número 30 é o maior" • Explicação: Como a > b, a condição a > b será True, e o programa executará a instrução dentro do bloco if, retornando que a é o maior. • Conclusão: O teste foi bem-sucedido, com o retorno correto quando o segundo número é menor. 2.3.3 Caso de teste 3: Números iguais # Caso 3: a = 25, b = 25 print("\nCaso 3:") maximo(25, 25) • Valores testados: `a = 25`, `b = 25` • Resultado esperado: "O número 25 é o maior" • Resultado obtido: "O número 25 é o maior" • Explicação: Como a e b são iguais, a condição a > b será False, e o programa executará a instrução dentro do bloco else, retornando que b (ou seja, 25) é o maior. Aqui, como ambos são iguais, o resultado pode ser tanto a quanto b. • Conclusão: O teste foi bem-sucedido, demonstrando que a função lida corretamente quando ambos os números são iguais. 2.4 Resultados e Discussão Os testes realizados mostraram que a função `maximo(a, b)` foi capaz de lidar corretamente com todas as situações de comparação de valores, retornando sempre o valor esperado. A cobertura de código foi completa, uma vez que todas as instruções da função foram executadas nos testes. O uso da técnica de cobertura de código foi eficaz para garantir que todas as instruções fossem testadas. Além disso, a função apresentou o comportamento 7 esperado em cenários de sucesso, tanto quando um número era maior que o outro, quanto quando ambos eram iguais, mostrando-se robusta o suficiente para o propósito proposto. Figura 1 – Teste 1. Fonte: O Autor (2024). Figura 2 – Teste 2. Fonte: O Autor (2024). Figura 3 – Teste 3. Fonte: O Autor (2024). Valores de Teste: Tabela 1 – Valores de Teste. Caso de Teste Valores de a Valores de b Resultado Esperado 1 10 20 "O número 20 é o maior" 2 30 20 "O número 30 é o maior" 8 3 25 25 "O número 25 é o maior" (ou a) Fonte: O Autor (2024). 3 CONCLUSÃO A realização deste portfólio de aula prática sobre Qualidade e Automação de Testes permitiu uma imersão nas técnicas e metodologias que sustentam o desenvolvimento de software com alto nível de qualidade. Atravésdas atividades realizadas na plataforma Replit, foi possível não apenas compreender a importância da automação de testes, mas também aplicar esses conceitos de forma prática, utilizando a linguagem Python para a escrita e validação de códigos. A execução de testes de caixa branca se destacou como uma das práticas mais relevantes, permitindo o controle detalhado sobre o comportamento interno do sistema e a validação de sua lógica. A implementação de casos de teste, como a comparação de valores em diferentes cenários, contribuiu para o fortalecimento do entendimento sobre a cobertura de código e a importância de garantir que todas as instruções do código sejam devidamente executadas e validadas. Além disso, a prática de automação de testes demonstrou ser uma ferramenta essencial para aumentar a eficiência no processo de desenvolvimento de software, possibilitando a identificação rápida de falhas e a correção de bugs antes da entrega final do produto. A experiência adquirida com o uso de ferramentas como o Replit e a aplicação de boas práticas de teste representam uma base sólida para futuras implementações de testes automatizados em projetos profissionais. Por fim, este portfólio consolidou a importância da automação de testes como um componente fundamental no ciclo de desenvolvimento de software, garantindo a entrega de produtos mais robustos, confiáveis e otimizados, alinhados às necessidades dos usuários e às exigências de qualidade do mercado. 9 REFERÊNCIAS BIBLIOGRÁFICAS CRUZ, Felipe. Python: Escreva seus primeiros programas. Casa do Código: São Paulo, 2015. HUNT, John. A Beginners Guide to Python 3 Programming. Springer International Publishing, 2019. REPLIT. Disponível em: https://replit.com/languages/python3. Acesso em 31 out. 2024.