0% acharam este documento útil (0 voto)
5 visualizações9 páginas

Guia Completo sobre Teste de Software

O documento aborda o Teste de Software, destacando sua importância na detecção de erros e na garantia da qualidade do software. Ele descreve o Ciclo de Vida de Teste de Software (STLC) e os diferentes níveis de testes, como Teste de Unidade, Teste de Integração e Teste de Sistema. Além disso, o texto introduz o módulo doctest do Python, que permite a escrita de testes em documentação, e discute suas vantagens e desvantagens.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
5 visualizações9 páginas

Guia Completo sobre Teste de Software

O documento aborda o Teste de Software, destacando sua importância na detecção de erros e na garantia da qualidade do software. Ele descreve o Ciclo de Vida de Teste de Software (STLC) e os diferentes níveis de testes, como Teste de Unidade, Teste de Integração e Teste de Sistema. Além disso, o texto introduz o módulo doctest do Python, que permite a escrita de testes em documentação, e discute suas vantagens e desvantagens.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Teste de Software

Teste de Softwareé um processo de identificação de bugs em uma aplicação ao executar


o aplicativo através de uma série de testes projetados.
Teste de Softwareenvolve múltiplas partes interessadas, como testadores,
gestão, negócios, clientes, consultores e usuários finais.

Porqueotestedesoftwareénecessário?

Teste de Softwareé muito importante pelas seguintes razões:

Ele pode detectar erros ou defeitos cometidos durante a fase de desenvolvimento.


Aumenta a confiabilidade e a qualidade do software.
Isso valida ou verifica se o software está se comportando como esperado com base em
requisitos.
É necessário para um desempenho eficaz de aplicações de software.

CiclodeVidadoTestngdeSoftware
Ciclo de Vida de Teste de Software (STLC)refere-se a várias fases envolvidas no teste de
um software.
STLCem geral inclui as seguintes fases:

Revisão de Requisitos
PlanejamentoDeTeste
Desenvolvimento de Testes
TestEnvironmentSetUp
Execução de Teste
TestReportng

Níveis do Testng

Testing é geralmente classificado emtrêsníveis baseados no componente sendo testado.

Otrêsos níveis são:

UnitTestng
Teste de Integração
Teste de sistema

UnitTestng
Teste de UnidadeTestando os menores trechos de código possíveis de um programa.

Praticamente, a divisão desses trechos de código em partes ainda menores é


não alcançável.
Por exemplo: considerar a função abaixo como uma única unidade faz sentido.

def quadrado(n):
Retorna o quadrado de um número.
retornar n**2

Teste de Integração
Teste de IntegraçãoFoca nas interações de teste entre unidades relacionadas.
Esses testes ainda são executados em isolamento para superar entradas de fora.
ou outras unidades.
As entradas necessárias de unidades externas são simuladas.

Teste de Sistema
Teste de SistemaVerifica partes do programa assim que todas as unidades estão conectadas
juntos.
É uma forma extrema deTeste de Integração.
Os testes de sistema não serão úteis, se esses testes não forem suportados pelos resultados.
de testes de integração e testes unitários.

Teste de Aceitação
Teste de Unidade, Teste de IntegraçãoeTeste de Sistemaestá feito para verificar
produto de software como um todo ou seus componentes individuais.
Por outro lado, o teste que você realiza para confirmar que o software
comporta-se conforme o esperado é conhecidoTeste de Aceitação.
Teste de Aceitaçãonão verifica nenhuma funcionalidade central do software, ele
apenas visa verificar o comportamento do software.

Teste de Regressão
Teste de Regressãoé outro tipo de teste que garante que anteriormente
o software construído funciona da mesma forma após fazer algumas alterações nele ou
interligando-o com outro software.
Testes de Regressãopode ser escrito antes ou depois de um bug ser encontrado.
Eles fornecem uma garantia de que um aumento na complexidade de um programa não
introduzir novos bugs.

About the Course


Este curso se concentra principalmente em como realizarTeste de Unidadedo Python
programas ou aplicações.
O curso fala principalmente sobre quatro principais módulos de teste unitário do Python.
nomeadamente :doctest, unittest, nose e pytest.
teste de documentaçãoÉ a estrutura mais simples que combina documentação e
testes.
teste de unidadeÉ a estrutura que possui a arquitetura estilo xUnit.
narizItextendsteste unitárioe facilita o teste.
pytestPossui um conjunto rico de plugins úteis e é compatível
comteste unitárioenariz.

Introdução ao doctest
teste de docé um módulo do pythontestng, que permite escrever testes com base em
saída esperada do interpretador python padrão junto com a documentação.
teste de documentotambém é conhecido comoteste de documentooudocumento testável.
doctestpermite a combinação de testes e documentação. Este recurso permite
manter a documentação atualizada com a realidade e garantir que os testes expressem
o comportamento esperado.

Uma especificação de doctest


Adoctestcontém documentação e uma ou mais instruções python válidas.
As declarações são escritas após o shell do [Link] principal(>>>).

Prompt secundário (...)é usado a partir da segunda linha em diante, quando uma afirmação
está escrito em múltiplas linhas.

O resultado esperado está escrito abaixo das declarações em python e deve ser o mesmo.
o resultado obtido, quando você executa a declaração em um shell python.

EscrevendoTestescomoDocumentaçãodeTexto
Os testes são escritos na forma de documentação em um arquivo de texto.
Vamos considerar o seguinte texto em um arquivo chamadosample_tests.txt. O arquivo
contém documentação de texto e dois testes escritos para o TestNG do Python Plus
operador.

===============================
Demonstrando o uso de doctest
===============================

1. Este doctest verifica a funcionalidade do operador de adição do python.

>>> 2 + 4
6
-10,5 + 8
-2,5

A presença de uma linha em branco ou uma nova linha começando com o prompt primário após o
a saída esperada é vista como o fim do teste existente.

Executando Testes
Executar os testes escritos emsample_tests.txtusingthe below command.

python3 -m doctest sample_tests.txt

Por padrão, nenhuma saída é exibida quando todos os testes passam. Para ver uma saída detalhada,
usar-vopção conforme mostrado no comando abaixo.

python3 -m doctest -v sample_tests.txt

Saída

Tentando:
2+4
Esperando:
6
ok
Tentando:
-10,5 + 8
Esperando:
-2,5
ok
1 item passou em todos os testes:
2 testes em sample_tests.txt
2 testes em 1 item.
2 passed and 0 failed.
Test passed.

A saída verbosa mostra que dois testes passaram.

Using Secondary Prompt


Vamos estender osample_tests.txt agora, anexando a definição da função
deadicionar2numfunção e dois testes conforme mostrado abaixo.

2. O doctest abaixo verifica a funcionalidade da função add2num

>>> def adicionar2num(x, y):


Esta função retorna a soma de dois números.
... return x + y
>>> adicionar2num(6, 7)
13
>>> add2num(-8.5, 7)
-1,5

O exemplo mostra como uma definição de função que abrange várias linhas é
definido usando o prompt principal (>>>) e o prompt secundário (...), em um documento de texto.

Escrevendo Testes em docstrings


docstringé utilizado para documentar módulos, funções, classes e
métodos.
Agora vamos ver outro exemplo em que testes de funçãoadicionar2numestão escritos
como parte da docstring, em um script nomeadoamostra_mó[Link].

def adicionar2num(x, y):


Adiciona dois números dados e retorna a soma.
>>> adicionar2num(6, 7)
13
>>> add2num(-8.5, 7)
-1,5
"""
retorna x + y

Odocstringcontémdoistestes correspondentes aadicionar2numfunção.

Executando testes em docstrings


Agora você pode executar os testes com o comando abaixo

python3 -m doctest sample_module.py

Desde que todos os testes passam, você vê uma saída vazia.


Vamos alterar a saída esperada deadicionar2num(-8.5, 7)como-2.5 e execute os testes
novamente, a saída a seguir é vista.

**********************************************************************
Arquivo "D:\python 3.5\sample_module.py", linha 5, em sample_module.add2num
Exemplo falhado:
add2num(-8,5, 7)
Expected:
-2,5
Conseguiu:
-1,5
**********************************************************************
1 item teve falhas:
1 de 2 em sample_module.add2num
***Teste Falhou*** 1 falha.

Um testeadicionar2num(-8.5, 7)falha.

Esperando Exceções
Em alguns casos, você gostaria de levantar uma exceção, por exemplo, quando um
informação inválida foi fornecida.
doctestpode detectar levantadoexceçõesdetectando a exceção do python
reportandtraceback exibido em um shell interativo do python quando o
uma exceção é levantada.
doctestestá preocupado apenas com a primeira linhaRastro de execução (chamada mais recente
último):e a última linha, que diz qual exceção você espera.
relatórios de teste médicos falham apenas se uma dessas duas partes não corresponder.
Esperando Exceções
Agora adicione o texto abaixo, no final dos dois testes existentes.adicionar2numfunção,
emsample_tests.txtarquivo

>>> add2num(8, 'olá')


Rastreamento (chamada mais recente por último):
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Execute os testes usando o comando abaixo. Todos os testes foram aprovados.

python3 -m doctest amostras_testes.txt

Se você substituirTypeErrorcomValueErrorpalavra, e execute o comando acima


novamente resulta em um caso de falha.

Esperando Linhas Vazias


Odoctestconsidere a primeira linha em branco após o prompt principal (>>>) como a
fim da saída esperada.
No entanto, às vezes, você pode esperar linhas em branco na própria saída. Isso
distorcerdocteste falhar os testes.
Este problema pode ser superado inserindo<BLANKLINE> palavra em vez de um
linha em branco esperada.
O exemplo no próximo slide insere dois<BLANKLINE> palavras no lugar de dois
linhas em branco esperadas.

Esperando Linhas em Branco


Adicione a documentação abaixo ao final deteste_amostras.txte execute o
testes doct.

3. Este doctest verifica a funcionalidade da função insertlines


>>> def inserirlinhas(n):
... print('Iniciar')
... para i em range(n):
... imprimir()
... print('Fim')
>>> inserirlinhas(2)
Iniciar
<BLANKLINE>
<BLANKLINE>
Fim

O testeinserirlinhas(2)a função será bem-sucedida.

Prós e Contras
Prós
doctesté muito simples de usar e não requer qualquer instalação.
A documentação do código Itensures, contendo exemplos interativos, está atualizada.
Contras

doctestnão tem uma API adequada para testes.


doctestssão estáticos por natureza e, portanto, não podem ser parametrizados.
doctestnão suporta recursos comodescoberta de teste, testes de instalaçãoeteste
corredorPortanto, não pode ser usado para testar um grande projeto.

Você também pode gostar