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.