12
Engenharia de Software
UNOPAR
36
Engenharia de Software
UNOPAR
12
Engenharia de Software
UNOPAR
34
Engenharia de Software
UNOPAR
16
Engenharia de Software
UNOPAR
7
Engenharia de Software
UNOPAR
7
Engenharia de Software
UNOPAR
33
Engenharia de Software
UNOPAR
21
Engenharia de Software
UNOPAR
10
Engenharia de Software
UNOPAR
Texto de pré-visualização
Público Teste e Manutenção de Software Roteiro Aula Prática 2 Público ROTEIRO DE AULA PRÁTICA NOME DA DISCIPLINA TESTE E MANUTENÇÃO DE SOFTWARE Unidade U3 TÉCNICAS DE TESTE Aula A2 TÉCNICAS DE TESTE I Tempo previsto de execução de aula prática 3h CAMPO OBRIGATÓRIO NÃO APARECER EM NENHUM RAP OBJETIVOS campo obrigatório exibição para todos Definição dos objetivos da aula prática Realizar teste de caixa branca para comparar valores e retornar o maior valor encontrado INFRAESTRUTURA OBRIGATÓRIO SE HOUVER EXIBIÇÃO DOCENTETUTOR Instalações Materiais de consumo Equipamentos NOME DO LABORATÓRIO Laboratório de Informática Equipamentos Computador 1 unid 1 aluno SOLUÇÃO DIGITAL OBRIGATÓRIO SE HOUVER APARECER PARA TODOS httpsreplitcomlanguagespython3 O Replit Languages Python3 é um website de edição de código para Python EQUIPAMENTO DE PROTEÇÃO INDIVIDUAL EPI CAMPO OBRIGATÓRIO APARECER PARA TODOS Não se aplica PROCEDIMENTOS PRÁTICOS OBRIGATÓRIO TODOS 3 Público ProcedimentoAtividade nº 1 Acessar o web site httpsreplitcomlanguagespython3 para escrita e validação da codificação dos testes Atividade proposta Os testes de caixa branca também conhecidos como testes estruturais ou de código visam avaliar o comportamento interno do sistema testando a lógica fluxo de dados caminhos de execução entre outros aspectos Na prática os testes de caixa branca envolvem a análise do códigofonte do software e a criação de casos de teste que cubram todas as possíveis condições de execução do código incluindo casos de sucesso e de falha Algumas técnicas comuns de teste de caixa branca incluem 1 Cobertura de código essa técnica mede a quantidade de código que foi executada durante os testes O objetivo é garantir que todas as instruções do código sejam executadas pelo menos uma vez 2 Análise de fluxo de dados essa técnica verifica se os dados são processados corretamente dentro do sistema identificando possíveis erros de lógica 3 Teste de caminho crítico essa técnica visa identificar os caminhos mais importantes do código e testálos minuciosamente para garantir que o software esteja funcionando corretamente 4 Teste de valores limite essa técnica avalia o comportamento do software quando os valores de entrada são máximos mínimos ou próximos aos limites especificados Os testes de caixa branca são importantes para garantir a qualidade do software identificando possíveis falhas de lógica e comportamento Esses testes são realizados por desenvolvedores ou profissionais de teste especializados em análise de código e podem ser automatizados para facilitar o processo de teste Você deverá Acessar o website httpsreplitcomlanguagespython3 O replit é um website de edição de código para Python que permite a digitação e a validação de códigos OBS Não será necessário realizar o login A função máxima é bastante útil em diversas situações em que precisamos determinar qual é o maior valor entre dois valores ou em uma lista de valores Vamos supor que temos uma função em Python que recebe dois números inteiros como entrada e retorna o maior entre eles abaixo a função máxima que realiza a comparação de valores def maximoa b if a b return printO numero é o maiorformata else return printO numero é o maiorformatb maximo1020 OBS lembrese que em python é validado espaços em brancos e a identação do código 4 Público Para realizar o teste de caixa branca da função acima podemos utilizar a técnica de cobertura de código e criar casos de teste que cubram todas as instruções presentes na função Sendo assim crie uma sequência de testes que valide as seguintes questões 1 Para o primeiro caso de teste verificar se a função retorna corretamente o maior número quando o primeiro número é menor que o segundo 2 O segundo caso de teste verificar se a função retorna corretamente o maior número quando o segundo número é menor que o primeiro 3 O terceiro caso de teste verificar se a função retorna corretamente um dos números quando ambos são iguais Descreva a lista dos valores utilizados para responder as questões 1 2 e 3 acima Checklist 1 Acessar o site httpsreplitcomlanguagespython3 2 Executar a função maximo para a comparação de valores descrita no bloco de Procedimentos para a realização da atividade no quadro do lado esquerdo do website 3 Após digitar a função clique no botão Run 4 Validar a função RESULTADOS obrigatório aparecer para todos Resultados de Aprendizagem Ao concluir esta atividade o estudante deverá ser capaz de Compreender e aplicar técnicas de teste de caixa branca por meio da análise e execução de código em Python utilizando a ferramenta Replit Mais especificamente esperase que o aluno demonstre 1 Entendimento conceitual e prático dos testes de caixa branca incluindo a cobertura de código análise de fluxo de dados e teste de valores limite 2 Capacidade de implementar e validar casos de teste que verifiquem o comportamento interno de uma função no caso a função maximoa b cobrindo diferentes cenários de execução 3 Habilidade em identificar caminhos de execução e resultados esperados para situações distintas quando o primeiro valor é menor maior ou igual ao segundo 4 Competência no uso de ferramentas de edição e execução de código online Replit sem dependência de ambiente local validando o funcionamento do script e interpretando as saídas produzidas 5 Elaboração de relatório técnico sintetizando as etapas do teste os valores de entrada os resultados obtidos e a análise dos comportamentos observados evidenciando a compreensão dos princípios de garantia de qualidade e validação de software ESTUDANTE VOCÊ DEVERÁ ENTREGAR não obrigatório aparecer para todos Descrição orientativa sobre a entregada da comprovação da aula prática 5 Público Elaborar um relatório que deverá conter introdução métodos resultados e conclusão sobre o assunto desenvolvido em aula prática que deverá conter a lista de valores das questões 1 2 e 3 O arquivo deverá conter Capa Folha de rosto com os dados da disciplina e do aluno Métodos Explique as técnicas que utilizou Resultado Mostre o que conseguiu Evidência prints completa do exercício Referências bibliográficas quando houver REFERÊNCIAS BIBLIOGRÁFICAS não obrigatório aparecer para todos Descrição em abnt das referências utilizadas DELAMARO Marcio Introdução ao Teste de Software 2 ed Rio de Janeiro GEN LTC 2016 GONÇALVEZ Priscila F BARRETO Jeanine S ZENKER Aline M et al Testes de software e gerência de configuração Porto Alegre SAGAH 2019 WAZLAWICK Raul S Introdução a Algoritmos e Programação com Python Uma Abordagem Dirigida por Testes Rio de Janeiro GEN LTC 2018 RJ 2025 ALUNO UNIVERSIDADE PITÁGORAS UNOPAR ANHANGUERA TESTE E MANUTENÇÃO DE SOFTWARE RJ 2025 TESTE E MANUTENÇÃO DE SOFTWARE Atividade Prática para o curso de Engenharia Mecânica apresentado como requisito parcial para a obtenção de média na disciplina Manufatura Mecânica Conformação e Soldagem Tutora à Distância ALUNO SUMÁRIO 1 INTRODUÇÃO3 2 MÉTODOS4 3 RESULTADOS6 4 CONCLUSÃO8 5 REFERÊNCIAS BIBLIOGRÁFICAS9 1 INTRODUÇÃO Os testes de caixa branca também conhecidos como testes estruturais testes baseados em código ou testes orientados à lógica assumem um papel fundamental e insubstituível na engenharia de software moderna Em oposição aos testes de caixa preta que avaliam o sistema de uma perspetiva externa validando apenas as entradas fornecidas e as saídas obtidas sem conhecimento prévio do funcionamento interno a abordagem de caixa branca exige um conhecimento profundo da arquitetura do software Esta técnica examina minuciosamente a lógica interna o fluxo de dados as condições e os caminhos de execução do códigofonte A principal vantagem deste método reside na sua capacidade de identificar erros ocultos lógicas ineficientes vulnerabilidades de segurança e falhas estruturais que poderiam passar despercebidos num teste superficial de usabilidade Para garantir a eficácia desta abordagem utilizamse métricas específicas tais como a cobertura de comandos garantir que cada linha de código é executada e a cobertura de ramificações ou decisões garantir que todos os ramos lógicos como os blocos gerados por ifelse são percorridos Nesta aula prática o foco principal é aplicar a técnica de cobertura de código sobre uma função escrita na linguagem Python cuja finalidade é comparar dois valores inteiros distintos ou iguais e determinar qual é o maior A atividade tem como meta assegurar que todas as instruções e ramificações da função sejam executadas de forma exaustiva e validadas através de casos de teste estruturados Ao final desta prática esperase comprovar que o algoritmo não apenas compila mas reage de forma previsível e segura perante diferentes cenários de input 3 2 MÉTODOS Para a execução técnica dos testes adotouse a linguagem de programação Python reconhecida pela sua sintaxe limpa e tipagem dinâmica o que facilita a criação rápida de scripts de validação O ambiente escolhido para a edição e execução do código foi a plataforma web Replit httpsreplitcomlanguagespython3 A escolha desta ferramenta baseada na nuvem cloudbased justificase pela sua acessibilidade eliminando a necessidade de configurações complexas de ambiente local e pela sua capacidade de fornecer um console interativo instantâneo para a visualização dos resultados de compilação e execução A estratégia de teste selecionada foi a Cobertura de Código mais especificamente a Cobertura de RamificaçõesBranch Coverage com um foco rigoroso na análise dos caminhos lógicos de decisão presentes na estrutura condicional Durante a fase de análise estática preliminar constatouse que o código original fornecido no roteiro apresentava falhas de sintaxe que impediriam a sua execução Sendo Python uma linguagem altamente dependente de pontuação estrutural e formatação correta de strings foram realizadas as seguintes intervenções técnicas 1 Correção do condicional Adição dos dois pontos no final da instrução if a b obrigatórios em Python para iniciar um novo bloco de código 2 Correção da função de formatação Inserção das chaves dentro das strings ex O numero é o maior para atuar como marcadores de posição placeholders para a função format que de outra forma não conseguiria injetar os valores das variáveis dinamicamente no texto O código estabilizado corrigido e submetido aos testes foi def maximoa b if a b return printO numero é o maiorformata else return printO numero é o maiorformatb Para garantir uma cobertura de 100 dos caminhos da função a 4 metodologia englobou o planeamento de três cenários de teste distintos Estes cenários foram desenhados com base em princípios semelhantes aos da Análise de Valores Limite Boundary Value Analysis forçando o algoritmo a lidar com as três únicas relações matemáticas possíveis entre dois números 1 Primeiro valor estritamente menor que o segundo Para validar a execução do bloco else 2 Primeiro valor estritamente maior que o segundo Para validar a execução do bloco if 3 Ambos os valores exatamente iguais Para validar o comportamento de limite do algoritmo face a uma ambiguidade matemática onde nenhum é estritamente o maior 5 3 RESULTADOS Abaixo estão descritos de forma detalhada os valores selecionados para responder às diretrizes da atividade o comportamento lógico esperado face à estrutura do código e a análise crítica dos resultados reais obtidos através do console interativo do Replit 31 Caso de Teste 1 Primeiro número menor que o segundo Valores de Entrada a 10 b 20 Chamada no script maximo10 20 Comportamento Lógico Esperado Ao avaliar a instrução if 10 20 o interpretador Python resolve a expressão como False Consequentemente o desvio condicional ignora o primeiro bloco de código e direciona o fluxo de execução para o bloco else O sistema deve extrair o valor da variável b e formatálo na string Resultado Obtido O console imprimiu a mensagem O numero 20 é o maior O teste foi validado com sucesso comprovando o correto funcionamento do ramo alternativo da função 32 Caso de Teste 2 Segundo número menor que o primeiro Valores de Entrada a 50 b 30 Chamada no script maximo50 30 Comportamento Lógico Esperado Neste cenário invertido a instrução if 50 30 é avaliada como True O fluxo de execução entra imediatamente no bloco principal do if ignorando completamente o else O sistema deve utilizar a variável a Resultado Obtido O console imprimiu a mensagem O numero 50 é o maior O teste foi validado com sucesso certificando o funcionamento do ramo primário da função e atestando que a cobertura de ramificações total Branch Coverage foi alcançada 33 Caso de Teste 3 Ambos os números são iguais Cenário de Limite Valores de Entrada a 15 b 15 Chamada no script maximo15 15 Comportamento Lógico Esperado Sendo os valores idênticos a condição estrita if 15 15 resulta inevitavelmente em False Assim o fluxo de execução é encaminhado para o bloco else imprimindo o valor de b Resultado Obtido e Análise Crítica O console imprimiu O numero 15 é o maior O teste foi concluído com sucesso do ponto de vista operacional pois o programa não falhou crash e devolveu o valor numérico correto aplicável à 6 situação Contudo sob uma perspetiva de rigor semântico e de experiência do utilizador este teste de caixa branca revela uma oportunidade de melhoria refatoração A mensagem impressa sugere a existência de um número maior quando na verdade existe um empate técnico A inclusão de uma condição suplementar ex elif a b tornaria o software mais preciso e robusto 4 Evidências da Execução 7 4 CONCLUSÃO A realização desta aula prática revelouse um exercício essencial para consolidar a compreensão teórica e prática sobre os testes de caixa branca Através da aplicação de técnicas de cobertura de código demonstrouse como a definição metódica de casos de teste abrangendo os cenários maior menor e igual é vital para garantir que 100 dos caminhos lógicos de uma estrutura de decisão ifelse sejam exercitados e validados Adicionalmente esta atividade sublinhou que o papel de um testador ou engenheiro de qualidade vai muito além da simples execução de scripts A necessidade de realizar uma análise crítica inicial ao códigofonte que resultou na identificação e correção preventiva de falhas de sintaxe na formatação e na declaração condicional demonstrou que a inspeção estática do código é o primeiro passo crucial antes de qualquer validação dinâmica A deteção do comportamento semântico dúbio no cenário de igualdade reforçou ainda mais como estes testes ajudam a descobrir não apenas bugs de execução mas também deficiências lógicas na comunicação do sistema com o utilizador Por fim o uso da plataforma cloud Replit provou ser altamente eficaz e ágil Facilitou uma abordagem focada diretamente na lógica e no diagnóstico do código evidenciando que no ciclo de vida de desenvolvimento de software moderno SDLC dominar a lógica de validação estrutural é uma competência fundamental para a entrega de aplicações resilientes seguras e com altos níveis de garantia de qualidade 8 5 REFERÊNCIAS BIBLIOGRÁFICAS DELAMARO Marcio Introdução ao Teste de Software 2 ed Rio de Janeiro GEN LTC 2016 GONÇALVEZ Priscila F BARRETO Jeanine S ZENKER Aline M et al Testes de software e gerência de configuração Porto Alegre SAGAH 2019 WAZLAWICK Raul S Introdução a Algoritmos e Programação com Python Uma Abordagem Dirigida por Testes Rio de Janeiro GEN LTC 2018 9
12
Engenharia de Software
UNOPAR
36
Engenharia de Software
UNOPAR
12
Engenharia de Software
UNOPAR
34
Engenharia de Software
UNOPAR
16
Engenharia de Software
UNOPAR
7
Engenharia de Software
UNOPAR
7
Engenharia de Software
UNOPAR
33
Engenharia de Software
UNOPAR
21
Engenharia de Software
UNOPAR
10
Engenharia de Software
UNOPAR
Texto de pré-visualização
Público Teste e Manutenção de Software Roteiro Aula Prática 2 Público ROTEIRO DE AULA PRÁTICA NOME DA DISCIPLINA TESTE E MANUTENÇÃO DE SOFTWARE Unidade U3 TÉCNICAS DE TESTE Aula A2 TÉCNICAS DE TESTE I Tempo previsto de execução de aula prática 3h CAMPO OBRIGATÓRIO NÃO APARECER EM NENHUM RAP OBJETIVOS campo obrigatório exibição para todos Definição dos objetivos da aula prática Realizar teste de caixa branca para comparar valores e retornar o maior valor encontrado INFRAESTRUTURA OBRIGATÓRIO SE HOUVER EXIBIÇÃO DOCENTETUTOR Instalações Materiais de consumo Equipamentos NOME DO LABORATÓRIO Laboratório de Informática Equipamentos Computador 1 unid 1 aluno SOLUÇÃO DIGITAL OBRIGATÓRIO SE HOUVER APARECER PARA TODOS httpsreplitcomlanguagespython3 O Replit Languages Python3 é um website de edição de código para Python EQUIPAMENTO DE PROTEÇÃO INDIVIDUAL EPI CAMPO OBRIGATÓRIO APARECER PARA TODOS Não se aplica PROCEDIMENTOS PRÁTICOS OBRIGATÓRIO TODOS 3 Público ProcedimentoAtividade nº 1 Acessar o web site httpsreplitcomlanguagespython3 para escrita e validação da codificação dos testes Atividade proposta Os testes de caixa branca também conhecidos como testes estruturais ou de código visam avaliar o comportamento interno do sistema testando a lógica fluxo de dados caminhos de execução entre outros aspectos Na prática os testes de caixa branca envolvem a análise do códigofonte do software e a criação de casos de teste que cubram todas as possíveis condições de execução do código incluindo casos de sucesso e de falha Algumas técnicas comuns de teste de caixa branca incluem 1 Cobertura de código essa técnica mede a quantidade de código que foi executada durante os testes O objetivo é garantir que todas as instruções do código sejam executadas pelo menos uma vez 2 Análise de fluxo de dados essa técnica verifica se os dados são processados corretamente dentro do sistema identificando possíveis erros de lógica 3 Teste de caminho crítico essa técnica visa identificar os caminhos mais importantes do código e testálos minuciosamente para garantir que o software esteja funcionando corretamente 4 Teste de valores limite essa técnica avalia o comportamento do software quando os valores de entrada são máximos mínimos ou próximos aos limites especificados Os testes de caixa branca são importantes para garantir a qualidade do software identificando possíveis falhas de lógica e comportamento Esses testes são realizados por desenvolvedores ou profissionais de teste especializados em análise de código e podem ser automatizados para facilitar o processo de teste Você deverá Acessar o website httpsreplitcomlanguagespython3 O replit é um website de edição de código para Python que permite a digitação e a validação de códigos OBS Não será necessário realizar o login A função máxima é bastante útil em diversas situações em que precisamos determinar qual é o maior valor entre dois valores ou em uma lista de valores Vamos supor que temos uma função em Python que recebe dois números inteiros como entrada e retorna o maior entre eles abaixo a função máxima que realiza a comparação de valores def maximoa b if a b return printO numero é o maiorformata else return printO numero é o maiorformatb maximo1020 OBS lembrese que em python é validado espaços em brancos e a identação do código 4 Público Para realizar o teste de caixa branca da função acima podemos utilizar a técnica de cobertura de código e criar casos de teste que cubram todas as instruções presentes na função Sendo assim crie uma sequência de testes que valide as seguintes questões 1 Para o primeiro caso de teste verificar se a função retorna corretamente o maior número quando o primeiro número é menor que o segundo 2 O segundo caso de teste verificar se a função retorna corretamente o maior número quando o segundo número é menor que o primeiro 3 O terceiro caso de teste verificar se a função retorna corretamente um dos números quando ambos são iguais Descreva a lista dos valores utilizados para responder as questões 1 2 e 3 acima Checklist 1 Acessar o site httpsreplitcomlanguagespython3 2 Executar a função maximo para a comparação de valores descrita no bloco de Procedimentos para a realização da atividade no quadro do lado esquerdo do website 3 Após digitar a função clique no botão Run 4 Validar a função RESULTADOS obrigatório aparecer para todos Resultados de Aprendizagem Ao concluir esta atividade o estudante deverá ser capaz de Compreender e aplicar técnicas de teste de caixa branca por meio da análise e execução de código em Python utilizando a ferramenta Replit Mais especificamente esperase que o aluno demonstre 1 Entendimento conceitual e prático dos testes de caixa branca incluindo a cobertura de código análise de fluxo de dados e teste de valores limite 2 Capacidade de implementar e validar casos de teste que verifiquem o comportamento interno de uma função no caso a função maximoa b cobrindo diferentes cenários de execução 3 Habilidade em identificar caminhos de execução e resultados esperados para situações distintas quando o primeiro valor é menor maior ou igual ao segundo 4 Competência no uso de ferramentas de edição e execução de código online Replit sem dependência de ambiente local validando o funcionamento do script e interpretando as saídas produzidas 5 Elaboração de relatório técnico sintetizando as etapas do teste os valores de entrada os resultados obtidos e a análise dos comportamentos observados evidenciando a compreensão dos princípios de garantia de qualidade e validação de software ESTUDANTE VOCÊ DEVERÁ ENTREGAR não obrigatório aparecer para todos Descrição orientativa sobre a entregada da comprovação da aula prática 5 Público Elaborar um relatório que deverá conter introdução métodos resultados e conclusão sobre o assunto desenvolvido em aula prática que deverá conter a lista de valores das questões 1 2 e 3 O arquivo deverá conter Capa Folha de rosto com os dados da disciplina e do aluno Métodos Explique as técnicas que utilizou Resultado Mostre o que conseguiu Evidência prints completa do exercício Referências bibliográficas quando houver REFERÊNCIAS BIBLIOGRÁFICAS não obrigatório aparecer para todos Descrição em abnt das referências utilizadas DELAMARO Marcio Introdução ao Teste de Software 2 ed Rio de Janeiro GEN LTC 2016 GONÇALVEZ Priscila F BARRETO Jeanine S ZENKER Aline M et al Testes de software e gerência de configuração Porto Alegre SAGAH 2019 WAZLAWICK Raul S Introdução a Algoritmos e Programação com Python Uma Abordagem Dirigida por Testes Rio de Janeiro GEN LTC 2018 RJ 2025 ALUNO UNIVERSIDADE PITÁGORAS UNOPAR ANHANGUERA TESTE E MANUTENÇÃO DE SOFTWARE RJ 2025 TESTE E MANUTENÇÃO DE SOFTWARE Atividade Prática para o curso de Engenharia Mecânica apresentado como requisito parcial para a obtenção de média na disciplina Manufatura Mecânica Conformação e Soldagem Tutora à Distância ALUNO SUMÁRIO 1 INTRODUÇÃO3 2 MÉTODOS4 3 RESULTADOS6 4 CONCLUSÃO8 5 REFERÊNCIAS BIBLIOGRÁFICAS9 1 INTRODUÇÃO Os testes de caixa branca também conhecidos como testes estruturais testes baseados em código ou testes orientados à lógica assumem um papel fundamental e insubstituível na engenharia de software moderna Em oposição aos testes de caixa preta que avaliam o sistema de uma perspetiva externa validando apenas as entradas fornecidas e as saídas obtidas sem conhecimento prévio do funcionamento interno a abordagem de caixa branca exige um conhecimento profundo da arquitetura do software Esta técnica examina minuciosamente a lógica interna o fluxo de dados as condições e os caminhos de execução do códigofonte A principal vantagem deste método reside na sua capacidade de identificar erros ocultos lógicas ineficientes vulnerabilidades de segurança e falhas estruturais que poderiam passar despercebidos num teste superficial de usabilidade Para garantir a eficácia desta abordagem utilizamse métricas específicas tais como a cobertura de comandos garantir que cada linha de código é executada e a cobertura de ramificações ou decisões garantir que todos os ramos lógicos como os blocos gerados por ifelse são percorridos Nesta aula prática o foco principal é aplicar a técnica de cobertura de código sobre uma função escrita na linguagem Python cuja finalidade é comparar dois valores inteiros distintos ou iguais e determinar qual é o maior A atividade tem como meta assegurar que todas as instruções e ramificações da função sejam executadas de forma exaustiva e validadas através de casos de teste estruturados Ao final desta prática esperase comprovar que o algoritmo não apenas compila mas reage de forma previsível e segura perante diferentes cenários de input 3 2 MÉTODOS Para a execução técnica dos testes adotouse a linguagem de programação Python reconhecida pela sua sintaxe limpa e tipagem dinâmica o que facilita a criação rápida de scripts de validação O ambiente escolhido para a edição e execução do código foi a plataforma web Replit httpsreplitcomlanguagespython3 A escolha desta ferramenta baseada na nuvem cloudbased justificase pela sua acessibilidade eliminando a necessidade de configurações complexas de ambiente local e pela sua capacidade de fornecer um console interativo instantâneo para a visualização dos resultados de compilação e execução A estratégia de teste selecionada foi a Cobertura de Código mais especificamente a Cobertura de RamificaçõesBranch Coverage com um foco rigoroso na análise dos caminhos lógicos de decisão presentes na estrutura condicional Durante a fase de análise estática preliminar constatouse que o código original fornecido no roteiro apresentava falhas de sintaxe que impediriam a sua execução Sendo Python uma linguagem altamente dependente de pontuação estrutural e formatação correta de strings foram realizadas as seguintes intervenções técnicas 1 Correção do condicional Adição dos dois pontos no final da instrução if a b obrigatórios em Python para iniciar um novo bloco de código 2 Correção da função de formatação Inserção das chaves dentro das strings ex O numero é o maior para atuar como marcadores de posição placeholders para a função format que de outra forma não conseguiria injetar os valores das variáveis dinamicamente no texto O código estabilizado corrigido e submetido aos testes foi def maximoa b if a b return printO numero é o maiorformata else return printO numero é o maiorformatb Para garantir uma cobertura de 100 dos caminhos da função a 4 metodologia englobou o planeamento de três cenários de teste distintos Estes cenários foram desenhados com base em princípios semelhantes aos da Análise de Valores Limite Boundary Value Analysis forçando o algoritmo a lidar com as três únicas relações matemáticas possíveis entre dois números 1 Primeiro valor estritamente menor que o segundo Para validar a execução do bloco else 2 Primeiro valor estritamente maior que o segundo Para validar a execução do bloco if 3 Ambos os valores exatamente iguais Para validar o comportamento de limite do algoritmo face a uma ambiguidade matemática onde nenhum é estritamente o maior 5 3 RESULTADOS Abaixo estão descritos de forma detalhada os valores selecionados para responder às diretrizes da atividade o comportamento lógico esperado face à estrutura do código e a análise crítica dos resultados reais obtidos através do console interativo do Replit 31 Caso de Teste 1 Primeiro número menor que o segundo Valores de Entrada a 10 b 20 Chamada no script maximo10 20 Comportamento Lógico Esperado Ao avaliar a instrução if 10 20 o interpretador Python resolve a expressão como False Consequentemente o desvio condicional ignora o primeiro bloco de código e direciona o fluxo de execução para o bloco else O sistema deve extrair o valor da variável b e formatálo na string Resultado Obtido O console imprimiu a mensagem O numero 20 é o maior O teste foi validado com sucesso comprovando o correto funcionamento do ramo alternativo da função 32 Caso de Teste 2 Segundo número menor que o primeiro Valores de Entrada a 50 b 30 Chamada no script maximo50 30 Comportamento Lógico Esperado Neste cenário invertido a instrução if 50 30 é avaliada como True O fluxo de execução entra imediatamente no bloco principal do if ignorando completamente o else O sistema deve utilizar a variável a Resultado Obtido O console imprimiu a mensagem O numero 50 é o maior O teste foi validado com sucesso certificando o funcionamento do ramo primário da função e atestando que a cobertura de ramificações total Branch Coverage foi alcançada 33 Caso de Teste 3 Ambos os números são iguais Cenário de Limite Valores de Entrada a 15 b 15 Chamada no script maximo15 15 Comportamento Lógico Esperado Sendo os valores idênticos a condição estrita if 15 15 resulta inevitavelmente em False Assim o fluxo de execução é encaminhado para o bloco else imprimindo o valor de b Resultado Obtido e Análise Crítica O console imprimiu O numero 15 é o maior O teste foi concluído com sucesso do ponto de vista operacional pois o programa não falhou crash e devolveu o valor numérico correto aplicável à 6 situação Contudo sob uma perspetiva de rigor semântico e de experiência do utilizador este teste de caixa branca revela uma oportunidade de melhoria refatoração A mensagem impressa sugere a existência de um número maior quando na verdade existe um empate técnico A inclusão de uma condição suplementar ex elif a b tornaria o software mais preciso e robusto 4 Evidências da Execução 7 4 CONCLUSÃO A realização desta aula prática revelouse um exercício essencial para consolidar a compreensão teórica e prática sobre os testes de caixa branca Através da aplicação de técnicas de cobertura de código demonstrouse como a definição metódica de casos de teste abrangendo os cenários maior menor e igual é vital para garantir que 100 dos caminhos lógicos de uma estrutura de decisão ifelse sejam exercitados e validados Adicionalmente esta atividade sublinhou que o papel de um testador ou engenheiro de qualidade vai muito além da simples execução de scripts A necessidade de realizar uma análise crítica inicial ao códigofonte que resultou na identificação e correção preventiva de falhas de sintaxe na formatação e na declaração condicional demonstrou que a inspeção estática do código é o primeiro passo crucial antes de qualquer validação dinâmica A deteção do comportamento semântico dúbio no cenário de igualdade reforçou ainda mais como estes testes ajudam a descobrir não apenas bugs de execução mas também deficiências lógicas na comunicação do sistema com o utilizador Por fim o uso da plataforma cloud Replit provou ser altamente eficaz e ágil Facilitou uma abordagem focada diretamente na lógica e no diagnóstico do código evidenciando que no ciclo de vida de desenvolvimento de software moderno SDLC dominar a lógica de validação estrutural é uma competência fundamental para a entrega de aplicações resilientes seguras e com altos níveis de garantia de qualidade 8 5 REFERÊNCIAS BIBLIOGRÁFICAS DELAMARO Marcio Introdução ao Teste de Software 2 ed Rio de Janeiro GEN LTC 2016 GONÇALVEZ Priscila F BARRETO Jeanine S ZENKER Aline M et al Testes de software e gerência de configuração Porto Alegre SAGAH 2019 WAZLAWICK Raul S Introdução a Algoritmos e Programação com Python Uma Abordagem Dirigida por Testes Rio de Janeiro GEN LTC 2018 9