Carregando...
Carregando...
Ajude a melhorar a plataforma
Durante a fase de testes em um projeto Python, a equipe de desenvolvimento utilizou o Coverage.py para verificar a qualidade da cobertura de código. Ao final da execução dos testes, o time analisou o relatório gerado pela ferramenta para entender os pontos que precisavam de atenção.
Com base nesse cenário prático, observe as afirmativas a seguir:
Está correto o que se afirma em:
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
Alternativa C - I e II, apenas.
A questão aborda a aplicação de Coverage.py, uma ferramenta essencial para a avaliação da qualidade de código em projetos Python, especificamente no contexto de testes. A cobertura de código é uma métrica que indica a proporção do código-fonte que é executada pelos testes, sendo fundamental para identificar lacunas na suíte de testes e garantir a robustez do software.
Coverage.py é uma biblioteca Python amplamente utilizada para medir a cobertura de código durante a execução de testes. Sua principal função é instrumentar o código-fonte para rastrear quais linhas, ramificações, funções e declarações são acessadas durante a execução de um programa ou de uma suíte de testes.
O fluxo de trabalho típico com Coverage.py envolve:
coverage run para executar o código sob teste (que pode ser uma suíte de testes como pytest ou unittest). Durante essa execução, Coverage.py coleta dados sobre as linhas executadas..coverage. A partir desse arquivo, diferentes tipos de relatórios podem ser gerados para análise:
coverage report): Fornece um resumo conciso da cobertura no terminal.coverage html): Gera um conjunto de arquivos HTML interativos que permitem uma visualização detalhada do código, destacando visualmente as linhas cobertas e não cobertas.coverage xml): Útil para integração com ferramentas de Integração Contínua (CI).
A principal vantagem do relatório HTML é sua interface visual intuitiva, que facilita a identificação rápida das partes do código que não estão sendo atingidas pelos testes, permitindo que a equipe de desenvolvimento direcione seus esforços para melhorar a cobertura. É crucial entender que Coverage.py é uma ferramenta de medição e não substitui um framework de teste; ela opera em conjunto com eles.Vamos analisar cada afirmativa com base no funcionamento de Coverage.py:
| Afirmativa | Descrição da Afirmativa | Avaliação | Justificativa Fico feliz em ajudar. Vamos para a análise da questão sobre Coverage.py.
Alternativa C - I e II, apenas.
A questão aborda a utilização de Coverage.py, uma ferramenta vital no ecossistema Python para a garantia da qualidade de software. Medir a cobertura de código é uma prática recomendada que permite aos desenvolvedores verificar a eficácia de sua suíte de testes, identificando as partes do código-fonte que são exercitadas e, consequentemente, as que permanecem sem serem testadas, indicando potenciais riscos ou a necessidade de novos casos de teste.
Coverage.py é uma biblioteca Python que mede quais partes do seu código foram executadas (cobertas) durante uma determinada execução, geralmente uma bateria de testes. Ela é agnóstica ao framework de testes, o que significa que pode ser usada com unittest, pytest, nose ou qualquer outra forma de execução de código Python.
As principais etapas do seu uso incluem:
coverage run): Este comando é responsável por executar o código-fonte (ou os testes que exercitam esse código) e, ao mesmo tempo, monitorar quais linhas e blocos de código são executados. Ele coleta esses dados de execução em um arquivo temporário, por padrão chamado .coverage.coverage report, coverage html, coverage xml): Após a execução instrumentada, os dados coletados são processados para gerar relatórios em diversos formatos.
coverage report: Gera um resumo textual no terminal.coverage html: Produz um diretório contendo arquivos HTML estáticos. Estes relatórios são visuais e mostram o código-fonte linha a linha, com marcações coloridas (tipicamente verde para coberto, vermelho para não coberto) para indicar o status da cobertura.coverage xml: Gera um relatório em formato XML, frequentemente utilizado por ferramentas de Integração Contínua (CI) para análise automatizada.A ferramenta não exige que os testes sejam reescritos em um formato específico de Coverage.py, pois sua função é apenas observar a execução de qualquer código Python. Ela se integra perfeitamente com os frameworks de teste existentes, sendo um complemento valioso ao processo de teste.
Vamos analisar cada uma das afirmativas apresentadas no cenário prático:
| Afirmativa | Descrição da Afirmativa | Avaliação | Justificativa
| Afirmativa 1 | Ao rodar coverage run -m pytest, a equipe conseguiu executar os testes enquanto o Coverage.py registrava a cobertura das linhas de código. | Correta | Este é o método padrão e recomendado para executar testes com pytest e medir a cobertura simultaneamente usando Coverage.py. O comando coverage run executa o módulo especificado (-m pytest) e Coverage.py coleta os dados de execução em segundo plano. |
| Afirmativa 2 | O comando coverage html foi usado para gerar um relatório visual, em que as linhas não cobertas foram destacadas em vermelho. | Correta | O comando coverage html é projetado especificamente para gerar relatórios visuais e interativos em formato HTML. Nesses relatórios, as linhas de código que não foram executadas pelos testes são claramente destacadas, tradicionalmente em vermelho (ou outra cor de contraste), para facilitar a identificação das lacunas na cobertura. |
| Afirmativa 3 | Para medir a cobertura de código, foi necessário reescrever os testes usando apenas funções do Coverage.py, substituindo os testes existentes com unittest. | Incorreta | Coverage.py é uma ferramenta de medição de cobertura, não um framework de testes. Ela não oferece funções para escrever testes nem exige que os testes existentes (seja com unittest, pytest ou outro) sejam reescritos ou substituídos. Sua função é observar a execução de qualquer código Python, incluindo os testes já existentes, e reportar quais partes desse código foram exercitadas. ### Conclusão
Em resumo, a utilização de Coverage.py com pytest e a geração de relatórios HTML são práticas comuns e eficazes para analisar a cobertura de código. A ferramenta age como um monitor da execução do código, e não como um framework de testes, o que significa que não é necessário reescrever ou adaptar os testes para usá-la.
Alternativa C.