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

Fases do Teste de Software e Qualidade

Enviado por

gabrielmacd01
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)
15 visualizações19 páginas

Fases do Teste de Software e Qualidade

Enviado por

gabrielmacd01
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

Apresentação
O teste de software é um processo que está inserido no desenvolvimento de um software. Seu
objetivo é encontrar/revelar falhas e problemas no software, para que sejam corrigidas até que o
produto final atinja a qualidade desejada. Entende-se como "qualidade" o encontro do que está
sendo entregue com os requisitos de software levantados no início do projeto, ou seja, o software
de qualidade é aquele que atende aos requisitos e às necessidades do cliente. Os profissionais que
trabalham nesta área estão habituados a realizar um conjunto de testes de diferentes naturezas e
propósitos, envolvendo não apenas os testes funcionais da aplicação, mas também diversas outras
atividades, como avaliação da especificação de requisitos, avaliação de projeto técnico, verificações
em outros documentos, testes de performance e capacidade e avaliação de interface.

Nesta Unidade de Aprendizagem, você vai adquirir conhecimentos fundamentais sobre testes de
software na Engenharia de software. Vai estudar conceitos básicos sobre o que são testes de
software e seus tipos, além de saber indicar os recursos técnicos que atuam nos testes.

Bons estudos.

Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:

• Identificar os conceitos de planejamento de testes.


• Reconhecer os conceitos de testes (unitários, de integração, sistemas e de aceitação).
• Indicar os recursos técnicos que atuam nos testes.
Desafio
Considere a seguinte situação: Pedro está desenvolvendo um sistema de controle financeiro para
uma grande instituição. Este sistema deve ter a garantia de realizar cálculos financeiros de forma
correta, uma vez que pequenos erros podem causar prejuízos de milhões de reais para a instituição.
O desenvolvimento deste sistema será dividido em fases bem definidas, de acordo com o ciclo de
vida incremental da Engenharia de software. Cada módulo desta divisão deve ser incrementado no
seu momento do ciclo de vida.

Imagine que você é o parceiro de Pedro na criação deste software e está responsável pela parte de
testes. Pedro está na dúvida sobre a utilidade da realização da fase de teste. Como cada um dos
tipos de testes (unitários, de integração, sistemas e de aceitação) pode ajudar Pedro a entregar um
software de qualidade para o usuário?
Infográfico
Teste de software é a investigação do software a fim de fornecer informações sobre sua qualidade
em relação ao contexto em que ele deve operar. O infográfico mostra os diferentes tipos de testes
e as técnicas utilizadas em cada um deles. Confira!
Conteúdo do livro
Os testes de software permitem que sejam detectados problemas entre o que foi especificado e o
resultado final da implementação. A criação de uma estratégia de teste de software pode fornecer
um roteiro que descreve as etapas que devem ser executadas como parte de um teste, além de
definir quando os passos são planejados e executados. Além disso, a estratégia define o montante
de trabalho, o tempo e os recursos que serão utilizados. Geralmente, uma estratégia de teste de
software inclui um planejamento dos testes, projeto de casos de teste, execução de testes e coleta e
avaliação dos dados.

Faça a leitura do capítulo Teste de software, da obra Engenharia de software, para ver conceitos de
testes de software e seus tipos, além de identificar os recursos técnicos que atuam nos testes.

Boa leitura.
ENGENHARIA
DE SOFTWARE

Aline Zanin

Izabelly Soares
de Morais
Revisão técnica:

Jeferson Faleiro Leon


Desenvolvimento de Sistemas
Especialista em Formação Pedagógica de Professores

M827e Morais, Izabelly Soares de.


Engenharia de software [recurso eletrônico] / Izabelly
Soares de Morais, Aline Zanin ; revisão técnica : Jeferson
Faleiro Leon. – Porto Alegre : SAGAH, 2017.

ISBN 978-85-9502-253-9

Engenharia. 2. Engenharia de software auxiliada por


computador. I. Zanin, Aline. II. Título.

CDU 004.41

Catalogação na publicação: Karin Lorien Menoncin CRB-10/2147


Teste de software
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:

„„ Identificar os conceitos de planejamento de testes.


„„ Reconhecer os conceitos de testes (unitários, de integração, sistemas
e de aceitação).
„„ Indicar os recursos técnicos que atuam nos testes.

Introdução
O teste de software é um processo que está inserido no desenvolvimento
de um software. Seu objetivo é encontrar/revelar falhas e problemas
no software, para que sejam corrigidos até que o produto final atinja a
qualidade desejada. Entende-se como “qualidade” o encontro do que
está sendo entregue com os requisitos de software levantados no início
do projeto, ou seja, o software de qualidade é aquele que atende aos
requisitos e às necessidades do cliente. Os profissionais que trabalham
nessa área estão habituados a realizar um conjunto de testes de diferentes
naturezas e propósitos, envolvendo não apenas os testes funcionais da
aplicação, mas também diversas outras atividades, como avaliação da
especificação de requisitos, avaliação de projeto técnico, verificações
em outros documentos, testes de performance e capacidade e avaliação
de interface.
Neste capítulo, você vai adquirir conhecimentos fundamentais sobre
testes de software na Engenharia de Software. Vai estudar conceitos
básicos sobre o que são testes de software e seus tipos, além de saber
indicar os recursos técnicos que atuam nos testes.
2 Teste de software

Planejamento de testes de software


Teste de software é uma das atividades envolvidas no processo de desenvolvi-
mento de sistemas. O diferencial é que todas as ações envolvidas na atividade
de testes se preocupam exclusivamente em garantir a qualidade do software. O
processo de teste básico consiste das seguintes atividades básicas: planejamento
e controle; análise e modelagem; implementação e execução; avaliação dos
critérios de saída e relatórios; e atividades de encerramento de teste.
A atividade de planejamento é a primeira a ser executada e ela é a base
de todo o processo de testes, uma vez que estrutura e organiza as partes e os
artefatos envolvidos com os testes. Essa etapa tem por finalidade principal
definir os objetivos e especificar as atividades envoltas no projeto de testes e
definir uma forma de alcançá-los. É nessa etapa que é criado um documento
chamado “plano de teste”, que contém a sumarização de todas as definições
processuais de um projeto de testes, como: pessoas envolvidas, tipos de testes,
técnicas, riscos, artefatos, etc. A atividade de controle acontece durante todo
o processo e visa a verificar se o que foi definido no planejamento está sendo
cumprido.
Na etapa de análise e modelagem, são criados os artefatos necessários
para cumprir o planejamento. Nessa etapa, por exemplo, são criados os casos
de teste e os scritps de teste. Além disso, é verificado o ambiente de testes e
são feitos os ajustes necessários. São priorizados os casos de testes ou scripts
de teste e é criada uma rastreabilidade bidirecional entre os requisitos e os
casos de teste.
Na etapa de implementação e execução, os artefatos projetados são or-
ganizados em suítes de acordo com sua prioridade, ou por funcionalidade, e
são executados. Na etapa de avaliação dos critérios de saída e relatórios, a
execução do teste é avaliada por meio dos objetivos definidos.
Por fim, na etapa de atividades de encerramento de teste, são coletados
os dados de todas as atividades para registrar experiência, testware, fatos e
números. Por exemplo, quando um software é lançado, um projeto de teste é
completado (ou cancelado), um marco do projeto foi alcançado, ou a implanta-
ção de uma demanda de manutenção foi completada (Figura 1) (BSTQB, 2011).
Teste de software 3

Avaliação
Atividades de
Planejamento Análise e Implementação dos critérios
encerramento
e controle modelagem e execução de saída e
de teste
relatórios

PROCESSO DE TESTES DE SOFTWARE

Figura 1. Fluxo de processo de testes.

Níveis de testes: unitários, integração, sistema e


aceitação
Para a execução de um processo de testes completo, diversos são os níveis de
testes que podem ser empregados, sendo eles: unitários, de integração, sistema
e de aceitação. Vamos analisar a diferença entre eles:

„„ Unitários: este nível de teste geralmente é executado pelo programador,


durante o processo de desenvolvimento do software. Isso porque esse
nível de teste considera o teste de pequenas partes do sistema. Um
exemplo de técnica utilizada para realização desse nível de teste é o
Test Driven Development (TDD) ou, em português, Desenvolvimento
Guiado por Testes, sendo possível empregá-lo em diversas linguagens
de programação.
„„ Teste de integração: o teste de integração tem por objetivo verificar se
uma ou mais unidades “se encaixam perfeitamente”, ou seja, se as peças
que de forma separada funcionam perfeitamente, quando unificadas,
irão se comunicar e estar em pleno funcionamento.
„„ Teste de sistema: este tipo de teste é o mais comumente empregado nas
empresas de tecnologia e ele visa a testar o sistema ou uma funcionali-
dade como um todo. Esse teste pode ser realizado de forma manual ou
de forma automatizada e fazendo uso de diversas ferramentas.
„„ Teste de aceitação: este é o último nível de testes e recomenda-se que
ele seja feito com a presença do cliente ou de um representante dele.
Nesse nível de teste, o objetivo não é encontrar falhas, e sim confirmar
que tudo está implementado conforme foi solicitado, para que a entrega
seja aceita.
4 Teste de software

TDD é uma técnica de testes em que, antes de se construir a funcionalidade, se constrói o


teste. Isso garante que a funcionalidade implementada esteja em pleno funcionamento
e de acordo com os requisitos solicitados, uma vez que o teste é criado visando a
atender os requisitos. Essa técnica considera os ciclos red, green e refactor. No ciclo
red (vermelho), escreve-se um teste que irá falhar porque a funcionalidade não foi
programada ainda; no ciclo green (verde), implementa-se a funcionalidade que fará o
teste passar, e no ciclo refactor (refatore), o código é aprimorado.

Recursos técnicos utilizados para testes de


software
A fim de tornar mais fácil a tarefa de testes de software, diversos são os recur-
sos técnicos que podem ser utilizados, sejam eles ferramentas, frameworks,
linguagens de programação, etc. Vamos listar a seguir, separados por níveis
de testes, alguns recursos que podem ser utilizados

1. Unitários: conforme supracitado, a principal técnica para a realização


de testes unitários é TDD. São exemplos de recursos para aplicação
de TDD os seguintes:
a) JUnit: framework utilizado para realização de TDD, utilização de
linguagem Java.
b) PHPUnit: framework utilizado para realização de TDD, utilização de
linguagem PHP.
c) Flask: framework utilizado para realização de TDD, utilização de lin-
guagem Phyton.
4. Sistema e aceitação: por terem funcionamento similar, no contexto de
testarem a ferramenta já desenvolvida, são os que dispõem da maior
gama de ferramentas de testes, sendo algumas delas:
a) Sikuli: ferramenta para automação de qualquer sistema que tenha in-
terface gráfica, inclusive sistemas desktop.
b) Selenium WebDriver: ferramenta para automação de testes de sistemas
web.
c) Robotium: ferramenta para automação de testes de aplicativos móveis.
Teste de software 5

Aprofunde seus conhecimentos sobre testes unitários


assistindo ao vídeo disponível no link ou código a seguir.

[Link]

BSTQB, Brazilian Software Testing Qualifications Board. Certified Tester Foundation


Level Syllabus. BSTQB, 2001. Disponível em: <[Link]
syllabus_ctfl_2011br.pdf>. Acesso em: 16 set. 2017

Leituras recomendadas
DELAMARO, M. E.; MALDONADO, J. C.; JINO, M. (Ed.). Introdução ao teste de software.
Rio de Janeiro: Elsevier, 2007.
RIOS, E.; MOREIRA, T. Teste de software. Rio de Janeiro: Alta Books, 2006.
Encerra aqui o trecho do livro disponibilizado para
esta Unidade de Aprendizagem. Na Biblioteca Virtual
da Instituição, você encontra a obra na íntegra.
Conteúdo:
Dica do professor
Para garantir a qualidade de um programa, com a detecção de falhas antes do software ser
comercializados, são realizados testes, que vão desde a análise da estrutura interna até a avaliação
da interface do software. O vídeo a seguir mostra os tipos de testes de software e o ciclo de vida
dos testes. Assista!

Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Exercícios

1) Qual destas definições representa um teste de software?

A) O teste do software é a investigação do software a fim de fornecer informações sobre sua


qualidade em relação ao contexto em que ele deve operar. Isso inclui o processo de utilizar o
produto para encontrar seus defeitos.

B) Os testes de software são ações tomadas para que um projeto demore mais do que o
esperado, não sendo necessário em projetos críticos.

C) Os testes de software são realizados no início do projeto, antes da implementação do


software.

D) Testes de software buscam demonstrar a incapacidade dos desenvolvedores na criação de


soluções de qualidade.

E) Testes de software são um conjunto de atividades realizadas somente pelo cliente quando
recebe o produto.

2) O comportamento interno do componente de software trabalha diretamente sobre o código-


fonte do componente de software para avaliar aspectos como teste de condição, teste de
fluxo de dados, teste de ciclos, teste de caminhos lógicos e códigos nunca executados. Das
técnicas apresentadas a seguir, qual avalia esse comportamento interno do componente de
software?

A) Teste de caixa-preta.

B) Teste de caixa-branca.

C) Regressão.

D) Técnicas não funcionais.

E) Caixa-cinza.

3) Qual é a fase de teste em que se testam as menores unidades de software desenvolvidas


(pequenas partes ou unidades do sistema)?
A) Teste de aceitação.

B) Teste de sistema.

C) Teste de operação.

D) Teste de integração.

E) Teste de unidade.

4) O que é TDD na Engenharia de Software?

A) É um ciclo de vida desenvolvido para facilitar a criação de testes.

B) TDD é uma técnica de testes de software utilizada pelos usuários dos sistemas.

C) TDD é um modelo clássico da Engenharia de Software e não é mais utilizado.

D) TDD é um sistema usado para testar software de forma automatizada.

E) O TDD é uma técnica de desenvolvimento de software que se baseia na criação inicial de


testes de software antes mesmo do desenvolvimento.

5) O ciclo de vida de testes de software tem cinco fases: planejamento, preparação,


especificação, execução e entrega. Qual fase tem como objetivo elaborar e revisar os casos e
roteiros de testes?

A) Planejamento.

B) Preparação.

C) Execução.

D) Especificação.

E) Entrega.
Na prática
Acompanhe o planejamento de testes para um software de sistema de controle de voos, a ser
utilizado em todo o País. O sistema é muito crítico, pois pequenos erros no software podem causar
acidentes aéreos, colocando em risco a vida de muitas pessoas. Sendo assim, existe uma forte
necessidade de esse sistema ser testado de diversas formas, a fim de garantir o pleno
funcionamento e a assertividade nas respostas.

Conteúdo interativo disponível na plataforma de ensino!

Ao final do projeto, foi entregue um sistema totalmente funcional e coberto por testes. Qualquer
falha possível seria descoberta, primeiro, através dos testes unitários. Além disso, os testes de
sistema e integração garantiram a qualidade do sistema, pois os requisitos foram atendidos.
Saiba +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:

Implantação de um Processo de Teste de Software


Acompanhe uma palestra com a demonstração da implantação de um processo de teste de
software, com a apresentação das dificuldades, desafios e potenciais melhorias com a adoção de
um processo.

Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.

Teste de Software - Plano de Teste


No próximo vídeo você poderá saber mais sobre o caso de testes e o plano de teste, que é um
documento que possibilita uma visão macro do sistema, com cronograma, possíveis riscos e outras
informações importantes.

Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.

Você também pode gostar